@openhps/core
Version:
Open Hybrid Positioning System - Core component
43 lines • 1.2 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Vector3 } from '../../utils/math/';
import { SerializableObject, SerializableMember } from '../decorators';
import { Accuracy } from './Accuracy';
let Accuracy2D = class Accuracy2D extends Accuracy {
constructor(x, y, unit) {
super(new Vector3(), unit);
this.value.x = x;
this.value.y = y;
}
/**
* Convert the value to another unit
* @param {Unit} unit Target unit
* @returns {Accuracy2D} Converted value
*/
to(unit) {
const accuracy = super.to(unit);
accuracy.x = this.unit.convert(this.x, unit);
accuracy.y = this.unit.convert(this.y, unit);
return accuracy;
}
valueOf() {
return (this.x + this.y) / 2;
}
toString() {
return this.valueOf().toString();
}
get x() {
return this.value.x;
}
set x(val) {
this.value.x = val;
}
get y() {
return this.value.y;
}
set y(val) {
this.value.y = val;
}
};
__decorate([SerializableMember(), __metadata("design:type", Vector3)], Accuracy2D.prototype, "value", void 0);
Accuracy2D = __decorate([SerializableObject(), __metadata("design:paramtypes", [Number, Number, Object])], Accuracy2D);
export { Accuracy2D };