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,74 @@
|
|
|
1
|
+
import { isPoint2DLike } from "../../math/point.js";
|
|
2
|
+
import { Move } from "../../features/2d/move.js";
|
|
3
|
+
import { Rect } from "../../features/2d/rect.js";
|
|
4
|
+
import { normalizePoint2D } from "../../helpers/normalize.js";
|
|
5
|
+
import { registerBuilder } from "../../index.js";
|
|
6
|
+
import { isPlaneLike } from "../../math/plane.js";
|
|
7
|
+
import { SceneObject } from "../../common/scene-object.js";
|
|
8
|
+
import { resolvePlane } from "../../helpers/resolve.js";
|
|
9
|
+
function build(context) {
|
|
10
|
+
return function cRect() {
|
|
11
|
+
let width;
|
|
12
|
+
let height;
|
|
13
|
+
let options;
|
|
14
|
+
let start;
|
|
15
|
+
let rect;
|
|
16
|
+
let planeObj = null;
|
|
17
|
+
let argCount = arguments.length;
|
|
18
|
+
// Detect plane as last argument
|
|
19
|
+
if (argCount > 0) {
|
|
20
|
+
const lastArg = arguments[argCount - 1];
|
|
21
|
+
if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
|
|
22
|
+
planeObj = resolvePlane(lastArg, context);
|
|
23
|
+
argCount--;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (argCount === 1) {
|
|
27
|
+
width = arguments[0];
|
|
28
|
+
height = width;
|
|
29
|
+
rect = new Rect(width, height, true, options, planeObj);
|
|
30
|
+
context.addSceneObject(rect);
|
|
31
|
+
}
|
|
32
|
+
else if (argCount === 2) {
|
|
33
|
+
if (typeof arguments[0] === 'number') {
|
|
34
|
+
width = arguments[0];
|
|
35
|
+
height = arguments[1];
|
|
36
|
+
rect = new Rect(width, height, true, options, planeObj);
|
|
37
|
+
context.addSceneObject(rect);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
start = normalizePoint2D(arguments[0]);
|
|
41
|
+
width = arguments[1];
|
|
42
|
+
height = width;
|
|
43
|
+
rect = new Rect(width, height, true, options, planeObj);
|
|
44
|
+
context.addSceneObjects([new Move(start), rect]);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (argCount === 3) {
|
|
48
|
+
if (typeof arguments[0] === 'number') {
|
|
49
|
+
width = arguments[0];
|
|
50
|
+
height = arguments[1];
|
|
51
|
+
options = arguments[2];
|
|
52
|
+
rect = new Rect(width, height, true, options, planeObj);
|
|
53
|
+
context.addSceneObject(rect);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
start = normalizePoint2D(arguments[0]);
|
|
57
|
+
width = arguments[1];
|
|
58
|
+
height = arguments[2];
|
|
59
|
+
rect = new Rect(width, height, true, options, planeObj);
|
|
60
|
+
context.addSceneObjects([new Move(start), rect]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (argCount === 4) {
|
|
64
|
+
start = normalizePoint2D(arguments[0]);
|
|
65
|
+
width = arguments[1];
|
|
66
|
+
height = arguments[2];
|
|
67
|
+
options = arguments[3];
|
|
68
|
+
rect = new Rect(width, height, true, options, planeObj);
|
|
69
|
+
context.addSceneObjects([new Move(start), rect]);
|
|
70
|
+
}
|
|
71
|
+
return rect;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { FaceOps } from "../../oc/face-ops.js";
|
|
2
|
+
export class FaceDriller {
|
|
3
|
+
faceInfos;
|
|
4
|
+
constructor(faceInfos) {
|
|
5
|
+
this.faceInfos = faceInfos;
|
|
6
|
+
}
|
|
7
|
+
drillHoles() {
|
|
8
|
+
const foundHoles = [];
|
|
9
|
+
let drilledFaces = [];
|
|
10
|
+
for (const faceInfo of this.faceInfos) {
|
|
11
|
+
if (foundHoles.includes(faceInfo)) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const faceHoles = this.getFaceHoles(faceInfo, foundHoles);
|
|
15
|
+
console.log("Found holes for face:", faceHoles.length);
|
|
16
|
+
if (faceHoles.length === 0) {
|
|
17
|
+
drilledFaces.push(faceInfo);
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
faceInfo.holes = faceHoles;
|
|
21
|
+
drilledFaces.push(faceInfo);
|
|
22
|
+
for (const hole of faceHoles) {
|
|
23
|
+
foundHoles.push(hole);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
console.log("Found holes:", foundHoles.length);
|
|
27
|
+
console.log("Drilled faces before removing holes:", drilledFaces.length);
|
|
28
|
+
// remove face infos that are in foundHoles
|
|
29
|
+
drilledFaces = drilledFaces.filter(info => !foundHoles.includes(info));
|
|
30
|
+
console.log("Drilled faces:", drilledFaces.length);
|
|
31
|
+
for (const info of drilledFaces) {
|
|
32
|
+
const holes = info.holes;
|
|
33
|
+
if (!holes?.length) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const holeWires = [];
|
|
37
|
+
for (const hole of holes) {
|
|
38
|
+
hole.wire.getShape().Reverse();
|
|
39
|
+
holeWires.push(hole.wire);
|
|
40
|
+
}
|
|
41
|
+
const newFace = FaceOps.makeFaceWithHoles(info.wire, holeWires);
|
|
42
|
+
info.face = newFace;
|
|
43
|
+
for (const hole of holes) {
|
|
44
|
+
hole.wire.dispose();
|
|
45
|
+
hole.face.dispose();
|
|
46
|
+
}
|
|
47
|
+
info.holes = [];
|
|
48
|
+
}
|
|
49
|
+
return drilledFaces;
|
|
50
|
+
}
|
|
51
|
+
wireIsInsideFace(inner, outer) {
|
|
52
|
+
const firstPoint = inner.wire.getFirstVertex().toPoint();
|
|
53
|
+
if (!firstPoint) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return FaceOps.isPointInsideFace(firstPoint, outer.face);
|
|
57
|
+
}
|
|
58
|
+
getFaceHoles(faceInfo, exclude) {
|
|
59
|
+
const holes = [];
|
|
60
|
+
for (let fInfo of this.faceInfos) {
|
|
61
|
+
if (fInfo === faceInfo || exclude.includes(faceInfo)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (this.wireIsInsideFace(fInfo, faceInfo)) {
|
|
65
|
+
holes.push(fInfo);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return holes;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Wire } from "../../common/wire.js";
|
|
2
|
+
import { Plane } from "../../math/plane.js";
|
|
3
|
+
import { Face } from "../../common/face.js";
|
|
4
|
+
import { Edge } from "../../common/edge.js";
|
|
5
|
+
export declare class FaceMaker {
|
|
6
|
+
static getFaces(shapes: Array<Wire | Edge>, plane: Plane): Face[];
|
|
7
|
+
static unifyWires(shapes: (Wire | Edge)[]): Wire[];
|
|
8
|
+
private static createFacesFromWires;
|
|
9
|
+
private static fuseIntersectingFaces;
|
|
10
|
+
private static boundingBoxesIntersect;
|
|
11
|
+
private static getFaceInfos;
|
|
12
|
+
private static getWiresFromFaces;
|
|
13
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { FaceDriller } from "./face-driller.js";
|
|
2
|
+
import { Wire } from "../../common/wire.js";
|
|
3
|
+
import { FaceOps } from "../../oc/face-ops.js";
|
|
4
|
+
import { Explorer } from "../../oc/explorer.js";
|
|
5
|
+
import { ShapeOps } from "../../oc/shape-ops.js";
|
|
6
|
+
import { Edge } from "../../common/edge.js";
|
|
7
|
+
import { WireOps } from "../../oc/wire-ops.js";
|
|
8
|
+
export class FaceMaker {
|
|
9
|
+
static getFaces(shapes, plane) {
|
|
10
|
+
const wires = this.unifyWires(shapes);
|
|
11
|
+
let faces = this.createFacesFromWires(wires, plane);
|
|
12
|
+
console.log("====== Faces before fuse:", faces.length);
|
|
13
|
+
faces = this.fuseIntersectingFaces(faces);
|
|
14
|
+
console.log("====== Faces after fuse:", faces.length);
|
|
15
|
+
const newWires = this.getWiresFromFaces(faces);
|
|
16
|
+
let faceInfo = this.getFaceInfos(faces, newWires);
|
|
17
|
+
const faceDriller = new FaceDriller(faceInfo);
|
|
18
|
+
faceInfo = faceDriller.drillHoles();
|
|
19
|
+
console.log("====== Faces after drilling holes:", faceInfo.length);
|
|
20
|
+
return faceInfo.map(info => info.face);
|
|
21
|
+
}
|
|
22
|
+
static unifyWires(shapes) {
|
|
23
|
+
const wires = [];
|
|
24
|
+
for (let shape of shapes) {
|
|
25
|
+
if (shape instanceof Wire) {
|
|
26
|
+
wires.push(shape);
|
|
27
|
+
}
|
|
28
|
+
else if (shape instanceof Edge) {
|
|
29
|
+
const wire = WireOps.makeWireFromEdges([shape]);
|
|
30
|
+
wires.push(wire);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return wires;
|
|
34
|
+
}
|
|
35
|
+
static createFacesFromWires(wires, plane) {
|
|
36
|
+
if (wires.length === 0)
|
|
37
|
+
return [];
|
|
38
|
+
console.log("Creating faces from wires:", wires.length);
|
|
39
|
+
const faces = [];
|
|
40
|
+
for (let wire of wires) {
|
|
41
|
+
const face = FaceOps.makeFaceOnPlaneWrapped(wire, plane);
|
|
42
|
+
const fixedFace = FaceOps.fixFaceOrientation(face);
|
|
43
|
+
faces.push(fixedFace);
|
|
44
|
+
}
|
|
45
|
+
return faces;
|
|
46
|
+
}
|
|
47
|
+
static fuseIntersectingFaces(faces) {
|
|
48
|
+
if (faces.length === 0)
|
|
49
|
+
return [];
|
|
50
|
+
if (faces.length === 1)
|
|
51
|
+
return faces;
|
|
52
|
+
// Pre-compute bounding boxes for all faces
|
|
53
|
+
const faceBoxes = faces.map((face, index) => ({
|
|
54
|
+
face,
|
|
55
|
+
index,
|
|
56
|
+
bbox: ShapeOps.getBoundingBox(face)
|
|
57
|
+
}));
|
|
58
|
+
const result = [];
|
|
59
|
+
const processedFaces = new Set();
|
|
60
|
+
for (let i = 0; i < faces.length; i++) {
|
|
61
|
+
const face1 = faces[i];
|
|
62
|
+
if (processedFaces.has(face1)) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
let fusedFace = face1;
|
|
66
|
+
const facesToFuse = [face1];
|
|
67
|
+
let bbox1 = faceBoxes[i].bbox;
|
|
68
|
+
// Find all faces that intersect with face1 using bounding box pre-filtering
|
|
69
|
+
for (let j = i + 1; j < faces.length; j++) {
|
|
70
|
+
const face2 = faces[j];
|
|
71
|
+
if (processedFaces.has(face2)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const bbox2 = faceBoxes[j].bbox;
|
|
75
|
+
// Quick bounding box intersection test before expensive geometric operations
|
|
76
|
+
if (!this.boundingBoxesIntersect(bbox1, bbox2)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const newFusedFace = FaceOps.fuseFacesAndUnify(fusedFace, face2);
|
|
80
|
+
if (newFusedFace) {
|
|
81
|
+
fusedFace = newFusedFace;
|
|
82
|
+
bbox1 = ShapeOps.getBoundingBox(fusedFace);
|
|
83
|
+
facesToFuse.push(face2);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Add the final fused face to results
|
|
87
|
+
result.push(fusedFace);
|
|
88
|
+
// Mark all processed faces
|
|
89
|
+
facesToFuse.forEach(face => processedFaces.add(face));
|
|
90
|
+
}
|
|
91
|
+
console.log("Fused faces count:", result.length);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
static boundingBoxesIntersect(bbox1, bbox2) {
|
|
95
|
+
return !(bbox1.maxX < bbox2.minX || bbox2.maxX < bbox1.minX ||
|
|
96
|
+
bbox1.maxY < bbox2.minY || bbox2.maxY < bbox1.minY);
|
|
97
|
+
}
|
|
98
|
+
static getFaceInfos(faces, facesWires) {
|
|
99
|
+
const faceInfos = faces.map((face, index) => {
|
|
100
|
+
const bbox = ShapeOps.getBoundingBox(face);
|
|
101
|
+
const diagonal = Math.sqrt(Math.pow(bbox.maxX - bbox.minX, 2) + Math.pow(bbox.maxY - bbox.minY, 2));
|
|
102
|
+
return { face, wire: facesWires[index], bbox, diagonal };
|
|
103
|
+
});
|
|
104
|
+
// Sort by diagonal size (largest first for better hole containment logic)
|
|
105
|
+
faceInfos.sort((a, b) => b.diagonal - a.diagonal);
|
|
106
|
+
return faceInfos;
|
|
107
|
+
}
|
|
108
|
+
static getWiresFromFaces(faces) {
|
|
109
|
+
const wires = [];
|
|
110
|
+
for (let face of faces) {
|
|
111
|
+
const faceWires = Explorer.findWiresWrapped(face);
|
|
112
|
+
console.log("Found wires in face:", faceWires.length);
|
|
113
|
+
for (const wire of faceWires) {
|
|
114
|
+
wires.push(wire);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return wires;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Face } from "../../common/face.js";
|
|
2
|
+
import { Explorer } from "../../oc/explorer.js";
|
|
3
|
+
export class FaceMaker2 {
|
|
4
|
+
static getFaces(shapes, plane, drill = true) {
|
|
5
|
+
const cellsBuilder = new oc.BOPAlgo_CellsBuilder();
|
|
6
|
+
const argsList = new oc.TopTools_ListOfShape();
|
|
7
|
+
for (const face of sketchShapes) {
|
|
8
|
+
argsList.Append(face.getShape());
|
|
9
|
+
}
|
|
10
|
+
cellsBuilder.SetArguments(argsList);
|
|
11
|
+
cellsBuilder.SetNonDestructive(true);
|
|
12
|
+
const progress = new oc.Message_ProgressRange();
|
|
13
|
+
cellsBuilder.Perform(progress);
|
|
14
|
+
if (cellsBuilder.HasErrors()) {
|
|
15
|
+
console.error('CellsBuilder: Perform() reported errors');
|
|
16
|
+
cellsBuilder.delete();
|
|
17
|
+
argsList.delete();
|
|
18
|
+
progress.delete();
|
|
19
|
+
throw new Error('Failed to partition sketch faces for pick mode');
|
|
20
|
+
// cells = sketchFaces;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
cellsBuilder.AddAllToResult(0, false);
|
|
24
|
+
// cellsBuilder.MakeContainers();
|
|
25
|
+
// cellsBuilder.Perform(new oc.Message_ProgressRange());
|
|
26
|
+
const allParts = cellsBuilder.GetAllParts();
|
|
27
|
+
console.log('CellsBuilder: GetAllParts count:', allParts.NbChildren());
|
|
28
|
+
const [gpPln, dispose] = Convert.toGpPln(plane);
|
|
29
|
+
const planeFace = new oc.BRepBuilderAPI_MakeFace(gpPln, -10000, 10000, -10000, 10000).Face();
|
|
30
|
+
// 3. Split the face using the edges as tools
|
|
31
|
+
const splitter = new oc.BRepAlgoAPI_Splitter();
|
|
32
|
+
const objects = new oc.TopTools_ListOfShape();
|
|
33
|
+
objects.Append(planeFace);
|
|
34
|
+
splitter.SetArguments(objects);
|
|
35
|
+
// Add each split edge as a tool
|
|
36
|
+
const tools = Explorer.findShapes(allParts, oc.TopAbs_ShapeEnum.TopAbs_EDGE).map(e => oc.TopoDS.Edge(e));
|
|
37
|
+
const toolsList = new oc.TopTools_ListOfShape();
|
|
38
|
+
for (const t of tools) {
|
|
39
|
+
toolsList.Append(t);
|
|
40
|
+
}
|
|
41
|
+
splitter.SetTools(toolsList);
|
|
42
|
+
splitter.SetNonDestructive(true);
|
|
43
|
+
splitter.SetCheckInverted(true);
|
|
44
|
+
splitter.Build(new oc.Message_ProgressRange());
|
|
45
|
+
splitter.SimplifyResult(false, false, oc.Precision.Angular());
|
|
46
|
+
const result = splitter.Shape();
|
|
47
|
+
const areas = Explorer.findShapes(result, oc.TopAbs_ShapeEnum.TopAbs_FACE);
|
|
48
|
+
cells = areas.map(f => {
|
|
49
|
+
console.log('Converting cell face from OC shape', Explorer.getShapeType(f));
|
|
50
|
+
return Face.fromTopoDSFace(oc.TopoDS.Face(f));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Point2DLike } from "../../math/point.js";
|
|
2
|
+
import { PlaneLike } from "../../math/plane.js";
|
|
3
|
+
import { IGeometry, ISceneObject } from "../interfaces.js";
|
|
4
|
+
interface HLineFunction {
|
|
5
|
+
/**
|
|
6
|
+
* Draws a horizontal line of the given distance.
|
|
7
|
+
* @param distance - The line length
|
|
8
|
+
* @param centered - Whether to center the line on the current position
|
|
9
|
+
*/
|
|
10
|
+
(distance: number, centered?: boolean): IGeometry;
|
|
11
|
+
/**
|
|
12
|
+
* Draws a horizontal line from a start point.
|
|
13
|
+
* @param start - The start point
|
|
14
|
+
* @param distance - The line length
|
|
15
|
+
* @param centered - Whether to center the line on the start point
|
|
16
|
+
*/
|
|
17
|
+
(start: Point2DLike, distance: number, centered?: boolean): IGeometry;
|
|
18
|
+
/**
|
|
19
|
+
* Draws a horizontal line on a specific plane.
|
|
20
|
+
* @param distance - The line length
|
|
21
|
+
* @param targetPlane - The plane to draw on
|
|
22
|
+
*/
|
|
23
|
+
(distance: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
|
|
24
|
+
/**
|
|
25
|
+
* Draws a horizontal line with centering on a specific plane.
|
|
26
|
+
* @param distance - The line length
|
|
27
|
+
* @param centered - Whether to center the line on the current position
|
|
28
|
+
* @param targetPlane - The plane to draw on
|
|
29
|
+
*/
|
|
30
|
+
(distance: number, centered: boolean, targetPlane: PlaneLike | ISceneObject): IGeometry;
|
|
31
|
+
}
|
|
32
|
+
declare const _default: HLineFunction;
|
|
33
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { isPoint2DLike } from "../../math/point.js";
|
|
2
|
+
import { Move } from "../../features/2d/move.js";
|
|
3
|
+
import { HorizontalLine } from "../../features/2d/hline.js";
|
|
4
|
+
import { normalizePoint2D } from "../../helpers/normalize.js";
|
|
5
|
+
import { registerBuilder } from "../../index.js";
|
|
6
|
+
import { isPlaneLike } from "../../math/plane.js";
|
|
7
|
+
import { SceneObject } from "../../common/scene-object.js";
|
|
8
|
+
import { resolvePlane } from "../../helpers/resolve.js";
|
|
9
|
+
function build(context) {
|
|
10
|
+
return function line() {
|
|
11
|
+
let planeObj = null;
|
|
12
|
+
let argCount = arguments.length;
|
|
13
|
+
// Detect plane as last argument
|
|
14
|
+
if (argCount > 0) {
|
|
15
|
+
const lastArg = arguments[argCount - 1];
|
|
16
|
+
if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
|
|
17
|
+
planeObj = resolvePlane(lastArg, context);
|
|
18
|
+
argCount--;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (typeof arguments[0] !== 'number') {
|
|
22
|
+
// hline(start, distance) or hline(start, distance, centered)
|
|
23
|
+
const start = normalizePoint2D(arguments[0]);
|
|
24
|
+
const distance = arguments[1];
|
|
25
|
+
const centered = argCount >= 3 ? arguments[2] : false;
|
|
26
|
+
const hline = new HorizontalLine(distance, centered, planeObj);
|
|
27
|
+
context.addSceneObjects([new Move(start), hline]);
|
|
28
|
+
return hline;
|
|
29
|
+
}
|
|
30
|
+
const distance = arguments[0];
|
|
31
|
+
const centered = argCount >= 2 ? arguments[1] : false;
|
|
32
|
+
const hline = new HorizontalLine(distance, centered, planeObj);
|
|
33
|
+
context.addSceneObject(hline);
|
|
34
|
+
return hline;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HMove } from "../../features/2d/hmove.js";
|
|
2
|
+
import { registerBuilder } from "../../index.js";
|
|
3
|
+
function build(context) {
|
|
4
|
+
return function move() {
|
|
5
|
+
const distance = arguments[0];
|
|
6
|
+
const hmove = new HMove(distance);
|
|
7
|
+
context.addSceneObject(hmove);
|
|
8
|
+
return hmove;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { default as line } from './line.js';
|
|
2
|
+
export { default as circle } from './circle.js';
|
|
3
|
+
export { default as rect } from './rect.js';
|
|
4
|
+
export { default as hMove } from './hmove.js';
|
|
5
|
+
export { default as vMove } from './vmove.js';
|
|
6
|
+
export { default as rMove } from './rmove.js';
|
|
7
|
+
export { default as hLine } from './hline.js';
|
|
8
|
+
export { default as vLine } from './vline.js';
|
|
9
|
+
export { default as tLine } from './tline.js';
|
|
10
|
+
export { default as tCircle } from './tcircle.js';
|
|
11
|
+
export { default as tArc } from './tarc.js';
|
|
12
|
+
export { default as arc } from './arc.js';
|
|
13
|
+
export { default as move } from './move.js';
|
|
14
|
+
export { default as pMove } from './pmove.js';
|
|
15
|
+
export { default as aLine } from './aline.js';
|
|
16
|
+
export { default as wire } from './wire.js';
|
|
17
|
+
export { default as slot } from './slot.js';
|
|
18
|
+
export { default as connect } from './connect.js';
|
|
19
|
+
export { default as polygon } from './polygon.js';
|
|
20
|
+
export { default as offset } from './offset.js';
|
|
21
|
+
export { default as project } from './project.js';
|
|
22
|
+
export { default as bezier } from './bezier.js';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { default as line } from './line.js';
|
|
2
|
+
export { default as circle } from './circle.js';
|
|
3
|
+
export { default as rect } from './rect.js';
|
|
4
|
+
export { default as hMove } from './hmove.js';
|
|
5
|
+
export { default as vMove } from './vmove.js';
|
|
6
|
+
export { default as rMove } from './rmove.js';
|
|
7
|
+
export { default as hLine } from './hline.js';
|
|
8
|
+
export { default as vLine } from './vline.js';
|
|
9
|
+
export { default as tLine } from './tline.js';
|
|
10
|
+
export { default as tCircle } from './tcircle.js';
|
|
11
|
+
export { default as tArc } from './tarc.js';
|
|
12
|
+
export { default as arc } from './arc.js';
|
|
13
|
+
export { default as move } from './move.js';
|
|
14
|
+
export { default as pMove } from './pmove.js';
|
|
15
|
+
export { default as aLine } from './aline.js';
|
|
16
|
+
export { default as wire } from './wire.js';
|
|
17
|
+
export { default as slot } from './slot.js';
|
|
18
|
+
export { default as connect } from './connect.js';
|
|
19
|
+
export { default as polygon } from './polygon.js';
|
|
20
|
+
export { default as offset } from './offset.js';
|
|
21
|
+
export { default as project } from './project.js';
|
|
22
|
+
export { default as bezier } from './bezier.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Point2DLike } from "../../math/point.js";
|
|
2
|
+
import { PlaneLike } from "../../math/plane.js";
|
|
3
|
+
import { IGeometry, ISceneObject } from "../interfaces.js";
|
|
4
|
+
interface LineFunction {
|
|
5
|
+
/**
|
|
6
|
+
* Draws a line from the current position to the given point.
|
|
7
|
+
* @param end - The end point
|
|
8
|
+
*/
|
|
9
|
+
(end: Point2DLike): IGeometry;
|
|
10
|
+
/**
|
|
11
|
+
* Draws a line between two points.
|
|
12
|
+
* @param start - The start point
|
|
13
|
+
* @param end - The end point
|
|
14
|
+
*/
|
|
15
|
+
(start: Point2DLike, end: Point2DLike): IGeometry;
|
|
16
|
+
/**
|
|
17
|
+
* Draws a line to the given point on a specific plane.
|
|
18
|
+
* @param end - The end point
|
|
19
|
+
* @param targetPlane - The plane to draw on
|
|
20
|
+
*/
|
|
21
|
+
(end: Point2DLike, targetPlane: PlaneLike | ISceneObject): IGeometry;
|
|
22
|
+
}
|
|
23
|
+
declare const _default: LineFunction;
|
|
24
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { isPoint2DLike } from "../../math/point.js";
|
|
2
|
+
import { LineTo } from "../../features/2d/line.js";
|
|
3
|
+
import { Move } from "../../features/2d/move.js";
|
|
4
|
+
import { normalizePoint2D } from "../../helpers/normalize.js";
|
|
5
|
+
import { registerBuilder } from "../../index.js";
|
|
6
|
+
import { isPlaneLike } from "../../math/plane.js";
|
|
7
|
+
import { SceneObject } from "../../common/scene-object.js";
|
|
8
|
+
import { resolvePlane } from "../../helpers/resolve.js";
|
|
9
|
+
function build(context) {
|
|
10
|
+
return function line() {
|
|
11
|
+
let line;
|
|
12
|
+
let planeObj = null;
|
|
13
|
+
let argCount = arguments.length;
|
|
14
|
+
// Detect plane as last argument
|
|
15
|
+
// Point2DLike is not plane-like so no conflict
|
|
16
|
+
if (argCount > 0) {
|
|
17
|
+
const lastArg = arguments[argCount - 1];
|
|
18
|
+
if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
|
|
19
|
+
planeObj = resolvePlane(lastArg, context);
|
|
20
|
+
argCount--;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (argCount === 1) {
|
|
24
|
+
const vertex = normalizePoint2D(arguments[0]);
|
|
25
|
+
line = new LineTo(vertex, planeObj);
|
|
26
|
+
context.addSceneObject(line);
|
|
27
|
+
}
|
|
28
|
+
else if (argCount === 2) {
|
|
29
|
+
const start = normalizePoint2D(arguments[0]);
|
|
30
|
+
const end = normalizePoint2D(arguments[1]);
|
|
31
|
+
line = new LineTo(end, planeObj);
|
|
32
|
+
context.addSceneObjects([new Move(start), line]);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw new Error(`Invalid number of arguments for line(): ${argCount}`);
|
|
36
|
+
}
|
|
37
|
+
return line;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Point2DLike } from "../../math/point.js";
|
|
2
|
+
import { IGeometry } from "../interfaces.js";
|
|
3
|
+
interface MoveFunction {
|
|
4
|
+
/** Moves the cursor to the origin. */
|
|
5
|
+
(): IGeometry;
|
|
6
|
+
/**
|
|
7
|
+
* Moves the cursor to the given point.
|
|
8
|
+
* @param to - The target point
|
|
9
|
+
*/
|
|
10
|
+
(to: Point2DLike): IGeometry;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: MoveFunction;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Point2D } from "../../math/point.js";
|
|
2
|
+
import { Move } from "../../features/2d/move.js";
|
|
3
|
+
import { normalizePoint2D } from "../../helpers/normalize.js";
|
|
4
|
+
import { registerBuilder } from "../../index.js";
|
|
5
|
+
function build(context) {
|
|
6
|
+
return function move() {
|
|
7
|
+
const to = normalizePoint2D(arguments[0] ?? new Point2D(0, 0));
|
|
8
|
+
const move = new Move(to);
|
|
9
|
+
context.addSceneObject(move);
|
|
10
|
+
return move;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PlaneLike } from "../../math/plane.js";
|
|
2
|
+
import { IExtrudableGeometry, ISceneObject } from "../interfaces.js";
|
|
3
|
+
import { Extrudable } from "../../helpers/types.js";
|
|
4
|
+
interface OffsetFunction {
|
|
5
|
+
/**
|
|
6
|
+
* Offsets the current sketch geometry by the given distance.
|
|
7
|
+
* @param distance - The offset distance (defaults to 1)
|
|
8
|
+
* @param removeOriginal - Whether to remove the original geometry
|
|
9
|
+
*/
|
|
10
|
+
(distance?: number, removeOriginal?: boolean): IExtrudableGeometry;
|
|
11
|
+
/**
|
|
12
|
+
* Offsets source geometries onto a target plane.
|
|
13
|
+
* @param distance - The offset distance
|
|
14
|
+
* @param removeOriginal - Whether to remove the original geometry
|
|
15
|
+
* @param targetPlane - The plane to offset onto
|
|
16
|
+
* @param sourceGeometries - The geometries to offset
|
|
17
|
+
*/
|
|
18
|
+
(distance: number, removeOriginal: boolean, targetPlane: PlaneLike | ISceneObject, ...sourceGeometries: Extrudable[]): IExtrudableGeometry;
|
|
19
|
+
}
|
|
20
|
+
declare const _default: OffsetFunction;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Offset } from "../../features/2d/offset.js";
|
|
2
|
+
import { registerBuilder } from "../../index.js";
|
|
3
|
+
import { resolvePlane } from "../../helpers/resolve.js";
|
|
4
|
+
function build(context) {
|
|
5
|
+
return function offset(...args) {
|
|
6
|
+
// Outside-sketch mode: offset(distance, removeOriginal, plane, ...sourceGeometries)
|
|
7
|
+
if (args.length >= 3 && !Array.isArray(args[0])) {
|
|
8
|
+
const distance = args[0] ?? 1;
|
|
9
|
+
const removeOriginal = args[1] ?? false;
|
|
10
|
+
const planeObj = resolvePlane(args[2], context);
|
|
11
|
+
const sourceObjects = args.slice(3);
|
|
12
|
+
const off = new Offset(distance, removeOriginal, sourceObjects, planeObj);
|
|
13
|
+
context.addSceneObject(off);
|
|
14
|
+
return off;
|
|
15
|
+
}
|
|
16
|
+
// In-sketch mode: offset(distance, removeOriginal)
|
|
17
|
+
const distance = args[0] ?? 1;
|
|
18
|
+
const removeOriginal = args[1] ?? false;
|
|
19
|
+
const off = new Offset(distance, removeOriginal);
|
|
20
|
+
context.addSceneObject(off);
|
|
21
|
+
return off;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export default registerBuilder(build);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IGeometry } from "../interfaces.js";
|
|
2
|
+
interface PolarMoveFunction {
|
|
3
|
+
/**
|
|
4
|
+
* Moves the cursor by polar coordinates.
|
|
5
|
+
* @param radius - The distance to move
|
|
6
|
+
* @param angle - The angle in degrees
|
|
7
|
+
*/
|
|
8
|
+
(radius: number, angle: number): IGeometry;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: PolarMoveFunction;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PolarMove } from "../../features/2d/pmove.js";
|
|
2
|
+
import { registerBuilder } from "../../index.js";
|
|
3
|
+
function build(context) {
|
|
4
|
+
return function pmove() {
|
|
5
|
+
const radius = arguments[0];
|
|
6
|
+
const angle = arguments[1] * Math.PI / 180;
|
|
7
|
+
const pmove = new PolarMove(radius, angle);
|
|
8
|
+
context.addSceneObject(pmove);
|
|
9
|
+
return pmove;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export default registerBuilder(build);
|