three-stdlib
Version:
stand-alone library of threejs examples
28 lines (27 loc) • 1.02 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const THREE = require("three");
const ConvexHull = require("../math/ConvexHull.cjs");
class ConvexGeometry extends THREE.BufferGeometry {
constructor(points = []) {
super();
const vertices = [];
const normals = [];
const convexHull = new ConvexHull.ConvexHull().setFromPoints(points);
const faces = convexHull.faces;
for (let i = 0; i < faces.length; i++) {
const face = faces[i];
let edge = face.edge;
do {
const point = edge.head().point;
vertices.push(point.x, point.y, point.z);
normals.push(face.normal.x, face.normal.y, face.normal.z);
edge = edge.next;
} while (edge !== face.edge);
}
this.setAttribute("position", new THREE.Float32BufferAttribute(vertices, 3));
this.setAttribute("normal", new THREE.Float32BufferAttribute(normals, 3));
}
}
exports.ConvexGeometry = ConvexGeometry;
//# sourceMappingURL=ConvexGeometry.cjs.map
;