UNPKG

sparkar-remap

Version:

An Utility for mapping value in Spark AR

34 lines (29 loc) 1.01 kB
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 }