Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions js/CADWorker/CascadeStudioStandardLibrary.js
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,31 @@ function Rotate(axis, degrees, shapes, keepOriginal) {
return rotated;
}

function Mirror(vector, shapes, keepOriginal) {
if (!vector) { vector = [1, 0, 0]; }
const mirrored = CacheOp(arguments, () => {
const mirrorTransform = new oc.gp_Trsf();
const mirrorPlaneOrigin = new oc.gp_Pnt(0, 0, 0);
const mirrorPlaneNormal = new oc.gp_Dir(vector[0], vector[1], vector[2]);
mirrorTransform.SetMirror(new oc.gp_Ax2(mirrorPlaneOrigin, mirrorPlaneNormal));
const mirroring = new oc.TopLoc_Location(mirrorTransform);

if (!isArrayLike(shapes)) {
return new oc.TopoDS_Shape(shapes.Moved(mirroring).Reversed());
} else if (shapes.length >= 1) {
let newMirroring = [];
for (let shapeIndex = 0; shapeIndex < shapes.length; shapeIndex++) {
newMirroring.push(new oc.TopoDS_Shape(shapes[shapeIndex].Moved(mirroring).Reversed()));
}
return newMirroring;
}
})
if (!keepOriginal) { sceneShapes = Remove(sceneShapes, shapes); }
sceneShapes.push(mirrored);

return mirrored;
}

function Scale(scale, shapes, keepOriginal) {
let scaled = CacheOp(arguments, () => {
let transformation = new oc.gp_Trsf();
Expand Down
2 changes: 1 addition & 1 deletion js/MainPage/CascadeMain.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ window.workerWorking = false;

let starterCode =
`// Welcome to Cascade Studio! Here are some useful functions:
// Translate(), Rotate(), Scale(), Union(), Difference(), Intersection()
// Translate(), Rotate(), Scale(), Mirror(), Union(), Difference(), Intersection()
// Box(), Sphere(), Cylinder(), Cone(), Text3D(), Polygon()
// Offset(), Extrude(), RotatedExtrude(), Revolve(), Pipe(), Loft(),
// FilletEdges(), ChamferEdges(),
Expand Down
5 changes: 5 additions & 0 deletions js/StandardLibraryIntellisense.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,11 @@ function Translate(offset: number[], shape: oc.TopoDS_Shape, keepOriginal?: bool
* @example```let leaningCylinder = Rotate([0, 1, 0], 45, Cylinder(25, 50));```*/
function Rotate(axis: number[], degrees: number, shape: oc.TopoDS_Shape, keepOriginal?: boolean): oc.TopoDS_Shape;

/** Mirror this shape about 3-coordinate normal vector
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
* @example```let mirrored = Mirror([0, 0, 1] , Text3D("Hello!"));```*/
function Mirror(vector: number[], shape: oc.TopoDS_Shape, keepShape?: boolean): oc.TopoDS_Shape;

/** Scale a shape to be `scale` times its current size.
* [Source](https://github.com/zalo/CascadeStudio/blob/master/js/CADWorker/CascadeStudioStandardLibrary.js)
* @example```let scaledCylinder = Scale(50, Cylinder(0.5, 1));```*/
Expand Down
2 changes: 1 addition & 1 deletion node_modules/opencascade.js/dist/oc.d.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion node_modules/opencascade.js/dist/opencascade.wasm.js

Large diffs are not rendered by default.

Binary file modified node_modules/opencascade.js/dist/opencascade.wasm.wasm
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.