@faicad/faijs 0.30.9 → 0.32.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/dist/api/align/index.d.ts +64 -0
- package/dist/api/align/index.d.ts.map +1 -0
- package/dist/api/align/index.js +101 -0
- package/dist/api/align/index.js.map +1 -0
- package/dist/api/api-namespace.d.ts +5 -4
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +45 -7
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/boolean-op/index.d.ts +65 -0
- package/dist/api/boolean-op/index.d.ts.map +1 -0
- package/dist/api/boolean-op/index.js +114 -0
- package/dist/api/boolean-op/index.js.map +1 -0
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +19 -27
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/brep-operations/healingFns.d.ts +13 -0
- package/dist/api/brep-operations/healingFns.d.ts.map +1 -1
- package/dist/api/brep-operations/healingFns.js +28 -1
- package/dist/api/brep-operations/healingFns.js.map +1 -1
- package/dist/api/brep-operations/joinery-brep.js +10 -10
- package/dist/api/brep-operations/joinery-brep.js.map +1 -1
- package/dist/api/brep-operations/topologyFns.d.ts +27 -6
- package/dist/api/brep-operations/topologyFns.d.ts.map +1 -1
- package/dist/api/brep-operations/topologyFns.js +46 -22
- package/dist/api/brep-operations/topologyFns.js.map +1 -1
- package/dist/api/chamfer.d.ts +5 -4
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +13 -11
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/curve-sketch/index.d.ts.map +1 -1
- package/dist/api/curve-sketch/index.js +12 -3
- package/dist/api/curve-sketch/index.js.map +1 -1
- package/dist/api/draft.js +2 -3
- package/dist/api/draft.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +4 -13
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/export-3mf.d.ts +73 -0
- package/dist/api/export-3mf.d.ts.map +1 -0
- package/dist/api/export-3mf.js +121 -0
- package/dist/api/export-3mf.js.map +1 -0
- package/dist/api/export-brep.d.ts +6 -0
- package/dist/api/export-brep.d.ts.map +1 -1
- package/dist/api/export-brep.js +11 -2
- package/dist/api/export-brep.js.map +1 -1
- package/dist/api/export-step.d.ts +67 -0
- package/dist/api/export-step.d.ts.map +1 -0
- package/dist/api/export-step.js +98 -0
- package/dist/api/export-step.js.map +1 -0
- package/dist/api/export-stl.d.ts +8 -0
- package/dist/api/export-stl.d.ts.map +1 -1
- package/dist/api/export-stl.js +23 -8
- package/dist/api/export-stl.js.map +1 -1
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +18 -17
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/feature-repair.d.ts +1 -1
- package/dist/api/feature-repair.d.ts.map +1 -1
- package/dist/api/feature-repair.js +7 -7
- package/dist/api/feature-repair.js.map +1 -1
- package/dist/api/fillet-variable.d.ts.map +1 -1
- package/dist/api/fillet-variable.js +1 -1
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts +3 -3
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +4 -4
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/operations.js +16 -16
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/script-face-manifest.d.ts +1 -1
- package/dist/api/generated/script-face-manifest.js +3 -3
- package/dist/api/generated/script-face-manifest.js.map +1 -1
- package/dist/api/generated/script-face.d.ts +1 -1
- package/dist/api/generated/script-face.js +1 -1
- package/dist/api/generated/script-face.js.map +1 -1
- package/dist/api/generated/sketching.js +1 -1
- package/dist/api/generated/sketching.js.map +1 -1
- package/dist/api/generated/topology.js +18 -18
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/helix.d.ts +1 -1
- package/dist/api/helix.d.ts.map +1 -1
- package/dist/api/helix.js +2 -1
- package/dist/api/helix.js.map +1 -1
- package/dist/api/import-brep.d.ts.map +1 -1
- package/dist/api/import-brep.js +1 -0
- package/dist/api/import-brep.js.map +1 -1
- package/dist/api/import-step.d.ts.map +1 -1
- package/dist/api/import-step.js +1 -0
- package/dist/api/import-step.js.map +1 -1
- package/dist/api/index.d.ts +9 -3
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +19 -4
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts +6 -6
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +7 -9
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/internal/export-members.d.ts +80 -0
- package/dist/api/internal/export-members.d.ts.map +1 -0
- package/dist/api/internal/export-members.js +104 -0
- package/dist/api/internal/export-members.js.map +1 -0
- package/dist/api/internal/l3-bridge.d.ts +17 -0
- package/dist/api/internal/l3-bridge.d.ts.map +1 -1
- package/dist/api/internal/l3-bridge.js +23 -1
- package/dist/api/internal/l3-bridge.js.map +1 -1
- package/dist/api/loft-advanced.d.ts +66 -0
- package/dist/api/loft-advanced.d.ts.map +1 -0
- package/dist/api/loft-advanced.js +112 -0
- package/dist/api/loft-advanced.js.map +1 -0
- package/dist/api/loft.d.ts +16 -23
- package/dist/api/loft.d.ts.map +1 -1
- package/dist/api/loft.js +22 -40
- package/dist/api/loft.js.map +1 -1
- package/dist/api/measure-query/index.d.ts +262 -0
- package/dist/api/measure-query/index.d.ts.map +1 -0
- package/dist/api/measure-query/index.js +392 -0
- package/dist/api/measure-query/index.js.map +1 -0
- package/dist/api/pattern.d.ts.map +1 -1
- package/dist/api/pattern.js +1 -3
- package/dist/api/pattern.js.map +1 -1
- package/dist/api/place.d.ts.map +1 -1
- package/dist/api/place.js +1 -0
- package/dist/api/place.js.map +1 -1
- package/dist/api/primitives.d.ts +6 -6
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +12 -11
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/profile.d.ts.map +1 -1
- package/dist/api/profile.js +1 -1
- package/dist/api/profile.js.map +1 -1
- package/dist/api/punch-hole.d.ts.map +1 -1
- package/dist/api/punch-hole.js +1 -1
- package/dist/api/punch-hole.js.map +1 -1
- package/dist/api/replicate.d.ts +5 -7
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +24 -56
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/revolve.d.ts.map +1 -1
- package/dist/api/revolve.js +1 -0
- package/dist/api/revolve.js.map +1 -1
- package/dist/api/screw.d.ts.map +1 -1
- package/dist/api/screw.js +1 -0
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts.map +1 -1
- package/dist/api/sdf.js +1 -0
- package/dist/api/sdf.js.map +1 -1
- package/dist/api/section-by-plane.d.ts.map +1 -1
- package/dist/api/section-by-plane.js +0 -1
- package/dist/api/section-by-plane.js.map +1 -1
- package/dist/api/shell.d.ts +1 -1
- package/dist/api/shell.d.ts.map +1 -1
- package/dist/api/shell.js +12 -2
- package/dist/api/shell.js.map +1 -1
- package/dist/api/sketch-on-face.d.ts +34 -30
- package/dist/api/sketch-on-face.d.ts.map +1 -1
- package/dist/api/sketch-on-face.js +40 -28
- package/dist/api/sketch-on-face.js.map +1 -1
- package/dist/api/sketch-on-plane.d.ts.map +1 -1
- package/dist/api/sketch-on-plane.js +1 -1
- package/dist/api/sketch-on-plane.js.map +1 -1
- package/dist/api/sketch-on-surface.d.ts +76 -0
- package/dist/api/sketch-on-surface.d.ts.map +1 -0
- package/dist/api/sketch-on-surface.js +99 -0
- package/dist/api/sketch-on-surface.js.map +1 -0
- package/dist/api/solid-offset/index.d.ts.map +1 -1
- package/dist/api/solid-offset/index.js +1 -0
- package/dist/api/solid-offset/index.js.map +1 -1
- package/dist/api/split-by-plane.d.ts.map +1 -1
- package/dist/api/split-by-plane.js +0 -1
- package/dist/api/split-by-plane.js.map +1 -1
- package/dist/api/split.d.ts +1 -1
- package/dist/api/split.d.ts.map +1 -1
- package/dist/api/split.js +2 -1
- package/dist/api/split.js.map +1 -1
- package/dist/api/surface/arg-spec.d.ts +8 -16
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +21 -28
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/surface-face/index.d.ts.map +1 -1
- package/dist/api/surface-face/index.js +5 -0
- package/dist/api/surface-face/index.js.map +1 -1
- package/dist/api/surface.d.ts.map +1 -1
- package/dist/api/surface.js +1 -0
- package/dist/api/surface.js.map +1 -1
- package/dist/api/sweep-advanced.d.ts +117 -0
- package/dist/api/sweep-advanced.d.ts.map +1 -0
- package/dist/api/sweep-advanced.js +94 -0
- package/dist/api/sweep-advanced.js.map +1 -0
- package/dist/api/sweep.d.ts +18 -76
- package/dist/api/sweep.d.ts.map +1 -1
- package/dist/api/sweep.js +27 -28
- package/dist/api/sweep.js.map +1 -1
- package/dist/api/thicken.d.ts.map +1 -1
- package/dist/api/thicken.js +12 -2
- package/dist/api/thicken.js.map +1 -1
- package/dist/api/transform.d.ts +3 -3
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +49 -17
- package/dist/api/transform.js.map +1 -1
- package/dist/api/wire.d.ts.map +1 -1
- package/dist/api/wire.js +1 -0
- package/dist/api/wire.js.map +1 -1
- package/dist/boolean/cross-section.d.ts +7 -6
- package/dist/boolean/cross-section.d.ts.map +1 -1
- package/dist/boolean/cross-section.js +38 -27
- package/dist/boolean/cross-section.js.map +1 -1
- package/dist/boolean/deriveNormals.d.ts +5 -5
- package/dist/boolean/deriveNormals.d.ts.map +1 -1
- package/dist/boolean/deriveNormals.js +18 -18
- package/dist/boolean/deriveNormals.js.map +1 -1
- package/dist/boolean/extrude-helpers.d.ts +6 -6
- package/dist/boolean/extrude-helpers.d.ts.map +1 -1
- package/dist/boolean/extrude-helpers.js +6 -6
- package/dist/boolean/extrude-helpers.js.map +1 -1
- package/dist/boolean/geo-convert.d.ts +11 -8
- package/dist/boolean/geo-convert.d.ts.map +1 -1
- package/dist/boolean/geo-convert.js +17 -73
- package/dist/boolean/geo-convert.js.map +1 -1
- package/dist/boolean/index.d.ts +23 -0
- package/dist/boolean/index.d.ts.map +1 -0
- package/dist/boolean/index.js +27 -0
- package/dist/boolean/index.js.map +1 -0
- package/dist/brep/brep-chain.d.ts +1 -19
- package/dist/brep/brep-chain.d.ts.map +1 -1
- package/dist/brep/brep-chain.js +0 -1
- package/dist/brep/brep-chain.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +9 -6
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +51 -47
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +24 -3
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/adapters/brepkit.d.ts +4 -3
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brepkit.js +4 -98
- package/dist/brep/engine/adapters/brepkit.js.map +1 -1
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +0 -144
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/native-history.d.ts +27 -0
- package/dist/brep/engine/native-history.d.ts.map +1 -0
- package/dist/brep/engine/native-history.js +54 -0
- package/dist/brep/engine/native-history.js.map +1 -0
- package/dist/brep/engine/primitives.d.ts +30 -0
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/registry.d.ts +2 -4
- package/dist/brep/engine/registry.d.ts.map +1 -1
- package/dist/brep/engine/registry.js +1 -1
- package/dist/brep/engine/registry.js.map +1 -1
- package/dist/brep/engine/types.d.ts +35 -77
- package/dist/brep/engine/types.d.ts.map +1 -1
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/export-model.d.ts +21 -0
- package/dist/brep/export/export-model.d.ts.map +1 -1
- package/dist/brep/export/export-model.js +171 -73
- package/dist/brep/export/export-model.js.map +1 -1
- package/dist/brep/export/step.d.ts +17 -1
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +133 -0
- package/dist/brep/export/step.js.map +1 -1
- package/dist/brep/export/stl.d.ts +22 -1
- package/dist/brep/export/stl.d.ts.map +1 -1
- package/dist/brep/export/stl.js +58 -10
- package/dist/brep/export/stl.js.map +1 -1
- package/dist/brep/export/transform12.d.ts +47 -0
- package/dist/brep/export/transform12.d.ts.map +1 -0
- package/dist/brep/export/transform12.js +87 -0
- package/dist/brep/export/transform12.js.map +1 -0
- package/dist/brep/face-evolution.d.ts +53 -0
- package/dist/brep/face-evolution.d.ts.map +1 -1
- package/dist/brep/face-evolution.js +65 -0
- package/dist/brep/face-evolution.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +138 -0
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/browser-host/index.d.ts +4 -1
- package/dist/browser-host/index.d.ts.map +1 -1
- package/dist/browser-host/index.js +7 -1
- package/dist/browser-host/index.js.map +1 -1
- package/dist/browser.d.ts +4 -8
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +4 -26
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +13 -58
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +22 -80
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/content-key.d.ts +3 -3
- package/dist/cad-runtime/content-key.js +3 -3
- package/dist/cad-runtime/content-key.js.map +1 -1
- package/dist/cad-runtime/ports.d.ts +28 -0
- package/dist/cad-runtime/ports.d.ts.map +1 -1
- package/dist/cad-runtime/ports.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts +33 -12
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +49 -50
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +22 -18
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +5 -20
- package/dist/define-op.js.map +1 -1
- package/dist/env-agnostic.d.ts +2 -2
- package/dist/env-agnostic.d.ts.map +1 -1
- package/dist/env-agnostic.js +1 -1
- package/dist/env-agnostic.js.map +1 -1
- package/dist/index.d.ts +14 -64
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -75
- package/dist/index.js.map +1 -1
- package/dist/lang/codegen.d.ts +14 -3
- package/dist/lang/codegen.d.ts.map +1 -1
- package/dist/lang/codegen.js +80 -5
- package/dist/lang/codegen.js.map +1 -1
- package/dist/lang/metadata-extractor.d.ts +10 -3
- package/dist/lang/metadata-extractor.d.ts.map +1 -1
- package/dist/lang/metadata-extractor.js +160 -65
- package/dist/lang/metadata-extractor.js.map +1 -1
- package/dist/lang/symbol-table.generated.d.ts +20 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +20 -0
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/math3d/Box3.d.ts +86 -0
- package/dist/math3d/Box3.d.ts.map +1 -0
- package/dist/math3d/Box3.js +149 -0
- package/dist/math3d/Box3.js.map +1 -0
- package/dist/math3d/Euler.d.ts +64 -0
- package/dist/math3d/Euler.d.ts.map +1 -0
- package/dist/math3d/Euler.js +94 -0
- package/dist/math3d/Euler.js.map +1 -0
- package/dist/math3d/Mat4.d.ts +196 -0
- package/dist/math3d/Mat4.d.ts.map +1 -0
- package/dist/math3d/Mat4.js +518 -0
- package/dist/math3d/Mat4.js.map +1 -0
- package/dist/math3d/Plane.d.ts +67 -0
- package/dist/math3d/Plane.d.ts.map +1 -0
- package/dist/math3d/Plane.js +90 -0
- package/dist/math3d/Plane.js.map +1 -0
- package/dist/math3d/Quat.d.ts +163 -0
- package/dist/math3d/Quat.d.ts.map +1 -0
- package/dist/math3d/Quat.js +408 -0
- package/dist/math3d/Quat.js.map +1 -0
- package/dist/math3d/Vec2.d.ts +185 -0
- package/dist/math3d/Vec2.d.ts.map +1 -0
- package/dist/math3d/Vec2.js +276 -0
- package/dist/math3d/Vec2.js.map +1 -0
- package/dist/math3d/Vec3.d.ts +326 -0
- package/dist/math3d/Vec3.d.ts.map +1 -0
- package/dist/math3d/Vec3.js +521 -0
- package/dist/math3d/Vec3.js.map +1 -0
- package/dist/math3d/index.d.ts +19 -0
- package/dist/math3d/index.d.ts.map +1 -0
- package/dist/math3d/index.js +19 -0
- package/dist/math3d/index.js.map +1 -0
- package/dist/mesh/decoration-provider.d.ts +2 -2
- package/dist/mesh/decoration-provider.d.ts.map +1 -1
- package/dist/mesh/decoration-provider.js.map +1 -1
- package/dist/mesh/engrave.d.ts.map +1 -1
- package/dist/mesh/engrave.js +36 -37
- package/dist/mesh/engrave.js.map +1 -1
- package/dist/mesh/index.d.ts +18 -23
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +18 -20
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/io.d.ts +42 -14
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +83 -20
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/knurl/KnurlGenerator.d.ts +8 -7
- package/dist/mesh/knurl/KnurlGenerator.d.ts.map +1 -1
- package/dist/mesh/knurl/KnurlGenerator.js +9 -9
- package/dist/mesh/knurl/KnurlGenerator.js.map +1 -1
- package/dist/mesh/knurl/displacement.d.ts +7 -6
- package/dist/mesh/knurl/displacement.d.ts.map +1 -1
- package/dist/mesh/knurl/displacement.js +29 -29
- package/dist/mesh/knurl/displacement.js.map +1 -1
- package/dist/mesh/knurl/subdivision.d.ts +3 -3
- package/dist/mesh/knurl/subdivision.d.ts.map +1 -1
- package/dist/mesh/knurl/subdivision.js +21 -15
- package/dist/mesh/knurl/subdivision.js.map +1 -1
- package/dist/mesh/knurl/textureLoader.d.ts +3 -3
- package/dist/mesh/knurl/textureLoader.d.ts.map +1 -1
- package/dist/mesh/knurl/textureLoader.js.map +1 -1
- package/dist/mesh/meshdata/index.d.ts +12 -0
- package/dist/mesh/meshdata/index.d.ts.map +1 -0
- package/dist/mesh/meshdata/index.js +12 -0
- package/dist/mesh/meshdata/index.js.map +1 -0
- package/dist/mesh/meshdata/ops.d.ts +62 -0
- package/dist/mesh/meshdata/ops.d.ts.map +1 -0
- package/dist/mesh/meshdata/ops.js +160 -0
- package/dist/mesh/meshdata/ops.js.map +1 -0
- package/dist/mesh/meshdata/parametric.d.ts +70 -0
- package/dist/mesh/meshdata/parametric.d.ts.map +1 -0
- package/dist/mesh/meshdata/parametric.js +213 -0
- package/dist/mesh/meshdata/parametric.js.map +1 -0
- package/dist/mesh/meshdata/weld.d.ts +21 -0
- package/dist/mesh/meshdata/weld.d.ts.map +1 -0
- package/dist/mesh/meshdata/weld.js +50 -0
- package/dist/mesh/meshdata/weld.js.map +1 -0
- package/dist/mesh/primitives.d.ts +1 -1
- package/dist/mesh/primitives.d.ts.map +1 -1
- package/dist/mesh/primitives.js +38 -39
- package/dist/mesh/primitives.js.map +1 -1
- package/dist/mesh/query.js +11 -11
- package/dist/mesh/query.js.map +1 -1
- package/dist/mesh/stl-loader.d.ts +7 -7
- package/dist/mesh/stl-loader.d.ts.map +1 -1
- package/dist/mesh/stl-loader.js +12 -24
- package/dist/mesh/stl-loader.js.map +1 -1
- package/dist/mesh/threemf-loader.d.ts +38 -4
- package/dist/mesh/threemf-loader.d.ts.map +1 -1
- package/dist/mesh/threemf-loader.js +115 -34
- package/dist/mesh/threemf-loader.js.map +1 -1
- package/dist/mesh/threemf-view.d.ts +11 -11
- package/dist/mesh/threemf-view.d.ts.map +1 -1
- package/dist/mesh/threemf-view.js +10 -10
- package/dist/mesh/threemf-view.js.map +1 -1
- package/dist/mesh/transform.d.ts +14 -8
- package/dist/mesh/transform.d.ts.map +1 -1
- package/dist/mesh/transform.js +18 -13
- package/dist/mesh/transform.js.map +1 -1
- package/dist/mesh/types.d.ts +32 -0
- package/dist/mesh/types.d.ts.map +1 -1
- package/dist/mesh/types.js.map +1 -1
- package/dist/node-host/execute-script.d.ts +2 -1
- package/dist/node-host/execute-script.d.ts.map +1 -1
- package/dist/node-host/execute-script.js +5 -4
- package/dist/node-host/execute-script.js.map +1 -1
- package/dist/node-host/index.d.ts +1 -0
- package/dist/node-host/index.d.ts.map +1 -1
- package/dist/node-host/index.js +4 -0
- package/dist/node-host/index.js.map +1 -1
- package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
- package/dist/occt-kernel/occt-primitives.js +20 -0
- package/dist/occt-kernel/occt-primitives.js.map +1 -1
- package/dist/primitives/brep-primitives.d.ts +8 -12
- package/dist/primitives/brep-primitives.d.ts.map +1 -1
- package/dist/primitives/brep-primitives.js +10 -28
- package/dist/primitives/brep-primitives.js.map +1 -1
- package/dist/primitives/index.d.ts +19 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +21 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/mesh-primitives.d.ts +10 -10
- package/dist/primitives/mesh-primitives.d.ts.map +1 -1
- package/dist/primitives/mesh-primitives.js +29 -76
- package/dist/primitives/mesh-primitives.js.map +1 -1
- package/dist/primitives/screw/screw.d.ts +3 -3
- package/dist/primitives/screw/screw.d.ts.map +1 -1
- package/dist/primitives/screw/screw.js +10 -9
- package/dist/primitives/screw/screw.js.map +1 -1
- package/dist/runtime-state.d.ts +63 -29
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +57 -0
- package/dist/runtime-state.js.map +1 -1
- package/dist/sdf/index.d.ts +12 -0
- package/dist/sdf/index.d.ts.map +1 -0
- package/dist/sdf/index.js +13 -0
- package/dist/sdf/index.js.map +1 -0
- package/dist/sdk.d.ts +0 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js.map +1 -1
- package/dist/units.d.ts +40 -0
- package/dist/units.d.ts.map +1 -1
- package/dist/units.js.map +1 -1
- package/dist/weapp.d.ts +2 -2
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +1 -1
- package/dist/weapp.js.map +1 -1
- package/package.json +277 -38
- package/dist/api/brep-mirror/booleanFns.d.ts +0 -40
- package/dist/api/brep-mirror/booleanFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/booleanFns.js +0 -104
- package/dist/api/brep-mirror/booleanFns.js.map +0 -1
- package/dist/api/brep-mirror/brepHelpers.d.ts +0 -55
- package/dist/api/brep-mirror/brepHelpers.d.ts.map +0 -1
- package/dist/api/brep-mirror/brepHelpers.js +0 -131
- package/dist/api/brep-mirror/brepHelpers.js.map +0 -1
- package/dist/api/brep-mirror/compoundFns.d.ts +0 -47
- package/dist/api/brep-mirror/compoundFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/compoundFns.js +0 -300
- package/dist/api/brep-mirror/compoundFns.js.map +0 -1
- package/dist/api/brep-mirror/healingFns.d.ts +0 -78
- package/dist/api/brep-mirror/healingFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/healingFns.js +0 -294
- package/dist/api/brep-mirror/healingFns.js.map +0 -1
- package/dist/api/brep-mirror/hullFns.d.ts +0 -20
- package/dist/api/brep-mirror/hullFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/hullFns.js +0 -46
- package/dist/api/brep-mirror/hullFns.js.map +0 -1
- package/dist/api/brep-mirror/joinery-brep.d.ts +0 -172
- package/dist/api/brep-mirror/joinery-brep.d.ts.map +0 -1
- package/dist/api/brep-mirror/joinery-brep.js +0 -463
- package/dist/api/brep-mirror/joinery-brep.js.map +0 -1
- package/dist/api/brep-mirror/patternFns.d.ts +0 -43
- package/dist/api/brep-mirror/patternFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/patternFns.js +0 -178
- package/dist/api/brep-mirror/patternFns.js.map +0 -1
- package/dist/api/brep-mirror/primitiveFns.d.ts +0 -42
- package/dist/api/brep-mirror/primitiveFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/primitiveFns.js +0 -104
- package/dist/api/brep-mirror/primitiveFns.js.map +0 -1
- package/dist/api/brep-mirror/roofFns.d.ts +0 -24
- package/dist/api/brep-mirror/roofFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/roofFns.js +0 -229
- package/dist/api/brep-mirror/roofFns.js.map +0 -1
- package/dist/api/brep-mirror/straightSkeleton.d.ts +0 -36
- package/dist/api/brep-mirror/straightSkeleton.d.ts.map +0 -1
- package/dist/api/brep-mirror/straightSkeleton.js +0 -443
- package/dist/api/brep-mirror/straightSkeleton.js.map +0 -1
- package/dist/api/brep-mirror/sweepFns.d.ts +0 -55
- package/dist/api/brep-mirror/sweepFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/sweepFns.js +0 -200
- package/dist/api/brep-mirror/sweepFns.js.map +0 -1
- package/dist/api/brep-mirror/threadFns.d.ts +0 -83
- package/dist/api/brep-mirror/threadFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/threadFns.js +0 -138
- package/dist/api/brep-mirror/threadFns.js.map +0 -1
- package/dist/api/brep-mirror/topologyFns.d.ts +0 -74
- package/dist/api/brep-mirror/topologyFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/topologyFns.js +0 -276
- package/dist/api/brep-mirror/topologyFns.js.map +0 -1
- package/dist/api/brepjs-compat/constants.d.ts +0 -11
- package/dist/api/brepjs-compat/constants.d.ts.map +0 -1
- package/dist/api/brepjs-compat/constants.js +0 -11
- package/dist/api/brepjs-compat/constants.js.map +0 -1
- package/dist/api/brepjs-compat/index.d.ts +0 -21
- package/dist/api/brepjs-compat/index.d.ts.map +0 -1
- package/dist/api/brepjs-compat/index.js +0 -22
- package/dist/api/brepjs-compat/index.js.map +0 -1
- package/dist/api/brepjs-compat/planeOps.d.ts +0 -98
- package/dist/api/brepjs-compat/planeOps.d.ts.map +0 -1
- package/dist/api/brepjs-compat/planeOps.js +0 -170
- package/dist/api/brepjs-compat/planeOps.js.map +0 -1
- package/dist/api/brepjs-compat/planeTypes.d.ts +0 -24
- package/dist/api/brepjs-compat/planeTypes.d.ts.map +0 -1
- package/dist/api/brepjs-compat/planeTypes.js +0 -8
- package/dist/api/brepjs-compat/planeTypes.js.map +0 -1
- package/dist/api/brepjs-compat/types.d.ts +0 -64
- package/dist/api/brepjs-compat/types.d.ts.map +0 -1
- package/dist/api/brepjs-compat/types.js +0 -48
- package/dist/api/brepjs-compat/types.js.map +0 -1
- package/dist/api/brepjs-compat/vecOps.d.ts +0 -124
- package/dist/api/brepjs-compat/vecOps.d.ts.map +0 -1
- package/dist/api/brepjs-compat/vecOps.js +0 -202
- package/dist/api/brepjs-compat/vecOps.js.map +0 -1
- package/dist/api/generated/brepjs/index.d.ts +0 -310
- package/dist/api/generated/brepjs/index.d.ts.map +0 -1
- package/dist/api/generated/brepjs/index.js +0 -195
- package/dist/api/generated/brepjs/index.js.map +0 -1
- package/dist/api/generated/cad/script-face.d.ts +0 -12
- package/dist/api/generated/cad/script-face.d.ts.map +0 -1
- package/dist/api/generated/cad/script-face.js +0 -146
- package/dist/api/generated/cad/script-face.js.map +0 -1
- package/dist/api/internal/compat-projection.d.ts +0 -55
- package/dist/api/internal/compat-projection.d.ts.map +0 -1
- package/dist/api/internal/compat-projection.js +0 -75
- package/dist/api/internal/compat-projection.js.map +0 -1
- package/dist/api/occt-kernel-bridge.d.ts +0 -118
- package/dist/api/occt-kernel-bridge.d.ts.map +0 -1
- package/dist/api/occt-kernel-bridge.js +0 -283
- package/dist/api/occt-kernel-bridge.js.map +0 -1
- package/dist/api/sketch.d.ts +0 -80
- package/dist/api/sketch.d.ts.map +0 -1
- package/dist/api/sketch.js +0 -155
- package/dist/api/sketch.js.map +0 -1
- package/dist/api/surface/projection-overrides.d.ts +0 -38
- package/dist/api/surface/projection-overrides.d.ts.map +0 -1
- package/dist/api/surface/projection-overrides.js +0 -169
- package/dist/api/surface/projection-overrides.js.map +0 -1
- package/dist/brepjs-compat.d.ts +0 -20
- package/dist/brepjs-compat.d.ts.map +0 -1
- package/dist/brepjs-compat.js +0 -20
- package/dist/brepjs-compat.js.map +0 -1
- package/dist/cad-runtime/createRuntimeWithCad.d.ts +0 -22
- package/dist/cad-runtime/createRuntimeWithCad.d.ts.map +0 -1
- package/dist/cad-runtime/createRuntimeWithCad.js +0 -29
- package/dist/cad-runtime/createRuntimeWithCad.js.map +0 -1
- package/dist/fcstd/attachment.d.ts +0 -72
- package/dist/fcstd/attachment.d.ts.map +0 -1
- package/dist/fcstd/attachment.js +0 -93
- package/dist/fcstd/attachment.js.map +0 -1
- package/dist/fcstd/build-fai-zip.d.ts +0 -40
- package/dist/fcstd/build-fai-zip.d.ts.map +0 -1
- package/dist/fcstd/build-fai-zip.js +0 -111
- package/dist/fcstd/build-fai-zip.js.map +0 -1
- package/dist/fcstd/cli.d.ts +0 -3
- package/dist/fcstd/cli.d.ts.map +0 -1
- package/dist/fcstd/cli.js +0 -37
- package/dist/fcstd/cli.js.map +0 -1
- package/dist/fcstd/codegen.d.ts +0 -79
- package/dist/fcstd/codegen.d.ts.map +0 -1
- package/dist/fcstd/codegen.js +0 -605
- package/dist/fcstd/codegen.js.map +0 -1
- package/dist/fcstd/container.d.ts +0 -75
- package/dist/fcstd/container.d.ts.map +0 -1
- package/dist/fcstd/container.js +0 -36
- package/dist/fcstd/container.js.map +0 -1
- package/dist/fcstd/contour.d.ts +0 -43
- package/dist/fcstd/contour.d.ts.map +0 -1
- package/dist/fcstd/contour.js +0 -96
- package/dist/fcstd/contour.js.map +0 -1
- package/dist/fcstd/convert.d.ts +0 -63
- package/dist/fcstd/convert.d.ts.map +0 -1
- package/dist/fcstd/convert.js +0 -274
- package/dist/fcstd/convert.js.map +0 -1
- package/dist/fcstd/document.d.ts +0 -48
- package/dist/fcstd/document.d.ts.map +0 -1
- package/dist/fcstd/document.js +0 -140
- package/dist/fcstd/document.js.map +0 -1
- package/dist/fcstd/expressions.d.ts +0 -74
- package/dist/fcstd/expressions.d.ts.map +0 -1
- package/dist/fcstd/expressions.js +0 -157
- package/dist/fcstd/expressions.js.map +0 -1
- package/dist/fcstd/external-geo.d.ts +0 -49
- package/dist/fcstd/external-geo.d.ts.map +0 -1
- package/dist/fcstd/external-geo.js +0 -140
- package/dist/fcstd/external-geo.js.map +0 -1
- package/dist/fcstd/feature-translate.d.ts +0 -189
- package/dist/fcstd/feature-translate.d.ts.map +0 -1
- package/dist/fcstd/feature-translate.js +0 -968
- package/dist/fcstd/feature-translate.js.map +0 -1
- package/dist/fcstd/index.d.ts +0 -23
- package/dist/fcstd/index.d.ts.map +0 -1
- package/dist/fcstd/index.js +0 -19
- package/dist/fcstd/index.js.map +0 -1
- package/dist/fcstd/placement.d.ts +0 -93
- package/dist/fcstd/placement.d.ts.map +0 -1
- package/dist/fcstd/placement.js +0 -117
- package/dist/fcstd/placement.js.map +0 -1
- package/dist/fcstd/planegcs-backend.d.ts +0 -34
- package/dist/fcstd/planegcs-backend.d.ts.map +0 -1
- package/dist/fcstd/planegcs-backend.js +0 -626
- package/dist/fcstd/planegcs-backend.js.map +0 -1
- package/dist/fcstd/sketch-parse.d.ts +0 -181
- package/dist/fcstd/sketch-parse.d.ts.map +0 -1
- package/dist/fcstd/sketch-parse.js +0 -227
- package/dist/fcstd/sketch-parse.js.map +0 -1
- package/dist/fcstd/sketch-solver.d.ts +0 -63
- package/dist/fcstd/sketch-solver.d.ts.map +0 -1
- package/dist/fcstd/sketch-solver.js +0 -28
- package/dist/fcstd/sketch-solver.js.map +0 -1
- package/dist/fcstd/sketch-verify.d.ts +0 -43
- package/dist/fcstd/sketch-verify.d.ts.map +0 -1
- package/dist/fcstd/sketch-verify.js +0 -62
- package/dist/fcstd/sketch-verify.js.map +0 -1
- package/dist/fcstd/structural-types.d.ts +0 -83
- package/dist/fcstd/structural-types.d.ts.map +0 -1
- package/dist/fcstd/structural-types.js +0 -121
- package/dist/fcstd/structural-types.js.map +0 -1
- package/dist/fcstd/unpack.d.ts +0 -44
- package/dist/fcstd/unpack.d.ts.map +0 -1
- package/dist/fcstd/unpack.js +0 -64
- package/dist/fcstd/unpack.js.map +0 -1
- package/dist/fcstd-convert.d.ts +0 -30
- package/dist/fcstd-convert.d.ts.map +0 -1
- package/dist/fcstd-convert.js +0 -27
- package/dist/fcstd-convert.js.map +0 -1
- package/dist/mesh/creased-normals.d.ts +0 -50
- package/dist/mesh/creased-normals.d.ts.map +0 -1
- package/dist/mesh/creased-normals.js +0 -114
- package/dist/mesh/creased-normals.js.map +0 -1
- package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +0 -260
- package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +0 -1
- package/dist/occt-kernel/generated/occtPlatform.generated.js +0 -875
- package/dist/occt-kernel/generated/occtPlatform.generated.js.map +0 -1
- package/dist/occt-kernel/stepMetaParser.d.ts +0 -44
- package/dist/occt-kernel/stepMetaParser.d.ts.map +0 -1
- package/dist/occt-kernel/stepMetaParser.js +0 -166
- package/dist/occt-kernel/stepMetaParser.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts +0 -106
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js +0 -341
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts +0 -185
- package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprint.js +0 -361
- package/dist/vendored/brepjs/2d/blueprints/blueprint.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts +0 -15
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js +0 -28
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts +0 -29
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js +0 -86
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts +0 -57
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js +0 -92
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts +0 -58
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js +0 -346
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts +0 -30
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js +0 -45
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts +0 -68
- package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprints.js +0 -116
- package/dist/vendored/brepjs/2d/blueprints/blueprints.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts +0 -68
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.js +0 -362
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts +0 -34
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js +0 -176
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts +0 -55
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js +0 -110
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts +0 -41
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js +0 -90
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts +0 -85
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js +0 -136
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts +0 -48
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js +0 -154
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts +0 -342
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js +0 -32
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/index.d.ts +0 -16
- package/dist/vendored/brepjs/2d/blueprints/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/index.js +0 -13
- package/dist/vendored/brepjs/2d/blueprints/index.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts +0 -18
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js +0 -230
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/lib.d.ts +0 -73
- package/dist/vendored/brepjs/2d/blueprints/lib.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/lib.js +0 -103
- package/dist/vendored/brepjs/2d/blueprints/lib.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts +0 -31
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js +0 -226
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/svg.d.ts +0 -22
- package/dist/vendored/brepjs/2d/blueprints/svg.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/svg.js +0 -30
- package/dist/vendored/brepjs/2d/blueprints/svg.js.map +0 -1
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts +0 -124
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.js +0 -235
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.js.map +0 -1
- package/dist/vendored/brepjs/2d/curves.d.ts +0 -45
- package/dist/vendored/brepjs/2d/curves.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/curves.js +0 -139
- package/dist/vendored/brepjs/2d/curves.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/approximations.d.ts +0 -47
- package/dist/vendored/brepjs/2d/lib/approximations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/approximations.js +0 -82
- package/dist/vendored/brepjs/2d/lib/approximations.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts +0 -39
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.js +0 -88
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2D.d.ts +0 -82
- package/dist/vendored/brepjs/2d/lib/curve2D.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2D.js +0 -258
- package/dist/vendored/brepjs/2d/lib/curve2D.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts +0 -53
- package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2dFns.js +0 -69
- package/dist/vendored/brepjs/2d/lib/curve2dFns.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/customCorners.d.ts +0 -29
- package/dist/vendored/brepjs/2d/lib/customCorners.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/customCorners.js +0 -237
- package/dist/vendored/brepjs/2d/lib/customCorners.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/definitions.d.ts +0 -12
- package/dist/vendored/brepjs/2d/lib/definitions.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/definitions.js +0 -19
- package/dist/vendored/brepjs/2d/lib/definitions.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts +0 -21
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js +0 -71
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/index.d.ts +0 -14
- package/dist/vendored/brepjs/2d/lib/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/index.js +0 -14
- package/dist/vendored/brepjs/2d/lib/index.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/intersections.d.ts +0 -34
- package/dist/vendored/brepjs/2d/lib/intersections.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/intersections.js +0 -77
- package/dist/vendored/brepjs/2d/lib/intersections.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts +0 -63
- package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/makeCurves.js +0 -117
- package/dist/vendored/brepjs/2d/lib/makeCurves.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/offset.d.ts +0 -30
- package/dist/vendored/brepjs/2d/lib/offset.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/offset.js +0 -109
- package/dist/vendored/brepjs/2d/lib/offset.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/precision.d.ts +0 -12
- package/dist/vendored/brepjs/2d/lib/precision.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/precision.js +0 -12
- package/dist/vendored/brepjs/2d/lib/precision.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/stitching.d.ts +0 -15
- package/dist/vendored/brepjs/2d/lib/stitching.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/stitching.js +0 -67
- package/dist/vendored/brepjs/2d/lib/stitching.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/svgPath.d.ts +0 -4
- package/dist/vendored/brepjs/2d/lib/svgPath.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/svgPath.js +0 -114
- package/dist/vendored/brepjs/2d/lib/svgPath.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/utils.d.ts +0 -11
- package/dist/vendored/brepjs/2d/lib/utils.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/utils.js +0 -24
- package/dist/vendored/brepjs/2d/lib/utils.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts +0 -19
- package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/vectorOperations.js +0 -26
- package/dist/vendored/brepjs/2d/lib/vectorOperations.js.map +0 -1
- package/dist/vendored/brepjs/2d.d.ts +0 -26
- package/dist/vendored/brepjs/2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d.js +0 -33
- package/dist/vendored/brepjs/2d.js.map +0 -1
- package/dist/vendored/brepjs/core/constants.d.ts +0 -7
- package/dist/vendored/brepjs/core/constants.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/constants.js +0 -7
- package/dist/vendored/brepjs/core/constants.js.map +0 -1
- package/dist/vendored/brepjs/core/curve2dHandle.d.ts +0 -35
- package/dist/vendored/brepjs/core/curve2dHandle.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/curve2dHandle.js +0 -48
- package/dist/vendored/brepjs/core/curve2dHandle.js.map +0 -1
- package/dist/vendored/brepjs/core/dimensionTypes.d.ts +0 -61
- package/dist/vendored/brepjs/core/dimensionTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/dimensionTypes.js +0 -54
- package/dist/vendored/brepjs/core/dimensionTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/disposal.d.ts +0 -136
- package/dist/vendored/brepjs/core/disposal.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/disposal.js +0 -441
- package/dist/vendored/brepjs/core/disposal.js.map +0 -1
- package/dist/vendored/brepjs/core/errors.d.ts +0 -191
- package/dist/vendored/brepjs/core/errors.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/errors.js +0 -238
- package/dist/vendored/brepjs/core/errors.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelBoundary.d.ts +0 -40
- package/dist/vendored/brepjs/core/kernelBoundary.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelBoundary.js +0 -99
- package/dist/vendored/brepjs/core/kernelBoundary.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelCall.d.ts +0 -48
- package/dist/vendored/brepjs/core/kernelCall.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelCall.js +0 -154
- package/dist/vendored/brepjs/core/kernelCall.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts +0 -17
- package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelErrorTranslation.js +0 -98
- package/dist/vendored/brepjs/core/kernelErrorTranslation.js.map +0 -1
- package/dist/vendored/brepjs/core/planeOps.d.ts +0 -62
- package/dist/vendored/brepjs/core/planeOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/planeOps.js +0 -148
- package/dist/vendored/brepjs/core/planeOps.js.map +0 -1
- package/dist/vendored/brepjs/core/planeTypes.d.ts +0 -22
- package/dist/vendored/brepjs/core/planeTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/planeTypes.js +0 -6
- package/dist/vendored/brepjs/core/planeTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/result.d.ts +0 -85
- package/dist/vendored/brepjs/core/result.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/result.js +0 -212
- package/dist/vendored/brepjs/core/result.js.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypeCache.d.ts +0 -27
- package/dist/vendored/brepjs/core/shapeTypeCache.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypeCache.js +0 -40
- package/dist/vendored/brepjs/core/shapeTypeCache.js.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypes.d.ts +0 -199
- package/dist/vendored/brepjs/core/shapeTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypes.js +0 -267
- package/dist/vendored/brepjs/core/shapeTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/typeDiscriminants.d.ts +0 -25
- package/dist/vendored/brepjs/core/typeDiscriminants.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/typeDiscriminants.js +0 -50
- package/dist/vendored/brepjs/core/typeDiscriminants.js.map +0 -1
- package/dist/vendored/brepjs/core/types.d.ts +0 -51
- package/dist/vendored/brepjs/core/types.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/types.js +0 -35
- package/dist/vendored/brepjs/core/types.js.map +0 -1
- package/dist/vendored/brepjs/core/validityTypes.d.ts +0 -143
- package/dist/vendored/brepjs/core/validityTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/validityTypes.js +0 -174
- package/dist/vendored/brepjs/core/validityTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/vecOps.d.ts +0 -53
- package/dist/vendored/brepjs/core/vecOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/vecOps.js +0 -131
- package/dist/vendored/brepjs/core/vecOps.js.map +0 -1
- package/dist/vendored/brepjs/core.d.ts +0 -17
- package/dist/vendored/brepjs/core.d.ts.map +0 -1
- package/dist/vendored/brepjs/core.js +0 -13
- package/dist/vendored/brepjs/core.js.map +0 -1
- package/dist/vendored/brepjs/gear/gearFns.d.ts +0 -148
- package/dist/vendored/brepjs/gear/gearFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/gearFns.js +0 -479
- package/dist/vendored/brepjs/gear/gearFns.js.map +0 -1
- package/dist/vendored/brepjs/gear/gearMath.d.ts +0 -89
- package/dist/vendored/brepjs/gear/gearMath.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/gearMath.js +0 -195
- package/dist/vendored/brepjs/gear/gearMath.js.map +0 -1
- package/dist/vendored/brepjs/gear/gearProfile.d.ts +0 -17
- package/dist/vendored/brepjs/gear/gearProfile.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/gearProfile.js +0 -159
- package/dist/vendored/brepjs/gear/gearProfile.js.map +0 -1
- package/dist/vendored/brepjs/gear/index.d.ts +0 -4
- package/dist/vendored/brepjs/gear/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/index.js +0 -4
- package/dist/vendored/brepjs/gear/index.js.map +0 -1
- package/dist/vendored/brepjs/index.d.ts +0 -152
- package/dist/vendored/brepjs/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/index.js +0 -195
- package/dist/vendored/brepjs/index.js.map +0 -1
- package/dist/vendored/brepjs/io/dxfExportFns.d.ts +0 -74
- package/dist/vendored/brepjs/io/dxfExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/dxfExportFns.js +0 -134
- package/dist/vendored/brepjs/io/dxfExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/dxfImportFns.d.ts +0 -20
- package/dist/vendored/brepjs/io/dxfImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/dxfImportFns.js +0 -132
- package/dist/vendored/brepjs/io/dxfImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/gltfExportFns.d.ts +0 -97
- package/dist/vendored/brepjs/io/gltfExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/gltfExportFns.js +0 -460
- package/dist/vendored/brepjs/io/gltfExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/gltfImportFns.d.ts +0 -21
- package/dist/vendored/brepjs/io/gltfImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/gltfImportFns.js +0 -33
- package/dist/vendored/brepjs/io/gltfImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/importFns.d.ts +0 -56
- package/dist/vendored/brepjs/io/importFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/importFns.js +0 -108
- package/dist/vendored/brepjs/io/importFns.js.map +0 -1
- package/dist/vendored/brepjs/io/ioUtils.d.ts +0 -22
- package/dist/vendored/brepjs/io/ioUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/ioUtils.js +0 -56
- package/dist/vendored/brepjs/io/ioUtils.js.map +0 -1
- package/dist/vendored/brepjs/io/objExportFns.d.ts +0 -23
- package/dist/vendored/brepjs/io/objExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/objExportFns.js +0 -67
- package/dist/vendored/brepjs/io/objExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/objImportFns.d.ts +0 -26
- package/dist/vendored/brepjs/io/objImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/objImportFns.js +0 -96
- package/dist/vendored/brepjs/io/objImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/stepConfigFns.d.ts +0 -30
- package/dist/vendored/brepjs/io/stepConfigFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/stepConfigFns.js +0 -30
- package/dist/vendored/brepjs/io/stepConfigFns.js.map +0 -1
- package/dist/vendored/brepjs/io/svgImportFns.d.ts +0 -58
- package/dist/vendored/brepjs/io/svgImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/svgImportFns.js +0 -394
- package/dist/vendored/brepjs/io/svgImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/threemfExportFns.d.ts +0 -48
- package/dist/vendored/brepjs/io/threemfExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/threemfExportFns.js +0 -345
- package/dist/vendored/brepjs/io/threemfExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/threemfImportFns.d.ts +0 -22
- package/dist/vendored/brepjs/io/threemfImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/threemfImportFns.js +0 -350
- package/dist/vendored/brepjs/io/threemfImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io.d.ts +0 -17
- package/dist/vendored/brepjs/io.d.ts.map +0 -1
- package/dist/vendored/brepjs/io.js +0 -20
- package/dist/vendored/brepjs/io.js.map +0 -1
- package/dist/vendored/brepjs/kernel/capabilities.d.ts +0 -36
- package/dist/vendored/brepjs/kernel/capabilities.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/capabilities.js +0 -35
- package/dist/vendored/brepjs/kernel/capabilities.js.map +0 -1
- package/dist/vendored/brepjs/kernel/geometry2d.d.ts +0 -96
- package/dist/vendored/brepjs/kernel/geometry2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/geometry2d.js +0 -885
- package/dist/vendored/brepjs/kernel/geometry2d.js.map +0 -1
- package/dist/vendored/brepjs/kernel/hullGeometry.d.ts +0 -23
- package/dist/vendored/brepjs/kernel/hullGeometry.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/hullGeometry.js +0 -312
- package/dist/vendored/brepjs/kernel/hullGeometry.js.map +0 -1
- package/dist/vendored/brepjs/kernel/index.d.ts +0 -73
- package/dist/vendored/brepjs/kernel/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/index.js +0 -161
- package/dist/vendored/brepjs/kernel/index.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts +0 -44
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts +0 -67
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.js +0 -12
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/core.d.ts +0 -46
- package/dist/vendored/brepjs/kernel/interfaces/core.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/core.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/core.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts +0 -53
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.js +0 -12
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts +0 -32
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js +0 -14
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/index.d.ts +0 -43
- package/dist/vendored/brepjs/kernel/interfaces/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/index.js +0 -12
- package/dist/vendored/brepjs/kernel/interfaces/index.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts +0 -65
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts +0 -55
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts +0 -25
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.js +0 -8
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts +0 -53
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js +0 -10
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts +0 -22
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts +0 -43
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts +0 -72
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js +0 -13
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts +0 -73
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts +0 -62
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts +0 -80
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts +0 -145
- package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/kernel2dTypes.js +0 -18
- package/dist/vendored/brepjs/kernel/kernel2dTypes.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts +0 -41
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js +0 -2
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts +0 -17
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js +0 -75
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts +0 -36
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js +0 -116
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts +0 -43
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js +0 -292
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts +0 -34
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js +0 -164
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts +0 -26
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js +0 -256
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts +0 -42
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.js +0 -146
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts +0 -17
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js +0 -55
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts +0 -58
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js +0 -303
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts +0 -113
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js +0 -731
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts +0 -62
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js +0 -338
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts +0 -12
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js +0 -120
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts +0 -20
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js +0 -187
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts +0 -513
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js +0 -1016
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts +0 -332
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js +0 -10
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts +0 -16
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js +0 -64
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts +0 -16
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js +0 -38
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts +0 -56
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js +0 -247
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts +0 -56
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js +0 -235
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts +0 -25
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js +0 -127
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts +0 -40
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js +0 -275
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/quality.d.ts +0 -28
- package/dist/vendored/brepjs/kernel/quality.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/quality.js +0 -40
- package/dist/vendored/brepjs/kernel/quality.js.map +0 -1
- package/dist/vendored/brepjs/kernel/solverAdapter.d.ts +0 -50
- package/dist/vendored/brepjs/kernel/solverAdapter.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/solverAdapter.js +0 -330
- package/dist/vendored/brepjs/kernel/solverAdapter.js.map +0 -1
- package/dist/vendored/brepjs/kernel/stlBuilder.d.ts +0 -21
- package/dist/vendored/brepjs/kernel/stlBuilder.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/stlBuilder.js +0 -106
- package/dist/vendored/brepjs/kernel/stlBuilder.js.map +0 -1
- package/dist/vendored/brepjs/kernel/types.d.ts +0 -214
- package/dist/vendored/brepjs/kernel/types.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/types.js +0 -22
- package/dist/vendored/brepjs/kernel/types.js.map +0 -1
- package/dist/vendored/brepjs/kernel/unsupported.d.ts +0 -15
- package/dist/vendored/brepjs/kernel/unsupported.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/unsupported.js +0 -25
- package/dist/vendored/brepjs/kernel/unsupported.js.map +0 -1
- package/dist/vendored/brepjs/measurement/interferenceFns.d.ts +0 -68
- package/dist/vendored/brepjs/measurement/interferenceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/interferenceFns.js +0 -102
- package/dist/vendored/brepjs/measurement/interferenceFns.js.map +0 -1
- package/dist/vendored/brepjs/measurement/measureCache.d.ts +0 -20
- package/dist/vendored/brepjs/measurement/measureCache.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/measureCache.js +0 -28
- package/dist/vendored/brepjs/measurement/measureCache.js.map +0 -1
- package/dist/vendored/brepjs/measurement/measureFns.d.ts +0 -92
- package/dist/vendored/brepjs/measurement/measureFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/measureFns.js +0 -239
- package/dist/vendored/brepjs/measurement/measureFns.js.map +0 -1
- package/dist/vendored/brepjs/measurement/measureTypes.d.ts +0 -35
- package/dist/vendored/brepjs/measurement/measureTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/measureTypes.js +0 -7
- package/dist/vendored/brepjs/measurement/measureTypes.js.map +0 -1
- package/dist/vendored/brepjs/measurement.d.ts +0 -5
- package/dist/vendored/brepjs/measurement.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement.js +0 -5
- package/dist/vendored/brepjs/measurement.js.map +0 -1
- package/dist/vendored/brepjs/ns/booleans.d.ts +0 -11
- package/dist/vendored/brepjs/ns/booleans.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/booleans.js +0 -11
- package/dist/vendored/brepjs/ns/booleans.js.map +0 -1
- package/dist/vendored/brepjs/ns/construction.d.ts +0 -10
- package/dist/vendored/brepjs/ns/construction.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/construction.js +0 -10
- package/dist/vendored/brepjs/ns/construction.js.map +0 -1
- package/dist/vendored/brepjs/ns/ioNs.d.ts +0 -18
- package/dist/vendored/brepjs/ns/ioNs.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/ioNs.js +0 -20
- package/dist/vendored/brepjs/ns/ioNs.js.map +0 -1
- package/dist/vendored/brepjs/ns/measurement.d.ts +0 -6
- package/dist/vendored/brepjs/ns/measurement.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/measurement.js +0 -6
- package/dist/vendored/brepjs/ns/measurement.js.map +0 -1
- package/dist/vendored/brepjs/ns/modifiers.d.ts +0 -6
- package/dist/vendored/brepjs/ns/modifiers.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/modifiers.js +0 -6
- package/dist/vendored/brepjs/ns/modifiers.js.map +0 -1
- package/dist/vendored/brepjs/ns/patterns.d.ts +0 -5
- package/dist/vendored/brepjs/ns/patterns.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/patterns.js +0 -5
- package/dist/vendored/brepjs/ns/patterns.js.map +0 -1
- package/dist/vendored/brepjs/ns/primitives.d.ts +0 -7
- package/dist/vendored/brepjs/ns/primitives.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/primitives.js +0 -7
- package/dist/vendored/brepjs/ns/primitives.js.map +0 -1
- package/dist/vendored/brepjs/ns/query.d.ts +0 -6
- package/dist/vendored/brepjs/ns/query.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/query.js +0 -6
- package/dist/vendored/brepjs/ns/query.js.map +0 -1
- package/dist/vendored/brepjs/ns/transforms.d.ts +0 -5
- package/dist/vendored/brepjs/ns/transforms.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/transforms.js +0 -5
- package/dist/vendored/brepjs/ns/transforms.js.map +0 -1
- package/dist/vendored/brepjs/operations/api.d.ts +0 -39
- package/dist/vendored/brepjs/operations/api.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/api.js +0 -41
- package/dist/vendored/brepjs/operations/api.js.map +0 -1
- package/dist/vendored/brepjs/operations/assemblyFns.d.ts +0 -54
- package/dist/vendored/brepjs/operations/assemblyFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/assemblyFns.js +0 -91
- package/dist/vendored/brepjs/operations/assemblyFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts +0 -43
- package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/compoundOpsFns.js +0 -368
- package/dist/vendored/brepjs/operations/compoundOpsFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/convexHullFns.d.ts +0 -27
- package/dist/vendored/brepjs/operations/convexHullFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/convexHullFns.js +0 -50
- package/dist/vendored/brepjs/operations/convexHullFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/dhFns.d.ts +0 -47
- package/dist/vendored/brepjs/operations/dhFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/dhFns.js +0 -53
- package/dist/vendored/brepjs/operations/dhFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/exporterFns.d.ts +0 -47
- package/dist/vendored/brepjs/operations/exporterFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/exporterFns.js +0 -66
- package/dist/vendored/brepjs/operations/exporterFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/exporterUtils.d.ts +0 -6
- package/dist/vendored/brepjs/operations/exporterUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/exporterUtils.js +0 -5
- package/dist/vendored/brepjs/operations/exporterUtils.js.map +0 -1
- package/dist/vendored/brepjs/operations/exporters.d.ts +0 -59
- package/dist/vendored/brepjs/operations/exporters.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/exporters.js +0 -74
- package/dist/vendored/brepjs/operations/exporters.js.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeFns.d.ts +0 -47
- package/dist/vendored/brepjs/operations/extrudeFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeFns.js +0 -119
- package/dist/vendored/brepjs/operations/extrudeFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeUtils.d.ts +0 -63
- package/dist/vendored/brepjs/operations/extrudeUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeUtils.js +0 -33
- package/dist/vendored/brepjs/operations/extrudeUtils.js.map +0 -1
- package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts +0 -6
- package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/guidedSweepFns.js +0 -6
- package/dist/vendored/brepjs/operations/guidedSweepFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/historyFns.d.ts +0 -83
- package/dist/vendored/brepjs/operations/historyFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/historyFns.js +0 -256
- package/dist/vendored/brepjs/operations/historyFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/ikFns.d.ts +0 -74
- package/dist/vendored/brepjs/operations/ikFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/ikFns.js +0 -320
- package/dist/vendored/brepjs/operations/ikFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/instanceFns.d.ts +0 -76
- package/dist/vendored/brepjs/operations/instanceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/instanceFns.js +0 -128
- package/dist/vendored/brepjs/operations/instanceFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/jointFns.d.ts +0 -176
- package/dist/vendored/brepjs/operations/jointFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/jointFns.js +0 -298
- package/dist/vendored/brepjs/operations/jointFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/loftFns.d.ts +0 -60
- package/dist/vendored/brepjs/operations/loftFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/loftFns.js +0 -112
- package/dist/vendored/brepjs/operations/loftFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/mateFns.d.ts +0 -53
- package/dist/vendored/brepjs/operations/mateFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/mateFns.js +0 -142
- package/dist/vendored/brepjs/operations/mateFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/multiSweepFns.d.ts +0 -6
- package/dist/vendored/brepjs/operations/multiSweepFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/multiSweepFns.js +0 -6
- package/dist/vendored/brepjs/operations/multiSweepFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/patternFns.d.ts +0 -46
- package/dist/vendored/brepjs/operations/patternFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/patternFns.js +0 -126
- package/dist/vendored/brepjs/operations/patternFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/roofFns.d.ts +0 -25
- package/dist/vendored/brepjs/operations/roofFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/roofFns.js +0 -250
- package/dist/vendored/brepjs/operations/roofFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/straightSkeleton.d.ts +0 -29
- package/dist/vendored/brepjs/operations/straightSkeleton.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/straightSkeleton.js +0 -440
- package/dist/vendored/brepjs/operations/straightSkeleton.js.map +0 -1
- package/dist/vendored/brepjs/operations/sweepFns.d.ts +0 -121
- package/dist/vendored/brepjs/operations/sweepFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/sweepFns.js +0 -438
- package/dist/vendored/brepjs/operations/sweepFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/threadFns.d.ts +0 -57
- package/dist/vendored/brepjs/operations/threadFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/threadFns.js +0 -145
- package/dist/vendored/brepjs/operations/threadFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/urdfFns.d.ts +0 -48
- package/dist/vendored/brepjs/operations/urdfFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/urdfFns.js +0 -171
- package/dist/vendored/brepjs/operations/urdfFns.js.map +0 -1
- package/dist/vendored/brepjs/operations.d.ts +0 -20
- package/dist/vendored/brepjs/operations.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations.js +0 -26
- package/dist/vendored/brepjs/operations.js.map +0 -1
- package/dist/vendored/brepjs/projection/cameraFns.d.ts +0 -63
- package/dist/vendored/brepjs/projection/cameraFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection/cameraFns.js +0 -89
- package/dist/vendored/brepjs/projection/cameraFns.js.map +0 -1
- package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts +0 -14
- package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection/makeProjectedEdges.js +0 -111
- package/dist/vendored/brepjs/projection/makeProjectedEdges.js.map +0 -1
- package/dist/vendored/brepjs/projection/projectionPlanes.d.ts +0 -18
- package/dist/vendored/brepjs/projection/projectionPlanes.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection/projectionPlanes.js +0 -23
- package/dist/vendored/brepjs/projection/projectionPlanes.js.map +0 -1
- package/dist/vendored/brepjs/projection.d.ts +0 -12
- package/dist/vendored/brepjs/projection.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection.js +0 -12
- package/dist/vendored/brepjs/projection.js.map +0 -1
- package/dist/vendored/brepjs/query/cornerFinder.d.ts +0 -54
- package/dist/vendored/brepjs/query/cornerFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/cornerFinder.js +0 -73
- package/dist/vendored/brepjs/query/cornerFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/directionUtils.d.ts +0 -9
- package/dist/vendored/brepjs/query/directionUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/directionUtils.js +0 -18
- package/dist/vendored/brepjs/query/directionUtils.js.map +0 -1
- package/dist/vendored/brepjs/query/edgeFinder.d.ts +0 -5
- package/dist/vendored/brepjs/query/edgeFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/edgeFinder.js +0 -5
- package/dist/vendored/brepjs/query/edgeFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/faceFinder.d.ts +0 -5
- package/dist/vendored/brepjs/query/faceFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/faceFinder.js +0 -5
- package/dist/vendored/brepjs/query/faceFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/finderCore.d.ts +0 -49
- package/dist/vendored/brepjs/query/finderCore.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/finderCore.js +0 -120
- package/dist/vendored/brepjs/query/finderCore.js.map +0 -1
- package/dist/vendored/brepjs/query/finderFns.d.ts +0 -25
- package/dist/vendored/brepjs/query/finderFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/finderFns.js +0 -25
- package/dist/vendored/brepjs/query/finderFns.js.map +0 -1
- package/dist/vendored/brepjs/query/helpers.d.ts +0 -11
- package/dist/vendored/brepjs/query/helpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/helpers.js +0 -17
- package/dist/vendored/brepjs/query/helpers.js.map +0 -1
- package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts +0 -15
- package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/shapeDistanceFilter.js +0 -21
- package/dist/vendored/brepjs/query/shapeDistanceFilter.js.map +0 -1
- package/dist/vendored/brepjs/query/shapeFinders.d.ts +0 -39
- package/dist/vendored/brepjs/query/shapeFinders.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/shapeFinders.js +0 -82
- package/dist/vendored/brepjs/query/shapeFinders.js.map +0 -1
- package/dist/vendored/brepjs/query/vertexFinder.d.ts +0 -19
- package/dist/vendored/brepjs/query/vertexFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/vertexFinder.js +0 -73
- package/dist/vendored/brepjs/query/vertexFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/wireFinder.d.ts +0 -5
- package/dist/vendored/brepjs/query/wireFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/wireFinder.js +0 -5
- package/dist/vendored/brepjs/query/wireFinder.js.map +0 -1
- package/dist/vendored/brepjs/query.d.ts +0 -6
- package/dist/vendored/brepjs/query.d.ts.map +0 -1
- package/dist/vendored/brepjs/query.js +0 -6
- package/dist/vendored/brepjs/query.js.map +0 -1
- package/dist/vendored/brepjs/result.d.ts +0 -7
- package/dist/vendored/brepjs/result.d.ts.map +0 -1
- package/dist/vendored/brepjs/result.js +0 -7
- package/dist/vendored/brepjs/result.js.map +0 -1
- package/dist/vendored/brepjs/shapeRef.d.ts +0 -13
- package/dist/vendored/brepjs/shapeRef.d.ts.map +0 -1
- package/dist/vendored/brepjs/shapeRef.js +0 -13
- package/dist/vendored/brepjs/shapeRef.js.map +0 -1
- package/dist/vendored/brepjs/sketching/cannedSketches.d.ts +0 -144
- package/dist/vendored/brepjs/sketching/cannedSketches.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/cannedSketches.js +0 -327
- package/dist/vendored/brepjs/sketching/cannedSketches.js.map +0 -1
- package/dist/vendored/brepjs/sketching/compoundSketch.d.ts +0 -70
- package/dist/vendored/brepjs/sketching/compoundSketch.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/compoundSketch.js +0 -87
- package/dist/vendored/brepjs/sketching/compoundSketch.js.map +0 -1
- package/dist/vendored/brepjs/sketching/draw3d.d.ts +0 -22
- package/dist/vendored/brepjs/sketching/draw3d.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/draw3d.js +0 -150
- package/dist/vendored/brepjs/sketching/draw3d.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawFns.d.ts +0 -122
- package/dist/vendored/brepjs/sketching/drawFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawFns.js +0 -129
- package/dist/vendored/brepjs/sketching/drawFns.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawing.d.ts +0 -128
- package/dist/vendored/brepjs/sketching/drawing.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawing.js +0 -275
- package/dist/vendored/brepjs/sketching/drawing.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingFactories.d.ts +0 -95
- package/dist/vendored/brepjs/sketching/drawingFactories.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingFactories.js +0 -125
- package/dist/vendored/brepjs/sketching/drawingFactories.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingPen.d.ts +0 -35
- package/dist/vendored/brepjs/sketching/drawingPen.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingPen.js +0 -57
- package/dist/vendored/brepjs/sketching/drawingPen.js.map +0 -1
- package/dist/vendored/brepjs/sketching/faceSketcher.d.ts +0 -53
- package/dist/vendored/brepjs/sketching/faceSketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/faceSketcher.js +0 -167
- package/dist/vendored/brepjs/sketching/faceSketcher.js.map +0 -1
- package/dist/vendored/brepjs/sketching/shortcuts.d.ts +0 -16
- package/dist/vendored/brepjs/sketching/shortcuts.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/shortcuts.js +0 -24
- package/dist/vendored/brepjs/sketching/shortcuts.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketch.d.ts +0 -157
- package/dist/vendored/brepjs/sketching/sketch.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketch.js +0 -151
- package/dist/vendored/brepjs/sketching/sketch.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketchFns.d.ts +0 -89
- package/dist/vendored/brepjs/sketching/sketchFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketchFns.js +0 -266
- package/dist/vendored/brepjs/sketching/sketchFns.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketcher.d.ts +0 -70
- package/dist/vendored/brepjs/sketching/sketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketcher.js +0 -181
- package/dist/vendored/brepjs/sketching/sketcher.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketches.d.ts +0 -70
- package/dist/vendored/brepjs/sketching/sketches.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketches.js +0 -91
- package/dist/vendored/brepjs/sketching/sketches.js.map +0 -1
- package/dist/vendored/brepjs/sketching.d.ts +0 -28
- package/dist/vendored/brepjs/sketching.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching.js +0 -30
- package/dist/vendored/brepjs/sketching.js.map +0 -1
- package/dist/vendored/brepjs/text/fontRegistry.d.ts +0 -23
- package/dist/vendored/brepjs/text/fontRegistry.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/fontRegistry.js +0 -61
- package/dist/vendored/brepjs/text/fontRegistry.js.map +0 -1
- package/dist/vendored/brepjs/text/sketchText.d.ts +0 -31
- package/dist/vendored/brepjs/text/sketchText.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/sketchText.js +0 -30
- package/dist/vendored/brepjs/text/sketchText.js.map +0 -1
- package/dist/vendored/brepjs/text/textBlueprints.d.ts +0 -19
- package/dist/vendored/brepjs/text/textBlueprints.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/textBlueprints.js +0 -61
- package/dist/vendored/brepjs/text/textBlueprints.js.map +0 -1
- package/dist/vendored/brepjs/text/textMetrics.d.ts +0 -40
- package/dist/vendored/brepjs/text/textMetrics.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/textMetrics.js +0 -43
- package/dist/vendored/brepjs/text/textMetrics.js.map +0 -1
- package/dist/vendored/brepjs/text.d.ts +0 -13
- package/dist/vendored/brepjs/text.d.ts.map +0 -1
- package/dist/vendored/brepjs/text.js +0 -13
- package/dist/vendored/brepjs/text.js.map +0 -1
- package/dist/vendored/brepjs/topology/adjacencyFns.d.ts +0 -89
- package/dist/vendored/brepjs/topology/adjacencyFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/adjacencyFns.js +0 -411
- package/dist/vendored/brepjs/topology/adjacencyFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/api.d.ts +0 -145
- package/dist/vendored/brepjs/topology/api.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/api.js +0 -282
- package/dist/vendored/brepjs/topology/api.js.map +0 -1
- package/dist/vendored/brepjs/topology/apiTypes.d.ts +0 -135
- package/dist/vendored/brepjs/topology/apiTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/apiTypes.js +0 -24
- package/dist/vendored/brepjs/topology/apiTypes.js.map +0 -1
- package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts +0 -52
- package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/booleanBatchFns.js +0 -164
- package/dist/vendored/brepjs/topology/booleanBatchFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts +0 -21
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js +0 -23
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/booleanFns.d.ts +0 -155
- package/dist/vendored/brepjs/topology/booleanFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/booleanFns.js +0 -600
- package/dist/vendored/brepjs/topology/booleanFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/cast.d.ts +0 -48
- package/dist/vendored/brepjs/topology/cast.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/cast.js +0 -113
- package/dist/vendored/brepjs/topology/cast.js.map +0 -1
- package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts +0 -24
- package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/chamferAngleFns.js +0 -64
- package/dist/vendored/brepjs/topology/chamferAngleFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts +0 -6
- package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/compoundOpsFns.js +0 -6
- package/dist/vendored/brepjs/topology/compoundOpsFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/curveBuilders.d.ts +0 -90
- package/dist/vendored/brepjs/topology/curveBuilders.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/curveBuilders.js +0 -125
- package/dist/vendored/brepjs/topology/curveBuilders.js.map +0 -1
- package/dist/vendored/brepjs/topology/curveFns.d.ts +0 -96
- package/dist/vendored/brepjs/topology/curveFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/curveFns.js +0 -191
- package/dist/vendored/brepjs/topology/curveFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/evolutionFns.d.ts +0 -78
- package/dist/vendored/brepjs/topology/evolutionFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/evolutionFns.js +0 -271
- package/dist/vendored/brepjs/topology/evolutionFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/faceFns.d.ts +0 -86
- package/dist/vendored/brepjs/topology/faceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/faceFns.js +0 -169
- package/dist/vendored/brepjs/topology/faceFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/healingFns.d.ts +0 -98
- package/dist/vendored/brepjs/topology/healingFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/healingFns.js +0 -338
- package/dist/vendored/brepjs/topology/healingFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/hullFns.d.ts +0 -21
- package/dist/vendored/brepjs/topology/hullFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/hullFns.js +0 -60
- package/dist/vendored/brepjs/topology/hullFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/index.d.ts +0 -14
- package/dist/vendored/brepjs/topology/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/index.js +0 -17
- package/dist/vendored/brepjs/topology/index.js.map +0 -1
- package/dist/vendored/brepjs/topology/meshCache.d.ts +0 -68
- package/dist/vendored/brepjs/topology/meshCache.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/meshCache.js +0 -117
- package/dist/vendored/brepjs/topology/meshCache.js.map +0 -1
- package/dist/vendored/brepjs/topology/meshFns.d.ts +0 -179
- package/dist/vendored/brepjs/topology/meshFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/meshFns.js +0 -393
- package/dist/vendored/brepjs/topology/meshFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts +0 -41
- package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/colorFns.js +0 -128
- package/dist/vendored/brepjs/topology/metadata/colorFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts +0 -44
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.js +0 -168
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts +0 -59
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js +0 -109
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts +0 -43
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js +0 -270
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/minkowskiFns.d.ts +0 -26
- package/dist/vendored/brepjs/topology/minkowskiFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/minkowskiFns.js +0 -136
- package/dist/vendored/brepjs/topology/minkowskiFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/modifierFns.d.ts +0 -87
- package/dist/vendored/brepjs/topology/modifierFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/modifierFns.js +0 -446
- package/dist/vendored/brepjs/topology/modifierFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/nurbsFns.d.ts +0 -13
- package/dist/vendored/brepjs/topology/nurbsFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/nurbsFns.js +0 -22
- package/dist/vendored/brepjs/topology/nurbsFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/polyhedronFns.d.ts +0 -11
- package/dist/vendored/brepjs/topology/polyhedronFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/polyhedronFns.js +0 -47
- package/dist/vendored/brepjs/topology/polyhedronFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/positionFns.d.ts +0 -18
- package/dist/vendored/brepjs/topology/positionFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/positionFns.js +0 -34
- package/dist/vendored/brepjs/topology/positionFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/primitiveFns.d.ts +0 -244
- package/dist/vendored/brepjs/topology/primitiveFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/primitiveFns.js +0 -361
- package/dist/vendored/brepjs/topology/primitiveFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeBooleans.d.ts +0 -14
- package/dist/vendored/brepjs/topology/shapeBooleans.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeBooleans.js +0 -24
- package/dist/vendored/brepjs/topology/shapeBooleans.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeFns.d.ts +0 -30
- package/dist/vendored/brepjs/topology/shapeFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeFns.js +0 -50
- package/dist/vendored/brepjs/topology/shapeFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeHelpers.d.ts +0 -9
- package/dist/vendored/brepjs/topology/shapeHelpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeHelpers.js +0 -14
- package/dist/vendored/brepjs/topology/shapeHelpers.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeModifiers.d.ts +0 -33
- package/dist/vendored/brepjs/topology/shapeModifiers.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeModifiers.js +0 -28
- package/dist/vendored/brepjs/topology/shapeModifiers.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts +0 -29
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js +0 -135
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts +0 -25
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js +0 -123
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/index.d.ts +0 -11
- package/dist/vendored/brepjs/topology/shapeRef/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/index.js +0 -10
- package/dist/vendored/brepjs/topology/shapeRef/index.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts +0 -66
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js +0 -128
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts +0 -18
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js +0 -51
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts +0 -20
- package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/scoring.js +0 -65
- package/dist/vendored/brepjs/topology/shapeRef/scoring.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts +0 -59
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js +0 -266
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts +0 -153
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js +0 -6
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts +0 -24
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js +0 -128
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeUtils.d.ts +0 -16
- package/dist/vendored/brepjs/topology/shapeUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeUtils.js +0 -28
- package/dist/vendored/brepjs/topology/shapeUtils.js.map +0 -1
- package/dist/vendored/brepjs/topology/solidBuilders.d.ts +0 -74
- package/dist/vendored/brepjs/topology/solidBuilders.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/solidBuilders.js +0 -173
- package/dist/vendored/brepjs/topology/solidBuilders.js.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts +0 -47
- package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceBuilders.js +0 -162
- package/dist/vendored/brepjs/topology/surfaceBuilders.js.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceFns.d.ts +0 -41
- package/dist/vendored/brepjs/topology/surfaceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceFns.js +0 -178
- package/dist/vendored/brepjs/topology/surfaceFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/threeHelpers.d.ts +0 -124
- package/dist/vendored/brepjs/topology/threeHelpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/threeHelpers.js +0 -118
- package/dist/vendored/brepjs/topology/threeHelpers.js.map +0 -1
- package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts +0 -100
- package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/topologyQueryFns.js +0 -307
- package/dist/vendored/brepjs/topology/topologyQueryFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/transformFns.d.ts +0 -69
- package/dist/vendored/brepjs/topology/transformFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/transformFns.js +0 -235
- package/dist/vendored/brepjs/topology/transformFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/wrapperFns.d.ts +0 -169
- package/dist/vendored/brepjs/topology/wrapperFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/wrapperFns.js +0 -291
- package/dist/vendored/brepjs/topology/wrapperFns.js.map +0 -1
- package/dist/vendored/brepjs/topology.d.ts +0 -28
- package/dist/vendored/brepjs/topology.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology.js +0 -39
- package/dist/vendored/brepjs/topology.js.map +0 -1
- package/dist/vendored/brepjs/utils/arrayAccess.d.ts +0 -12
- package/dist/vendored/brepjs/utils/arrayAccess.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/arrayAccess.js +0 -25
- package/dist/vendored/brepjs/utils/arrayAccess.js.map +0 -1
- package/dist/vendored/brepjs/utils/bug.d.ts +0 -15
- package/dist/vendored/brepjs/utils/bug.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/bug.js +0 -21
- package/dist/vendored/brepjs/utils/bug.js.map +0 -1
- package/dist/vendored/brepjs/utils/ioFilename.d.ts +0 -3
- package/dist/vendored/brepjs/utils/ioFilename.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/ioFilename.js +0 -7
- package/dist/vendored/brepjs/utils/ioFilename.js.map +0 -1
- package/dist/vendored/brepjs/utils/precisionRound.d.ts +0 -11
- package/dist/vendored/brepjs/utils/precisionRound.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/precisionRound.js +0 -19
- package/dist/vendored/brepjs/utils/precisionRound.js.map +0 -1
- package/dist/vendored/brepjs/utils/quaternion.d.ts +0 -18
- package/dist/vendored/brepjs/utils/quaternion.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/quaternion.js +0 -68
- package/dist/vendored/brepjs/utils/quaternion.js.map +0 -1
- package/dist/vendored/brepjs/utils/range.d.ts +0 -3
- package/dist/vendored/brepjs/utils/range.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/range.js +0 -5
- package/dist/vendored/brepjs/utils/range.js.map +0 -1
- package/dist/vendored/brepjs/utils/uuid.d.ts +0 -3
- package/dist/vendored/brepjs/utils/uuid.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/uuid.js +0 -7
- package/dist/vendored/brepjs/utils/uuid.js.map +0 -1
- package/dist/vendored/brepjs/utils/vec2d.d.ts +0 -62
- package/dist/vendored/brepjs/utils/vec2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/vec2d.js +0 -107
- package/dist/vendored/brepjs/utils/vec2d.js.map +0 -1
- package/dist/vendored/brepjs/utils/vec3.d.ts +0 -32
- package/dist/vendored/brepjs/utils/vec3.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/vec3.js +0 -35
- package/dist/vendored/brepjs/utils/vec3.js.map +0 -1
- package/dist/vendored/brepjs/utils/zip.d.ts +0 -5
- package/dist/vendored/brepjs/utils/zip.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/zip.js +0 -8
- package/dist/vendored/brepjs/utils/zip.js.map +0 -1
- package/dist/vendored/brepjs/vectors.d.ts +0 -11
- package/dist/vendored/brepjs/vectors.d.ts.map +0 -1
- package/dist/vendored/brepjs/vectors.js +0 -9
- package/dist/vendored/brepjs/vectors.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinery-brep.js","sourceRoot":"","sources":["../../../src/api/brep-operations/joinery-brep.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * BREP 榫卯结构操作 — 用 OCCT 精确实体复刻 mesh 路径的榫卯布尔序列\n *\n * See docs/api-contract.md §8 (dual-path geometry contract) and §10.5 (split).\n *\n * 与 mesh 路径(joinery-shapes.ts + csg-worker.ts)对照:\n * - mesh 路径:buildWedgeGeometry/buildDowelGeometry/buildStraightTenonGeometry → Manifold CSG\n * - BREP 路径:buildWedgeSolid/buildDowelSolid/buildTenonSolid → OCCT fuse/cut/common\n *\n * 坐标框架与 mesh 路径完全一致:\n * - normal: 切割平面法线(单位向量,指向上方)\n * - widthDir: 挤出方向(单位向量)\n * - depthDir = normalize(cross(normal, widthDir))\n * - planeCenter: 切割平面中心\n *\n * 所有函数都是纯函数,输入输出均为 OCCT BrepHandle,调用方负责句柄生命周期。\n */\n\nimport * as THREE from 'three'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport type { BrepEngineApi } from '../../brep/engine/primitives'\nimport type { Vec3 } from '../../mesh/types'\nimport { getSolidBoundingBox } from '../../brep/brep-utils'\nimport { splitBrep, matrixToArray } from '../../brep/brep-ops'\nimport { DEFAULT_LINEAR_DEFLECTION } from '../../tolerance'\nimport { mm } from '../../units'\n\n// ─── 坐标框架 ───\n\n/** 榫卯操作的坐标框架(与 joinery-shapes.ts 一致) */\nexport interface JoineryBasis {\n /** 切割平面法线(单位向量) */\n normal: Vec3\n /** 宽度/挤出方向(单位向量) */\n widthDir: Vec3\n /** 深度方向 = normalize(cross(normal, widthDir)) */\n depthDir: Vec3\n /** 切割平面中心 */\n planeCenter: Vec3\n /** 平面原点偏移 = dot(normal, planeCenter) */\n planeDistance: number\n}\n\n// ─── Union-Find(与 csg-worker.ts SimpleUnionFind 一致) ───\n\nclass SimpleUnionFind {\n private parent: number[]\n private rank: number[]\n\n constructor(n: number) {\n this.parent = Array.from({ length: n }, (_, i) => i)\n this.rank = new Array(n).fill(0)\n }\n\n find(x: number): number {\n if (this.parent[x] !== x) {\n this.parent[x] = this.find(this.parent[x])\n }\n return this.parent[x]\n }\n\n union(x: number, y: number): void {\n const px = this.find(x)\n const py = this.find(y)\n if (px === py) return\n if (this.rank[px] < this.rank[py]) {\n this.parent[px] = py\n } else if (this.rank[px] > this.rank[py]) {\n this.parent[py] = px\n } else {\n this.parent[py] = px\n this.rank[px]++\n }\n }\n}\n\n// ─── 截面分析(从 mesh 三角化提取截面信息,与 csg-worker.ts 算法一致) ───\n\ninterface MeshData {\n positions: Float32Array\n indices: Uint32Array\n}\n\n/**\n * 检测切割平面上的帽面连通分量。\n *\n * 与 csg-worker.ts detectCapComponents 算法一致:\n * 1. 找到所有顶点在切割平面上的三角形\n * 2. 用 union-find 按共享顶点分组\n * 3. 返回每分量的顶点索引集合\n */\nfunction detectCapComponentsFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n): Set<number>[] {\n const eps = 0.001\n const { positions, indices } = mesh\n const vertCount = positions.length / 3\n if (indices.length === 0) return []\n\n // 找到所有帽面三角形\n const capVertSet = new Set<number>()\n interface CapTri { v0: number; v1: number; v2: number }\n const capTris: CapTri[] = []\n const triCount = indices.length / 3\n for (let t = 0; t < triCount; t++) {\n const i0 = indices[t * 3]\n const i1 = indices[t * 3 + 1]\n const i2 = indices[t * 3 + 2]\n const d0 = Math.abs(\n positions[i0 * 3] * normal[0] +\n positions[i0 * 3 + 1] * normal[1] +\n positions[i0 * 3 + 2] * normal[2] - planeDistance,\n )\n const d1 = Math.abs(\n positions[i1 * 3] * normal[0] +\n positions[i1 * 3 + 1] * normal[1] +\n positions[i1 * 3 + 2] * normal[2] - planeDistance,\n )\n const d2 = Math.abs(\n positions[i2 * 3] * normal[0] +\n positions[i2 * 3 + 1] * normal[1] +\n positions[i2 * 3 + 2] * normal[2] - planeDistance,\n )\n if (d0 < eps && d1 < eps && d2 < eps) {\n capTris.push({ v0: i0, v1: i1, v2: i2 })\n capVertSet.add(i0); capVertSet.add(i1); capVertSet.add(i2)\n }\n }\n if (capTris.length === 0) return []\n\n // Union-find 按共享顶点分组\n const uf = new SimpleUnionFind(vertCount)\n for (const tri of capTris) {\n uf.union(tri.v0, tri.v1)\n uf.union(tri.v1, tri.v2)\n uf.union(tri.v0, tri.v2)\n }\n\n // 按根节点分组\n const compMap = new Map<number, Set<number>>()\n for (const vi of capVertSet) {\n const root = uf.find(vi)\n if (!compMap.has(root)) compMap.set(root, new Set<number>())\n compMap.get(root)!.add(vi)\n }\n\n return Array.from(compMap.values())\n}\n\n/**\n * 计算切割平面上截面顶点的质心。\n *\n * 与 csg-worker.ts computeCrossSectionCentroid 算法一致。\n */\nfunction computeCrossSectionCentroidFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n fallback: Vec3,\n comp?: Set<number>,\n): Vec3 {\n const eps = 0.001\n const { positions } = mesh\n let cx = 0, cy = 0, cz = 0\n let count = 0\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n cx += x\n cy += y\n cz += z\n count++\n }\n }\n\n if (count === 0) return fallback\n return [cx / count, cy / count, cz / count]\n}\n\n/**\n * 计算切割平面上截面沿指定方向的宽度。\n *\n * 与 csg-worker.ts computeCrossSectionWidth 算法一致。\n */\nfunction computeCrossSectionWidthFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n widthDir: Vec3,\n comp?: Set<number>,\n): number {\n const eps = 0.001\n const { positions } = mesh\n let minProj = Infinity\n let maxProj = -Infinity\n let found = false\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n const proj = x * widthDir[0] + y * widthDir[1] + z * widthDir[2]\n if (proj < minProj) minProj = proj\n if (proj > maxProj) maxProj = proj\n found = true\n }\n }\n\n if (!found) return 0\n return maxProj - minProj\n}\n\n/** 将 OCCT solid 三角化为 MeshData(用于截面分析) */\nfunction solidToMeshData(kernel: BrepEngineApi, solid: BrepHandle): MeshData {\n const mesh = kernel.meshShape(solid, {\n linearDeflection: DEFAULT_LINEAR_DEFLECTION.as(mm),\n angularDeflection: (2 * Math.PI) / 32,\n })\n return {\n positions: new Float32Array(mesh.positions),\n indices: new Uint32Array(mesh.indices),\n }\n}\n\n// ─── 基本体构造(BREP 等价物) ───\n\n/**\n * 构造局部的变换矩阵:local X → widthDir, Y → depthDir, Z → normal,再平移到 origin。\n */\nfunction makeBasisTransform(basis: JoineryBasis, origin: Vec3): THREE.Matrix4 {\n const basisMatrix = new THREE.Matrix4().makeBasis(\n new THREE.Vector3(...basis.widthDir),\n new THREE.Vector3(...basis.depthDir),\n new THREE.Vector3(...basis.normal),\n )\n const transMatrix = new THREE.Matrix4().makeTranslation(origin[0], origin[1], origin[2])\n return new THREE.Matrix4().multiplyMatrices(transMatrix, basisMatrix)\n}\n\n/**\n * 梯形棱柱(燕尾楔)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildWedgeGeometry 的 8 顶点拓扑:\n * - 梯形截面在 normal-depthDir 平面\n * - 底边(宽)在 planeCenter - normal*depth\n * - 顶边(窄)在 planeCenter\n * - 沿 widthDir 拉伸 extrudeLength,居中于 planeCenter\n *\n * 用 kernel.makeLineEdge + makeWire + makeFace + extrude 构造实体,\n * 然后用 transform 对齐到世界坐标系。\n * @param kernel - the BREP engine API.\n * @param basis - the joinery coordinate frame (normal/widthDir/depthDir/planeCenter).\n * @param depth - the wedge depth along the normal direction.\n * @param width - the wedge bottom width.\n * @param angleDeg - the dovetail flap angle in degrees.\n * @param extrudeLength - the extrusion length along the width direction.\n * @returns the constructed wedge solid handle.\n */\nexport function buildWedgeSolid(\n kernel: BrepEngineApi,\n basis: JoineryBasis,\n depth: number,\n width: number,\n angleDeg: number,\n extrudeLength: number,\n): BrepHandle {\n const { planeCenter } = basis\n const angleRad = (angleDeg * Math.PI) / 180\n\n const halfWidth = width / 2\n const halfTopWidth = Math.max(0, halfWidth - depth / Math.tan(angleRad))\n const halfExtrude = extrudeLength / 2\n\n // 在局部坐标系中构造梯形面(YZ 平面,X = -halfExtrude)\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const xLocal = -halfExtrude\n const v0 = { x: xLocal, y: -halfWidth, z: -depth } // bottomLeft\n const v1 = { x: xLocal, y: halfWidth, z: -depth } // bottomRight\n const v2 = { x: xLocal, y: halfTopWidth, z: 0 } // topRight\n const v3 = { x: xLocal, y: -halfTopWidth, z: 0 } // topLeft\n\n // 构建梯形 wire\n const edges: BrepHandle[] = []\n edges.push(kernel.makeLineEdge(v0, v1))\n edges.push(kernel.makeLineEdge(v1, v2))\n edges.push(kernel.makeLineEdge(v2, v3))\n edges.push(kernel.makeLineEdge(v3, v0))\n\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n\n // 沿 X 轴(= widthDir)拉伸 extrudeLength\n const extruded = kernel.extrude(face, extrudeLength, 0, 0)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, planeCenter)\n const result = kernel.transform(extruded, matrixToArray(fullMatrix))\n kernel.release(extruded)\n\n return result\n}\n\n/**\n * 圆柱(定位销)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildDowelGeometry:\n * - 圆截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeCylinder + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the dowel is placed.\n * @param basis - the joinery coordinate frame.\n * @param diameter - the dowel diameter.\n * @param height - the dowel height along the normal direction.\n * @returns the constructed dowel solid handle.\n */\nexport function buildDowelSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n diameter: number,\n height: number,\n): BrepHandle {\n const radius = diameter / 2\n const { normal } = basis\n\n // OCCT makeCylinder 创建 Z 轴方向圆柱(Z=0 → Z=height)\n // 需要旋转使 Z 轴对齐 -normal(圆柱向下延伸),且顶部在 centroid\n const cyl = kernel.makeCylinder(radius, height)\n\n // 旋转 Z → -normal\n const zAxis = new THREE.Vector3(0, 0, 1)\n const negNormal = new THREE.Vector3(-normal[0], -normal[1], -normal[2]).normalize()\n const quat = new THREE.Quaternion().setFromUnitVectors(zAxis, negNormal)\n const rotMatrix = new THREE.Matrix4().makeRotationFromQuaternion(quat)\n\n // 平移到 centroid(旋转后 Z=0 对应 centroid,即切割平面上的顶面)\n const transMatrix = new THREE.Matrix4().makeTranslation(centroid[0], centroid[1], centroid[2])\n const fullMatrix = new THREE.Matrix4().multiplyMatrices(transMatrix, rotMatrix)\n\n const result = kernel.transform(cyl, matrixToArray(fullMatrix))\n kernel.release(cyl)\n\n return result\n}\n\n/**\n * 长方体(直榫)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildStraightTenonGeometry:\n * - 方截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeBoxFromCorners + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the tenon is placed.\n * @param basis - the joinery coordinate frame.\n * @param sideLength - the tenon square side length.\n * @param height - the tenon height along the normal direction.\n * @returns the constructed tenon solid handle.\n */\nexport function buildTenonSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n sideLength: number,\n height: number,\n): BrepHandle {\n const half = sideLength / 2\n\n // 在局部坐标系中创建盒子:X ∈ [-half, half], Y ∈ [-half, half], Z ∈ [-height, 0]\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const localBox = kernel.makeBoxFromCorners(\n { x: -half, y: -half, z: -height },\n { x: half, y: half, z: 0 },\n )\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, centroid)\n const result = kernel.transform(localBox, matrixToArray(fullMatrix))\n kernel.release(localBox)\n\n return result\n}\n\n// ─── 截面质心 / 多截面检测 ───\n\n/** 截面分量信息 */\nexport interface CrossSectionComponent {\n /** 分量质心 */\n centroid: Vec3\n /** 分量面积(近似,用于排序) */\n area: number\n}\n\n/**\n * 检测上部实体在切割平面上的截面连通分量。\n *\n * BREP 等价物:将 upper solid 三角化后,用与 mesh 路径 detectCapComponents\n * 完全相同的算法(找帽面三角形 → union-find)检测连通分量。\n *\n * 与 csg-worker.ts detectCapComponents + computeCrossSectionCentroid 一致。\n * @param kernel - the BREP engine API.\n * @param upper - the upper solid whose cross section is analyzed.\n * @param basis - the joinery coordinate frame.\n * @returns the detected cross-section components (centroid + area).\n */\nexport function detectCrossSectionComponents(\n kernel: BrepEngineApi,\n upper: BrepHandle,\n basis: JoineryBasis,\n): CrossSectionComponent[] {\n const { normal, planeDistance, widthDir, depthDir, planeCenter } = basis\n const mesh = solidToMeshData(kernel, upper)\n const components = detectCapComponentsFromMesh(mesh, normal, planeDistance)\n\n if (components.length === 0) {\n // 无帽面 → 返回单个全局质心(planeCenter)作为回退\n return [{ centroid: planeCenter, area: 0 }]\n }\n\n return components.map(comp => {\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter, comp)\n const compWidth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, widthDir, comp)\n const compDepth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, depthDir, comp)\n return { centroid, area: compWidth * compDepth }\n })\n}\n\n// ─── 布尔序列(1:1 复刻 csg-worker.ts) ───\n\n/** dovetail 布尔分割的结果 */\nexport interface DovetailSplitBrepResult {\n /** 上部 + 楔(法线正方向半部分加燕尾榫) */\n front: BrepHandle\n /** 下部 - 凹腔(法线负方向半部分减燕尾槽) */\n back: BrepHandle\n}\n\n/** dowel/tenon 布尔分割的结果 */\nexport interface DowelOrTenonSplitBrepResult {\n /** 上部 + 销/榫(法线正方向半部分加圆柱/方柱) */\n front: BrepHandle\n /** 下部 - 孔(法线负方向半部分减圆柱/方柱) */\n back: BrepHandle\n}\n\n/** groove 参数 */\nexport interface GrooveParams {\n depth: number\n depthTolerance: number\n width: number\n widthTolerance: number\n flapsAngle: number\n}\n\n/**\n * Dovetail(燕尾)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dovetailBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. 计算 crossSectionWidth(bbox 投影近似)\n * 3. buildWedgeSolid(overhang=20)→ common(wedge, lower) 裁剪贴合\n * 4. fuse(upper, wedgeTrimmed) → upper'\n * 5. buildWedgeSolid(公差)→ cut(lower, wedgeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param groove - the dovetail groove parameters.\n * @returns the split result with front (upper + wedge) and back (lower - cavity) handles.\n */\nexport function dovetailBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n groove: GrooveParams,\n): DovetailSplitBrepResult {\n const { normal, widthDir, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 计算截面宽度(bbox 投影近似,后续 common 会裁回真实边界)\n const upperBbox = getSolidBoundingBox(kernel, upper)\n const upperSize: Vec3 = [\n upperBbox.max[0] - upperBbox.min[0],\n upperBbox.max[1] - upperBbox.min[1],\n upperBbox.max[2] - upperBbox.min[2],\n ]\n let crossSectionWidth =\n Math.abs(upperSize[0] * widthDir[0]) +\n Math.abs(upperSize[1] * widthDir[1]) +\n Math.abs(upperSize[2] * widthDir[2])\n if (crossSectionWidth <= 0) crossSectionWidth = 10 // 安全回退\n const extrudeLength = crossSectionWidth + 0.2\n const overhang = 20\n\n // Step 3: 构造楔(带 overhang)\n const wedgeW = buildWedgeSolid(kernel, basis, groove.depth, groove.width, groove.flapsAngle, extrudeLength + overhang)\n\n // Step 4: common(wedge, lower) → 裁剪楔贴合模型边界\n const wedgeTrimmed = kernel.common(wedgeW, lower)\n kernel.release(wedgeW)\n\n // Step 5: fuse(upper, wedgeTrimmed) → upper'\n const newUpper = kernel.fuse(upper, wedgeTrimmed)\n kernel.release(upper)\n kernel.release(wedgeTrimmed)\n upper = newUpper\n\n // Step 6: 构造公差楔\n const wedgeTol = buildWedgeSolid(\n kernel, basis,\n groove.depth + groove.depthTolerance,\n groove.width + groove.widthTolerance,\n groove.flapsAngle,\n extrudeLength + overhang,\n )\n\n // Step 7: cut(lower, wedgeTol) → lower'\n const newLower = kernel.cut(lower, wedgeTol)\n kernel.release(lower)\n kernel.release(wedgeTol)\n lower = newLower\n\n return { front: upper, back: lower }\n}\n\n/** dowel/tenon 参数 */\nexport interface DowelOrTenonParams {\n /** 直径(dowel)或边长(tenon) */\n size: number\n /** 尺寸公差 */\n sizeTolerance: number\n /** 高度 */\n height: number\n /** 高度公差 */\n heightTolerance: number\n}\n\n/**\n * Dowel(定位销)/ Tenon(直榫)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dowelOrTenonBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. detectCrossSectionComponents → 截面质心列表\n * 3. 对每个质心:buildShapeSolid → fuse(upper, shape) → upper'\n * 4. 对每个质心:buildShapeSolid(公差)→ cut(lower, shapeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param shape - whether to build a dowel or a tenon.\n * @param params - the dowel/tenon size and tolerance parameters.\n * @param selectedSections - optional indices of cross-section components to place shapes on.\n * @returns the split result with front (upper + shape) and back (lower - hole) handles.\n */\nexport function dowelOrTenonBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n shape: 'dowel' | 'tenon',\n params: DowelOrTenonParams,\n selectedSections?: number[] | null,\n): DowelOrTenonSplitBrepResult {\n const { normal, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 检测截面分量\n const components = detectCrossSectionComponents(kernel, upper, basis)\n\n // 构建放置位置列表\n interface Placement { centroid: Vec3 }\n let placements: Placement[]\n\n if (components.length <= 1 || !selectedSections || selectedSections.length === 0) {\n // 单截面或无选择 → 全局质心(向后兼容)\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n } else {\n // 多截面:按面积降序排,取选择的分量\n const sorted = [...components].sort((a, b) => b.area - a.area)\n placements = []\n for (const selId of selectedSections) {\n if (selId < sorted.length) {\n placements.push({ centroid: sorted[selId].centroid })\n }\n }\n if (placements.length === 0) {\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n }\n }\n\n // Step 3: 对每个质心构造基本体并 fuse 到 upper\n for (const { centroid } of placements) {\n let shapeC: BrepHandle\n if (shape === 'dowel') {\n shapeC = buildDowelSolid(kernel, centroid, basis, params.size, params.height)\n } else {\n shapeC = buildTenonSolid(kernel, centroid, basis, params.size, params.height)\n }\n\n const newUpper = kernel.fuse(upper, shapeC)\n kernel.release(upper)\n kernel.release(shapeC)\n upper = newUpper\n }\n\n // Step 4: 对每个质心构造公差体并 cut 从 lower\n const tolSize = params.size + params.sizeTolerance\n const tolHeight = params.height + params.heightTolerance\n\n for (const { centroid } of placements) {\n let shapeCTol: BrepHandle\n if (shape === 'dowel') {\n shapeCTol = buildDowelSolid(kernel, centroid, basis, tolSize, tolHeight)\n } else {\n shapeCTol = buildTenonSolid(kernel, centroid, basis, tolSize, tolHeight)\n }\n\n const newLower = kernel.cut(lower, shapeCTol)\n kernel.release(lower)\n kernel.release(shapeCTol)\n lower = newLower\n }\n\n return { front: upper, back: lower }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"joinery-brep.js","sourceRoot":"","sources":["../../../src/api/brep-operations/joinery-brep.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * BREP 榫卯结构操作 — 用 OCCT 精确实体复刻 mesh 路径的榫卯布尔序列\n *\n * See docs/api-contract.md §8 (dual-path geometry contract) and §10.5 (split).\n *\n * 与 mesh 路径(joinery-shapes.ts + csg-worker.ts)对照:\n * - mesh 路径:buildWedgeGeometry/buildDowelGeometry/buildStraightTenonGeometry → Manifold CSG\n * - BREP 路径:buildWedgeSolid/buildDowelSolid/buildTenonSolid → OCCT fuse/cut/common\n *\n * 坐标框架与 mesh 路径完全一致:\n * - normal: 切割平面法线(单位向量,指向上方)\n * - widthDir: 挤出方向(单位向量)\n * - depthDir = normalize(cross(normal, widthDir))\n * - planeCenter: 切割平面中心\n *\n * 所有函数都是纯函数,输入输出均为 OCCT BrepHandle,调用方负责句柄生命周期。\n */\n\nimport { Vec3 as Vec3C, Mat4, Quat } from '../../math3d'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport type { BrepEngineApi } from '../../brep/engine/primitives'\nimport type { Vec3 } from '../../mesh/types'\nimport { getSolidBoundingBox } from '../../brep/brep-utils'\nimport { splitBrep, matrixToArray } from '../../brep/brep-ops'\nimport { DEFAULT_LINEAR_DEFLECTION } from '../../tolerance'\nimport { mm } from '../../units'\n\n// ─── 坐标框架 ───\n\n/** 榫卯操作的坐标框架(与 joinery-shapes.ts 一致) */\nexport interface JoineryBasis {\n /** 切割平面法线(单位向量) */\n normal: Vec3\n /** 宽度/挤出方向(单位向量) */\n widthDir: Vec3\n /** 深度方向 = normalize(cross(normal, widthDir)) */\n depthDir: Vec3\n /** 切割平面中心 */\n planeCenter: Vec3\n /** 平面原点偏移 = dot(normal, planeCenter) */\n planeDistance: number\n}\n\n// ─── Union-Find(与 csg-worker.ts SimpleUnionFind 一致) ───\n\nclass SimpleUnionFind {\n private parent: number[]\n private rank: number[]\n\n constructor(n: number) {\n this.parent = Array.from({ length: n }, (_, i) => i)\n this.rank = new Array(n).fill(0)\n }\n\n find(x: number): number {\n if (this.parent[x] !== x) {\n this.parent[x] = this.find(this.parent[x])\n }\n return this.parent[x]\n }\n\n union(x: number, y: number): void {\n const px = this.find(x)\n const py = this.find(y)\n if (px === py) return\n if (this.rank[px] < this.rank[py]) {\n this.parent[px] = py\n } else if (this.rank[px] > this.rank[py]) {\n this.parent[py] = px\n } else {\n this.parent[py] = px\n this.rank[px]++\n }\n }\n}\n\n// ─── 截面分析(从 mesh 三角化提取截面信息,与 csg-worker.ts 算法一致) ───\n\ninterface MeshData {\n positions: Float32Array\n indices: Uint32Array\n}\n\n/**\n * 检测切割平面上的帽面连通分量。\n *\n * 与 csg-worker.ts detectCapComponents 算法一致:\n * 1. 找到所有顶点在切割平面上的三角形\n * 2. 用 union-find 按共享顶点分组\n * 3. 返回每分量的顶点索引集合\n */\nfunction detectCapComponentsFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n): Set<number>[] {\n const eps = 0.001\n const { positions, indices } = mesh\n const vertCount = positions.length / 3\n if (indices.length === 0) return []\n\n // 找到所有帽面三角形\n const capVertSet = new Set<number>()\n interface CapTri { v0: number; v1: number; v2: number }\n const capTris: CapTri[] = []\n const triCount = indices.length / 3\n for (let t = 0; t < triCount; t++) {\n const i0 = indices[t * 3]\n const i1 = indices[t * 3 + 1]\n const i2 = indices[t * 3 + 2]\n const d0 = Math.abs(\n positions[i0 * 3] * normal[0] +\n positions[i0 * 3 + 1] * normal[1] +\n positions[i0 * 3 + 2] * normal[2] - planeDistance,\n )\n const d1 = Math.abs(\n positions[i1 * 3] * normal[0] +\n positions[i1 * 3 + 1] * normal[1] +\n positions[i1 * 3 + 2] * normal[2] - planeDistance,\n )\n const d2 = Math.abs(\n positions[i2 * 3] * normal[0] +\n positions[i2 * 3 + 1] * normal[1] +\n positions[i2 * 3 + 2] * normal[2] - planeDistance,\n )\n if (d0 < eps && d1 < eps && d2 < eps) {\n capTris.push({ v0: i0, v1: i1, v2: i2 })\n capVertSet.add(i0); capVertSet.add(i1); capVertSet.add(i2)\n }\n }\n if (capTris.length === 0) return []\n\n // Union-find 按共享顶点分组\n const uf = new SimpleUnionFind(vertCount)\n for (const tri of capTris) {\n uf.union(tri.v0, tri.v1)\n uf.union(tri.v1, tri.v2)\n uf.union(tri.v0, tri.v2)\n }\n\n // 按根节点分组\n const compMap = new Map<number, Set<number>>()\n for (const vi of capVertSet) {\n const root = uf.find(vi)\n if (!compMap.has(root)) compMap.set(root, new Set<number>())\n compMap.get(root)!.add(vi)\n }\n\n return Array.from(compMap.values())\n}\n\n/**\n * 计算切割平面上截面顶点的质心。\n *\n * 与 csg-worker.ts computeCrossSectionCentroid 算法一致。\n */\nfunction computeCrossSectionCentroidFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n fallback: Vec3,\n comp?: Set<number>,\n): Vec3 {\n const eps = 0.001\n const { positions } = mesh\n let cx = 0, cy = 0, cz = 0\n let count = 0\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n cx += x\n cy += y\n cz += z\n count++\n }\n }\n\n if (count === 0) return fallback\n return [cx / count, cy / count, cz / count]\n}\n\n/**\n * 计算切割平面上截面沿指定方向的宽度。\n *\n * 与 csg-worker.ts computeCrossSectionWidth 算法一致。\n */\nfunction computeCrossSectionWidthFromMesh(\n mesh: MeshData,\n normal: Vec3,\n planeDistance: number,\n widthDir: Vec3,\n comp?: Set<number>,\n): number {\n const eps = 0.001\n const { positions } = mesh\n let minProj = Infinity\n let maxProj = -Infinity\n let found = false\n\n const vertCount = positions.length / 3\n for (let i = 0; i < vertCount; i++) {\n if (comp && !comp.has(i)) continue\n\n const x = positions[i * 3]\n const y = positions[i * 3 + 1]\n const z = positions[i * 3 + 2]\n\n const dist = x * normal[0] + y * normal[1] + z * normal[2] - planeDistance\n if (Math.abs(dist) < eps) {\n const proj = x * widthDir[0] + y * widthDir[1] + z * widthDir[2]\n if (proj < minProj) minProj = proj\n if (proj > maxProj) maxProj = proj\n found = true\n }\n }\n\n if (!found) return 0\n return maxProj - minProj\n}\n\n/** 将 OCCT solid 三角化为 MeshData(用于截面分析) */\nfunction solidToMeshData(kernel: BrepEngineApi, solid: BrepHandle): MeshData {\n const mesh = kernel.meshShape(solid, {\n linearDeflection: DEFAULT_LINEAR_DEFLECTION.as(mm),\n angularDeflection: (2 * Math.PI) / 32,\n })\n return {\n positions: new Float32Array(mesh.positions),\n indices: new Uint32Array(mesh.indices),\n }\n}\n\n// ─── 基本体构造(BREP 等价物) ───\n\n/**\n * 构造局部的变换矩阵:local X → widthDir, Y → depthDir, Z → normal,再平移到 origin。\n */\nfunction makeBasisTransform(basis: JoineryBasis, origin: Vec3): Mat4 {\n const basisMatrix = new Mat4().makeBasis(\n new Vec3C(...basis.widthDir),\n new Vec3C(...basis.depthDir),\n new Vec3C(...basis.normal),\n )\n const transMatrix = new Mat4().makeTranslation(origin[0], origin[1], origin[2])\n return new Mat4().multiplyMatrices(transMatrix, basisMatrix)\n}\n\n/**\n * 梯形棱柱(燕尾楔)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildWedgeGeometry 的 8 顶点拓扑:\n * - 梯形截面在 normal-depthDir 平面\n * - 底边(宽)在 planeCenter - normal*depth\n * - 顶边(窄)在 planeCenter\n * - 沿 widthDir 拉伸 extrudeLength,居中于 planeCenter\n *\n * 用 kernel.makeLineEdge + makeWire + makeFace + extrude 构造实体,\n * 然后用 transform 对齐到世界坐标系。\n * @param kernel - the BREP engine API.\n * @param basis - the joinery coordinate frame (normal/widthDir/depthDir/planeCenter).\n * @param depth - the wedge depth along the normal direction.\n * @param width - the wedge bottom width.\n * @param angleDeg - the dovetail flap angle in degrees.\n * @param extrudeLength - the extrusion length along the width direction.\n * @returns the constructed wedge solid handle.\n */\nexport function buildWedgeSolid(\n kernel: BrepEngineApi,\n basis: JoineryBasis,\n depth: number,\n width: number,\n angleDeg: number,\n extrudeLength: number,\n): BrepHandle {\n const { planeCenter } = basis\n const angleRad = (angleDeg * Math.PI) / 180\n\n const halfWidth = width / 2\n const halfTopWidth = Math.max(0, halfWidth - depth / Math.tan(angleRad))\n const halfExtrude = extrudeLength / 2\n\n // 在局部坐标系中构造梯形面(YZ 平面,X = -halfExtrude)\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const xLocal = -halfExtrude\n const v0 = { x: xLocal, y: -halfWidth, z: -depth } // bottomLeft\n const v1 = { x: xLocal, y: halfWidth, z: -depth } // bottomRight\n const v2 = { x: xLocal, y: halfTopWidth, z: 0 } // topRight\n const v3 = { x: xLocal, y: -halfTopWidth, z: 0 } // topLeft\n\n // 构建梯形 wire\n const edges: BrepHandle[] = []\n edges.push(kernel.makeLineEdge(v0, v1))\n edges.push(kernel.makeLineEdge(v1, v2))\n edges.push(kernel.makeLineEdge(v2, v3))\n edges.push(kernel.makeLineEdge(v3, v0))\n\n const wire = kernel.makeWire(edges)\n const face = kernel.makeFace(wire)\n\n // 沿 X 轴(= widthDir)拉伸 extrudeLength\n const extruded = kernel.extrude(face, extrudeLength, 0, 0)\n\n // 释放中间句柄\n for (const e of edges) kernel.release(e)\n kernel.release(wire)\n kernel.release(face)\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, planeCenter)\n const result = kernel.transform(extruded, matrixToArray(fullMatrix))\n kernel.release(extruded)\n\n return result\n}\n\n/**\n * 圆柱(定位销)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildDowelGeometry:\n * - 圆截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeCylinder + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the dowel is placed.\n * @param basis - the joinery coordinate frame.\n * @param diameter - the dowel diameter.\n * @param height - the dowel height along the normal direction.\n * @returns the constructed dowel solid handle.\n */\nexport function buildDowelSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n diameter: number,\n height: number,\n): BrepHandle {\n const radius = diameter / 2\n const { normal } = basis\n\n // OCCT makeCylinder 创建 Z 轴方向圆柱(Z=0 → Z=height)\n // 需要旋转使 Z 轴对齐 -normal(圆柱向下延伸),且顶部在 centroid\n const cyl = kernel.makeCylinder(radius, height)\n\n // 旋转 Z → -normal\n const zAxis = new Vec3C(0, 0, 1)\n const negNormal = new Vec3C(-normal[0], -normal[1], -normal[2]).normalize()\n const quat = new Quat().setFromUnitVectors(zAxis, negNormal)\n const rotMatrix = new Mat4().makeRotationFromQuaternion(quat)\n\n // 平移到 centroid(旋转后 Z=0 对应 centroid,即切割平面上的顶面)\n const transMatrix = new Mat4().makeTranslation(centroid[0], centroid[1], centroid[2])\n const fullMatrix = new Mat4().multiplyMatrices(transMatrix, rotMatrix)\n\n const result = kernel.transform(cyl, matrixToArray(fullMatrix))\n kernel.release(cyl)\n\n return result\n}\n\n/**\n * 长方体(直榫)— BREP 等价物。\n *\n * 复刻 joinery-shapes.ts buildStraightTenonGeometry:\n * - 方截面在 widthDir-depthDir 平面,中心在 centroid\n * - 从切割平面向下延伸 height(沿 -normal)\n *\n * 用 kernel.makeBoxFromCorners + transform 对齐方向。\n * @param kernel - the BREP engine API.\n * @param centroid - the centroid where the tenon is placed.\n * @param basis - the joinery coordinate frame.\n * @param sideLength - the tenon square side length.\n * @param height - the tenon height along the normal direction.\n * @returns the constructed tenon solid handle.\n */\nexport function buildTenonSolid(\n kernel: BrepEngineApi,\n centroid: Vec3,\n basis: JoineryBasis,\n sideLength: number,\n height: number,\n): BrepHandle {\n const half = sideLength / 2\n\n // 在局部坐标系中创建盒子:X ∈ [-half, half], Y ∈ [-half, half], Z ∈ [-height, 0]\n // 局部: X → widthDir, Y → depthDir, Z → normal\n const localBox = kernel.makeBoxFromCorners(\n { x: -half, y: -half, z: -height },\n { x: half, y: half, z: 0 },\n )\n\n // 变换到世界坐标系\n const fullMatrix = makeBasisTransform(basis, centroid)\n const result = kernel.transform(localBox, matrixToArray(fullMatrix))\n kernel.release(localBox)\n\n return result\n}\n\n// ─── 截面质心 / 多截面检测 ───\n\n/** 截面分量信息 */\nexport interface CrossSectionComponent {\n /** 分量质心 */\n centroid: Vec3\n /** 分量面积(近似,用于排序) */\n area: number\n}\n\n/**\n * 检测上部实体在切割平面上的截面连通分量。\n *\n * BREP 等价物:将 upper solid 三角化后,用与 mesh 路径 detectCapComponents\n * 完全相同的算法(找帽面三角形 → union-find)检测连通分量。\n *\n * 与 csg-worker.ts detectCapComponents + computeCrossSectionCentroid 一致。\n * @param kernel - the BREP engine API.\n * @param upper - the upper solid whose cross section is analyzed.\n * @param basis - the joinery coordinate frame.\n * @returns the detected cross-section components (centroid + area).\n */\nexport function detectCrossSectionComponents(\n kernel: BrepEngineApi,\n upper: BrepHandle,\n basis: JoineryBasis,\n): CrossSectionComponent[] {\n const { normal, planeDistance, widthDir, depthDir, planeCenter } = basis\n const mesh = solidToMeshData(kernel, upper)\n const components = detectCapComponentsFromMesh(mesh, normal, planeDistance)\n\n if (components.length === 0) {\n // 无帽面 → 返回单个全局质心(planeCenter)作为回退\n return [{ centroid: planeCenter, area: 0 }]\n }\n\n return components.map(comp => {\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter, comp)\n const compWidth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, widthDir, comp)\n const compDepth = computeCrossSectionWidthFromMesh(mesh, normal, planeDistance, depthDir, comp)\n return { centroid, area: compWidth * compDepth }\n })\n}\n\n// ─── 布尔序列(1:1 复刻 csg-worker.ts) ───\n\n/** dovetail 布尔分割的结果 */\nexport interface DovetailSplitBrepResult {\n /** 上部 + 楔(法线正方向半部分加燕尾榫) */\n front: BrepHandle\n /** 下部 - 凹腔(法线负方向半部分减燕尾槽) */\n back: BrepHandle\n}\n\n/** dowel/tenon 布尔分割的结果 */\nexport interface DowelOrTenonSplitBrepResult {\n /** 上部 + 销/榫(法线正方向半部分加圆柱/方柱) */\n front: BrepHandle\n /** 下部 - 孔(法线负方向半部分减圆柱/方柱) */\n back: BrepHandle\n}\n\n/** groove 参数 */\nexport interface GrooveParams {\n depth: number\n depthTolerance: number\n width: number\n widthTolerance: number\n flapsAngle: number\n}\n\n/**\n * Dovetail(燕尾)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dovetailBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. 计算 crossSectionWidth(bbox 投影近似)\n * 3. buildWedgeSolid(overhang=20)→ common(wedge, lower) 裁剪贴合\n * 4. fuse(upper, wedgeTrimmed) → upper'\n * 5. buildWedgeSolid(公差)→ cut(lower, wedgeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param groove - the dovetail groove parameters.\n * @returns the split result with front (upper + wedge) and back (lower - cavity) handles.\n */\nexport function dovetailBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n groove: GrooveParams,\n): DovetailSplitBrepResult {\n const { normal, widthDir, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 计算截面宽度(bbox 投影近似,后续 common 会裁回真实边界)\n const upperBbox = getSolidBoundingBox(kernel, upper)\n const upperSize: Vec3 = [\n upperBbox.max[0] - upperBbox.min[0],\n upperBbox.max[1] - upperBbox.min[1],\n upperBbox.max[2] - upperBbox.min[2],\n ]\n let crossSectionWidth =\n Math.abs(upperSize[0] * widthDir[0]) +\n Math.abs(upperSize[1] * widthDir[1]) +\n Math.abs(upperSize[2] * widthDir[2])\n if (crossSectionWidth <= 0) crossSectionWidth = 10 // 安全回退\n const extrudeLength = crossSectionWidth + 0.2\n const overhang = 20\n\n // Step 3: 构造楔(带 overhang)\n const wedgeW = buildWedgeSolid(kernel, basis, groove.depth, groove.width, groove.flapsAngle, extrudeLength + overhang)\n\n // Step 4: common(wedge, lower) → 裁剪楔贴合模型边界\n const wedgeTrimmed = kernel.common(wedgeW, lower)\n kernel.release(wedgeW)\n\n // Step 5: fuse(upper, wedgeTrimmed) → upper'\n const newUpper = kernel.fuse(upper, wedgeTrimmed)\n kernel.release(upper)\n kernel.release(wedgeTrimmed)\n upper = newUpper\n\n // Step 6: 构造公差楔\n const wedgeTol = buildWedgeSolid(\n kernel, basis,\n groove.depth + groove.depthTolerance,\n groove.width + groove.widthTolerance,\n groove.flapsAngle,\n extrudeLength + overhang,\n )\n\n // Step 7: cut(lower, wedgeTol) → lower'\n const newLower = kernel.cut(lower, wedgeTol)\n kernel.release(lower)\n kernel.release(wedgeTol)\n lower = newLower\n\n return { front: upper, back: lower }\n}\n\n/** dowel/tenon 参数 */\nexport interface DowelOrTenonParams {\n /** 直径(dowel)或边长(tenon) */\n size: number\n /** 尺寸公差 */\n sizeTolerance: number\n /** 高度 */\n height: number\n /** 高度公差 */\n heightTolerance: number\n}\n\n/**\n * Dowel(定位销)/ Tenon(直榫)布尔分割 — BREP 等价物。\n *\n * 1:1 复刻 csg-worker.ts dowelOrTenonBooleanSplit:\n * 1. splitBrep → upper + lower\n * 2. detectCrossSectionComponents → 截面质心列表\n * 3. 对每个质心:buildShapeSolid → fuse(upper, shape) → upper'\n * 4. 对每个质心:buildShapeSolid(公差)→ cut(lower, shapeTol) → lower'\n * @param kernel - the BREP engine API.\n * @param original - the original solid to split.\n * @param basis - the joinery coordinate frame.\n * @param shape - whether to build a dowel or a tenon.\n * @param params - the dowel/tenon size and tolerance parameters.\n * @param selectedSections - optional indices of cross-section components to place shapes on.\n * @returns the split result with front (upper + shape) and back (lower - hole) handles.\n */\nexport function dowelOrTenonBooleanSplitBrep(\n kernel: BrepEngineApi,\n original: BrepHandle,\n basis: JoineryBasis,\n shape: 'dowel' | 'tenon',\n params: DowelOrTenonParams,\n selectedSections?: number[] | null,\n): DowelOrTenonSplitBrepResult {\n const { normal, planeCenter, planeDistance } = basis\n\n // Step 1: 平面分割 → upper + lower\n const splitResult = splitBrep(kernel, original, { normal, planeDistance, planeCenter })\n let upper = splitResult.front\n let lower = splitResult.back\n\n // Step 2: 检测截面分量\n const components = detectCrossSectionComponents(kernel, upper, basis)\n\n // 构建放置位置列表\n interface Placement { centroid: Vec3 }\n let placements: Placement[]\n\n if (components.length <= 1 || !selectedSections || selectedSections.length === 0) {\n // 单截面或无选择 → 全局质心(向后兼容)\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n } else {\n // 多截面:按面积降序排,取选择的分量\n const sorted = [...components].sort((a, b) => b.area - a.area)\n placements = []\n for (const selId of selectedSections) {\n if (selId < sorted.length) {\n placements.push({ centroid: sorted[selId].centroid })\n }\n }\n if (placements.length === 0) {\n const mesh = solidToMeshData(kernel, upper)\n const centroid = computeCrossSectionCentroidFromMesh(mesh, normal, planeDistance, planeCenter)\n placements = [{ centroid }]\n }\n }\n\n // Step 3: 对每个质心构造基本体并 fuse 到 upper\n for (const { centroid } of placements) {\n let shapeC: BrepHandle\n if (shape === 'dowel') {\n shapeC = buildDowelSolid(kernel, centroid, basis, params.size, params.height)\n } else {\n shapeC = buildTenonSolid(kernel, centroid, basis, params.size, params.height)\n }\n\n const newUpper = kernel.fuse(upper, shapeC)\n kernel.release(upper)\n kernel.release(shapeC)\n upper = newUpper\n }\n\n // Step 4: 对每个质心构造公差体并 cut 从 lower\n const tolSize = params.size + params.sizeTolerance\n const tolHeight = params.height + params.heightTolerance\n\n for (const { centroid } of placements) {\n let shapeCTol: BrepHandle\n if (shape === 'dowel') {\n shapeCTol = buildDowelSolid(kernel, centroid, basis, tolSize, tolHeight)\n } else {\n shapeCTol = buildTenonSolid(kernel, centroid, basis, tolSize, tolHeight)\n }\n\n const newLower = kernel.cut(lower, shapeCTol)\n kernel.release(lower)\n kernel.release(shapeCTol)\n lower = newLower\n }\n\n return { front: upper, back: lower }\n}\n"]}
|
|
@@ -62,17 +62,31 @@ export declare function locateBrep(...args: unknown[]): Result<BrepHandle>;
|
|
|
62
62
|
/**
|
|
63
63
|
* Mirror across a plane defined by `options.at` (origin) and `options.normal`.
|
|
64
64
|
*
|
|
65
|
+
* C5 实现面接入(静态双轨):occt 原生有 `mirrorWithHistory` → 走权威面演化;
|
|
66
|
+
* brepkit 没有 → 显式回退裸 `mirror`(**不报错**),镜像保面序故挂恒等序号演化。
|
|
67
|
+
*
|
|
65
68
|
* @param args - Resolved arguments (shape, mirror options).
|
|
66
|
-
* @returns The mirrored shape
|
|
69
|
+
* @returns The mirrored shape plus its face evolution.
|
|
67
70
|
*/
|
|
68
|
-
export declare function mirrorBrep(...args: unknown[]): Result<
|
|
71
|
+
export declare function mirrorBrep(...args: unknown[]): Result<{
|
|
72
|
+
solid: BrepHandle;
|
|
73
|
+
faceEvolution: Map<number, number[]>;
|
|
74
|
+
}>;
|
|
69
75
|
/**
|
|
70
76
|
* Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).
|
|
71
77
|
*
|
|
78
|
+
* C5 实现面接入(静态双轨):occt 原生有 `rotateWithHistory` → 走权威面演化
|
|
79
|
+
* (`rotateWithHistory` 产物 STEP 导出安全,与原生 `rotate` 的 GOTCHA 无关);
|
|
80
|
+
* brepkit 没有 → 退回 Rodrigues 矩阵 + STEP-safe `transform`(**不报错**),
|
|
81
|
+
* 挂恒等序号演化。
|
|
82
|
+
*
|
|
72
83
|
* @param args - Resolved arguments (shape, angle in degrees, axis options).
|
|
73
|
-
* @returns The rotated shape
|
|
84
|
+
* @returns The rotated shape plus its face evolution.
|
|
74
85
|
*/
|
|
75
|
-
export declare function rotateBrep(...args: unknown[]): Result<
|
|
86
|
+
export declare function rotateBrep(...args: unknown[]): Result<{
|
|
87
|
+
solid: BrepHandle;
|
|
88
|
+
faceEvolution: Map<number, number[]>;
|
|
89
|
+
}>;
|
|
76
90
|
/**
|
|
77
91
|
* Shell — hollow the shape by removing faces (brepjs topology/api.js#shell + modifierFns.ts#shell).
|
|
78
92
|
*
|
|
@@ -83,8 +97,15 @@ export declare function shellBrep(...args: unknown[]): Result<BrepHandle>;
|
|
|
83
97
|
/**
|
|
84
98
|
* Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).
|
|
85
99
|
*
|
|
100
|
+
* C5 实现面接入:occt 提供 `offsetWithHistory` ⇒ 用权威面演化,不用无历史 `offset`。
|
|
101
|
+
* `offset` 是 occt-only 平台 op(arg-spec `engines:['occt']`),brepkit 侧本就不支持,
|
|
102
|
+
* 不存在「有裸方法却因无 history 而报错」的回退分支。
|
|
103
|
+
*
|
|
86
104
|
* @param args - Resolved arguments (shape, distance, options).
|
|
87
|
-
* @returns The offset shape
|
|
105
|
+
* @returns The offset shape plus its face evolution.
|
|
88
106
|
*/
|
|
89
|
-
export declare function offsetBrep(...args: unknown[]): Result<
|
|
107
|
+
export declare function offsetBrep(...args: unknown[]): Result<{
|
|
108
|
+
solid: BrepHandle;
|
|
109
|
+
faceEvolution: Map<number, number[]>;
|
|
110
|
+
}>;
|
|
90
111
|
//# sourceMappingURL=topologyFns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topologyFns.d.ts","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"topologyFns.d.ts","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAW5E,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAqD1D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CA8BtE;AAQD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAchE;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAoBjE;AAQD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAuBlH;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAmClH;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAmBhE;AAOD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAyBlH"}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* `topology/shapeFns.ts`) with the brepjs object model (castResultShape,
|
|
15
15
|
* metadata propagation, evolution tracking) dropped: occt-wasm handles only.
|
|
16
16
|
*/
|
|
17
|
+
import { HASH_UPPER_BOUND, decodeEvolution, getFaceHashes, identityEvolution, mirrorWithHashEvolution, rotateWithHashEvolution, } from '../../brep/face-evolution.js';
|
|
18
|
+
import { hasNativeHistory } from '../../brep/engine/native-history.js';
|
|
17
19
|
import { getBrepApi } from '../../brep/handle-bridge.js';
|
|
18
20
|
import { ok, err } from '../../result/result.js';
|
|
19
21
|
import { kernelError, validationError } from '../../result/errors.js';
|
|
@@ -155,8 +157,11 @@ const MIRROR_PARAMS = { name: 'mirror', params: ['shape', 'options'], formClass:
|
|
|
155
157
|
/**
|
|
156
158
|
* Mirror across a plane defined by `options.at` (origin) and `options.normal`.
|
|
157
159
|
*
|
|
160
|
+
* C5 实现面接入(静态双轨):occt 原生有 `mirrorWithHistory` → 走权威面演化;
|
|
161
|
+
* brepkit 没有 → 显式回退裸 `mirror`(**不报错**),镜像保面序故挂恒等序号演化。
|
|
162
|
+
*
|
|
158
163
|
* @param args - Resolved arguments (shape, mirror options).
|
|
159
|
-
* @returns The mirrored shape
|
|
164
|
+
* @returns The mirrored shape plus its face evolution.
|
|
160
165
|
*/
|
|
161
166
|
export function mirrorBrep(...args) {
|
|
162
167
|
const [shape, options] = resolveArgs(args, MIRROR_PARAMS);
|
|
@@ -164,8 +169,14 @@ export function mirrorBrep(...args) {
|
|
|
164
169
|
const normal = opts.normal ?? [1, 0, 0];
|
|
165
170
|
const at = opts.at ?? [0, 0, 0];
|
|
166
171
|
const kernel = getBrepApi();
|
|
172
|
+
const s = brepHandleOf(shape);
|
|
167
173
|
try {
|
|
168
|
-
|
|
174
|
+
if (hasNativeHistory('mirrorWithHistory')) {
|
|
175
|
+
const r = mirrorWithHashEvolution(kernel, s, at, normal);
|
|
176
|
+
return ok({ solid: r.result, faceEvolution: r.faceEvolution });
|
|
177
|
+
}
|
|
178
|
+
const h = kernel.mirror(s, { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] });
|
|
179
|
+
return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) });
|
|
169
180
|
}
|
|
170
181
|
catch (e) {
|
|
171
182
|
return err(kernelError('MIRROR_FAILED', `mirror: kernel mirror failed: ${e instanceof Error ? e.message : String(e)}`, e));
|
|
@@ -177,40 +188,45 @@ const ROTATE_PARAMS = { name: 'rotate', params: ['shape', 'angle', 'options'], f
|
|
|
177
188
|
/**
|
|
178
189
|
* Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).
|
|
179
190
|
*
|
|
191
|
+
* C5 实现面接入(静态双轨):occt 原生有 `rotateWithHistory` → 走权威面演化
|
|
192
|
+
* (`rotateWithHistory` 产物 STEP 导出安全,与原生 `rotate` 的 GOTCHA 无关);
|
|
193
|
+
* brepkit 没有 → 退回 Rodrigues 矩阵 + STEP-safe `transform`(**不报错**),
|
|
194
|
+
* 挂恒等序号演化。
|
|
195
|
+
*
|
|
180
196
|
* @param args - Resolved arguments (shape, angle in degrees, axis options).
|
|
181
|
-
* @returns The rotated shape
|
|
197
|
+
* @returns The rotated shape plus its face evolution.
|
|
182
198
|
*/
|
|
183
199
|
export function rotateBrep(...args) {
|
|
184
200
|
const [shape, angle, options] = resolveArgs(args, ROTATE_PARAMS);
|
|
185
201
|
const s = brepHandleOf(shape);
|
|
186
202
|
const { at = [0, 0, 0], axis = [0, 0, 1] } = (options ?? {});
|
|
203
|
+
const kernel = getBrepApi();
|
|
204
|
+
const [ax, ay, az] = axis;
|
|
205
|
+
const alen = Math.hypot(ax, ay, az);
|
|
206
|
+
if (alen < 1e-12) {
|
|
207
|
+
return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`));
|
|
208
|
+
}
|
|
209
|
+
const nx = ax / alen, ny = ay / alen, nz = az / alen;
|
|
210
|
+
const theta = (Number(angle) * Math.PI) / 180;
|
|
187
211
|
try {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
// matrix and go through the STEP-safe `transform` (BRepBuilderAPI_Transform).
|
|
192
|
-
// 2026-09-26: switched from getOcctKernel().transform to the L1 getBrepApi().transform
|
|
193
|
-
// so the op is engine-neutral (brepkit transform = cloneAndTransform deep-copy,
|
|
194
|
-
// same STEP-safe semantics) — see brepkit-batchA-fix.
|
|
195
|
-
const [ax, ay, az] = axis;
|
|
196
|
-
const alen = Math.hypot(ax, ay, az);
|
|
197
|
-
if (alen < 1e-12) {
|
|
198
|
-
return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`));
|
|
212
|
+
if (hasNativeHistory('rotateWithHistory')) {
|
|
213
|
+
const r = rotateWithHashEvolution(kernel, s, at, [nx, ny, nz], theta);
|
|
214
|
+
return ok({ solid: r.result, faceEvolution: r.faceEvolution });
|
|
199
215
|
}
|
|
200
|
-
|
|
201
|
-
|
|
216
|
+
// GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose
|
|
217
|
+
// STEP export crashes ("memory access out of bounds"). Rotation is affine,
|
|
218
|
+
// so build the Rodrigues matrix and go through the STEP-safe `transform`.
|
|
202
219
|
const c = Math.cos(theta), sTheta = Math.sin(theta), t = 1 - c;
|
|
203
|
-
// R = cI + sK + t·(n⊗n) (Rodrigues)
|
|
204
220
|
const r00 = t * nx * nx + c, r01 = t * nx * ny - nz * sTheta, r02 = t * nx * nz + ny * sTheta;
|
|
205
221
|
const r10 = t * nx * ny + nz * sTheta, r11 = t * ny * ny + c, r12 = t * ny * nz - nx * sTheta;
|
|
206
222
|
const r20 = t * nx * nz - ny * sTheta, r21 = t * ny * nz + nx * sTheta, r22 = t * nz * nz + c;
|
|
207
223
|
const [px, py, pz] = at;
|
|
208
|
-
// Pivot-preserving translation: p' = R·(p − at) + at ⇒ tx = at − R·at
|
|
209
224
|
const tx = px - (r00 * px + r01 * py + r02 * pz);
|
|
210
225
|
const ty = py - (r10 * px + r11 * py + r12 * pz);
|
|
211
226
|
const tz = pz - (r20 * px + r21 * py + r22 * pz);
|
|
212
227
|
const m12 = [r00, r01, r02, tx, r10, r11, r12, ty, r20, r21, r22, tz];
|
|
213
|
-
|
|
228
|
+
const h = kernel.transform(s, m12);
|
|
229
|
+
return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) });
|
|
214
230
|
}
|
|
215
231
|
catch (e) {
|
|
216
232
|
const raw = e instanceof Error ? e.message : String(e);
|
|
@@ -253,8 +269,12 @@ const OFFSET_PARAMS = { name: 'offset', params: ['shape', 'distance', 'options']
|
|
|
253
269
|
/**
|
|
254
270
|
* Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).
|
|
255
271
|
*
|
|
272
|
+
* C5 实现面接入:occt 提供 `offsetWithHistory` ⇒ 用权威面演化,不用无历史 `offset`。
|
|
273
|
+
* `offset` 是 occt-only 平台 op(arg-spec `engines:['occt']`),brepkit 侧本就不支持,
|
|
274
|
+
* 不存在「有裸方法却因无 history 而报错」的回退分支。
|
|
275
|
+
*
|
|
256
276
|
* @param args - Resolved arguments (shape, distance, options).
|
|
257
|
-
* @returns The offset shape
|
|
277
|
+
* @returns The offset shape plus its face evolution.
|
|
258
278
|
*/
|
|
259
279
|
export function offsetBrep(...args) {
|
|
260
280
|
const [shape, distance, options] = resolveArgs(args, OFFSET_PARAMS);
|
|
@@ -265,8 +285,12 @@ export function offsetBrep(...args) {
|
|
|
265
285
|
}
|
|
266
286
|
const tolerance = (options ?? {}).tolerance ?? 1e-6;
|
|
267
287
|
try {
|
|
268
|
-
const
|
|
269
|
-
|
|
288
|
+
const kernel = getBrepApi();
|
|
289
|
+
const inputHashes = getFaceHashes(kernel, s);
|
|
290
|
+
const evo = getOcctKernel().offsetWithHistory(s, d, tolerance, inputHashes, HASH_UPPER_BOUND);
|
|
291
|
+
const solid = evo.result;
|
|
292
|
+
const faceEvolution = decodeEvolution(kernel, evo, s, solid);
|
|
293
|
+
return ok({ solid, faceEvolution });
|
|
270
294
|
}
|
|
271
295
|
catch (e) {
|
|
272
296
|
const raw = e instanceof Error ? e.message : String(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topologyFns.js","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Self-hosted compat-op implementations — topology transform family\n * (core-decouple Phase 3, §5.4).\n *\n * @platform occt\n *\n * Each export is a \"brep-shaped\" implementation consumed by the generated\n * compat-op projection (defineOp + D11 arg normalization). Inputs are the\n * normalized positional arguments of the op's params table; shapes arrive as\n * faijs Shapes (or raw handles) and results are returned as BREP handles\n * (wrapped by `wrapBrepOne` → `fromHandle`).\n *\n * Semantics mirror the early brepjs fns (`topology/transformFns.ts`,\n * `topology/shapeFns.ts`) with the brepjs object model (castResultShape,\n * metadata propagation, evolution tracking) dropped: occt-wasm handles only.\n */\n\nimport type { BrepHandle } from '../../brep/engine/types'\nimport { getBrepApi } from '../../brep/handle-bridge'\nimport { ok, err, type Result } from '../../result/result'\nimport { kernelError, validationError } from '../../result/errors'\nimport type { FormClass } from '../internal/dual-form-args'\nimport { resolveArgs } from '../internal/dual-form-args'\nimport type { MatrixInput, Vec3 } from '../geom-types/types'\nimport { brepHandleOf, composeAffine, IDENTITY_3X4, rotationMatrix, translationMatrix } from './brepHelpers'\nimport { applyAffineBrep } from '../../brep/brep-ops'\nimport { getOcctKernel } from '../../occt-kernel/occtKernel'\n\nconst VALIDATION_FAILED = 'VALIDATION_FAILED'\n\n// ---------------------------------------------------------------------------\n// Matrix input parsing (brepjs `parseMatrixInput` / `det3x3`)\n// ---------------------------------------------------------------------------\n\ntype Linear3x3 = readonly [number, number, number, number, number, number, number, number, number]\n\nfunction parseMatrixInput(\n input: MatrixInput,\n): Result<{ linear: Linear3x3; translation: readonly [number, number, number] }> {\n if ('linear' in input) {\n return ok({ linear: input.linear, translation: input.translation })\n }\n const [r0, r1, r2, r3] = input\n const TOL = 1e-10\n if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) {\n return err(\n validationError(\n VALIDATION_FAILED,\n `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`,\n ),\n )\n }\n return ok({\n linear: [r0[0], r0[1], r0[2], r1[0], r1[1], r1[2], r2[0], r2[1], r2[2]],\n translation: [r0[3], r1[3], r2[3]],\n })\n}\n\nfunction det3x3(m: Linear3x3): number {\n return (\n m[0] * (m[4] * m[8] - m[5] * m[7]) -\n m[1] * (m[3] * m[8] - m[5] * m[6]) +\n m[2] * (m[3] * m[7] - m[4] * m[6])\n )\n}\n\n// ---------------------------------------------------------------------------\n// applyMatrix\n// ---------------------------------------------------------------------------\n\nconst APPLY_MATRIX_PARAMS = { name: 'applyMatrix', params: ['shape', 'matrix'], formClass: 'A' as FormClass }\n\n/**\n * Apply a 4×4 affine matrix (OpenSCAD `multmatrix` equivalent).\n *\n * The brepjs fn splits orthogonal (evolution-tracked) and non-orthogonal\n * (`gp_GTrsf`) paths; `applyMatrix` carries identity naming and needs no face\n * evolution, so the core path just needs the *right kernel path for the matrix\n * class* — that dispatch (and its two traps) lives in `applyAffineBrep`:\n *\n * GOTCHA (2026-09-25): occt-wasm's `located`/`generalTransform` return\n * TopLoc/GTrsf-referencing handles whose STEP export crashes (\"memory access\n * out of bounds\") — the affine `transform` (BRepBuilderAPI_Transform,\n * deep-copy) is the STEP-safe one.\n *\n * GOTCHA (2026-10-07, openscad example023 parity): routing a rigid rotation to\n * `generalTransform` silently corrupts the *tessellation* of an\n * already-meshed shape (top cap z 5 → 10, exact bbox unaffected). A rotation\n * printed to 7 decimals (`0.8660254`) used to be misclassified as\n * \"non-similar\" by an absolute 1e-9 tolerance and sent down that path.\n * Two independent fixes came out of it: (1) the classification now uses a\n * *relative* tolerance (`isSimilarityAffine`, engine-neutral); (2) occt's\n * residual GTrsf tessellation defect is absorbed in the occt **adapter**\n * (`occt-kernel/occt-primitives.ts#generalTransform`, copy-then-transform —\n * brepkit's GTrsf already clones internally, so it never had the defect).\n *\n * @param args - Resolved arguments (shape, matrix).\n * @returns The transformed shape as a `BrepHandle`.\n */\nexport function applyMatrixBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, matrix] = resolveArgs(args, APPLY_MATRIX_PARAMS)\n const parsed = parseMatrixInput(matrix as MatrixInput)\n if (!parsed.ok) return parsed\n const { linear, translation } = parsed.value\n if (Math.abs(det3x3(linear)) < 1e-12) {\n return err(\n validationError(\n VALIDATION_FAILED,\n 'applyMatrix: singular matrix (determinant ≈0). Cannot apply a non-invertible transform.',\n ),\n )\n }\n const kernel = getBrepApi()\n try {\n const m12 = [\n linear[0], linear[1], linear[2], translation[0],\n linear[3], linear[4], linear[5], translation[1],\n linear[6], linear[7], linear[8], translation[2],\n ]\n return ok(applyAffineBrep(kernel, brepHandleOf(shape), m12))\n } catch (e) {\n return err(\n kernelError(\n 'APPLY_MATRIX_FAILED',\n `applyMatrix: kernel transform failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// clone\n// ---------------------------------------------------------------------------\n\nconst CLONE_PARAMS = { name: 'clone', params: ['shape'], formClass: 'A' as FormClass }\n\n/**\n * Deep-copy a shape (`kernel.copyShape`).\n *\n * @param args - Resolved arguments (shape).\n * @returns The cloned shape as a `BrepHandle`.\n */\nexport function cloneBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape] = resolveArgs(args, CLONE_PARAMS)\n const kernel = getBrepApi()\n try {\n return ok(kernel.copyShape(brepHandleOf(shape)))\n } catch (e) {\n return err(\n kernelError(\n 'CLONE_FAILED',\n `clone: kernel copy failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// locate\n// ---------------------------------------------------------------------------\n\nconst LOCATE_PARAMS = { name: 'locate', params: ['shape', 'placement'], formClass: 'A' as FormClass }\n\ntype TransformOp =\n | { readonly type: 'translate'; readonly v: Vec3 }\n | { readonly type: 'rotate'; readonly angle: number; readonly axis?: Vec3; readonly center?: Vec3 }\n\nfunction opToMatrix(op: TransformOp): number[] {\n if (op.type === 'translate') return translationMatrix(op.v)\n const axis = op.axis ?? [0, 0, 1]\n const center = op.center ?? [0, 0, 0]\n return rotationMatrix(axis as Vec3, center as Vec3, op.angle)\n}\n\n/**\n * Placement-only rigid move (translate/rotate) via the kernel's cheap location\n * re-tag. Ops apply first-to-last (rotate then translate).\n *\n * @param args - Resolved arguments (shape, placement).\n * @returns The relocated shape as a `BrepHandle`.\n */\nexport function locateBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, placement] = resolveArgs(args, LOCATE_PARAMS)\n const ops: readonly TransformOp[] =\n placement !== null && typeof placement === 'object' && 'type' in (placement as object)\n ? [placement as TransformOp]\n : (placement as readonly TransformOp[])\n const kernel = getBrepApi()\n try {\n let acc: number[] = [...IDENTITY_3X4]\n for (const op of ops) acc = composeAffine(acc, opToMatrix(op))\n return ok(kernel.locate(brepHandleOf(shape), acc))\n } catch (e) {\n return err(\n kernelError(\n 'LOCATE_FAILED',\n `locate: kernel locate failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// mirror\n// ---------------------------------------------------------------------------\n\nconst MIRROR_PARAMS = { name: 'mirror', params: ['shape', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Mirror across a plane defined by `options.at` (origin) and `options.normal`.\n *\n * @param args - Resolved arguments (shape, mirror options).\n * @returns The mirrored shape as a `BrepHandle`.\n */\nexport function mirrorBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, options] = resolveArgs(args, MIRROR_PARAMS)\n const opts = (options ?? {}) as { normal?: Vec3; at?: Vec3 }\n const normal = opts.normal ?? [1, 0, 0]\n const at = opts.at ?? [0, 0, 0]\n const kernel = getBrepApi()\n try {\n return ok(kernel.mirror(brepHandleOf(shape), { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] }))\n } catch (e) {\n return err(\n kernelError(\n 'MIRROR_FAILED',\n `mirror: kernel mirror failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n\n// ---------------------------------------------------------------------------\n// rotate — 绕轴旋转(brepjs topology/api.js#rotate + transformFns.ts#rotate)// ---------------------------------------------------------------------------\n\nconst ROTATE_PARAMS = { name: 'rotate', params: ['shape', 'angle', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).\n *\n * @param args - Resolved arguments (shape, angle in degrees, axis options).\n * @returns The rotated shape as a `BrepHandle`.\n */\nexport function rotateBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, angle, options] = resolveArgs(args, ROTATE_PARAMS)\n const s = brepHandleOf(shape)\n const { at = [0, 0, 0], axis = [0, 0, 1] } = (options ?? {}) as { at?: Vec3; axis?: Vec3 }\n try {\n // GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose\n // STEP export crashes (\"memory access out of bounds\") — same family as\n // located/generalTransform. Rotation is affine, so build the Rodrigues\n // matrix and go through the STEP-safe `transform` (BRepBuilderAPI_Transform).\n // 2026-09-26: switched from getOcctKernel().transform to the L1 getBrepApi().transform\n // so the op is engine-neutral (brepkit transform = cloneAndTransform deep-copy,\n // same STEP-safe semantics) — see brepkit-batchA-fix.\n const [ax, ay, az] = axis as readonly [number, number, number]\n const alen = Math.hypot(ax, ay, az)\n if (alen < 1e-12) {\n return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`))\n }\n const nx = ax / alen, ny = ay / alen, nz = az / alen\n const theta = (Number(angle) * Math.PI) / 180\n const c = Math.cos(theta), sTheta = Math.sin(theta), t = 1 - c\n // R = cI + sK + t·(n⊗n) (Rodrigues)\n const r00 = t * nx * nx + c, r01 = t * nx * ny - nz * sTheta, r02 = t * nx * nz + ny * sTheta\n const r10 = t * nx * ny + nz * sTheta, r11 = t * ny * ny + c, r12 = t * ny * nz - nx * sTheta\n const r20 = t * nx * nz - ny * sTheta, r21 = t * ny * nz + nx * sTheta, r22 = t * nz * nz + c\n const [px, py, pz] = at as readonly [number, number, number]\n // Pivot-preserving translation: p' = R·(p − at) + at ⇒ tx = at − R·at\n const tx = px - (r00 * px + r01 * py + r02 * pz)\n const ty = py - (r10 * px + r11 * py + r12 * pz)\n const tz = pz - (r20 * px + r21 * py + r22 * pz)\n const m12 = [r00, r01, r02, tx, r10, r11, r12, ty, r20, r21, r22, tz]\n return ok(getBrepApi().transform(s, m12))\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('ROTATE_FAILED', `Rotate operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// shell — 去面掏空(brepjs topology/api.js#shell + modifierFns.ts#shell)// ---------------------------------------------------------------------------\n\nconst SHELL_PARAMS = { name: 'shell', params: ['shape', 'faces', 'thickness', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Shell — hollow the shape by removing faces (brepjs topology/api.js#shell + modifierFns.ts#shell).\n *\n * @param args - Resolved arguments (shape, faces, thickness, options).\n * @returns The shelled (hollowed) shape as a `BrepHandle`.\n */\nexport function shellBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, faces, thickness, options] = resolveArgs(args, SHELL_PARAMS)\n const kernel = getBrepApi()\n const s = brepHandleOf(shape)\n const t = Number(thickness)\n if (t <= 0) {\n return err(validationError('INVALID_THICKNESS', 'Shell thickness must be positive'))\n }\n if (!Array.isArray(faces) || faces.length === 0) {\n return err(validationError('NO_FACES', 'At least one face must be specified for shell'))\n }\n const faceHandles = (faces as unknown[]).map((f) => brepHandleOf(f))\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-3\n try {\n return ok(kernel.shell(s, faceHandles, t, tolerance))\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('SHELL_FAILED', `Shell operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// offset — 全表面偏移(brepjs topology/api.js#offset + modifierFns.ts#offset)// ---------------------------------------------------------------------------\n\nconst OFFSET_PARAMS = { name: 'offset', params: ['shape', 'distance', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).\n *\n * @param args - Resolved arguments (shape, distance, options).\n * @returns The offset shape as a `BrepHandle`.\n */\nexport function offsetBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, distance, options] = resolveArgs(args, OFFSET_PARAMS)\n const s = brepHandleOf(shape)\n const d = Number(distance)\n if (Math.abs(d) < 1e-10) {\n return err(validationError('ZERO_OFFSET', 'Offset distance cannot be zero'))\n }\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-6\n try {\n const h = getOcctKernel().offset(s as never, d, tolerance)\n return ok(h as unknown as BrepHandle)\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('OFFSET_FAILED', `Offset operation failed: ${raw}`, e))\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"topologyFns.js","sourceRoot":"","sources":["../../../src/api/brep-operations/topologyFns.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Self-hosted compat-op implementations — topology transform family\n * (core-decouple Phase 3, §5.4).\n *\n * @platform occt\n *\n * Each export is a \"brep-shaped\" implementation consumed by the generated\n * compat-op projection (defineOp + D11 arg normalization). Inputs are the\n * normalized positional arguments of the op's params table; shapes arrive as\n * faijs Shapes (or raw handles) and results are returned as BREP handles\n * (wrapped by `wrapBrepOne` → `fromHandle`).\n *\n * Semantics mirror the early brepjs fns (`topology/transformFns.ts`,\n * `topology/shapeFns.ts`) with the brepjs object model (castResultShape,\n * metadata propagation, evolution tracking) dropped: occt-wasm handles only.\n */\n\nimport type { BrepEvolutionData, BrepHandle } from '../../brep/engine/types'\nimport {\n HASH_UPPER_BOUND,\n decodeEvolution,\n getFaceHashes,\n identityEvolution,\n mirrorWithHashEvolution,\n rotateWithHashEvolution,\n} from '../../brep/face-evolution'\nimport { hasNativeHistory } from '../../brep/engine/native-history'\nimport { getBrepApi } from '../../brep/handle-bridge'\nimport { ok, err, type Result } from '../../result/result'\nimport { kernelError, validationError } from '../../result/errors'\nimport type { FormClass } from '../internal/dual-form-args'\nimport { resolveArgs } from '../internal/dual-form-args'\nimport type { MatrixInput, Vec3 } from '../geom-types/types'\nimport { brepHandleOf, composeAffine, IDENTITY_3X4, rotationMatrix, translationMatrix } from './brepHelpers'\nimport { applyAffineBrep } from '../../brep/brep-ops'\nimport { getOcctKernel } from '../../occt-kernel/occtKernel'\n\nconst VALIDATION_FAILED = 'VALIDATION_FAILED'\n\n// ---------------------------------------------------------------------------\n// Matrix input parsing (brepjs `parseMatrixInput` / `det3x3`)\n// ---------------------------------------------------------------------------\n\ntype Linear3x3 = readonly [number, number, number, number, number, number, number, number, number]\n\nfunction parseMatrixInput(\n input: MatrixInput,\n): Result<{ linear: Linear3x3; translation: readonly [number, number, number] }> {\n if ('linear' in input) {\n return ok({ linear: input.linear, translation: input.translation })\n }\n const [r0, r1, r2, r3] = input\n const TOL = 1e-10\n if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) {\n return err(\n validationError(\n VALIDATION_FAILED,\n `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`,\n ),\n )\n }\n return ok({\n linear: [r0[0], r0[1], r0[2], r1[0], r1[1], r1[2], r2[0], r2[1], r2[2]],\n translation: [r0[3], r1[3], r2[3]],\n })\n}\n\nfunction det3x3(m: Linear3x3): number {\n return (\n m[0] * (m[4] * m[8] - m[5] * m[7]) -\n m[1] * (m[3] * m[8] - m[5] * m[6]) +\n m[2] * (m[3] * m[7] - m[4] * m[6])\n )\n}\n\n// ---------------------------------------------------------------------------\n// applyMatrix\n// ---------------------------------------------------------------------------\n\nconst APPLY_MATRIX_PARAMS = { name: 'applyMatrix', params: ['shape', 'matrix'], formClass: 'A' as FormClass }\n\n/**\n * Apply a 4×4 affine matrix (OpenSCAD `multmatrix` equivalent).\n *\n * The brepjs fn splits orthogonal (evolution-tracked) and non-orthogonal\n * (`gp_GTrsf`) paths; `applyMatrix` carries identity naming and needs no face\n * evolution, so the core path just needs the *right kernel path for the matrix\n * class* — that dispatch (and its two traps) lives in `applyAffineBrep`:\n *\n * GOTCHA (2026-09-25): occt-wasm's `located`/`generalTransform` return\n * TopLoc/GTrsf-referencing handles whose STEP export crashes (\"memory access\n * out of bounds\") — the affine `transform` (BRepBuilderAPI_Transform,\n * deep-copy) is the STEP-safe one.\n *\n * GOTCHA (2026-10-07, openscad example023 parity): routing a rigid rotation to\n * `generalTransform` silently corrupts the *tessellation* of an\n * already-meshed shape (top cap z 5 → 10, exact bbox unaffected). A rotation\n * printed to 7 decimals (`0.8660254`) used to be misclassified as\n * \"non-similar\" by an absolute 1e-9 tolerance and sent down that path.\n * Two independent fixes came out of it: (1) the classification now uses a\n * *relative* tolerance (`isSimilarityAffine`, engine-neutral); (2) occt's\n * residual GTrsf tessellation defect is absorbed in the occt **adapter**\n * (`occt-kernel/occt-primitives.ts#generalTransform`, copy-then-transform —\n * brepkit's GTrsf already clones internally, so it never had the defect).\n *\n * @param args - Resolved arguments (shape, matrix).\n * @returns The transformed shape as a `BrepHandle`.\n */\nexport function applyMatrixBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, matrix] = resolveArgs(args, APPLY_MATRIX_PARAMS)\n const parsed = parseMatrixInput(matrix as MatrixInput)\n if (!parsed.ok) return parsed\n const { linear, translation } = parsed.value\n if (Math.abs(det3x3(linear)) < 1e-12) {\n return err(\n validationError(\n VALIDATION_FAILED,\n 'applyMatrix: singular matrix (determinant ≈0). Cannot apply a non-invertible transform.',\n ),\n )\n }\n const kernel = getBrepApi()\n try {\n const m12 = [\n linear[0], linear[1], linear[2], translation[0],\n linear[3], linear[4], linear[5], translation[1],\n linear[6], linear[7], linear[8], translation[2],\n ]\n return ok(applyAffineBrep(kernel, brepHandleOf(shape), m12))\n } catch (e) {\n return err(\n kernelError(\n 'APPLY_MATRIX_FAILED',\n `applyMatrix: kernel transform failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// clone\n// ---------------------------------------------------------------------------\n\nconst CLONE_PARAMS = { name: 'clone', params: ['shape'], formClass: 'A' as FormClass }\n\n/**\n * Deep-copy a shape (`kernel.copyShape`).\n *\n * @param args - Resolved arguments (shape).\n * @returns The cloned shape as a `BrepHandle`.\n */\nexport function cloneBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape] = resolveArgs(args, CLONE_PARAMS)\n const kernel = getBrepApi()\n try {\n return ok(kernel.copyShape(brepHandleOf(shape)))\n } catch (e) {\n return err(\n kernelError(\n 'CLONE_FAILED',\n `clone: kernel copy failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// locate\n// ---------------------------------------------------------------------------\n\nconst LOCATE_PARAMS = { name: 'locate', params: ['shape', 'placement'], formClass: 'A' as FormClass }\n\ntype TransformOp =\n | { readonly type: 'translate'; readonly v: Vec3 }\n | { readonly type: 'rotate'; readonly angle: number; readonly axis?: Vec3; readonly center?: Vec3 }\n\nfunction opToMatrix(op: TransformOp): number[] {\n if (op.type === 'translate') return translationMatrix(op.v)\n const axis = op.axis ?? [0, 0, 1]\n const center = op.center ?? [0, 0, 0]\n return rotationMatrix(axis as Vec3, center as Vec3, op.angle)\n}\n\n/**\n * Placement-only rigid move (translate/rotate) via the kernel's cheap location\n * re-tag. Ops apply first-to-last (rotate then translate).\n *\n * @param args - Resolved arguments (shape, placement).\n * @returns The relocated shape as a `BrepHandle`.\n */\nexport function locateBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, placement] = resolveArgs(args, LOCATE_PARAMS)\n const ops: readonly TransformOp[] =\n placement !== null && typeof placement === 'object' && 'type' in (placement as object)\n ? [placement as TransformOp]\n : (placement as readonly TransformOp[])\n const kernel = getBrepApi()\n try {\n let acc: number[] = [...IDENTITY_3X4]\n for (const op of ops) acc = composeAffine(acc, opToMatrix(op))\n return ok(kernel.locate(brepHandleOf(shape), acc))\n } catch (e) {\n return err(\n kernelError(\n 'LOCATE_FAILED',\n `locate: kernel locate failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n// ---------------------------------------------------------------------------\n// mirror\n// ---------------------------------------------------------------------------\n\nconst MIRROR_PARAMS = { name: 'mirror', params: ['shape', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Mirror across a plane defined by `options.at` (origin) and `options.normal`.\n *\n * C5 实现面接入(静态双轨):occt 原生有 `mirrorWithHistory` → 走权威面演化;\n * brepkit 没有 → 显式回退裸 `mirror`(**不报错**),镜像保面序故挂恒等序号演化。\n *\n * @param args - Resolved arguments (shape, mirror options).\n * @returns The mirrored shape plus its face evolution.\n */\nexport function mirrorBrep(...args: unknown[]): Result<{ solid: BrepHandle; faceEvolution: Map<number, number[]> }> {\n const [shape, options] = resolveArgs(args, MIRROR_PARAMS)\n const opts = (options ?? {}) as { normal?: Vec3; at?: Vec3 }\n const normal = opts.normal ?? [1, 0, 0]\n const at = opts.at ?? [0, 0, 0]\n const kernel = getBrepApi()\n const s = brepHandleOf(shape)\n try {\n if (hasNativeHistory('mirrorWithHistory')) {\n const r = mirrorWithHashEvolution(kernel, s, at, normal)\n return ok({ solid: r.result, faceEvolution: r.faceEvolution })\n }\n const h = kernel.mirror(s, { x: at[0], y: at[1], z: at[2] }, { x: normal[0], y: normal[1], z: normal[2] })\n return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) })\n } catch (e) {\n return err(\n kernelError(\n 'MIRROR_FAILED',\n `mirror: kernel mirror failed: ${e instanceof Error ? e.message : String(e)}`,\n e,\n ),\n )\n }\n}\n\n\n// ---------------------------------------------------------------------------\n// rotate — 绕轴旋转(brepjs topology/api.js#rotate + transformFns.ts#rotate)// ---------------------------------------------------------------------------\n\nconst ROTATE_PARAMS = { name: 'rotate', params: ['shape', 'angle', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Rotate the shape around an axis (brepjs topology/api.js#rotate + transformFns.ts#rotate).\n *\n * C5 实现面接入(静态双轨):occt 原生有 `rotateWithHistory` → 走权威面演化\n * (`rotateWithHistory` 产物 STEP 导出安全,与原生 `rotate` 的 GOTCHA 无关);\n * brepkit 没有 → 退回 Rodrigues 矩阵 + STEP-safe `transform`(**不报错**),\n * 挂恒等序号演化。\n *\n * @param args - Resolved arguments (shape, angle in degrees, axis options).\n * @returns The rotated shape plus its face evolution.\n */\nexport function rotateBrep(...args: unknown[]): Result<{ solid: BrepHandle; faceEvolution: Map<number, number[]> }> {\n const [shape, angle, options] = resolveArgs(args, ROTATE_PARAMS)\n const s = brepHandleOf(shape)\n const { at = [0, 0, 0], axis = [0, 0, 1] } = (options ?? {}) as { at?: Vec3; axis?: Vec3 }\n const kernel = getBrepApi()\n const [ax, ay, az] = axis as readonly [number, number, number]\n const alen = Math.hypot(ax, ay, az)\n if (alen < 1e-12) {\n return err(validationError('INVALID_AXIS', `rotate: axis must be non-zero, got [${ax}, ${ay}, ${az}]`))\n }\n const nx = ax / alen, ny = ay / alen, nz = az / alen\n const theta = (Number(angle) * Math.PI) / 180\n try {\n if (hasNativeHistory('rotateWithHistory')) {\n const r = rotateWithHashEvolution(kernel, s, at, [nx, ny, nz], theta)\n return ok({ solid: r.result, faceEvolution: r.faceEvolution })\n }\n // GOTCHA (2026-09-25): occt-wasm's native `rotate` returns a handle whose\n // STEP export crashes (\"memory access out of bounds\"). Rotation is affine,\n // so build the Rodrigues matrix and go through the STEP-safe `transform`.\n const c = Math.cos(theta), sTheta = Math.sin(theta), t = 1 - c\n const r00 = t * nx * nx + c, r01 = t * nx * ny - nz * sTheta, r02 = t * nx * nz + ny * sTheta\n const r10 = t * nx * ny + nz * sTheta, r11 = t * ny * ny + c, r12 = t * ny * nz - nx * sTheta\n const r20 = t * nx * nz - ny * sTheta, r21 = t * ny * nz + nx * sTheta, r22 = t * nz * nz + c\n const [px, py, pz] = at as readonly [number, number, number]\n const tx = px - (r00 * px + r01 * py + r02 * pz)\n const ty = py - (r10 * px + r11 * py + r12 * pz)\n const tz = pz - (r20 * px + r21 * py + r22 * pz)\n const m12 = [r00, r01, r02, tx, r10, r11, r12, ty, r20, r21, r22, tz]\n const h = kernel.transform(s, m12)\n return ok({ solid: h, faceEvolution: identityEvolution(kernel, h) })\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('ROTATE_FAILED', `Rotate operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// shell — 去面掏空(brepjs topology/api.js#shell + modifierFns.ts#shell)// ---------------------------------------------------------------------------\n\nconst SHELL_PARAMS = { name: 'shell', params: ['shape', 'faces', 'thickness', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Shell — hollow the shape by removing faces (brepjs topology/api.js#shell + modifierFns.ts#shell).\n *\n * @param args - Resolved arguments (shape, faces, thickness, options).\n * @returns The shelled (hollowed) shape as a `BrepHandle`.\n */\nexport function shellBrep(...args: unknown[]): Result<BrepHandle> {\n const [shape, faces, thickness, options] = resolveArgs(args, SHELL_PARAMS)\n const kernel = getBrepApi()\n const s = brepHandleOf(shape)\n const t = Number(thickness)\n if (t <= 0) {\n return err(validationError('INVALID_THICKNESS', 'Shell thickness must be positive'))\n }\n if (!Array.isArray(faces) || faces.length === 0) {\n return err(validationError('NO_FACES', 'At least one face must be specified for shell'))\n }\n const faceHandles = (faces as unknown[]).map((f) => brepHandleOf(f))\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-3\n try {\n return ok(kernel.shell(s, faceHandles, t, tolerance))\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('SHELL_FAILED', `Shell operation failed: ${raw}`, e))\n }\n}\n\n// ---------------------------------------------------------------------------\n// offset — 全表面偏移(brepjs topology/api.js#offset + modifierFns.ts#offset)// ---------------------------------------------------------------------------\n\nconst OFFSET_PARAMS = { name: 'offset', params: ['shape', 'distance', 'options'], formClass: 'A' as FormClass }\n\n/**\n * Offset all faces of the shape (brepjs topology/api.js#offset + modifierFns.ts#offset).\n *\n * C5 实现面接入:occt 提供 `offsetWithHistory` ⇒ 用权威面演化,不用无历史 `offset`。\n * `offset` 是 occt-only 平台 op(arg-spec `engines:['occt']`),brepkit 侧本就不支持,\n * 不存在「有裸方法却因无 history 而报错」的回退分支。\n *\n * @param args - Resolved arguments (shape, distance, options).\n * @returns The offset shape plus its face evolution.\n */\nexport function offsetBrep(...args: unknown[]): Result<{ solid: BrepHandle; faceEvolution: Map<number, number[]> }> {\n const [shape, distance, options] = resolveArgs(args, OFFSET_PARAMS)\n const s = brepHandleOf(shape)\n const d = Number(distance)\n if (Math.abs(d) < 1e-10) {\n return err(validationError('ZERO_OFFSET', 'Offset distance cannot be zero'))\n }\n const tolerance = ((options ?? {}) as { tolerance?: number }).tolerance ?? 1e-6\n try {\n const kernel = getBrepApi()\n const inputHashes = getFaceHashes(kernel, s)\n const evo = getOcctKernel().offsetWithHistory(\n s as never,\n d,\n tolerance,\n inputHashes,\n HASH_UPPER_BOUND,\n ) as unknown as BrepEvolutionData\n const solid = evo.result\n const faceEvolution = decodeEvolution(kernel, evo, s, solid)\n return ok({ solid, faceEvolution })\n } catch (e) {\n const raw = e instanceof Error ? e.message : String(e)\n return err(kernelError('OFFSET_FAILED', `Offset operation failed: ${raw}`, e))\n }\n}\n"]}
|
package/dist/api/chamfer.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* api chamfer — chamfer 倒角库函数(BREP-only,directEdit
|
|
2
|
+
* api chamfer — chamfer 倒角库函数(BREP-only,directEdit 族)
|
|
3
3
|
*
|
|
4
4
|
* 平台分层(2026-09-26 B 批降级):**中立 op**(不再声明 `engines:['occt']`)。
|
|
5
|
-
* equal
|
|
6
|
-
*
|
|
5
|
+
* equal 分支按引擎事实**静态定轨**(与 intersect 同构,读 `hasNativeHistory`——
|
|
6
|
+
* 引擎身份是唯一判据,没有能力集可读):
|
|
7
|
+
* - occt(原生有 `chamferWithHistory`)→ `chamferWithRoleTable`(→ face-evolution.ts 的
|
|
7
8
|
* occt 原生 `chamferWithHistory`,D3 面演化 + roleTable 传播)——历史路径,不回退;
|
|
8
|
-
* - brepkit(无 chamferWithHistory
|
|
9
|
+
* - brepkit(无 `chamferWithHistory`,但裸 `kernel.chamfer` 是真实现)→ L1 裸
|
|
9
10
|
* `kernel.chamfer(solid, edges, width)`:几何正确,**无面演化、无 roleTable 传播**
|
|
10
11
|
* (如实降级,不伪造恒等映射)。
|
|
11
12
|
* distanceAngle / twoDistances 分支本就走 L1 `kernel.chamferDistAngle`(brepkit 真实现,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chamfer.d.ts","sourceRoot":"","sources":["../../src/api/chamfer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"chamfer.d.ts","sourceRoot":"","sources":["../../src/api/chamfer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQ1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAUxE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1C,IAAI,CA6CN;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAgBxC;AAsKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,OAAO;;CAgBlB,CAAA"}
|
package/dist/api/chamfer.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* api chamfer — chamfer 倒角库函数(BREP-only,directEdit
|
|
2
|
+
* api chamfer — chamfer 倒角库函数(BREP-only,directEdit 族)
|
|
3
3
|
*
|
|
4
4
|
* 平台分层(2026-09-26 B 批降级):**中立 op**(不再声明 `engines:['occt']`)。
|
|
5
|
-
* equal
|
|
6
|
-
*
|
|
5
|
+
* equal 分支按引擎事实**静态定轨**(与 intersect 同构,读 `hasNativeHistory`——
|
|
6
|
+
* 引擎身份是唯一判据,没有能力集可读):
|
|
7
|
+
* - occt(原生有 `chamferWithHistory`)→ `chamferWithRoleTable`(→ face-evolution.ts 的
|
|
7
8
|
* occt 原生 `chamferWithHistory`,D3 面演化 + roleTable 传播)——历史路径,不回退;
|
|
8
|
-
* - brepkit(无 chamferWithHistory
|
|
9
|
+
* - brepkit(无 `chamferWithHistory`,但裸 `kernel.chamfer` 是真实现)→ L1 裸
|
|
9
10
|
* `kernel.chamfer(solid, edges, width)`:几何正确,**无面演化、无 roleTable 传播**
|
|
10
11
|
* (如实降级,不伪造恒等映射)。
|
|
11
12
|
* distanceAngle / twoDistances 分支本就走 L1 `kernel.chamferDistAngle`(brepkit 真实现,
|
|
@@ -24,8 +25,8 @@
|
|
|
24
25
|
import { solidToShape } from '../brep/brep-ops.js';
|
|
25
26
|
import { chamferWithRoleTable, identityEvolution } from '../brep/face-evolution.js';
|
|
26
27
|
import { getBrepApi } from '../brep/handle-bridge.js';
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
28
|
+
import { getCurrentStmt } from '../runtime-state.js';
|
|
29
|
+
import { hasNativeHistory } from '../brep/engine/native-history.js';
|
|
29
30
|
import { fromBrep, brepOf, inputRoleTable } from '../shape.js';
|
|
30
31
|
import { defineOp } from '../sdk.js';
|
|
31
32
|
import { resolveTopoRef, facesForQualifier, TopoRefError } from '../topology/naming/index.js';
|
|
@@ -197,11 +198,11 @@ function chamferBrep(input, params) {
|
|
|
197
198
|
// 输入 roleTable + outStmt(与 boolean.ts / fillet.ts 同构)。Phase 1.6:origin=StmtId。
|
|
198
199
|
const inputTable = inputRoleTable(input);
|
|
199
200
|
const outStmt = String(getCurrentStmt()?.id ?? '');
|
|
200
|
-
//
|
|
201
|
-
//
|
|
202
|
-
//
|
|
201
|
+
// 静态定轨:当前引擎是否原生实现 chamferWithHistory 面演化核函数(引擎事实,非运行时
|
|
202
|
+
// 探测)。occt 有 → equal 走 chamferWithRoleTable 历史路径;brepkit 没有
|
|
203
|
+
// (裸 kernel.chamfer 是真实现,但无 *WithHistory)→ L1 裸调用,
|
|
203
204
|
// 不伪造面演化/roleTable(与 intersect 降级同构)。
|
|
204
|
-
const useHistory =
|
|
205
|
+
const useHistory = hasNativeHistory('chamferWithHistory');
|
|
205
206
|
let resultSolid;
|
|
206
207
|
let faceEvolution;
|
|
207
208
|
let roleTable;
|
|
@@ -311,7 +312,7 @@ function chamferMeshSolid(input, params) {
|
|
|
311
312
|
* const q = await cad.chamfer(meshPart, { edges: [3], type:'equal', width:1 })
|
|
312
313
|
*/
|
|
313
314
|
export const chamfer = defineOp({
|
|
314
|
-
// 中立 op(2026-09-26 B 批):不再声明 engines——equal
|
|
315
|
+
// 中立 op(2026-09-26 B 批):不再声明 engines——equal 路径按引擎事实静态分派
|
|
315
316
|
// (occt→chamferWithHistory 历史路径;brepkit→裸 kernel.chamfer 无演化降级)。
|
|
316
317
|
// meshEngines:网格实体路径由 brepkit 网格后端提供(方案 2026-10-01 §3.4)。
|
|
317
318
|
meshEngines: ['brepkit'],
|
|
@@ -324,5 +325,6 @@ export const chamfer = defineOp({
|
|
|
324
325
|
return chamferBrep(input, params);
|
|
325
326
|
},
|
|
326
327
|
naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
|
|
328
|
+
paramDims: {},
|
|
327
329
|
});
|
|
328
330
|
//# sourceMappingURL=chamfer.js.map
|