fluidcad 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +504 -0
- package/README.md +175 -0
- package/bin/fluidcad.js +94 -0
- package/bin/watcher.js +55 -0
- package/lib/dist/common/edge.d.ts +14 -0
- package/lib/dist/common/edge.js +32 -0
- package/lib/dist/common/face.d.ts +31 -0
- package/lib/dist/common/face.js +83 -0
- package/lib/dist/common/materials.d.ts +7 -0
- package/lib/dist/common/materials.js +22 -0
- package/lib/dist/common/scene-object.d.ts +111 -0
- package/lib/dist/common/scene-object.js +380 -0
- package/lib/dist/common/shape-factory.d.ts +8 -0
- package/lib/dist/common/shape-factory.js +31 -0
- package/lib/dist/common/shape-type.d.ts +1 -0
- package/lib/dist/common/shape-type.js +1 -0
- package/lib/dist/common/shape.d.ts +43 -0
- package/lib/dist/common/shape.js +95 -0
- package/lib/dist/common/shapes.d.ts +6 -0
- package/lib/dist/common/shapes.js +6 -0
- package/lib/dist/common/solid-face.d.ts +9 -0
- package/lib/dist/common/solid-face.js +22 -0
- package/lib/dist/common/solid.d.ts +20 -0
- package/lib/dist/common/solid.js +68 -0
- package/lib/dist/common/vertex.d.ts +17 -0
- package/lib/dist/common/vertex.js +44 -0
- package/lib/dist/common/wire.d.ts +22 -0
- package/lib/dist/common/wire.js +97 -0
- package/lib/dist/constraints/constraint.d.ts +11 -0
- package/lib/dist/constraints/constraint.js +51 -0
- package/lib/dist/constraints/outside.d.ts +3 -0
- package/lib/dist/constraints/outside.js +4 -0
- package/lib/dist/core/2d/aline.d.ts +28 -0
- package/lib/dist/core/2d/aline.js +26 -0
- package/lib/dist/core/2d/arc.d.ts +77 -0
- package/lib/dist/core/2d/arc.js +49 -0
- package/lib/dist/core/2d/aslot.d.ts +12 -0
- package/lib/dist/core/2d/aslot.js +40 -0
- package/lib/dist/core/2d/bezier.d.ts +16 -0
- package/lib/dist/core/2d/bezier.js +15 -0
- package/lib/dist/core/2d/circle.d.ts +24 -0
- package/lib/dist/core/2d/circle.js +44 -0
- package/lib/dist/core/2d/connect.d.ts +11 -0
- package/lib/dist/core/2d/connect.js +10 -0
- package/lib/dist/core/2d/crect.d.ts +12 -0
- package/lib/dist/core/2d/crect.js +74 -0
- package/lib/dist/core/2d/face-driller.d.ts +8 -0
- package/lib/dist/core/2d/face-driller.js +70 -0
- package/lib/dist/core/2d/face-maker.d.ts +13 -0
- package/lib/dist/core/2d/face-maker.js +119 -0
- package/lib/dist/core/2d/face-maker2.d.ts +6 -0
- package/lib/dist/core/2d/face-maker2.js +54 -0
- package/lib/dist/core/2d/hline.d.ts +33 -0
- package/lib/dist/core/2d/hline.js +37 -0
- package/lib/dist/core/2d/hmove.d.ts +9 -0
- package/lib/dist/core/2d/hmove.js +11 -0
- package/lib/dist/core/2d/index.d.ts +22 -0
- package/lib/dist/core/2d/index.js +22 -0
- package/lib/dist/core/2d/line.d.ts +24 -0
- package/lib/dist/core/2d/line.js +40 -0
- package/lib/dist/core/2d/move.d.ts +13 -0
- package/lib/dist/core/2d/move.js +13 -0
- package/lib/dist/core/2d/offset.d.ts +21 -0
- package/lib/dist/core/2d/offset.js +24 -0
- package/lib/dist/core/2d/pmove.d.ts +11 -0
- package/lib/dist/core/2d/pmove.js +12 -0
- package/lib/dist/core/2d/polygon.d.ts +38 -0
- package/lib/dist/core/2d/polygon.js +63 -0
- package/lib/dist/core/2d/project.d.ts +17 -0
- package/lib/dist/core/2d/project.js +20 -0
- package/lib/dist/core/2d/rect.d.ts +27 -0
- package/lib/dist/core/2d/rect.js +58 -0
- package/lib/dist/core/2d/rmove.d.ts +17 -0
- package/lib/dist/core/2d/rmove.js +14 -0
- package/lib/dist/core/2d/slot.d.ts +49 -0
- package/lib/dist/core/2d/slot.js +65 -0
- package/lib/dist/core/2d/tarc.d.ts +46 -0
- package/lib/dist/core/2d/tarc.js +61 -0
- package/lib/dist/core/2d/tcircle.d.ts +15 -0
- package/lib/dist/core/2d/tcircle.js +24 -0
- package/lib/dist/core/2d/tline.d.ts +24 -0
- package/lib/dist/core/2d/tline.js +30 -0
- package/lib/dist/core/2d/vline.d.ts +33 -0
- package/lib/dist/core/2d/vline.js +37 -0
- package/lib/dist/core/2d/vmove.d.ts +9 -0
- package/lib/dist/core/2d/vmove.js +11 -0
- package/lib/dist/core/2d/wire.d.ts +11 -0
- package/lib/dist/core/2d/wire.js +29 -0
- package/lib/dist/core/axis.d.ts +41 -0
- package/lib/dist/core/axis.js +104 -0
- package/lib/dist/core/chamfer.d.ts +31 -0
- package/lib/dist/core/chamfer.js +32 -0
- package/lib/dist/core/color.d.ts +16 -0
- package/lib/dist/core/color.js +19 -0
- package/lib/dist/core/common.d.ts +12 -0
- package/lib/dist/core/common.js +36 -0
- package/lib/dist/core/copy.d.ts +58 -0
- package/lib/dist/core/copy.js +49 -0
- package/lib/dist/core/cut.d.ts +46 -0
- package/lib/dist/core/cut.js +53 -0
- package/lib/dist/core/cylinder.d.ts +11 -0
- package/lib/dist/core/cylinder.js +10 -0
- package/lib/dist/core/extrude.d.ts +36 -0
- package/lib/dist/core/extrude.js +55 -0
- package/lib/dist/core/fillet.d.ts +33 -0
- package/lib/dist/core/fillet.js +58 -0
- package/lib/dist/core/fuse.d.ts +14 -0
- package/lib/dist/core/fuse.js +36 -0
- package/lib/dist/core/index.d.ts +32 -0
- package/lib/dist/core/index.js +30 -0
- package/lib/dist/core/interfaces.d.ts +411 -0
- package/lib/dist/core/interfaces.js +1 -0
- package/lib/dist/core/load.d.ts +10 -0
- package/lib/dist/core/load.js +10 -0
- package/lib/dist/core/loft.d.ts +10 -0
- package/lib/dist/core/loft.js +21 -0
- package/lib/dist/core/mirror.d.ts +40 -0
- package/lib/dist/core/mirror.js +95 -0
- package/lib/dist/core/part.d.ts +7 -0
- package/lib/dist/core/part.js +29 -0
- package/lib/dist/core/plane.d.ts +56 -0
- package/lib/dist/core/plane.js +111 -0
- package/lib/dist/core/region.d.ts +13 -0
- package/lib/dist/core/region.js +18 -0
- package/lib/dist/core/remove.d.ts +10 -0
- package/lib/dist/core/remove.js +10 -0
- package/lib/dist/core/repeat.d.ts +41 -0
- package/lib/dist/core/repeat.js +146 -0
- package/lib/dist/core/revolve.d.ts +19 -0
- package/lib/dist/core/revolve.js +39 -0
- package/lib/dist/core/rotate.d.ts +34 -0
- package/lib/dist/core/rotate.js +48 -0
- package/lib/dist/core/select.d.ts +12 -0
- package/lib/dist/core/select.js +21 -0
- package/lib/dist/core/shell.d.ts +16 -0
- package/lib/dist/core/shell.js +28 -0
- package/lib/dist/core/sketch.d.ts +18 -0
- package/lib/dist/core/sketch.js +34 -0
- package/lib/dist/core/sphere.d.ts +16 -0
- package/lib/dist/core/sphere.js +11 -0
- package/lib/dist/core/split.d.ts +12 -0
- package/lib/dist/core/split.js +26 -0
- package/lib/dist/core/subtract.d.ts +11 -0
- package/lib/dist/core/subtract.js +10 -0
- package/lib/dist/core/sweep.d.ts +16 -0
- package/lib/dist/core/sweep.js +29 -0
- package/lib/dist/core/translate.d.ts +64 -0
- package/lib/dist/core/translate.js +39 -0
- package/lib/dist/core/trim.d.ts +13 -0
- package/lib/dist/core/trim.js +18 -0
- package/lib/dist/core/use.d.ts +5 -0
- package/lib/dist/core/use.js +22 -0
- package/lib/dist/features/2d/aline.d.ts +18 -0
- package/lib/dist/features/2d/aline.js +78 -0
- package/lib/dist/features/2d/amove.d.ts +14 -0
- package/lib/dist/features/2d/amove.js +33 -0
- package/lib/dist/features/2d/arc-from-center.d.ts +16 -0
- package/lib/dist/features/2d/arc-from-center.js +69 -0
- package/lib/dist/features/2d/arc-to-point.d.ts +17 -0
- package/lib/dist/features/2d/arc-to-point.js +95 -0
- package/lib/dist/features/2d/arc.d.ts +19 -0
- package/lib/dist/features/2d/arc.js +94 -0
- package/lib/dist/features/2d/bezier.d.ts +15 -0
- package/lib/dist/features/2d/bezier.js +77 -0
- package/lib/dist/features/2d/circle.d.ts +17 -0
- package/lib/dist/features/2d/circle.js +58 -0
- package/lib/dist/features/2d/connect.d.ts +12 -0
- package/lib/dist/features/2d/connect.js +105 -0
- package/lib/dist/features/2d/constraints/constraint.d.ts +11 -0
- package/lib/dist/features/2d/constraints/constraint.js +49 -0
- package/lib/dist/features/2d/constraints/geometry-qualifier.d.ts +6 -0
- package/lib/dist/features/2d/constraints/geometry-qualifier.js +13 -0
- package/lib/dist/features/2d/constraints/outside.d.ts +3 -0
- package/lib/dist/features/2d/constraints/outside.js +4 -0
- package/lib/dist/features/2d/constraints/qualified-geometry.d.ts +16 -0
- package/lib/dist/features/2d/constraints/qualified-geometry.js +36 -0
- package/lib/dist/features/2d/extrudable-base.d.ts +15 -0
- package/lib/dist/features/2d/extrudable-base.js +27 -0
- package/lib/dist/features/2d/geometry.d.ts +20 -0
- package/lib/dist/features/2d/geometry.js +77 -0
- package/lib/dist/features/2d/hline.d.ts +16 -0
- package/lib/dist/features/2d/hline.js +66 -0
- package/lib/dist/features/2d/hmove.d.ts +14 -0
- package/lib/dist/features/2d/hmove.js +37 -0
- package/lib/dist/features/2d/line.d.ts +15 -0
- package/lib/dist/features/2d/line.js +59 -0
- package/lib/dist/features/2d/move.d.ts +15 -0
- package/lib/dist/features/2d/move.js +36 -0
- package/lib/dist/features/2d/offset.d.ts +18 -0
- package/lib/dist/features/2d/offset.js +117 -0
- package/lib/dist/features/2d/pmove.d.ts +16 -0
- package/lib/dist/features/2d/pmove.js +40 -0
- package/lib/dist/features/2d/polygon.d.ts +25 -0
- package/lib/dist/features/2d/polygon.js +107 -0
- package/lib/dist/features/2d/projection.d.ts +15 -0
- package/lib/dist/features/2d/projection.js +94 -0
- package/lib/dist/features/2d/rect.d.ts +45 -0
- package/lib/dist/features/2d/rect.js +262 -0
- package/lib/dist/features/2d/rmove.d.ts +17 -0
- package/lib/dist/features/2d/rmove.js +39 -0
- package/lib/dist/features/2d/sketch.d.ts +34 -0
- package/lib/dist/features/2d/sketch.js +171 -0
- package/lib/dist/features/2d/slot-from-edge.d.ts +19 -0
- package/lib/dist/features/2d/slot-from-edge.js +66 -0
- package/lib/dist/features/2d/slot.d.ts +24 -0
- package/lib/dist/features/2d/slot.js +119 -0
- package/lib/dist/features/2d/tarc-constrained.d.ts +20 -0
- package/lib/dist/features/2d/tarc-constrained.js +64 -0
- package/lib/dist/features/2d/tarc-to-point-tangent.d.ts +15 -0
- package/lib/dist/features/2d/tarc-to-point-tangent.js +86 -0
- package/lib/dist/features/2d/tarc-to-point.d.ts +13 -0
- package/lib/dist/features/2d/tarc-to-point.js +86 -0
- package/lib/dist/features/2d/tarc-two-circles.d.ts +18 -0
- package/lib/dist/features/2d/tarc-two-circles.js +61 -0
- package/lib/dist/features/2d/tarc-with-tangent.d.ts +17 -0
- package/lib/dist/features/2d/tarc-with-tangent.js +71 -0
- package/lib/dist/features/2d/tarc.d.ts +13 -0
- package/lib/dist/features/2d/tarc.js +71 -0
- package/lib/dist/features/2d/tcircle-constrained.d.ts +14 -0
- package/lib/dist/features/2d/tcircle-constrained.js +37 -0
- package/lib/dist/features/2d/tcircle-three-tan.d.ts +13 -0
- package/lib/dist/features/2d/tcircle-three-tan.js +33 -0
- package/lib/dist/features/2d/tcircle-two-tan.d.ts +13 -0
- package/lib/dist/features/2d/tcircle-two-tan.js +33 -0
- package/lib/dist/features/2d/tline-constrained.d.ts +27 -0
- package/lib/dist/features/2d/tline-constrained.js +82 -0
- package/lib/dist/features/2d/tline.d.ts +12 -0
- package/lib/dist/features/2d/tline.js +49 -0
- package/lib/dist/features/2d/vline.d.ts +16 -0
- package/lib/dist/features/2d/vline.js +65 -0
- package/lib/dist/features/2d/vmove.d.ts +14 -0
- package/lib/dist/features/2d/vmove.js +37 -0
- package/lib/dist/features/2d/wire.d.ts +12 -0
- package/lib/dist/features/2d/wire.js +76 -0
- package/lib/dist/features/Extrude.d.ts +1 -0
- package/lib/dist/features/Extrude.js +1 -0
- package/lib/dist/features/axis-from-edge.d.ts +15 -0
- package/lib/dist/features/axis-from-edge.js +82 -0
- package/lib/dist/features/axis-mid.d.ts +16 -0
- package/lib/dist/features/axis-mid.js +59 -0
- package/lib/dist/features/axis-renderable-base.d.ts +8 -0
- package/lib/dist/features/axis-renderable-base.js +12 -0
- package/lib/dist/features/axis.d.ts +14 -0
- package/lib/dist/features/axis.js +43 -0
- package/lib/dist/features/chamfer.d.ts +20 -0
- package/lib/dist/features/chamfer.js +129 -0
- package/lib/dist/features/color.d.ts +11 -0
- package/lib/dist/features/color.js +93 -0
- package/lib/dist/features/common.d.ts +12 -0
- package/lib/dist/features/common.js +70 -0
- package/lib/dist/features/common2d.d.ts +15 -0
- package/lib/dist/features/common2d.js +96 -0
- package/lib/dist/features/copy-circular.d.ts +23 -0
- package/lib/dist/features/copy-circular.js +73 -0
- package/lib/dist/features/copy-circular2d.d.ts +15 -0
- package/lib/dist/features/copy-circular2d.js +84 -0
- package/lib/dist/features/copy-linear.d.ts +23 -0
- package/lib/dist/features/copy-linear.js +101 -0
- package/lib/dist/features/copy-linear2d.d.ts +15 -0
- package/lib/dist/features/copy-linear2d.js +108 -0
- package/lib/dist/features/cut-base.d.ts +49 -0
- package/lib/dist/features/cut-base.js +312 -0
- package/lib/dist/features/cut-symmetric.d.ts +23 -0
- package/lib/dist/features/cut-symmetric.js +119 -0
- package/lib/dist/features/cut-two-distances.d.ts +24 -0
- package/lib/dist/features/cut-two-distances.js +110 -0
- package/lib/dist/features/cut.d.ts +27 -0
- package/lib/dist/features/cut.js +101 -0
- package/lib/dist/features/cylinder.d.ts +13 -0
- package/lib/dist/features/cylinder.js +33 -0
- package/lib/dist/features/extrude-base.d.ts +56 -0
- package/lib/dist/features/extrude-base.js +331 -0
- package/lib/dist/features/extrude-options.d.ts +8 -0
- package/lib/dist/features/extrude-options.js +1 -0
- package/lib/dist/features/extrude-symmetric.d.ts +28 -0
- package/lib/dist/features/extrude-symmetric.js +177 -0
- package/lib/dist/features/extrude-to-face.d.ts +35 -0
- package/lib/dist/features/extrude-to-face.js +275 -0
- package/lib/dist/features/extrude-two-distances.d.ts +21 -0
- package/lib/dist/features/extrude-two-distances.js +116 -0
- package/lib/dist/features/extrude.d.ts +25 -0
- package/lib/dist/features/extrude.js +182 -0
- package/lib/dist/features/fillet.d.ts +24 -0
- package/lib/dist/features/fillet.js +125 -0
- package/lib/dist/features/fillet2d.d.ts +16 -0
- package/lib/dist/features/fillet2d.js +98 -0
- package/lib/dist/features/fuse.d.ts +10 -0
- package/lib/dist/features/fuse.js +63 -0
- package/lib/dist/features/fuse2d.d.ts +13 -0
- package/lib/dist/features/fuse2d.js +86 -0
- package/lib/dist/features/infinite-extrude.d.ts +10 -0
- package/lib/dist/features/infinite-extrude.js +44 -0
- package/lib/dist/features/lazy-scene-object.d.ts +16 -0
- package/lib/dist/features/lazy-scene-object.js +52 -0
- package/lib/dist/features/lazy-vertex.d.ts +19 -0
- package/lib/dist/features/lazy-vertex.js +62 -0
- package/lib/dist/features/load.d.ts +9 -0
- package/lib/dist/features/load.js +31 -0
- package/lib/dist/features/loft.d.ts +27 -0
- package/lib/dist/features/loft.js +273 -0
- package/lib/dist/features/mirror-feature.d.ts +15 -0
- package/lib/dist/features/mirror-feature.js +39 -0
- package/lib/dist/features/mirror-shape.d.ts +14 -0
- package/lib/dist/features/mirror-shape.js +86 -0
- package/lib/dist/features/mirror-shape2d.d.ts +18 -0
- package/lib/dist/features/mirror-shape2d.js +110 -0
- package/lib/dist/features/part.d.ts +12 -0
- package/lib/dist/features/part.js +36 -0
- package/lib/dist/features/plane-from-object.d.ts +29 -0
- package/lib/dist/features/plane-from-object.js +103 -0
- package/lib/dist/features/plane-mid.d.ts +18 -0
- package/lib/dist/features/plane-mid.js +54 -0
- package/lib/dist/features/plane-renderable-base.d.ts +9 -0
- package/lib/dist/features/plane-renderable-base.js +15 -0
- package/lib/dist/features/plane.d.ts +21 -0
- package/lib/dist/features/plane.js +64 -0
- package/lib/dist/features/region2d.d.ts +25 -0
- package/lib/dist/features/region2d.js +185 -0
- package/lib/dist/features/remove.d.ts +9 -0
- package/lib/dist/features/remove.js +33 -0
- package/lib/dist/features/repeat-circular.d.ts +23 -0
- package/lib/dist/features/repeat-circular.js +47 -0
- package/lib/dist/features/repeat-circular2d.d.ts +17 -0
- package/lib/dist/features/repeat-circular2d.js +90 -0
- package/lib/dist/features/repeat-linear.d.ts +23 -0
- package/lib/dist/features/repeat-linear.js +52 -0
- package/lib/dist/features/repeat-linear2d.d.ts +17 -0
- package/lib/dist/features/repeat-linear2d.js +114 -0
- package/lib/dist/features/revolve-options.d.ts +6 -0
- package/lib/dist/features/revolve-options.js +1 -0
- package/lib/dist/features/revolve.d.ts +23 -0
- package/lib/dist/features/revolve.js +150 -0
- package/lib/dist/features/rotate.d.ts +16 -0
- package/lib/dist/features/rotate.js +89 -0
- package/lib/dist/features/rotate2d.d.ts +15 -0
- package/lib/dist/features/rotate2d.js +83 -0
- package/lib/dist/features/select.d.ts +26 -0
- package/lib/dist/features/select.js +113 -0
- package/lib/dist/features/shell.d.ts +24 -0
- package/lib/dist/features/shell.js +214 -0
- package/lib/dist/features/simple-extruder.d.ts +22 -0
- package/lib/dist/features/simple-extruder.js +108 -0
- package/lib/dist/features/sphere.d.ts +13 -0
- package/lib/dist/features/sphere.js +33 -0
- package/lib/dist/features/split.d.ts +14 -0
- package/lib/dist/features/split.js +74 -0
- package/lib/dist/features/split2d.d.ts +13 -0
- package/lib/dist/features/split2d.js +69 -0
- package/lib/dist/features/state-scene-object.d.ts +15 -0
- package/lib/dist/features/state-scene-object.js +44 -0
- package/lib/dist/features/state-select.d.ts +21 -0
- package/lib/dist/features/state-select.js +73 -0
- package/lib/dist/features/static-scene-object.d.ts +10 -0
- package/lib/dist/features/static-scene-object.js +21 -0
- package/lib/dist/features/subtract.d.ts +13 -0
- package/lib/dist/features/subtract.js +56 -0
- package/lib/dist/features/sweep.d.ts +22 -0
- package/lib/dist/features/sweep.js +129 -0
- package/lib/dist/features/translate.d.ts +17 -0
- package/lib/dist/features/translate.js +76 -0
- package/lib/dist/features/translate2d.d.ts +16 -0
- package/lib/dist/features/translate2d.js +61 -0
- package/lib/dist/features/trim2d.d.ts +15 -0
- package/lib/dist/features/trim2d.js +154 -0
- package/lib/dist/filters/all-filter.d.ts +8 -0
- package/lib/dist/filters/all-filter.js +12 -0
- package/lib/dist/filters/edge/at-index.d.ts +21 -0
- package/lib/dist/filters/edge/at-index.js +82 -0
- package/lib/dist/filters/edge/circle-filter.d.ts +17 -0
- package/lib/dist/filters/edge/circle-filter.js +34 -0
- package/lib/dist/filters/edge/curve-filter.d.ts +17 -0
- package/lib/dist/filters/edge/curve-filter.js +34 -0
- package/lib/dist/filters/edge/edge-filter.d.ts +22 -0
- package/lib/dist/filters/edge/edge-filter.js +169 -0
- package/lib/dist/filters/edge/line-filter.d.ts +14 -0
- package/lib/dist/filters/edge/line-filter.js +27 -0
- package/lib/dist/filters/edge/on-plane.d.ts +20 -0
- package/lib/dist/filters/edge/on-plane.js +70 -0
- package/lib/dist/filters/edge/parallel.d.ts +18 -0
- package/lib/dist/filters/edge/parallel.js +41 -0
- package/lib/dist/filters/edge/vertical-plane.d.ts +18 -0
- package/lib/dist/filters/edge/vertical-plane.js +41 -0
- package/lib/dist/filters/face/at-index.d.ts +21 -0
- package/lib/dist/filters/face/at-index.js +89 -0
- package/lib/dist/filters/face/circle-filter.d.ts +17 -0
- package/lib/dist/filters/face/circle-filter.js +34 -0
- package/lib/dist/filters/face/cone-filter.d.ts +15 -0
- package/lib/dist/filters/face/cone-filter.js +30 -0
- package/lib/dist/filters/face/cylinder-curve.d.ts +17 -0
- package/lib/dist/filters/face/cylinder-curve.js +34 -0
- package/lib/dist/filters/face/cylinder.d.ts +17 -0
- package/lib/dist/filters/face/cylinder.js +34 -0
- package/lib/dist/filters/face/face-filter.d.ts +21 -0
- package/lib/dist/filters/face/face-filter.js +134 -0
- package/lib/dist/filters/face/on-plane.d.ts +18 -0
- package/lib/dist/filters/face/on-plane.js +41 -0
- package/lib/dist/filters/face/parallel.d.ts +18 -0
- package/lib/dist/filters/face/parallel.js +41 -0
- package/lib/dist/filters/filter-base.d.ts +8 -0
- package/lib/dist/filters/filter-base.js +2 -0
- package/lib/dist/filters/filter-builder-base.d.ts +10 -0
- package/lib/dist/filters/filter-builder-base.js +31 -0
- package/lib/dist/filters/filter.d.ts +8 -0
- package/lib/dist/filters/filter.js +33 -0
- package/lib/dist/filters/index.d.ts +4 -0
- package/lib/dist/filters/index.js +8 -0
- package/lib/dist/filters/near-point-filter.d.ts +11 -0
- package/lib/dist/filters/near-point-filter.js +33 -0
- package/lib/dist/helpers/clone-transform.d.ts +3 -0
- package/lib/dist/helpers/clone-transform.js +46 -0
- package/lib/dist/helpers/cut-helpers.d.ts +13 -0
- package/lib/dist/helpers/cut-helpers.js +79 -0
- package/lib/dist/helpers/math-helpers.d.ts +2 -0
- package/lib/dist/helpers/math-helpers.js +6 -0
- package/lib/dist/helpers/normalize.d.ts +12 -0
- package/lib/dist/helpers/normalize.js +118 -0
- package/lib/dist/helpers/resolve-filters.d.ts +6 -0
- package/lib/dist/helpers/resolve-filters.js +25 -0
- package/lib/dist/helpers/resolve.d.ts +8 -0
- package/lib/dist/helpers/resolve.js +45 -0
- package/lib/dist/helpers/scene-helpers.d.ts +17 -0
- package/lib/dist/helpers/scene-helpers.js +67 -0
- package/lib/dist/helpers/types.d.ts +27 -0
- package/lib/dist/helpers/types.js +1 -0
- package/lib/dist/index.d.ts +37 -0
- package/lib/dist/index.js +75 -0
- package/lib/dist/io/file-export.d.ts +30 -0
- package/lib/dist/io/file-export.js +45 -0
- package/lib/dist/io/file-import.d.ts +8 -0
- package/lib/dist/io/file-import.js +81 -0
- package/lib/dist/load.d.ts +1 -0
- package/lib/dist/load.js +1 -0
- package/lib/dist/math/axis.d.ts +72 -0
- package/lib/dist/math/axis.js +157 -0
- package/lib/dist/math/axis.test.d.ts +1 -0
- package/lib/dist/math/axis.test.js +287 -0
- package/lib/dist/math/convert.d.ts +2 -0
- package/lib/dist/math/convert.js +1 -0
- package/lib/dist/math/coordinate-system.d.ts +43 -0
- package/lib/dist/math/coordinate-system.js +140 -0
- package/lib/dist/math/coordinate-system.test.d.ts +1 -0
- package/lib/dist/math/coordinate-system.test.js +308 -0
- package/lib/dist/math/index.d.ts +8 -0
- package/lib/dist/math/index.js +8 -0
- package/lib/dist/math/matrix4.d.ts +53 -0
- package/lib/dist/math/matrix4.js +336 -0
- package/lib/dist/math/matrix4.test.d.ts +1 -0
- package/lib/dist/math/matrix4.test.js +357 -0
- package/lib/dist/math/plane.d.ts +60 -0
- package/lib/dist/math/plane.js +243 -0
- package/lib/dist/math/plane.test.d.ts +1 -0
- package/lib/dist/math/plane.test.js +398 -0
- package/lib/dist/math/point.d.ts +73 -0
- package/lib/dist/math/point.js +227 -0
- package/lib/dist/math/point.test.d.ts +1 -0
- package/lib/dist/math/point.test.js +385 -0
- package/lib/dist/math/quaternion.d.ts +37 -0
- package/lib/dist/math/quaternion.js +234 -0
- package/lib/dist/math/quaternion.test.d.ts +1 -0
- package/lib/dist/math/quaternion.test.js +278 -0
- package/lib/dist/math/vector3d.d.ts +43 -0
- package/lib/dist/math/vector3d.js +143 -0
- package/lib/dist/math/vector3d.test.d.ts +1 -0
- package/lib/dist/math/vector3d.test.js +276 -0
- package/lib/dist/oc/boolean-ops.d.ts +36 -0
- package/lib/dist/oc/boolean-ops.js +337 -0
- package/lib/dist/oc/constraint-resolver.d.ts +7 -0
- package/lib/dist/oc/constraint-resolver.js +31 -0
- package/lib/dist/oc/constraints/constraint-helpers.d.ts +33 -0
- package/lib/dist/oc/constraints/constraint-helpers.js +252 -0
- package/lib/dist/oc/constraints/constraint-solver-adaptor.d.ts +22 -0
- package/lib/dist/oc/constraints/constraint-solver-adaptor.js +62 -0
- package/lib/dist/oc/constraints/constraint-solver.d.ts +18 -0
- package/lib/dist/oc/constraints/constraint-solver.js +2 -0
- package/lib/dist/oc/constraints/create-solver.d.ts +2 -0
- package/lib/dist/oc/constraints/create-solver.js +6 -0
- package/lib/dist/oc/constraints/curve/curve-constraint-solver.d.ts +13 -0
- package/lib/dist/oc/constraints/curve/curve-constraint-solver.js +18 -0
- package/lib/dist/oc/constraints/curve/tangent-circle-solver.d.ts +16 -0
- package/lib/dist/oc/constraints/curve/tangent-circle-solver.js +112 -0
- package/lib/dist/oc/constraints/curve/tangent-line-solver.d.ts +19 -0
- package/lib/dist/oc/constraints/curve/tangent-line-solver.js +83 -0
- package/lib/dist/oc/constraints/curve-constraint-solver.d.ts +1 -0
- package/lib/dist/oc/constraints/curve-constraint-solver.js +2 -0
- package/lib/dist/oc/constraints/geometric/geometric-constraint-solver.d.ts +12 -0
- package/lib/dist/oc/constraints/geometric/geometric-constraint-solver.js +17 -0
- package/lib/dist/oc/constraints/geometric/tangent-circle-solver.d.ts +21 -0
- package/lib/dist/oc/constraints/geometric/tangent-circle-solver.js +220 -0
- package/lib/dist/oc/constraints/geometric/tangent-line-solver.d.ts +19 -0
- package/lib/dist/oc/constraints/geometric/tangent-line-solver.js +92 -0
- package/lib/dist/oc/constraints/geometric-constraint-solver.d.ts +1 -0
- package/lib/dist/oc/constraints/geometric-constraint-solver.js +5 -0
- package/lib/dist/oc/convert.d.ts +42 -0
- package/lib/dist/oc/convert.js +231 -0
- package/lib/dist/oc/edge-ops.d.ts +37 -0
- package/lib/dist/oc/edge-ops.js +306 -0
- package/lib/dist/oc/edge-props.d.ts +11 -0
- package/lib/dist/oc/edge-props.js +45 -0
- package/lib/dist/oc/edge-query.d.ts +44 -0
- package/lib/dist/oc/edge-query.js +235 -0
- package/lib/dist/oc/explorer.d.ts +34 -0
- package/lib/dist/oc/explorer.js +179 -0
- package/lib/dist/oc/extrude-ops.d.ts +22 -0
- package/lib/dist/oc/extrude-ops.js +149 -0
- package/lib/dist/oc/face-maker.d.ts +14 -0
- package/lib/dist/oc/face-maker.js +191 -0
- package/lib/dist/oc/face-maker2.d.ts +10 -0
- package/lib/dist/oc/face-maker2.js +139 -0
- package/lib/dist/oc/face-ops.d.ts +28 -0
- package/lib/dist/oc/face-ops.js +252 -0
- package/lib/dist/oc/face-props.d.ts +12 -0
- package/lib/dist/oc/face-props.js +81 -0
- package/lib/dist/oc/face-query.d.ts +35 -0
- package/lib/dist/oc/face-query.js +341 -0
- package/lib/dist/oc/fillet-ops.d.ts +13 -0
- package/lib/dist/oc/fillet-ops.js +153 -0
- package/lib/dist/oc/geometry.d.ts +22 -0
- package/lib/dist/oc/geometry.js +231 -0
- package/lib/dist/oc/hit-test.d.ts +11 -0
- package/lib/dist/oc/hit-test.js +85 -0
- package/lib/dist/oc/index.d.ts +24 -0
- package/lib/dist/oc/index.js +21 -0
- package/lib/dist/oc/init.d.ts +3 -0
- package/lib/dist/oc/init.js +17 -0
- package/lib/dist/oc/intersection.d.ts +10 -0
- package/lib/dist/oc/intersection.js +107 -0
- package/lib/dist/oc/io.d.ts +49 -0
- package/lib/dist/oc/io.js +417 -0
- package/lib/dist/oc/loft-ops.d.ts +5 -0
- package/lib/dist/oc/loft-ops.js +26 -0
- package/lib/dist/oc/measure.d.ts +21 -0
- package/lib/dist/oc/measure.js +256 -0
- package/lib/dist/oc/mesh.d.ts +15 -0
- package/lib/dist/oc/mesh.js +110 -0
- package/lib/dist/oc/primitives.d.ts +5 -0
- package/lib/dist/oc/primitives.js +19 -0
- package/lib/dist/oc/props.d.ts +13 -0
- package/lib/dist/oc/props.js +18 -0
- package/lib/dist/oc/shape-ops.d.ts +34 -0
- package/lib/dist/oc/shape-ops.js +208 -0
- package/lib/dist/oc/shell-ops.d.ts +5 -0
- package/lib/dist/oc/shell-ops.js +25 -0
- package/lib/dist/oc/sweep-ops.d.ts +12 -0
- package/lib/dist/oc/sweep-ops.js +39 -0
- package/lib/dist/oc/tangent-circle-solver.d.ts +17 -0
- package/lib/dist/oc/tangent-circle-solver.js +72 -0
- package/lib/dist/oc/tangent-line-solver.d.ts +17 -0
- package/lib/dist/oc/tangent-line-solver.js +83 -0
- package/lib/dist/oc/tangent-solver.d.ts +14 -0
- package/lib/dist/oc/tangent-solver.js +199 -0
- package/lib/dist/oc/vertex-ops.d.ts +11 -0
- package/lib/dist/oc/vertex-ops.js +39 -0
- package/lib/dist/oc/wire-ops.d.ts +21 -0
- package/lib/dist/oc/wire-ops.js +176 -0
- package/lib/dist/rendering/builder-context.d.ts +16 -0
- package/lib/dist/rendering/builder-context.js +63 -0
- package/lib/dist/rendering/mesh-builder.d.ts +5 -0
- package/lib/dist/rendering/mesh-builder.js +43 -0
- package/lib/dist/rendering/render-edge.d.ts +3 -0
- package/lib/dist/rendering/render-edge.js +4 -0
- package/lib/dist/rendering/render-face.d.ts +2 -0
- package/lib/dist/rendering/render-face.js +5 -0
- package/lib/dist/rendering/render-solid.d.ts +3 -0
- package/lib/dist/rendering/render-solid.js +61 -0
- package/lib/dist/rendering/render-wire.d.ts +6 -0
- package/lib/dist/rendering/render-wire.js +27 -0
- package/lib/dist/rendering/render.d.ts +3 -0
- package/lib/dist/rendering/render.js +183 -0
- package/lib/dist/rendering/scene-compare.d.ts +4 -0
- package/lib/dist/rendering/scene-compare.js +41 -0
- package/lib/dist/rendering/scene.d.ts +81 -0
- package/lib/dist/rendering/scene.js +206 -0
- package/lib/dist/scene-manager.d.ts +32 -0
- package/lib/dist/scene-manager.js +120 -0
- package/lib/dist/tests/extrude.test.d.ts +1 -0
- package/lib/dist/tests/extrude.test.js +48 -0
- package/lib/dist/tests/features/2d/arc.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/arc.test.js +40 -0
- package/lib/dist/tests/features/2d/circle.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/circle.test.js +64 -0
- package/lib/dist/tests/features/2d/constrained.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/constrained.test.js +202 -0
- package/lib/dist/tests/features/2d/line.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/line.test.js +86 -0
- package/lib/dist/tests/features/2d/move.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/move.test.js +74 -0
- package/lib/dist/tests/features/2d/offset.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/offset.test.js +111 -0
- package/lib/dist/tests/features/2d/pmove.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/pmove.test.js +43 -0
- package/lib/dist/tests/features/2d/polygon.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/polygon.test.js +150 -0
- package/lib/dist/tests/features/2d/project.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/project.test.js +22 -0
- package/lib/dist/tests/features/2d/rect.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/rect.test.js +66 -0
- package/lib/dist/tests/features/2d/rmove.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/rmove.test.js +29 -0
- package/lib/dist/tests/features/2d/slot-from-edge.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/slot-from-edge.test.js +35 -0
- package/lib/dist/tests/features/2d/slot.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/slot.test.js +44 -0
- package/lib/dist/tests/features/2d/tarc.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/tarc.test.js +237 -0
- package/lib/dist/tests/features/2d/tcircle.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/tcircle.test.js +28 -0
- package/lib/dist/tests/features/2d/tline.test.d.ts +1 -0
- package/lib/dist/tests/features/2d/tline.test.js +34 -0
- package/lib/dist/tests/features/axis.test.d.ts +1 -0
- package/lib/dist/tests/features/axis.test.js +143 -0
- package/lib/dist/tests/features/chamfer.test.d.ts +1 -0
- package/lib/dist/tests/features/chamfer.test.js +159 -0
- package/lib/dist/tests/features/color.test.d.ts +1 -0
- package/lib/dist/tests/features/color.test.js +96 -0
- package/lib/dist/tests/features/common2d.test.d.ts +1 -0
- package/lib/dist/tests/features/common2d.test.js +113 -0
- package/lib/dist/tests/features/copy-circular-2d.test.d.ts +1 -0
- package/lib/dist/tests/features/copy-circular-2d.test.js +40 -0
- package/lib/dist/tests/features/copy-circular.test.d.ts +1 -0
- package/lib/dist/tests/features/copy-circular.test.js +44 -0
- package/lib/dist/tests/features/copy-linear-2d.test.d.ts +1 -0
- package/lib/dist/tests/features/copy-linear-2d.test.js +35 -0
- package/lib/dist/tests/features/copy-linear.test.d.ts +1 -0
- package/lib/dist/tests/features/copy-linear.test.js +95 -0
- package/lib/dist/tests/features/copy.test.d.ts +1 -0
- package/lib/dist/tests/features/copy.test.js +158 -0
- package/lib/dist/tests/features/cut-symmetric.test.d.ts +1 -0
- package/lib/dist/tests/features/cut-symmetric.test.js +120 -0
- package/lib/dist/tests/features/cut-two-distances.test.d.ts +1 -0
- package/lib/dist/tests/features/cut-two-distances.test.js +125 -0
- package/lib/dist/tests/features/cut.test.d.ts +1 -0
- package/lib/dist/tests/features/cut.test.js +311 -0
- package/lib/dist/tests/features/dispose.test.d.ts +1 -0
- package/lib/dist/tests/features/dispose.test.js +189 -0
- package/lib/dist/tests/features/extrude-symmetric.test.d.ts +1 -0
- package/lib/dist/tests/features/extrude-symmetric.test.js +240 -0
- package/lib/dist/tests/features/extrude-to-face.test.d.ts +1 -0
- package/lib/dist/tests/features/extrude-to-face.test.js +256 -0
- package/lib/dist/tests/features/extrude-two-distances.test.d.ts +1 -0
- package/lib/dist/tests/features/extrude-two-distances.test.js +264 -0
- package/lib/dist/tests/features/extrude.test.d.ts +1 -0
- package/lib/dist/tests/features/extrude.test.js +640 -0
- package/lib/dist/tests/features/fillet.test.d.ts +1 -0
- package/lib/dist/tests/features/fillet.test.js +163 -0
- package/lib/dist/tests/features/fillet2d.test.d.ts +1 -0
- package/lib/dist/tests/features/fillet2d.test.js +69 -0
- package/lib/dist/tests/features/fuse.test.d.ts +1 -0
- package/lib/dist/tests/features/fuse.test.js +122 -0
- package/lib/dist/tests/features/fuse2d.test.d.ts +1 -0
- package/lib/dist/tests/features/fuse2d.test.js +80 -0
- package/lib/dist/tests/features/loft.test.d.ts +1 -0
- package/lib/dist/tests/features/loft.test.js +283 -0
- package/lib/dist/tests/features/mirror.test.d.ts +1 -0
- package/lib/dist/tests/features/mirror.test.js +112 -0
- package/lib/dist/tests/features/mirror2d.test.d.ts +1 -0
- package/lib/dist/tests/features/mirror2d.test.js +75 -0
- package/lib/dist/tests/features/part-pick.test.d.ts +1 -0
- package/lib/dist/tests/features/part-pick.test.js +73 -0
- package/lib/dist/tests/features/part-repeat.test.d.ts +1 -0
- package/lib/dist/tests/features/part-repeat.test.js +109 -0
- package/lib/dist/tests/features/part.test.d.ts +1 -0
- package/lib/dist/tests/features/part.test.js +356 -0
- package/lib/dist/tests/features/plane.test.d.ts +1 -0
- package/lib/dist/tests/features/plane.test.js +154 -0
- package/lib/dist/tests/features/repeat-circular.test.d.ts +1 -0
- package/lib/dist/tests/features/repeat-circular.test.js +114 -0
- package/lib/dist/tests/features/repeat-linear.test.d.ts +1 -0
- package/lib/dist/tests/features/repeat-linear.test.js +138 -0
- package/lib/dist/tests/features/revolve.test.d.ts +1 -0
- package/lib/dist/tests/features/revolve.test.js +205 -0
- package/lib/dist/tests/features/rotate.test.d.ts +1 -0
- package/lib/dist/tests/features/rotate.test.js +133 -0
- package/lib/dist/tests/features/rotate2d.test.d.ts +1 -0
- package/lib/dist/tests/features/rotate2d.test.js +74 -0
- package/lib/dist/tests/features/select.test.d.ts +1 -0
- package/lib/dist/tests/features/select.test.js +337 -0
- package/lib/dist/tests/features/shell.test.d.ts +1 -0
- package/lib/dist/tests/features/shell.test.js +230 -0
- package/lib/dist/tests/features/subtract.test.d.ts +1 -0
- package/lib/dist/tests/features/subtract.test.js +103 -0
- package/lib/dist/tests/features/sweep.test.d.ts +1 -0
- package/lib/dist/tests/features/sweep.test.js +312 -0
- package/lib/dist/tests/features/translate.test.d.ts +1 -0
- package/lib/dist/tests/features/translate.test.js +117 -0
- package/lib/dist/tests/global-setup.d.ts +1 -0
- package/lib/dist/tests/global-setup.js +5 -0
- package/lib/dist/tests/math/axis.test.d.ts +1 -0
- package/lib/dist/tests/math/axis.test.js +287 -0
- package/lib/dist/tests/math/coordinate-system.test.d.ts +1 -0
- package/lib/dist/tests/math/coordinate-system.test.js +308 -0
- package/lib/dist/tests/math/matrix4.test.d.ts +1 -0
- package/lib/dist/tests/math/matrix4.test.js +357 -0
- package/lib/dist/tests/math/plane.test.d.ts +1 -0
- package/lib/dist/tests/math/plane.test.js +398 -0
- package/lib/dist/tests/math/point.test.d.ts +1 -0
- package/lib/dist/tests/math/point.test.js +385 -0
- package/lib/dist/tests/math/quaternion.test.d.ts +1 -0
- package/lib/dist/tests/math/quaternion.test.js +278 -0
- package/lib/dist/tests/math/vector3d.test.d.ts +1 -0
- package/lib/dist/tests/math/vector3d.test.js +276 -0
- package/lib/dist/tests/setup.d.ts +5 -0
- package/lib/dist/tests/setup.js +14 -0
- package/lib/dist/tests/utils.d.ts +12 -0
- package/lib/dist/tests/utils.js +36 -0
- package/lib/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +83 -0
- package/server/dist/fluidcad-server.d.ts +32 -0
- package/server/dist/fluidcad-server.js +150 -0
- package/server/dist/index.d.ts +1 -0
- package/server/dist/index.js +290 -0
- package/server/dist/routes/actions.d.ts +3 -0
- package/server/dist/routes/actions.js +100 -0
- package/server/dist/routes/export.d.ts +3 -0
- package/server/dist/routes/export.js +55 -0
- package/server/dist/routes/properties.d.ts +3 -0
- package/server/dist/routes/properties.js +46 -0
- package/server/dist/routes/screenshot.d.ts +2 -0
- package/server/dist/routes/screenshot.js +76 -0
- package/server/dist/vite-manager.d.ts +10 -0
- package/server/dist/vite-manager.js +64 -0
- package/server/dist/ws-protocol.d.ts +138 -0
- package/server/dist/ws-protocol.js +4 -0
- package/ui/dist/assets/index-DXW2yo2v.css +2 -0
- package/ui/dist/assets/index-qqJ_mWi7.js +4732 -0
- package/ui/dist/icons/aline.png +0 -0
- package/ui/dist/icons/arc.png +0 -0
- package/ui/dist/icons/aslot.png +0 -0
- package/ui/dist/icons/axis.png +0 -0
- package/ui/dist/icons/box.png +0 -0
- package/ui/dist/icons/chamfer.png +0 -0
- package/ui/dist/icons/circle.png +0 -0
- package/ui/dist/icons/color.png +0 -0
- package/ui/dist/icons/common.png +0 -0
- package/ui/dist/icons/cone.png +0 -0
- package/ui/dist/icons/connect.png +0 -0
- package/ui/dist/icons/copy-circular.png +0 -0
- package/ui/dist/icons/copy-circular2d.png +0 -0
- package/ui/dist/icons/copy-linear.png +0 -0
- package/ui/dist/icons/copy-linear2d.png +0 -0
- package/ui/dist/icons/cut.png +0 -0
- package/ui/dist/icons/cylinder.png +0 -0
- package/ui/dist/icons/edge.png +0 -0
- package/ui/dist/icons/extrude.png +0 -0
- package/ui/dist/icons/fillet.png +0 -0
- package/ui/dist/icons/fillet2d.png +0 -0
- package/ui/dist/icons/fuse.png +0 -0
- package/ui/dist/icons/hline.png +0 -0
- package/ui/dist/icons/hole.png +0 -0
- package/ui/dist/icons/line.png +0 -0
- package/ui/dist/icons/load.png +0 -0
- package/ui/dist/icons/mirror.png +0 -0
- package/ui/dist/icons/mirror2d.png +0 -0
- package/ui/dist/icons/move.png +0 -0
- package/ui/dist/icons/plane.png +0 -0
- package/ui/dist/icons/polygon.png +0 -0
- package/ui/dist/icons/rect.png +0 -0
- package/ui/dist/icons/revolve.png +0 -0
- package/ui/dist/icons/rotate.png +0 -0
- package/ui/dist/icons/rotate2d.png +0 -0
- package/ui/dist/icons/select.png +0 -0
- package/ui/dist/icons/shell.png +0 -0
- package/ui/dist/icons/sketch.png +0 -0
- package/ui/dist/icons/slot.png +0 -0
- package/ui/dist/icons/solid.png +0 -0
- package/ui/dist/icons/sphere.png +0 -0
- package/ui/dist/icons/subtract.png +0 -0
- package/ui/dist/icons/tarc.png +0 -0
- package/ui/dist/icons/tline.png +0 -0
- package/ui/dist/icons/translate.png +0 -0
- package/ui/dist/icons/vline.png +0 -0
- package/ui/dist/icons/wire.png +0 -0
- package/ui/dist/index.html +13 -0
- package/ui/dist/logo.png +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ISceneObject } from "./interfaces.js";
|
|
2
|
+
interface LoadFunction {
|
|
3
|
+
/**
|
|
4
|
+
* Loads a 3D model file (STEP, STL, etc.) by filename.
|
|
5
|
+
* @param fileName - The path to the model file
|
|
6
|
+
*/
|
|
7
|
+
(fileName: string): ISceneObject;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: LoadFunction;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { registerBuilder } from "../index.js";
|
|
2
|
+
import { LoadFile } from "../features/load.js";
|
|
3
|
+
function build(context) {
|
|
4
|
+
return function load() {
|
|
5
|
+
const obj = new LoadFile(arguments[0]);
|
|
6
|
+
context.addSceneObject(obj);
|
|
7
|
+
return obj;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ILoft, ISceneObject } from "./interfaces.js";
|
|
2
|
+
interface LoftFunction {
|
|
3
|
+
/**
|
|
4
|
+
* Creates a loft between two or more profiles.
|
|
5
|
+
* @param profiles - The profiles to loft between (minimum 2)
|
|
6
|
+
*/
|
|
7
|
+
(...profiles: ISceneObject[]): ILoft;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: LoftFunction;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { registerBuilder } from "../index.js";
|
|
2
|
+
import { Loft } from "../features/loft.js";
|
|
3
|
+
function build(context) {
|
|
4
|
+
return function loft(...args) {
|
|
5
|
+
let faces;
|
|
6
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
7
|
+
faces = args[0];
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
faces = args;
|
|
11
|
+
}
|
|
12
|
+
if (faces.length < 2) {
|
|
13
|
+
throw new Error("Loft requires at least two profiles.");
|
|
14
|
+
}
|
|
15
|
+
context.addSceneObjects(faces);
|
|
16
|
+
const result = new Loft(...faces);
|
|
17
|
+
context.addSceneObject(result);
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PlaneLike } from "../math/plane.js";
|
|
2
|
+
import { AxisLike } from "../math/axis.js";
|
|
3
|
+
import { ISceneObject } from "./interfaces.js";
|
|
4
|
+
interface MirrorFunction {
|
|
5
|
+
/**
|
|
6
|
+
* [2D] Mirror all sketch geometries across a given line.
|
|
7
|
+
* @param line The line to mirror across
|
|
8
|
+
*/
|
|
9
|
+
(line: ISceneObject): ISceneObject;
|
|
10
|
+
/**
|
|
11
|
+
* [2D] Mirror all sketch geometries across a given axis.
|
|
12
|
+
* @param axis The axis to mirror across
|
|
13
|
+
*/
|
|
14
|
+
(axis: AxisLike): ISceneObject;
|
|
15
|
+
/**
|
|
16
|
+
* [2D] Mirror given sketch geometries across a given line.
|
|
17
|
+
* @param line The line to mirror across
|
|
18
|
+
* @param geometries The geometries to mirror
|
|
19
|
+
*/
|
|
20
|
+
(line: ISceneObject, ...geometries: ISceneObject[]): ISceneObject;
|
|
21
|
+
/**
|
|
22
|
+
* [2D] Mirror given sketch geometries across a given axis.
|
|
23
|
+
* @param axis The axis to mirror across
|
|
24
|
+
* @param geometries The geometries to mirror
|
|
25
|
+
*/
|
|
26
|
+
(axis: AxisLike, ...geometries: ISceneObject[]): ISceneObject;
|
|
27
|
+
/**
|
|
28
|
+
* [3D] Mirror all scene shapes across a given plane.
|
|
29
|
+
* @param plane The plane to mirror across
|
|
30
|
+
*/
|
|
31
|
+
(plane: PlaneLike): ISceneObject;
|
|
32
|
+
/**
|
|
33
|
+
* [3D] Mirror given shapes across a given plane.
|
|
34
|
+
* @param plane The plane to mirror across
|
|
35
|
+
* @param objects The shapes to mirror
|
|
36
|
+
*/
|
|
37
|
+
(plane: PlaneLike, ...objects: ISceneObject[]): ISceneObject;
|
|
38
|
+
}
|
|
39
|
+
declare const _default: MirrorFunction;
|
|
40
|
+
export default _default;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { registerBuilder } from "../index.js";
|
|
2
|
+
import { normalizeAxis, normalizePlane } from "../helpers/normalize.js";
|
|
3
|
+
import { SceneObject } from "../common/scene-object.js";
|
|
4
|
+
import { MirrorShape } from "../features/mirror-shape.js";
|
|
5
|
+
import { PlaneObjectBase } from "../features/plane-renderable-base.js";
|
|
6
|
+
import { PlaneObject } from "../features/plane.js";
|
|
7
|
+
import { isAxisLike } from "../math/axis.js";
|
|
8
|
+
import { MirrorShape2D } from "../features/mirror-shape2d.js";
|
|
9
|
+
import { AxisObjectBase } from "../features/axis-renderable-base.js";
|
|
10
|
+
import { AxisObject } from "../features/axis.js";
|
|
11
|
+
import { AxisFromEdge } from "../features/axis-from-edge.js";
|
|
12
|
+
function build(context) {
|
|
13
|
+
return function mirror() {
|
|
14
|
+
if (arguments.length === 1) {
|
|
15
|
+
if (isAxisLike(arguments[0] || arguments[0] instanceof SceneObject)) {
|
|
16
|
+
let axis = null;
|
|
17
|
+
if (arguments[0] instanceof AxisObjectBase) {
|
|
18
|
+
axis = arguments[0];
|
|
19
|
+
}
|
|
20
|
+
else if (arguments[0] instanceof SceneObject) {
|
|
21
|
+
const line = arguments[0];
|
|
22
|
+
axis = new AxisFromEdge(line);
|
|
23
|
+
context.addSceneObject(axis);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const a = normalizeAxis(arguments[0]);
|
|
27
|
+
axis = new AxisObject(a);
|
|
28
|
+
context.addSceneObject(axis);
|
|
29
|
+
}
|
|
30
|
+
const mirror = new MirrorShape2D(axis);
|
|
31
|
+
context.addSceneObject(mirror);
|
|
32
|
+
return mirror;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const pln = arguments[0];
|
|
36
|
+
let planeObj;
|
|
37
|
+
if (!(pln instanceof PlaneObjectBase)) {
|
|
38
|
+
const normalizedPlane = normalizePlane(arguments[0]);
|
|
39
|
+
planeObj = new PlaneObject(normalizedPlane);
|
|
40
|
+
context.addSceneObject(planeObj);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
planeObj = pln;
|
|
44
|
+
;
|
|
45
|
+
}
|
|
46
|
+
const mirror = new MirrorShape(planeObj);
|
|
47
|
+
context.addSceneObject(mirror);
|
|
48
|
+
return mirror;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (arguments.length >= 2) {
|
|
52
|
+
const args = Array.from(arguments);
|
|
53
|
+
// 2D mirror with target objects: mirror(axis/line, geometries[])
|
|
54
|
+
if (isAxisLike(args[0]) || args[0] instanceof SceneObject) {
|
|
55
|
+
let axis = null;
|
|
56
|
+
if (args[0] instanceof AxisObjectBase) {
|
|
57
|
+
axis = args[0];
|
|
58
|
+
}
|
|
59
|
+
else if (args[0] instanceof SceneObject) {
|
|
60
|
+
const line = args[0];
|
|
61
|
+
axis = new AxisFromEdge(line);
|
|
62
|
+
context.addSceneObject(axis);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const a = normalizeAxis(args[0]);
|
|
66
|
+
axis = new AxisObject(a);
|
|
67
|
+
context.addSceneObject(axis);
|
|
68
|
+
}
|
|
69
|
+
const targetObjects = args.slice(1);
|
|
70
|
+
const mirror = new MirrorShape2D(axis, targetObjects);
|
|
71
|
+
if (!(args[0] instanceof AxisObjectBase) && !(args[0] instanceof SceneObject)) {
|
|
72
|
+
context.addSceneObject(axis);
|
|
73
|
+
}
|
|
74
|
+
context.addSceneObject(mirror);
|
|
75
|
+
return mirror;
|
|
76
|
+
}
|
|
77
|
+
// 3D shape mirror: mirror(plane, ...objects)
|
|
78
|
+
const targetObjects = args.slice(1);
|
|
79
|
+
let planeObj;
|
|
80
|
+
if (!(args[0] instanceof PlaneObjectBase)) {
|
|
81
|
+
const normalizedPlane = normalizePlane(args[0]);
|
|
82
|
+
planeObj = new PlaneObject(normalizedPlane);
|
|
83
|
+
context.addSceneObject(planeObj);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
planeObj = args[0];
|
|
87
|
+
}
|
|
88
|
+
const mirror = new MirrorShape(planeObj, targetObjects);
|
|
89
|
+
context.addSceneObject(mirror);
|
|
90
|
+
return mirror;
|
|
91
|
+
}
|
|
92
|
+
throw new Error("Invalid arguments for mirror function");
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { captureSourceLocation } from "../index.js";
|
|
2
|
+
import { getCurrentScene, getCurrentFile } from "../scene-manager.js";
|
|
3
|
+
import { Part } from "../features/part.js";
|
|
4
|
+
function part(name, callback) {
|
|
5
|
+
const handle = {
|
|
6
|
+
__fluidcad_part: true,
|
|
7
|
+
name,
|
|
8
|
+
_callback: callback,
|
|
9
|
+
};
|
|
10
|
+
const sourceLocation = captureSourceLocation();
|
|
11
|
+
const currentFile = getCurrentFile();
|
|
12
|
+
const isDirectEdit = sourceLocation
|
|
13
|
+
&& currentFile
|
|
14
|
+
&& sourceLocation.filePath.replace('virtual:live-render:', '') === currentFile;
|
|
15
|
+
if (isDirectEdit) {
|
|
16
|
+
const scene = getCurrentScene();
|
|
17
|
+
if (scene) {
|
|
18
|
+
const partObj = new Part(name);
|
|
19
|
+
if (sourceLocation) {
|
|
20
|
+
partObj.setSourceLocation(sourceLocation);
|
|
21
|
+
}
|
|
22
|
+
scene.startProgressiveContainer(partObj);
|
|
23
|
+
callback(undefined);
|
|
24
|
+
scene.endProgressiveContainer();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return handle;
|
|
28
|
+
}
|
|
29
|
+
export default part;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PlaneLike, PlaneTransformOptions } from "../math/plane.js";
|
|
2
|
+
import { IPlane, ISceneObject } from "./interfaces.js";
|
|
3
|
+
export type PlaneRenderableOptions = PlaneTransformOptions & {
|
|
4
|
+
sticky?: boolean;
|
|
5
|
+
};
|
|
6
|
+
interface PlaneFunction {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a plane from a standard plane or normal vector.
|
|
9
|
+
* @param plane - The standard plane or normal vector
|
|
10
|
+
*/
|
|
11
|
+
(plane: PlaneLike): IPlane;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a plane with transform options.
|
|
14
|
+
* @param plane - The standard plane or normal vector
|
|
15
|
+
* @param options - Transform options (offset, flip, sticky, etc.)
|
|
16
|
+
*/
|
|
17
|
+
(plane: PlaneLike, options: PlaneRenderableOptions): IPlane;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a plane with an offset.
|
|
20
|
+
* @param plane - The standard plane or normal vector
|
|
21
|
+
* @param offset - The offset distance
|
|
22
|
+
*/
|
|
23
|
+
(plane: PlaneLike, offset: number): IPlane;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a plane from a face selection.
|
|
26
|
+
* @param selection - The selected face to create a plane from
|
|
27
|
+
*/
|
|
28
|
+
(selection: ISceneObject): IPlane;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a plane from a face selection with transform options.
|
|
31
|
+
* @param selection - The selected face to create a plane from
|
|
32
|
+
* @param options - Transform options (offset, flip, sticky, etc.)
|
|
33
|
+
*/
|
|
34
|
+
(selection: ISceneObject, options: PlaneRenderableOptions): IPlane;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a plane from a face selection with an offset.
|
|
37
|
+
* @param selection - The selected face to create a plane from
|
|
38
|
+
* @param offset - The offset distance
|
|
39
|
+
*/
|
|
40
|
+
(selection: ISceneObject, offset: number): IPlane;
|
|
41
|
+
/**
|
|
42
|
+
* Transforms an existing plane with options.
|
|
43
|
+
* @param plane - The existing plane to transform
|
|
44
|
+
* @param options - Transform options (offset, flip, sticky, etc.)
|
|
45
|
+
*/
|
|
46
|
+
(plane: IPlane, options: PlaneRenderableOptions): IPlane;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a plane midway between two planes.
|
|
49
|
+
* @param p1 - The first plane
|
|
50
|
+
* @param p2 - The second plane
|
|
51
|
+
* @param options - Transform options (offset, flip, sticky, etc.)
|
|
52
|
+
*/
|
|
53
|
+
(p1: PlaneLike | IPlane, p2: PlaneLike | IPlane, options?: PlaneRenderableOptions): IPlane;
|
|
54
|
+
}
|
|
55
|
+
declare const _default: PlaneFunction;
|
|
56
|
+
export default _default;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { normalizePlane } from "../helpers/normalize.js";
|
|
2
|
+
import { registerBuilder } from "../index.js";
|
|
3
|
+
import { isPlaneLike } from "../math/plane.js";
|
|
4
|
+
import { PlaneObject } from "../features/plane.js";
|
|
5
|
+
import { PlaneObjectBase } from "../features/plane-renderable-base.js";
|
|
6
|
+
import { PlaneMiddleRenderable } from "../features/plane-mid.js";
|
|
7
|
+
import { SceneObject } from "../common/scene-object.js";
|
|
8
|
+
import { PlaneFromObject } from "../features/plane-from-object.js";
|
|
9
|
+
function build(context) {
|
|
10
|
+
return function plane() {
|
|
11
|
+
if (arguments.length === 1) {
|
|
12
|
+
if (arguments[0] instanceof SceneObject) {
|
|
13
|
+
context.addSceneObject(arguments[0]);
|
|
14
|
+
const pln = new PlaneFromObject(arguments[0]);
|
|
15
|
+
context.addSceneObject(pln);
|
|
16
|
+
return pln;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const axis = normalizePlane(arguments[0]);
|
|
20
|
+
const pln = new PlaneObject(axis);
|
|
21
|
+
context.addSceneObject(pln);
|
|
22
|
+
return pln;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (arguments.length === 2) {
|
|
26
|
+
if (typeof arguments[1] === 'number') {
|
|
27
|
+
const options = { offset: arguments[1] };
|
|
28
|
+
if (arguments[0] instanceof SceneObject) {
|
|
29
|
+
context.addSceneObject(arguments[0]);
|
|
30
|
+
const pln = new PlaneFromObject(arguments[0], options);
|
|
31
|
+
context.addSceneObject(pln);
|
|
32
|
+
return pln;
|
|
33
|
+
}
|
|
34
|
+
else if (isPlaneLike(arguments[0])) {
|
|
35
|
+
const axis = normalizePlane(arguments[0]);
|
|
36
|
+
const pln = new PlaneObject(axis, options);
|
|
37
|
+
context.addSceneObject(pln);
|
|
38
|
+
return pln;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if ((arguments[0] instanceof PlaneObjectBase || isPlaneLike(arguments[0])) &&
|
|
42
|
+
(arguments[1] instanceof PlaneObjectBase || isPlaneLike(arguments[1]))) {
|
|
43
|
+
// axis between two others
|
|
44
|
+
let a1;
|
|
45
|
+
let a2;
|
|
46
|
+
if (arguments[0] instanceof PlaneObjectBase) {
|
|
47
|
+
a1 = arguments[0];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const axis = normalizePlane(arguments[0]);
|
|
51
|
+
a1 = new PlaneObject(axis);
|
|
52
|
+
}
|
|
53
|
+
if (arguments[1] instanceof PlaneObjectBase) {
|
|
54
|
+
a2 = arguments[1];
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const axis = normalizePlane(arguments[1]);
|
|
58
|
+
a2 = new PlaneObject(axis);
|
|
59
|
+
}
|
|
60
|
+
context.addSceneObject(a1);
|
|
61
|
+
context.addSceneObject(a2);
|
|
62
|
+
const pln = new PlaneMiddleRenderable(a1, a2);
|
|
63
|
+
context.addSceneObject(pln);
|
|
64
|
+
return pln;
|
|
65
|
+
}
|
|
66
|
+
else if (arguments[0] instanceof SceneObject) {
|
|
67
|
+
context.addSceneObject(arguments[0]);
|
|
68
|
+
const pln = new PlaneFromObject(arguments[0], arguments[1]);
|
|
69
|
+
context.addSceneObject(pln);
|
|
70
|
+
return pln;
|
|
71
|
+
}
|
|
72
|
+
else if (isPlaneLike(arguments[0])) {
|
|
73
|
+
const axis1 = normalizePlane(arguments[0]);
|
|
74
|
+
const options = arguments[1];
|
|
75
|
+
const pln = new PlaneObject(axis1, options);
|
|
76
|
+
context.addSceneObject(pln);
|
|
77
|
+
return pln;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (arguments.length === 3) {
|
|
81
|
+
if ((arguments[0] instanceof PlaneObjectBase || isPlaneLike((arguments[0]))) &&
|
|
82
|
+
(arguments[1] instanceof PlaneObjectBase || isPlaneLike((arguments[1])))) {
|
|
83
|
+
// axis between two others with options
|
|
84
|
+
let a1;
|
|
85
|
+
let a2;
|
|
86
|
+
if (arguments[0] instanceof PlaneObjectBase) {
|
|
87
|
+
a1 = arguments[0];
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const axis = normalizePlane(arguments[0]);
|
|
91
|
+
a1 = new PlaneObject(axis);
|
|
92
|
+
}
|
|
93
|
+
if (arguments[1] instanceof PlaneObjectBase) {
|
|
94
|
+
a2 = arguments[1];
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const axis = normalizePlane(arguments[1]);
|
|
98
|
+
a2 = new PlaneObject(axis);
|
|
99
|
+
}
|
|
100
|
+
const options = arguments[2];
|
|
101
|
+
context.addSceneObject(a1);
|
|
102
|
+
context.addSceneObject(a2);
|
|
103
|
+
const pln = new PlaneMiddleRenderable(a1, a2, options);
|
|
104
|
+
context.addSceneObject(pln);
|
|
105
|
+
return pln;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
throw new Error("Invalid arguments for plane function");
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Point2DLike } from "../math/point.js";
|
|
2
|
+
import { ISceneObject } from "./interfaces.js";
|
|
3
|
+
interface RegionFunction {
|
|
4
|
+
/** Activates interactive region selection on the last sketch. */
|
|
5
|
+
(): ISceneObject;
|
|
6
|
+
/**
|
|
7
|
+
* Selects specific regions from the last sketch.
|
|
8
|
+
* @param points - 2D points inside the regions to select
|
|
9
|
+
*/
|
|
10
|
+
(...points: Point2DLike[]): ISceneObject;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: RegionFunction;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { normalizePoint2D } from "../helpers/normalize.js";
|
|
2
|
+
import { registerBuilder } from "../index.js";
|
|
3
|
+
import { Region2D } from "../features/region2d.js";
|
|
4
|
+
function build(context) {
|
|
5
|
+
return function region(...args) {
|
|
6
|
+
const extrudable = context.getLastExtrudable();
|
|
7
|
+
if (!extrudable) {
|
|
8
|
+
throw new Error("Region requires a preceding sketch or extrudable");
|
|
9
|
+
}
|
|
10
|
+
const region2d = new Region2D(extrudable);
|
|
11
|
+
if (args.length > 0) {
|
|
12
|
+
region2d.points(...args.map(p => normalizePoint2D(p)));
|
|
13
|
+
}
|
|
14
|
+
context.addSceneObject(region2d);
|
|
15
|
+
return region2d;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ISceneObject } from "./interfaces.js";
|
|
2
|
+
interface RemoveFunction {
|
|
3
|
+
/**
|
|
4
|
+
* Removes the given objects from the scene.
|
|
5
|
+
* @param objects - The objects to remove
|
|
6
|
+
*/
|
|
7
|
+
(...objects: ISceneObject[]): ISceneObject;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: RemoveFunction;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { registerBuilder } from "../index.js";
|
|
2
|
+
import { Remove } from "../features/remove.js";
|
|
3
|
+
function build(context) {
|
|
4
|
+
return function remove(...args) {
|
|
5
|
+
const remove = new Remove(args);
|
|
6
|
+
context.addSceneObject(remove);
|
|
7
|
+
return remove;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AxisLike } from "../math/axis.js";
|
|
2
|
+
import { LinearRepeatOptions } from "../features/repeat-linear.js";
|
|
3
|
+
import { CircularRepeatOptions } from "../features/repeat-circular.js";
|
|
4
|
+
import { ISceneObject } from "./interfaces.js";
|
|
5
|
+
import { PlaneLike } from "../math/plane.js";
|
|
6
|
+
export type RepeatType = 'linear' | 'circular' | 'mirror';
|
|
7
|
+
interface RepeatFunction {
|
|
8
|
+
/**
|
|
9
|
+
* Creates linear repeated instances along an axis.
|
|
10
|
+
* @param type - Must be `'linear'`
|
|
11
|
+
* @param axis - The axis to repeat along
|
|
12
|
+
* @param options - Repeat count, spacing, etc.
|
|
13
|
+
* @param objects - The objects to repeat (defaults to last object)
|
|
14
|
+
*/
|
|
15
|
+
(type: 'linear', axis: AxisLike, options: LinearRepeatOptions, ...objects: ISceneObject[]): ISceneObject;
|
|
16
|
+
/**
|
|
17
|
+
* Creates linear repeated instances along multiple axes.
|
|
18
|
+
* @param type - Must be `'linear'`
|
|
19
|
+
* @param axis - The axes to repeat along
|
|
20
|
+
* @param options - Repeat count, spacing, etc.
|
|
21
|
+
* @param objects - The objects to repeat (defaults to last object)
|
|
22
|
+
*/
|
|
23
|
+
(type: 'linear', axis: AxisLike[], options: LinearRepeatOptions, ...objects: ISceneObject[]): ISceneObject;
|
|
24
|
+
/**
|
|
25
|
+
* Creates circular repeated instances around an axis.
|
|
26
|
+
* @param type - Must be `'circular'`
|
|
27
|
+
* @param axis - The axis to repeat around
|
|
28
|
+
* @param options - Repeat count, angle, etc.
|
|
29
|
+
* @param objects - The objects to repeat (defaults to last object)
|
|
30
|
+
*/
|
|
31
|
+
(type: 'circular', axis: AxisLike, options: CircularRepeatOptions, ...objects: ISceneObject[]): ISceneObject;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a mirrored instance of objects across a plane.
|
|
34
|
+
* @param type - Must be `'mirror'`
|
|
35
|
+
* @param plane - The plane to mirror across
|
|
36
|
+
* @param objects - The objects to mirror (defaults to last object)
|
|
37
|
+
*/
|
|
38
|
+
(type: 'mirror', plane: PlaneLike, ...objects: ISceneObject[]): ISceneObject;
|
|
39
|
+
}
|
|
40
|
+
declare const _default: RepeatFunction;
|
|
41
|
+
export default _default;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { registerBuilder } from "../index.js";
|
|
2
|
+
import { normalizeAxis, normalizePlane } from "../helpers/normalize.js";
|
|
3
|
+
import { Matrix4 } from "../math/matrix4.js";
|
|
4
|
+
import { rad } from "../helpers/math-helpers.js";
|
|
5
|
+
import { RepeatLinear } from "../features/repeat-linear.js";
|
|
6
|
+
import { RepeatCircular } from "../features/repeat-circular.js";
|
|
7
|
+
import { cloneWithTransform } from "../helpers/clone-transform.js";
|
|
8
|
+
import { PlaneObjectBase } from "../features/plane-renderable-base.js";
|
|
9
|
+
import { PlaneObject } from "../features/plane.js";
|
|
10
|
+
import { MirrorFeature } from "../features/mirror-feature.js";
|
|
11
|
+
function build(context) {
|
|
12
|
+
return (function repeat() {
|
|
13
|
+
const args = Array.from(arguments);
|
|
14
|
+
if (args.length < 2) {
|
|
15
|
+
throw new Error("Invalid arguments for repeat function: expected at least (type, ...)");
|
|
16
|
+
}
|
|
17
|
+
const sketch = context.getActiveSketch();
|
|
18
|
+
if (sketch) {
|
|
19
|
+
throw new Error("Cannot call repeat() inside a sketch. Use copy() instead.");
|
|
20
|
+
}
|
|
21
|
+
const type = args[0];
|
|
22
|
+
if (type === 'linear' || type === 'circular') {
|
|
23
|
+
const axisArg = args[1];
|
|
24
|
+
const axes = Array.isArray(axisArg)
|
|
25
|
+
? axisArg.map(a => normalizeAxis(a))
|
|
26
|
+
: [normalizeAxis(axisArg)];
|
|
27
|
+
const options = args[2];
|
|
28
|
+
const restObjects = args.slice(3);
|
|
29
|
+
const objects = restObjects.length > 0
|
|
30
|
+
? restObjects
|
|
31
|
+
: [context.getSceneObjects().at(-1)];
|
|
32
|
+
if (type === 'linear') {
|
|
33
|
+
const counts = Array.isArray(options.count) ? options.count : [options.count];
|
|
34
|
+
const offsets = options.offset != null
|
|
35
|
+
? (Array.isArray(options.offset) ? options.offset : [options.offset])
|
|
36
|
+
: null;
|
|
37
|
+
const lengths = 'length' in options && options.length != null
|
|
38
|
+
? (Array.isArray(options.length) ? options.length : [options.length])
|
|
39
|
+
: null;
|
|
40
|
+
const repeat = new RepeatLinear(axes, options, objects);
|
|
41
|
+
const transformedObjects = [];
|
|
42
|
+
const axisOffsets = axes.map((axis, i) => {
|
|
43
|
+
const count = counts[i] ?? counts[0];
|
|
44
|
+
const offset = offsets != null
|
|
45
|
+
? (offsets[i] ?? offsets[0])
|
|
46
|
+
: (lengths[i] ?? lengths[0]) / (count - 1);
|
|
47
|
+
return { axis, count, offset };
|
|
48
|
+
});
|
|
49
|
+
// Generate all index combinations across axes
|
|
50
|
+
const indexCombinations = [[]];
|
|
51
|
+
for (const { count } of axisOffsets) {
|
|
52
|
+
const newCombinations = [];
|
|
53
|
+
for (const combo of indexCombinations) {
|
|
54
|
+
for (let i = 0; i < count; i++) {
|
|
55
|
+
newCombinations.push([...combo, i]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
indexCombinations.length = 0;
|
|
59
|
+
indexCombinations.push(...newCombinations);
|
|
60
|
+
}
|
|
61
|
+
for (const indices of indexCombinations) {
|
|
62
|
+
// Skip the origin instance (all zeros)
|
|
63
|
+
if (indices.every(i => i === 0)) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// Skip if in the skip list
|
|
67
|
+
if (options.skip?.some(s => s.length === indices.length && s.every((v, i) => v === indices[i]))) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// Compose translation from all axes
|
|
71
|
+
let dx = 0, dy = 0, dz = 0;
|
|
72
|
+
for (let a = 0; a < axisOffsets.length; a++) {
|
|
73
|
+
const { axis, offset } = axisOffsets[a];
|
|
74
|
+
const idx = options.centered
|
|
75
|
+
? indices[a] - Math.floor(axisOffsets[a].count / 2)
|
|
76
|
+
: indices[a];
|
|
77
|
+
dx += axis.direction.x * offset * idx;
|
|
78
|
+
dy += axis.direction.y * offset * idx;
|
|
79
|
+
dz += axis.direction.z * offset * idx;
|
|
80
|
+
}
|
|
81
|
+
const transform = Matrix4.fromTranslation(dx, dy, dz);
|
|
82
|
+
const cloned = cloneWithTransform(objects, transform, repeat);
|
|
83
|
+
transformedObjects.push(...cloned);
|
|
84
|
+
}
|
|
85
|
+
context.addSceneObject(repeat);
|
|
86
|
+
context.addSceneObjects(transformedObjects);
|
|
87
|
+
return repeat;
|
|
88
|
+
}
|
|
89
|
+
if (type === 'circular') {
|
|
90
|
+
const axis = axes[0];
|
|
91
|
+
const circularOptions = options;
|
|
92
|
+
const { count, centered, skip } = circularOptions;
|
|
93
|
+
const repeat = new RepeatCircular(axis, circularOptions, objects);
|
|
94
|
+
let offset;
|
|
95
|
+
if ('offset' in circularOptions && circularOptions.offset !== undefined) {
|
|
96
|
+
offset = circularOptions.offset;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
offset = circularOptions.angle / (count - 1);
|
|
100
|
+
}
|
|
101
|
+
const startOffset = centered ? -(count * offset) / 2 : 0;
|
|
102
|
+
const transformedObjects = [];
|
|
103
|
+
for (let i = 1; i < count; i++) {
|
|
104
|
+
if (skip?.includes(i)) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const angle = startOffset + offset * i;
|
|
108
|
+
const matrix = Matrix4.fromRotationAroundAxis(axis.origin, axis.direction, rad(angle));
|
|
109
|
+
const cloned = cloneWithTransform(objects, matrix, repeat);
|
|
110
|
+
transformedObjects.push(...cloned);
|
|
111
|
+
}
|
|
112
|
+
context.addSceneObject(repeat);
|
|
113
|
+
context.addSceneObjects(transformedObjects);
|
|
114
|
+
return repeat;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (type === 'mirror') {
|
|
118
|
+
const planeArg = args[1];
|
|
119
|
+
const restObjects = args.slice(2);
|
|
120
|
+
const targetObjects = restObjects.length > 0
|
|
121
|
+
? restObjects
|
|
122
|
+
: [context.getSceneObjects().at(-1)];
|
|
123
|
+
let planeObj;
|
|
124
|
+
let normalizedPlane;
|
|
125
|
+
if (planeArg instanceof PlaneObjectBase) {
|
|
126
|
+
planeObj = planeArg;
|
|
127
|
+
planeObj.build();
|
|
128
|
+
normalizedPlane = planeObj.getPlane();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
normalizedPlane = normalizePlane(planeArg);
|
|
132
|
+
planeObj = new PlaneObject(normalizedPlane);
|
|
133
|
+
planeObj.build();
|
|
134
|
+
context.addSceneObject(planeObj);
|
|
135
|
+
}
|
|
136
|
+
const matrix = Matrix4.mirrorPlane(normalizedPlane.normal, normalizedPlane.origin);
|
|
137
|
+
const mirrorFeature = new MirrorFeature(planeObj, matrix);
|
|
138
|
+
const mirrorTree = cloneWithTransform(targetObjects, matrix, mirrorFeature);
|
|
139
|
+
context.addSceneObject(mirrorFeature);
|
|
140
|
+
context.addSceneObjects(mirrorTree);
|
|
141
|
+
return mirrorFeature;
|
|
142
|
+
}
|
|
143
|
+
throw new Error(`Invalid repeat type: ${type}`);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AxisLike } from "../math/axis.js";
|
|
2
|
+
import { IRevolve, ISceneObject } from "./interfaces.js";
|
|
3
|
+
interface RevolveFunction {
|
|
4
|
+
/**
|
|
5
|
+
* Revolves the last sketch 360 degrees around an axis.
|
|
6
|
+
* @param axisLike - The axis to revolve around
|
|
7
|
+
* @param target - The sketch to revolve
|
|
8
|
+
*/
|
|
9
|
+
(axisLike: AxisLike, target?: ISceneObject): IRevolve;
|
|
10
|
+
/**
|
|
11
|
+
* Revolves the last sketch by a given angle around an axis.
|
|
12
|
+
* @param axisLike - The axis to revolve around
|
|
13
|
+
* @param angle - The sweep angle in degrees
|
|
14
|
+
* @param target - The sketch to revolve
|
|
15
|
+
*/
|
|
16
|
+
(axisLike: AxisLike, angle: number, target?: ISceneObject): IRevolve;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: RevolveFunction;
|
|
19
|
+
export default _default;
|