@bitbybit-dev/manifold
Version:
Bit By Bit Developers Manifold based CAD Library to Program Geometry
52 lines (51 loc) • 1.51 kB
JavaScript
export class ManifoldTransforms {
constructor(wasm) {
this.manifold = wasm;
}
scale3D(inputs) {
return inputs.manifold.scale(inputs.vector);
}
scale(inputs) {
return inputs.manifold.scale(inputs.vector);
}
mirror(inputs) {
return inputs.manifold.mirror(inputs.normal);
}
translate(inputs) {
return inputs.manifold.translate(inputs.vector);
}
translateByVectors(inputs) {
return inputs.vectors.map(vector => {
return inputs.manifold.translate(vector);
});
}
rotate(inputs) {
return inputs.manifold.rotate(inputs.vector);
}
rotateXYZ(inputs) {
return inputs.manifold.rotate(inputs.x, inputs.y, inputs.z);
}
translateXYZ(inputs) {
return inputs.manifold.translate(inputs.x, inputs.y, inputs.z);
}
transform(inputs) {
return inputs.manifold.transform(inputs.transform);
}
transforms(inputs) {
let currentShape = inputs.manifold;
//potentially leaks in betweens...
const transformedShapes = [];
inputs.transforms.forEach(transform => {
currentShape = currentShape.transform(transform);
transformedShapes.push(currentShape);
});
const res = transformedShapes.pop();
transformedShapes.forEach(shape => {
shape.delete();
});
return res;
}
warp(inputs) {
return inputs.manifold.warp(inputs.warpFunc);
}
}