UNPKG

c8y-openlayer

Version:

This module is designed to help integrate Openlayer with Cumulocity IoT

81 lines (72 loc) 1.91 kB
import _ol_math_ from './math.js'; var _ol_RotationConstraint_ = {}; /** * @param {number|undefined} rotation Rotation. * @param {number} delta Delta. * @return {number|undefined} Rotation. */ _ol_RotationConstraint_.disable = function(rotation, delta) { if (rotation !== undefined) { return 0; } else { return undefined; } }; /** * @param {number|undefined} rotation Rotation. * @param {number} delta Delta. * @return {number|undefined} Rotation. */ _ol_RotationConstraint_.none = function(rotation, delta) { if (rotation !== undefined) { return rotation + delta; } else { return undefined; } }; /** * @param {number} n N. * @return {ol.RotationConstraintType} Rotation constraint. */ _ol_RotationConstraint_.createSnapToN = function(n) { var theta = 2 * Math.PI / n; return ( /** * @param {number|undefined} rotation Rotation. * @param {number} delta Delta. * @return {number|undefined} Rotation. */ function(rotation, delta) { if (rotation !== undefined) { rotation = Math.floor((rotation + delta) / theta + 0.5) * theta; return rotation; } else { return undefined; } }); }; /** * @param {number=} opt_tolerance Tolerance. * @return {ol.RotationConstraintType} Rotation constraint. */ _ol_RotationConstraint_.createSnapToZero = function(opt_tolerance) { var tolerance = opt_tolerance || _ol_math_.toRadians(5); return ( /** * @param {number|undefined} rotation Rotation. * @param {number} delta Delta. * @return {number|undefined} Rotation. */ function(rotation, delta) { if (rotation !== undefined) { if (Math.abs(rotation + delta) <= tolerance) { return 0; } else { return rotation + delta; } } else { return undefined; } }); }; export default _ol_RotationConstraint_;