loaders.gl
Version:
Framework-independent loaders for 3D graphics formats
37 lines (32 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.normalize = normalize;
// Fit point cloud in a 1x1x1 box centered at [0, 0, 0]
function normalize(points) {
var xMin = Infinity;
var yMin = Infinity;
var zMin = Infinity;
var xMax = -Infinity;
var yMax = -Infinity;
var zMax = -Infinity;
for (var i = 0; i < points.length; i++) {
xMin = Math.min(xMin, points[i][0]);
yMin = Math.min(yMin, points[i][1]);
zMin = Math.min(zMin, points[i][2]);
xMax = Math.max(xMax, points[i][0]);
yMax = Math.max(yMax, points[i][1]);
zMax = Math.max(zMax, points[i][2]);
}
var scale = Math.max(xMax - xMin, yMax - yMin, zMax - zMin);
var xMid = (xMin + xMax) / 2;
var yMid = (yMin + yMax) / 2;
var zMid = (zMin + zMax) / 2;
for (var _i = 0; _i < points.length; _i++) {
points[_i][0] = (points[_i][0] - xMid) / scale;
points[_i][1] = (points[_i][1] - yMid) / scale;
points[_i][2] = (points[_i][2] - zMid) / scale;
}
}
//# sourceMappingURL=point-cloud-utils.js.map