loaders.gl
Version:
Framework-independent loaders for 3D graphics formats
28 lines (25 loc) • 1.28 kB
JavaScript
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
/**
* Covert all numbers in a deep structure to a given precision, allowing
* reliable float comparisons. Converts data in-place.
* @param {mixed} input Input data
* @param {Number} [precision] Desired precision
* @return {mixed} Input data, with all numbers converted
*/
export function toLowPrecision(input) {
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 11;
/* eslint-disable guard-for-in */
if (typeof input === 'number') {
input = Number(input.toPrecision(precision));
} else if (Array.isArray(input) || ArrayBuffer.isView(input)) {
input = Array.from(input).map(function (item) {
return toLowPrecision(item, precision);
});
} else if (_typeof(input) === 'object') {
for (var key in input) {
input[key] = toLowPrecision(input[key], precision);
}
}
return input;
}
//# sourceMappingURL=to-low-precision.js.map