sparkar-remap
Version:
An Utility for mapping value in Spark AR
34 lines (29 loc) • 1.01 kB
JavaScript
const Reactive = require('Reactive');
/**
* Support `number`, `ScalarSignal`, `Point2DSignal`, `PointSignal`, `Point4DSignal`, `VectorSignal`
* @returns {any}
*/
function remapClamp(value, fromMin, fromMax, toMin, toMax) {
return Reactive.clamp(remap(value, fromMin, fromMax, toMin, toMax), Reactive.min(toMin, toMax), Reactive.max(toMin, toMax));
}
/**
* Support `number`, `ScalarSignal`, `Point2DSignal`, `PointSignal`, `Point4DSignal`, `VectorSignal`
* @returns {any}
*/
function remap(value, fromMin, fromMax, toMin, toMax) {
value = typeof value === 'number' ? Reactive.val(value) : value;
return Reactive.toRange(value.fromRange(fromMin, fromMax), toMin, toMax);
}
/**
* @param {ScalarSignal | number} value
*/
function toRadian(value) {
return remap(value, -180, 180, -Math.PI, Math.PI);
}
/**
* @param {ScalarSignal | number} value
*/
function toDegree(value) {
return remap(value, -Math.PI, Math.PI, -180, 180);
}
export { remap, remapClamp, toRadian, toDegree }