UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

43 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RelativePositionProcessing = void 0; const ObjectProcessingNode_1 = require("../ObjectProcessingNode"); /** * Relative position processing node. * @category Processing node */ class RelativePositionProcessing extends ObjectProcessingNode_1.ObjectProcessingNode { constructor(relativePositionType, options) { super(options); this._relativePositionType = relativePositionType; } processObject(dataObject, dataFrame) { return new Promise((resolve, reject) => { const referencePromises = []; const index = new Map(); for (const relativePosition of dataObject.relativePositions) { // Only use relative positions that are instance of relativePositionType if (relativePosition instanceof this._relativePositionType) { index.set(relativePosition.referenceObjectUID, relativePosition); referencePromises.push(this.findObjectByUID(relativePosition.referenceObjectUID, dataFrame, relativePosition.referenceObjectType)); } } Promise.all(referencePromises) .then((referenceObjects) => { const relativePositions = new Map(); referenceObjects .filter((obj) => obj !== undefined) .forEach((referenceObject) => { relativePositions.set(index.get(referenceObject.uid), referenceObject); }); return this.processRelativePositions(dataObject, relativePositions, dataFrame); }) .then((modifiedObject) => { resolve(modifiedObject); }) .catch(reject); }); } } exports.RelativePositionProcessing = RelativePositionProcessing; //# sourceMappingURL=RelativePositionProcessing.js.map