UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

30 lines 1.15 kB
import { LengthUnit } from '../../utils'; import { ObjectProcessingNode } from '../ObjectProcessingNode'; /** * Accuracy modifier node. Apply an offset of magnitude to the position accuracy. * @category Processing node */ export class AccuracyModifierNode extends ObjectProcessingNode { constructor(options) { super(options); this.options.offsetUnit = this.options.offsetUnit || LengthUnit.METER; this.options.offset = this.options.offset || 0; this.options.magnitude = this.options.magnitude || 1; } processObject(object) { return new Promise(resolve => { if (object.position) { if (this.options.value) { object.position.accuracy.value = LengthUnit.METER.convert(this.options.value, object.position.unit); } else { const accuracy = object.position.accuracy.value || this.options.defaultValue; if (accuracy) { const offset = this.options.offsetUnit.convert(this.options.offset, object.position.unit); object.position.accuracy.value = accuracy * this.options.magnitude + offset; } } } resolve(object); }); } }