@faicad/faijs 0.29.5 → 0.31.1
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/NOTICE +6 -5
- 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 +6 -5
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +89 -5
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/appearance.d.ts +0 -2
- package/dist/api/appearance.d.ts.map +1 -1
- package/dist/api/appearance.js +0 -2
- package/dist/api/appearance.js.map +1 -1
- package/dist/api/assembly/entities.d.ts +1 -1
- package/dist/api/assembly/entities.js +1 -1
- package/dist/api/assembly/entities.js.map +1 -1
- package/dist/api/assembly/index.d.ts +1 -1
- package/dist/api/assembly/index.js +1 -1
- package/dist/api/assembly/index.js.map +1 -1
- package/dist/api/assembly/joints.d.ts +33 -15
- package/dist/api/assembly/joints.d.ts.map +1 -1
- package/dist/api/assembly/joints.js +31 -13
- package/dist/api/assembly/joints.js.map +1 -1
- package/dist/api/assembly/preview.d.ts +1 -1
- package/dist/api/assembly/preview.js +1 -1
- package/dist/api/assembly/preview.js.map +1 -1
- package/dist/api/assembly/solve.d.ts +1 -1
- package/dist/api/assembly/solve.js +1 -1
- package/dist/api/assembly/solve.js.map +1 -1
- package/dist/api/assembly/solvers/assembly-tree.d.ts +1 -1
- package/dist/api/assembly/solvers/assembly-tree.js +1 -1
- package/dist/api/assembly/solvers/assembly-tree.js.map +1 -1
- package/dist/api/assembly/solvers/chain-solver.d.ts +2 -2
- package/dist/api/assembly/solvers/chain-solver.js.map +1 -1
- package/dist/api/assembly/solvers/global-solver.d.ts +1 -2
- package/dist/api/assembly/solvers/global-solver.d.ts.map +1 -1
- package/dist/api/assembly/solvers/global-solver.js +3 -4
- package/dist/api/assembly/solvers/global-solver.js.map +1 -1
- package/dist/api/assembly/solvers/joints-kinematics.js +1 -1
- package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -1
- package/dist/api/assembly/solvers/linalg.d.ts +2 -2
- package/dist/api/assembly/solvers/linalg.js +2 -2
- package/dist/api/assembly/solvers/linalg.js.map +1 -1
- package/dist/api/assembly/solvers/types.d.ts +2 -5
- package/dist/api/assembly/solvers/types.d.ts.map +1 -1
- package/dist/api/assembly/solvers/types.js +1 -4
- package/dist/api/assembly/solvers/types.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 +113 -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 +22 -33
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/brep-mirror/booleanFns.d.ts +3 -3
- package/dist/api/brep-mirror/booleanFns.js +5 -5
- package/dist/api/brep-mirror/booleanFns.js.map +1 -1
- package/dist/api/brep-mirror/compoundFns.d.ts +1 -1
- package/dist/api/brep-mirror/compoundFns.js +4 -4
- package/dist/api/brep-mirror/compoundFns.js.map +1 -1
- package/dist/api/brep-mirror/healingFns.d.ts +4 -4
- package/dist/api/brep-mirror/healingFns.js +4 -4
- package/dist/api/brep-mirror/healingFns.js.map +1 -1
- package/dist/api/brep-mirror/hullFns.d.ts +2 -2
- package/dist/api/brep-mirror/hullFns.js +2 -2
- package/dist/api/brep-mirror/hullFns.js.map +1 -1
- package/dist/api/brep-mirror/patternFns.d.ts +5 -5
- package/dist/api/brep-mirror/patternFns.js +10 -10
- package/dist/api/brep-mirror/patternFns.js.map +1 -1
- package/dist/api/brep-mirror/primitiveFns.d.ts +4 -4
- package/dist/api/brep-mirror/primitiveFns.js +4 -4
- package/dist/api/brep-mirror/primitiveFns.js.map +1 -1
- package/dist/api/brep-mirror/roofFns.d.ts +3 -3
- package/dist/api/brep-mirror/roofFns.js +7 -7
- package/dist/api/brep-mirror/roofFns.js.map +1 -1
- package/dist/api/brep-mirror/sweepFns.d.ts +7 -7
- package/dist/api/brep-mirror/sweepFns.js +14 -14
- package/dist/api/brep-mirror/sweepFns.js.map +1 -1
- package/dist/api/brep-mirror/threadFns.d.ts +1 -1
- package/dist/api/brep-mirror/threadFns.js +1 -1
- package/dist/api/brep-mirror/threadFns.js.map +1 -1
- package/dist/api/brep-mirror/topologyFns.d.ts +5 -5
- package/dist/api/brep-mirror/topologyFns.js +8 -8
- package/dist/api/brep-mirror/topologyFns.js.map +1 -1
- package/dist/api/brep-operations/booleanFns.d.ts +40 -0
- package/dist/api/brep-operations/booleanFns.d.ts.map +1 -0
- package/dist/api/brep-operations/booleanFns.js +104 -0
- package/dist/api/brep-operations/booleanFns.js.map +1 -0
- package/dist/api/brep-operations/brepHelpers.d.ts +55 -0
- package/dist/api/brep-operations/brepHelpers.d.ts.map +1 -0
- package/dist/api/brep-operations/brepHelpers.js +131 -0
- package/dist/api/brep-operations/brepHelpers.js.map +1 -0
- package/dist/api/brep-operations/compoundFns.d.ts +46 -0
- package/dist/api/brep-operations/compoundFns.d.ts.map +1 -0
- package/dist/api/brep-operations/compoundFns.js +299 -0
- package/dist/api/brep-operations/compoundFns.js.map +1 -0
- package/dist/api/brep-operations/healingFns.d.ts +91 -0
- package/dist/api/brep-operations/healingFns.d.ts.map +1 -0
- package/dist/api/brep-operations/healingFns.js +321 -0
- package/dist/api/brep-operations/healingFns.js.map +1 -0
- package/dist/api/brep-operations/hullFns.d.ts +20 -0
- package/dist/api/brep-operations/hullFns.d.ts.map +1 -0
- package/dist/api/brep-operations/hullFns.js +46 -0
- package/dist/api/brep-operations/hullFns.js.map +1 -0
- package/dist/api/brep-operations/joinery-brep.d.ts +172 -0
- package/dist/api/brep-operations/joinery-brep.d.ts.map +1 -0
- package/dist/api/brep-operations/joinery-brep.js +463 -0
- package/dist/api/brep-operations/joinery-brep.js.map +1 -0
- package/dist/api/brep-operations/patternFns.d.ts +43 -0
- package/dist/api/brep-operations/patternFns.d.ts.map +1 -0
- package/dist/api/brep-operations/patternFns.js +178 -0
- package/dist/api/brep-operations/patternFns.js.map +1 -0
- package/dist/api/brep-operations/primitiveFns.d.ts +42 -0
- package/dist/api/brep-operations/primitiveFns.d.ts.map +1 -0
- package/dist/api/brep-operations/primitiveFns.js +104 -0
- package/dist/api/brep-operations/primitiveFns.js.map +1 -0
- package/dist/api/brep-operations/roofFns.d.ts +24 -0
- package/dist/api/brep-operations/roofFns.d.ts.map +1 -0
- package/dist/api/brep-operations/roofFns.js +229 -0
- package/dist/api/brep-operations/roofFns.js.map +1 -0
- package/dist/api/brep-operations/straightSkeleton.d.ts +36 -0
- package/dist/api/brep-operations/straightSkeleton.d.ts.map +1 -0
- package/dist/api/brep-operations/straightSkeleton.js +431 -0
- package/dist/api/brep-operations/straightSkeleton.js.map +1 -0
- package/dist/api/brep-operations/sweepFns.d.ts +60 -0
- package/dist/api/brep-operations/sweepFns.d.ts.map +1 -0
- package/dist/api/brep-operations/sweepFns.js +323 -0
- package/dist/api/brep-operations/sweepFns.js.map +1 -0
- package/dist/api/brep-operations/threadFns.d.ts +83 -0
- package/dist/api/brep-operations/threadFns.d.ts.map +1 -0
- package/dist/api/brep-operations/threadFns.js +138 -0
- package/dist/api/brep-operations/threadFns.js.map +1 -0
- package/dist/api/brep-operations/topologyFns.d.ts +111 -0
- package/dist/api/brep-operations/topologyFns.d.ts.map +1 -0
- package/dist/api/brep-operations/topologyFns.js +300 -0
- package/dist/api/brep-operations/topologyFns.js.map +1 -0
- package/dist/api/brep-topology.d.ts +1 -1
- package/dist/api/brep-topology.d.ts.map +1 -1
- package/dist/api/brep-topology.js +1 -1
- package/dist/api/brep-topology.js.map +1 -1
- package/dist/api/brepjs-compat/index.d.ts +1 -1
- package/dist/api/brepjs-compat/index.js +3 -3
- package/dist/api/brepjs-compat/index.js.map +1 -1
- package/dist/api/cadquery-selectors/borrow-bridge.d.ts.map +1 -1
- package/dist/api/cadquery-selectors/borrow-bridge.js +3 -4
- package/dist/api/cadquery-selectors/borrow-bridge.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 +12 -11
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/curve-sketch/index.d.ts +235 -0
- package/dist/api/curve-sketch/index.d.ts.map +1 -0
- package/dist/api/curve-sketch/index.js +493 -0
- package/dist/api/curve-sketch/index.js.map +1 -0
- package/dist/api/draft.d.ts.map +1 -1
- package/dist/api/draft.js +1 -3
- package/dist/api/draft.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +6 -15
- 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 +47 -0
- package/dist/api/export-brep.d.ts.map +1 -0
- package/dist/api/export-brep.js +67 -0
- package/dist/api/export-brep.js.map +1 -0
- 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 +58 -0
- package/dist/api/export-stl.d.ts.map +1 -0
- package/dist/api/export-stl.js +114 -0
- package/dist/api/export-stl.js.map +1 -0
- package/dist/api/extrude.d.ts +8 -11
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +11 -14
- 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 +1 -7
- package/dist/api/feature-repair.js.map +1 -1
- package/dist/api/fillet-variable.d.ts +2 -2
- package/dist/api/fillet-variable.d.ts.map +1 -1
- package/dist/api/fillet-variable.js +2 -3
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts +5 -7
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +5 -8
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/2d.d.ts +4 -0
- package/dist/api/generated/2d.d.ts.map +1 -1
- package/dist/api/generated/2d.js +4 -0
- package/dist/api/generated/2d.js.map +1 -1
- package/dist/api/generated/core.d.ts +4 -0
- package/dist/api/generated/core.d.ts.map +1 -1
- package/dist/api/generated/core.js +4 -0
- package/dist/api/generated/core.js.map +1 -1
- package/dist/api/generated/gear.d.ts +4 -0
- package/dist/api/generated/gear.d.ts.map +1 -1
- package/dist/api/generated/gear.js +4 -0
- package/dist/api/generated/gear.js.map +1 -1
- package/dist/api/generated/io.d.ts +4 -0
- package/dist/api/generated/io.d.ts.map +1 -1
- package/dist/api/generated/io.js +4 -0
- package/dist/api/generated/io.js.map +1 -1
- package/dist/api/generated/kernel.d.ts +4 -0
- package/dist/api/generated/kernel.d.ts.map +1 -1
- package/dist/api/generated/kernel.js +4 -0
- package/dist/api/generated/kernel.js.map +1 -1
- package/dist/api/generated/measurement.d.ts +21 -21
- package/dist/api/generated/measurement.d.ts.map +1 -1
- package/dist/api/generated/measurement.js +25 -21
- package/dist/api/generated/measurement.js.map +1 -1
- package/dist/api/generated/ns.d.ts +4 -0
- package/dist/api/generated/ns.d.ts.map +1 -1
- package/dist/api/generated/ns.js +4 -0
- package/dist/api/generated/ns.js.map +1 -1
- package/dist/api/generated/operations.d.ts +32 -32
- package/dist/api/generated/operations.d.ts.map +1 -1
- package/dist/api/generated/operations.js +58 -54
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/projection.d.ts +4 -0
- package/dist/api/generated/projection.d.ts.map +1 -1
- package/dist/api/generated/projection.js +4 -0
- package/dist/api/generated/projection.js.map +1 -1
- package/dist/api/generated/query.d.ts +4 -0
- package/dist/api/generated/query.d.ts.map +1 -1
- package/dist/api/generated/query.js +4 -0
- package/dist/api/generated/query.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.d.ts +2 -2
- package/dist/api/generated/sketching.d.ts.map +1 -1
- package/dist/api/generated/sketching.js +8 -4
- package/dist/api/generated/sketching.js.map +1 -1
- package/dist/api/generated/text.d.ts +4 -0
- package/dist/api/generated/text.d.ts.map +1 -1
- package/dist/api/generated/text.js +4 -0
- package/dist/api/generated/text.js.map +1 -1
- package/dist/api/generated/topology.d.ts +45 -45
- package/dist/api/generated/topology.d.ts.map +1 -1
- package/dist/api/generated/topology.js +77 -73
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/generated/view.d.ts +4 -0
- package/dist/api/generated/view.d.ts.map +1 -1
- package/dist/api/generated/view.js +4 -0
- package/dist/api/generated/view.js.map +1 -1
- package/dist/api/geom-types/constants.d.ts +11 -0
- package/dist/api/geom-types/constants.d.ts.map +1 -0
- package/dist/api/geom-types/constants.js +11 -0
- package/dist/api/geom-types/constants.js.map +1 -0
- package/dist/api/geom-types/index.d.ts +21 -0
- package/dist/api/geom-types/index.d.ts.map +1 -0
- package/dist/api/geom-types/index.js +22 -0
- package/dist/api/geom-types/index.js.map +1 -0
- package/dist/api/geom-types/planeOps.d.ts +98 -0
- package/dist/api/geom-types/planeOps.d.ts.map +1 -0
- package/dist/api/geom-types/planeOps.js +170 -0
- package/dist/api/geom-types/planeOps.js.map +1 -0
- package/dist/api/geom-types/planeTypes.d.ts +24 -0
- package/dist/api/geom-types/planeTypes.d.ts.map +1 -0
- package/dist/api/geom-types/planeTypes.js +8 -0
- package/dist/api/geom-types/planeTypes.js.map +1 -0
- package/dist/api/geom-types/types.d.ts +64 -0
- package/dist/api/geom-types/types.d.ts.map +1 -0
- package/dist/api/geom-types/types.js +48 -0
- package/dist/api/geom-types/types.js.map +1 -0
- package/dist/api/geom-types/vecOps.d.ts +124 -0
- package/dist/api/geom-types/vecOps.d.ts.map +1 -0
- package/dist/api/geom-types/vecOps.js +202 -0
- package/dist/api/geom-types/vecOps.js.map +1 -0
- package/dist/api/geom.d.ts.map +1 -1
- package/dist/api/geom.js +6 -5
- package/dist/api/geom.js.map +1 -1
- package/dist/api/half-space.d.ts +56 -0
- package/dist/api/half-space.d.ts.map +1 -0
- package/dist/api/half-space.js +82 -0
- package/dist/api/half-space.js.map +1 -0
- package/dist/api/helix.d.ts +11 -2
- package/dist/api/helix.d.ts.map +1 -1
- package/dist/api/helix.js +20 -4
- package/dist/api/helix.js.map +1 -1
- package/dist/api/index.d.ts +19 -7
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +44 -11
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts +10 -36
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +17 -51
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/internal/compat-projection.d.ts +5 -5
- package/dist/api/internal/compat-projection.js +5 -5
- package/dist/api/internal/compat-projection.js.map +1 -1
- package/dist/api/internal/dual-form-args.d.ts +0 -2
- package/dist/api/internal/dual-form-args.d.ts.map +1 -1
- package/dist/api/internal/dual-form-args.js +1 -3
- package/dist/api/internal/dual-form-args.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 +22 -37
- package/dist/api/internal/l3-bridge.d.ts.map +1 -1
- package/dist/api/internal/l3-bridge.js +30 -77
- package/dist/api/internal/l3-bridge.js.map +1 -1
- package/dist/api/internal/profile-wire.d.ts +1 -1
- package/dist/api/internal/profile-wire.js +1 -1
- package/dist/api/internal/profile-wire.js.map +1 -1
- package/dist/api/internal/result-unwrap.d.ts +4 -6
- package/dist/api/internal/result-unwrap.d.ts.map +1 -1
- package/dist/api/internal/result-unwrap.js +4 -6
- package/dist/api/internal/result-unwrap.js.map +1 -1
- package/dist/api/knurl.d.ts.map +1 -1
- package/dist/api/knurl.js +5 -3
- package/dist/api/knurl.js.map +1 -1
- package/dist/api/loft.d.ts +2 -2
- package/dist/api/loft.d.ts.map +1 -1
- package/dist/api/loft.js +2 -2
- 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 +390 -0
- package/dist/api/measure-query/index.js.map +1 -0
- package/dist/api/measurement/index.d.ts +3 -3
- package/dist/api/measurement/index.js +3 -3
- package/dist/api/measurement/index.js.map +1 -1
- package/dist/api/meta.d.ts +0 -2
- package/dist/api/meta.d.ts.map +1 -1
- package/dist/api/meta.js +0 -2
- package/dist/api/meta.js.map +1 -1
- package/dist/api/offset2d.d.ts +49 -0
- package/dist/api/offset2d.d.ts.map +1 -0
- package/dist/api/offset2d.js +86 -0
- package/dist/api/offset2d.js.map +1 -0
- package/dist/api/pattern.d.ts.map +1 -1
- package/dist/api/pattern.js +3 -6
- package/dist/api/pattern.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 +19 -17
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/profile.d.ts.map +1 -1
- package/dist/api/profile.js +0 -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 +0 -1
- package/dist/api/punch-hole.js.map +1 -1
- package/dist/api/replicate.d.ts +6 -8
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +27 -65
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/result.d.ts +1 -1
- package/dist/api/result.js +1 -1
- package/dist/api/result.js.map +1 -1
- package/dist/api/revolve.d.ts +2 -2
- package/dist/api/revolve.js +3 -3
- package/dist/api/revolve.js.map +1 -1
- package/dist/api/screw.d.ts +1 -1
- package/dist/api/screw.d.ts.map +1 -1
- package/dist/api/screw.js +5 -4
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts.map +1 -1
- package/dist/api/sdf.js +3 -2
- 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/shape-type/index.d.ts +141 -0
- package/dist/api/shape-type/index.d.ts.map +1 -0
- package/dist/api/shape-type/index.js +182 -0
- package/dist/api/shape-type/index.js.map +1 -0
- package/dist/api/shell.d.ts +2 -2
- package/dist/api/shell.d.ts.map +1 -1
- package/dist/api/shell.js +12 -3
- package/dist/api/shell.js.map +1 -1
- package/dist/api/sketch-on-face.d.ts +3 -3
- package/dist/api/sketch-on-face.d.ts.map +1 -1
- package/dist/api/sketch-on-face.js +6 -4
- 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 +0 -1
- package/dist/api/sketch-on-plane.js.map +1 -1
- package/dist/api/solid-from-faces.d.ts +45 -0
- package/dist/api/solid-from-faces.d.ts.map +1 -0
- package/dist/api/solid-from-faces.js +72 -0
- package/dist/api/solid-from-faces.js.map +1 -0
- package/dist/api/solid-offset/index.d.ts +67 -0
- package/dist/api/solid-offset/index.d.ts.map +1 -0
- package/dist/api/solid-offset/index.js +132 -0
- package/dist/api/solid-offset/index.js.map +1 -0
- 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.js +1 -1
- package/dist/api/split.js.map +1 -1
- package/dist/api/surface/arg-spec.d.ts +37 -44
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +224 -233
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/surface-face/index.d.ts +104 -0
- package/dist/api/surface-face/index.d.ts.map +1 -0
- package/dist/api/surface-face/index.js +217 -0
- package/dist/api/surface-face/index.js.map +1 -0
- package/dist/api/surface.d.ts +44 -0
- package/dist/api/surface.d.ts.map +1 -0
- package/dist/api/surface.js +66 -0
- package/dist/api/surface.js.map +1 -0
- package/dist/api/sweep.d.ts +71 -9
- package/dist/api/sweep.d.ts.map +1 -1
- package/dist/api/sweep.js +13 -6
- package/dist/api/sweep.js.map +1 -1
- package/dist/api/thicken.d.ts +1 -1
- package/dist/api/thicken.d.ts.map +1 -1
- package/dist/api/thicken.js +12 -3
- package/dist/api/thicken.js.map +1 -1
- package/dist/api/transform.d.ts +8 -8
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +58 -27
- package/dist/api/transform.js.map +1 -1
- package/dist/api/view/cameraFns.d.ts +1 -1
- package/dist/api/view/cameraFns.d.ts.map +1 -1
- package/dist/api/view/cameraFns.js +1 -1
- package/dist/api/view/cameraFns.js.map +1 -1
- package/dist/api/view/index.d.ts +0 -2
- package/dist/api/view/index.d.ts.map +1 -1
- package/dist/api/view/index.js +0 -2
- package/dist/api/view/index.js.map +1 -1
- package/dist/api/view/projectionPlanes.d.ts +1 -1
- package/dist/api/view/projectionPlanes.d.ts.map +1 -1
- package/dist/api/view/projectionPlanes.js.map +1 -1
- package/dist/api/view/view-camera.d.ts +7 -9
- package/dist/api/view/view-camera.d.ts.map +1 -1
- package/dist/api/view/view-camera.js +4 -6
- package/dist/api/view/view-camera.js.map +1 -1
- package/dist/api/view/view-projection.d.ts +0 -2
- package/dist/api/view/view-projection.d.ts.map +1 -1
- package/dist/api/view/view-projection.js +0 -2
- package/dist/api/view/view-projection.js.map +1 -1
- package/dist/api/view/view-sheet.d.ts +0 -2
- package/dist/api/view/view-sheet.d.ts.map +1 -1
- package/dist/api/view/view-sheet.js +0 -2
- package/dist/api/view/view-sheet.js.map +1 -1
- package/dist/api/view-export/index.d.ts +97 -0
- package/dist/api/view-export/index.d.ts.map +1 -0
- package/dist/api/view-export/index.js +118 -0
- package/dist/api/view-export/index.js.map +1 -0
- 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 +93 -2
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +185 -15
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/brep-topology.d.ts +20 -0
- package/dist/brep/brep-topology.d.ts.map +1 -1
- package/dist/brep/brep-topology.js +46 -0
- package/dist/brep/brep-topology.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +0 -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 +1 -1
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +4 -148
- 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 +2 -3
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js +1 -2
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/registry.d.ts +3 -5
- package/dist/brep/engine/registry.d.ts.map +1 -1
- package/dist/brep/engine/registry.js +2 -2
- 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/brep/handle-bridge.d.ts +2 -2
- package/dist/brep/handle-bridge.js +2 -2
- package/dist/brep/handle-bridge.js.map +1 -1
- package/dist/brep/index.d.ts +6 -3
- package/dist/brep/index.d.ts.map +1 -1
- package/dist/brep/index.js +6 -3
- package/dist/brep/index.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +2 -2
- 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 +5 -9
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +5 -26
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts +3 -10
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.js +3 -9
- package/dist/cad-runtime/admit-compat-lib.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 +34 -83
- 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/direct-executor.d.ts +6 -3
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
- package/dist/cad-runtime/direct-executor.js +31 -9
- package/dist/cad-runtime/direct-executor.js.map +1 -1
- package/dist/cad-runtime/interp/env.d.ts +1 -1
- package/dist/cad-runtime/interp/env.js.map +1 -1
- package/dist/cad-runtime/lib-id.d.ts +0 -2
- package/dist/cad-runtime/lib-id.d.ts.map +1 -1
- package/dist/cad-runtime/lib-id.js +0 -2
- package/dist/cad-runtime/lib-id.js.map +1 -1
- package/dist/cad-runtime/live-shapes.d.ts +3 -5
- package/dist/cad-runtime/live-shapes.d.ts.map +1 -1
- package/dist/cad-runtime/live-shapes.js +8 -10
- package/dist/cad-runtime/live-shapes.js.map +1 -1
- package/dist/cad-runtime/ports.d.ts +31 -3
- 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 +54 -19
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +89 -54
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +10 -14
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +5 -22
- 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/geometry2d/bridge/plane.d.ts +1 -1
- package/dist/geometry2d/bridge/plane.js +1 -1
- package/dist/geometry2d/bridge/plane.js.map +1 -1
- package/dist/geometry2d/curve2d.d.ts +1 -1
- package/dist/geometry2d/curve2d.js +1 -1
- package/dist/geometry2d/curve2d.js.map +1 -1
- package/dist/index.d.ts +14 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -70
- package/dist/index.js.map +1 -1
- package/dist/io/fai-zip/container-read.d.ts +16 -0
- package/dist/io/fai-zip/container-read.d.ts.map +1 -1
- package/dist/io/fai-zip/container-read.js +22 -0
- package/dist/io/fai-zip/container-read.js.map +1 -1
- package/dist/io/fai-zip/index.d.ts +1 -1
- package/dist/io/fai-zip/index.d.ts.map +1 -1
- package/dist/io/fai-zip/index.js +1 -1
- package/dist/io/fai-zip/index.js.map +1 -1
- package/dist/lang/code-to-args.d.ts.map +1 -1
- package/dist/lang/code-to-args.js +10 -1
- package/dist/lang/code-to-args.js.map +1 -1
- package/dist/lang/determinism-scanner.d.ts.map +1 -1
- package/dist/lang/determinism-scanner.js +22 -9
- package/dist/lang/determinism-scanner.js.map +1 -1
- package/dist/lang/metadata-extractor.d.ts +27 -6
- package/dist/lang/metadata-extractor.d.ts.map +1 -1
- package/dist/lang/metadata-extractor.js +88 -8
- package/dist/lang/metadata-extractor.js.map +1 -1
- package/dist/lang/parse-error.d.ts +4 -0
- package/dist/lang/parse-error.d.ts.map +1 -1
- package/dist/lang/parse-error.js.map +1 -1
- package/dist/lang/security-scanner.d.ts +27 -2
- package/dist/lang/security-scanner.d.ts.map +1 -1
- package/dist/lang/security-scanner.js +29 -2
- package/dist/lang/security-scanner.js.map +1 -1
- package/dist/lang/source-edit.d.ts +2 -2
- package/dist/lang/source-edit.js.map +1 -1
- package/dist/lang/symbol-table.generated.d.ts +53 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +53 -0
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/mesh/import-model.d.ts +94 -0
- package/dist/mesh/import-model.d.ts.map +1 -0
- package/dist/mesh/import-model.js +15 -0
- package/dist/mesh/import-model.js.map +1 -0
- package/dist/mesh/index.d.ts +19 -63
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +19 -72
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/io.d.ts +62 -17
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +210 -41
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/primitives.js +1 -1
- package/dist/mesh/primitives.js.map +1 -1
- package/dist/mesh/threemf-bambu.d.ts +12 -1
- package/dist/mesh/threemf-bambu.d.ts.map +1 -1
- package/dist/mesh/threemf-bambu.js +68 -16
- package/dist/mesh/threemf-bambu.js.map +1 -1
- package/dist/mesh/threemf-loader.d.ts +52 -5
- package/dist/mesh/threemf-loader.d.ts.map +1 -1
- package/dist/mesh/threemf-loader.js +139 -41
- package/dist/mesh/threemf-loader.js.map +1 -1
- package/dist/mesh/transform.d.ts +1 -1
- package/dist/mesh/transform.js +1 -1
- package/dist/mesh/transform.js.map +1 -1
- package/dist/mesh/types.d.ts +35 -5
- package/dist/mesh/types.d.ts.map +1 -1
- package/dist/mesh/types.js.map +1 -1
- package/dist/node-host/cli.d.ts +49 -1
- package/dist/node-host/cli.d.ts.map +1 -1
- package/dist/node-host/cli.js +125 -19
- package/dist/node-host/cli.js.map +1 -1
- package/dist/node-host/execute-script.d.ts +56 -0
- package/dist/node-host/execute-script.d.ts.map +1 -0
- package/dist/node-host/execute-script.js +47 -0
- package/dist/node-host/execute-script.js.map +1 -0
- 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/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +3 -0
- package/dist/node.js.map +1 -1
- package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +260 -0
- package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +1 -0
- package/dist/occt-kernel/generated/occtPlatform.generated.js +875 -0
- package/dist/occt-kernel/generated/occtPlatform.generated.js.map +1 -0
- package/dist/occt-kernel/hullGeometry.d.ts +2 -2
- package/dist/occt-kernel/hullGeometry.js +2 -3
- package/dist/occt-kernel/hullGeometry.js.map +1 -1
- package/dist/occt-kernel/hullOps.d.ts +3 -3
- package/dist/occt-kernel/hullOps.js +4 -4
- package/dist/occt-kernel/hullOps.js.map +1 -1
- package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
- package/dist/occt-kernel/occt-primitives.js +31 -4
- package/dist/occt-kernel/occt-primitives.js.map +1 -1
- package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
- package/dist/occt-kernel/occtKernel.js +18 -0
- package/dist/occt-kernel/occtKernel.js.map +1 -1
- package/dist/occt-scan/recognize.d.ts +58 -0
- package/dist/occt-scan/recognize.d.ts.map +1 -0
- package/dist/occt-scan/recognize.js +216 -0
- package/dist/occt-scan/recognize.js.map +1 -0
- package/dist/primitives/brep-primitives.js +7 -7
- 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/result/bug.d.ts +1 -1
- package/dist/result/bug.js +1 -1
- package/dist/result/bug.js.map +1 -1
- package/dist/result/errors.d.ts +2 -2
- package/dist/result/errors.d.ts.map +1 -1
- package/dist/result/errors.js +1 -1
- package/dist/result/errors.js.map +1 -1
- package/dist/result/vec3.d.ts +1 -1
- package/dist/result/vec3.js +1 -1
- package/dist/result/vec3.js.map +1 -1
- package/dist/runtime-state.d.ts +79 -29
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +84 -0
- package/dist/runtime-state.js.map +1 -1
- package/dist/script-globals.d.ts +24 -0
- package/dist/script-globals.d.ts.map +1 -0
- package/dist/script-globals.js +24 -0
- package/dist/script-globals.js.map +1 -0
- 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/shape.d.ts +24 -0
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +40 -0
- package/dist/shape.js.map +1 -1
- package/dist/topology/naming/lineage.d.ts +3 -2
- package/dist/topology/naming/lineage.d.ts.map +1 -1
- package/dist/topology/naming/lineage.js.map +1 -1
- package/dist/weapp.d.ts +3 -3
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +2 -2
- package/dist/weapp.js.map +1 -1
- package/package.json +283 -44
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api measure-query — 测量与查询族(S4 剩余,平台 op engines:['occt'])
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 13 个原生方法直调 occt-wasm(occt-wasm 5.6.0 有,见
|
|
5
|
+
* `dist/index.d.ts` 的 `OcctKernel`):
|
|
6
|
+
* containsPoint / distanceBetween / getInertia / getLinearCenterOfMass /
|
|
7
|
+
* projectPointOnEdge / projectPointOnFace / classifyPointOnFace / uvFromPoint /
|
|
8
|
+
* vertexPosition / subShapeCount / iterShapes / liftCurve2dToPlane / intersectionCells
|
|
9
|
+
* 它们**不在** L1 契约 `BrepEngineApi` 里(L1 只有 getCenterOfMass / getVolume /
|
|
10
|
+
* getSurfaceArea / getBoundingBox 等子集,见 brep/engine/primitives.ts)⇒ 全族平台 op。
|
|
11
|
+
*
|
|
12
|
+
* 方案落点:docs/plans/2026-10-07-occt-wasm-op-enablement-plan.md §3.4.6。
|
|
13
|
+
*
|
|
14
|
+
* **形态二分**(沿用 shape-type / view-export / curve-sketch 的既定口径):
|
|
15
|
+
* - 返回 Shape 的两项(`liftCurve2d` / `commonCells`)走 `defineOp` + `engines:['occt']`,
|
|
16
|
+
* 由 dispatchPath 门控(D11-4,brep_mock 豁免走 D11-3);
|
|
17
|
+
* - 其余返回标量 / Vec3 / 对象 / Shape[] 的 11 项走**普通函数** +
|
|
18
|
+
* `assertEngineFor('<name>', ['occt'])`:defineOp 的 brep 包装
|
|
19
|
+
* (define-op.ts#wrapBrepOne)把返回值一律收养为 Shape,装不下这些形态。普通函数
|
|
20
|
+
* 形态的 op 由覆盖率扫描器 `scan-occt-op-coverage.ts` 的 PLAN_C2_EXTRA 计入 C2。
|
|
21
|
+
*
|
|
22
|
+
* **GOTCHA(上游载体差异,务必读)**:occt-wasm 的 `Vec3` 是 **`{x, y, z}` 对象接口**
|
|
23
|
+
* (dist/types.d.ts:52-56),而 faijs 脚本面的 `Vec3` 是 **`[x, y, z]` 数组**
|
|
24
|
+
* (mesh/types,见 api/geom.ts 里 `normal = [n.x, n.y, n.z]` 的同款转接)。因此本文件
|
|
25
|
+
* 在**边界处做双向转换**,不外泄载体差异:入参 `[x,y,z]` → `{x,y,z}`,返回值
|
|
26
|
+
* `{x,y,z}` → `[x,y,z]`。漏掉这层转换时症状是原生方法读到 `undefined` 坐标
|
|
27
|
+
* (`{}.x` 静默取不到 → 落在原点)而非显式报错,故每条都配了返回值数组的测试。
|
|
28
|
+
*
|
|
29
|
+
* `iterShapes` 返回的子形状既有实体/面也有边/wire ⇒ 按 `getShapeType` 判定收养形态
|
|
30
|
+
* (vertex/edge/wire → `fromBrepCurve`,其余 → `fromBrep`),避免把 1D 产物谎报成实体。
|
|
31
|
+
*
|
|
32
|
+
* §9.5 降级路径(记录在案):一旦 brepkit 把这些测量/查询接进 L1 契约且两侧适配器
|
|
33
|
+
* 同时落地,普通函数删掉 assertEngineFor 改走 getBrepApi()、defineOp 删掉 engines
|
|
34
|
+
* 声明,对应方法即从 C2 转入 C1。
|
|
35
|
+
*/
|
|
36
|
+
import type { Shape, Vec3 } from '../../mesh/types.js';
|
|
37
|
+
import type { PointClassification } from 'occt-wasm';
|
|
38
|
+
/** 子形状类型(与 occt 原生同名形参的字面量联合一致)。 */
|
|
39
|
+
export type SubShapeType = 'vertex' | 'edge' | 'wire' | 'face' | 'shell' | 'solid';
|
|
40
|
+
/**
|
|
41
|
+
* 点是否在实体内(含边界,带容差)。
|
|
42
|
+
* @group 查询
|
|
43
|
+
* @inputs 1
|
|
44
|
+
* @async false
|
|
45
|
+
* @qual ok
|
|
46
|
+
* @name containsPoint
|
|
47
|
+
* @note 平台 op:仅 occt 引擎(原生 containsPoint,L1 契约无对应成员)。
|
|
48
|
+
* 非 occt 引擎执行前报 E_BREP_UNSUPPORTED。坐标收脚本面的 [x,y,z]。
|
|
49
|
+
* @returns boolean 点是否在形状内。
|
|
50
|
+
* @param shape - 被检测的形状(语义上是实体/壳)。type:Shape required:true
|
|
51
|
+
* @param point - 待判定点 [x,y,z]。type:Vec3 required:true
|
|
52
|
+
* @param tolerance - 判定容差(模型单位)。type:number required:false
|
|
53
|
+
* @example
|
|
54
|
+
* const inside = cad.containsPoint(box, [1, 1, 1])
|
|
55
|
+
*/
|
|
56
|
+
export declare function containsPoint(shape: Shape, point: Vec3, tolerance?: number): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* 两形状之间的最短距离。
|
|
59
|
+
* @group 查询
|
|
60
|
+
* @inputs 2
|
|
61
|
+
* @async false
|
|
62
|
+
* @qual ok
|
|
63
|
+
* @name distanceBetween
|
|
64
|
+
* @note 平台 op:仅 occt 引擎(原生 distanceBetween,BRepExtrema_DistShapeShape)。
|
|
65
|
+
* 非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
66
|
+
* @returns number 最短距离(模型单位;相交为 0)。
|
|
67
|
+
* @param a - 第一个形状。type:Shape required:true
|
|
68
|
+
* @param b - 第二个形状。type:Shape required:true
|
|
69
|
+
* @example
|
|
70
|
+
* const gap = cad.distanceBetween(box1, box2)
|
|
71
|
+
*/
|
|
72
|
+
export declare function distanceBetween(a: Shape, b: Shape): number;
|
|
73
|
+
/**
|
|
74
|
+
* 绕质心的惯性矩阵(row-major 3×3,长度 9;对称:[1]==[3]、[2]==[6]、[5]==[7])。
|
|
75
|
+
* @group 查询
|
|
76
|
+
* @inputs 1
|
|
77
|
+
* @async false
|
|
78
|
+
* @qual ok
|
|
79
|
+
* @name inertia
|
|
80
|
+
* @note 平台 op:仅 occt 引擎(原生 getInertia)。非 occt 引擎执行前报
|
|
81
|
+
* E_BREP_UNSUPPORTED。
|
|
82
|
+
* @returns number[] row-major 3×3 惯性矩阵。
|
|
83
|
+
* @param shape - 被测量的形状。type:Shape required:true
|
|
84
|
+
* @example
|
|
85
|
+
* const m = cad.inertia(box)
|
|
86
|
+
*/
|
|
87
|
+
export declare function inertia(shape: Shape): number[];
|
|
88
|
+
/**
|
|
89
|
+
* 线性质心(按边长加权的质心;wire/edge 用它与体积质心区分)。
|
|
90
|
+
* @group 查询
|
|
91
|
+
* @inputs 1
|
|
92
|
+
* @async false
|
|
93
|
+
* @qual ok
|
|
94
|
+
* @name linearCenterOfMass
|
|
95
|
+
* @note 平台 op:仅 occt 引擎(原生 getLinearCenterOfMass)。非 occt 引擎执行前报
|
|
96
|
+
* E_BREP_UNSUPPORTED。返回脚本面的 [x,y,z](非 occt 的 {x,y,z} 对象)。
|
|
97
|
+
* @returns Vec3 线性质心坐标 [x,y,z]。
|
|
98
|
+
* @param shape - 被测量的形状。type:Shape required:true
|
|
99
|
+
* @example
|
|
100
|
+
* const c = cad.linearCenterOfMass(wire)
|
|
101
|
+
*/
|
|
102
|
+
export declare function linearCenterOfMass(shape: Shape): Vec3;
|
|
103
|
+
/**
|
|
104
|
+
* 点到边的最近点(含该处切向与参数)。
|
|
105
|
+
* @group 查询
|
|
106
|
+
* @inputs 2
|
|
107
|
+
* @async false
|
|
108
|
+
* @qual ok
|
|
109
|
+
* @name projectPointOnEdge
|
|
110
|
+
* @note 平台 op:仅 occt 引擎(原生 projectPointOnEdge)。非 occt 引擎执行前报
|
|
111
|
+
* E_BREP_UNSUPPORTED。返回体里的 point/tangent 是脚本面的 [x,y,z]。
|
|
112
|
+
* @returns object { point: Vec3; tangent: Vec3; parameter: number }。
|
|
113
|
+
* @param edge - 被投影的边。type:Shape required:true
|
|
114
|
+
* @param point - 待投影点 [x,y,z]。type:Vec3 required:true
|
|
115
|
+
* @example
|
|
116
|
+
* const hit = cad.projectPointOnEdge(e, [3, 4, 0])
|
|
117
|
+
*/
|
|
118
|
+
export declare function projectPointOnEdge(edge: Shape, point: Vec3): {
|
|
119
|
+
point: Vec3;
|
|
120
|
+
tangent: Vec3;
|
|
121
|
+
parameter: number;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* 点到面的最近点(三维坐标)。
|
|
125
|
+
* @group 查询
|
|
126
|
+
* @inputs 2
|
|
127
|
+
* @async false
|
|
128
|
+
* @qual ok
|
|
129
|
+
* @name projectPointOnFace
|
|
130
|
+
* @note 平台 op:仅 occt 引擎(原生 projectPointOnFace)。非 occt 引擎执行前报
|
|
131
|
+
* E_BREP_UNSUPPORTED。要 UV 参数用 `uvFromPoint`。
|
|
132
|
+
* @returns Vec3 面上的最近点 [x,y,z]。
|
|
133
|
+
* @param face - 被投影的面。type:Shape required:true
|
|
134
|
+
* @param point - 待投影点 [x,y,z]。type:Vec3 required:true
|
|
135
|
+
* @example
|
|
136
|
+
* const p = cad.projectPointOnFace(f, [3, 4, 5])
|
|
137
|
+
*/
|
|
138
|
+
export declare function projectPointOnFace(face: Shape, point: Vec3): Vec3;
|
|
139
|
+
/**
|
|
140
|
+
* UV 点相对面边界的分类(BRepClass_FaceClassifier)。
|
|
141
|
+
* @group 查询
|
|
142
|
+
* @inputs 3
|
|
143
|
+
* @async false
|
|
144
|
+
* @qual ok
|
|
145
|
+
* @name classifyPointOnFace
|
|
146
|
+
* @note 平台 op:仅 occt 引擎(原生 classifyPointOnFace)。非 occt 引擎执行前报
|
|
147
|
+
* E_BREP_UNSUPPORTED。
|
|
148
|
+
* @returns string 'in' | 'on' | 'out'。
|
|
149
|
+
* @param face - 被判定的面。type:Shape required:true
|
|
150
|
+
* @param u - U 参数。type:number required:true
|
|
151
|
+
* @param v - V 参数。type:number required:true
|
|
152
|
+
* @example
|
|
153
|
+
* const cls = cad.classifyPointOnFace(f, 0.5, 0.5)
|
|
154
|
+
*/
|
|
155
|
+
export declare function classifyPointOnFace(face: Shape, u: number, v: number): PointClassification;
|
|
156
|
+
/**
|
|
157
|
+
* 三维点 → 面的 UV 参数。
|
|
158
|
+
* @group 查询
|
|
159
|
+
* @inputs 2
|
|
160
|
+
* @async false
|
|
161
|
+
* @qual ok
|
|
162
|
+
* @name uvFromPoint
|
|
163
|
+
* @note 平台 op:仅 occt 引擎(原生 uvFromPoint)。非 occt 引擎执行前报
|
|
164
|
+
* E_BREP_UNSUPPORTED。
|
|
165
|
+
* @returns object { u: number; v: number }。
|
|
166
|
+
* @param face - 目标面。type:Shape required:true
|
|
167
|
+
* @param point - 三维点 [x,y,z]。type:Vec3 required:true
|
|
168
|
+
* @example
|
|
169
|
+
* const { u, v } = cad.uvFromPoint(f, [1, 2, 0])
|
|
170
|
+
*/
|
|
171
|
+
export declare function uvFromPoint(face: Shape, point: Vec3): {
|
|
172
|
+
u: number;
|
|
173
|
+
v: number;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* 顶点坐标。
|
|
177
|
+
* @group 查询
|
|
178
|
+
* @inputs 1
|
|
179
|
+
* @async false
|
|
180
|
+
* @qual ok
|
|
181
|
+
* @name vertexPosition
|
|
182
|
+
* @note 平台 op:仅 occt 引擎(原生 vertexPosition)。非 occt 引擎执行前报
|
|
183
|
+
* E_BREP_UNSUPPORTED。返回脚本面的 [x,y,z]。
|
|
184
|
+
* @returns Vec3 顶点坐标 [x,y,z]。
|
|
185
|
+
* @param vertex - 顶点形状。type:Shape required:true
|
|
186
|
+
* @example
|
|
187
|
+
* const p = cad.vertexPosition(v)
|
|
188
|
+
*/
|
|
189
|
+
export declare function vertexPosition(vertex: Shape): Vec3;
|
|
190
|
+
/**
|
|
191
|
+
* 子形状计数(不物化逐个子形状句柄)。
|
|
192
|
+
* @group 查询
|
|
193
|
+
* @inputs 2
|
|
194
|
+
* @async false
|
|
195
|
+
* @qual ok
|
|
196
|
+
* @name subShapeCount
|
|
197
|
+
* @note 平台 op:仅 occt 引擎(原生 subShapeCount;L1 契约只有 getSubShapes,
|
|
198
|
+
* 计数能力是 occt 独有)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
199
|
+
* @returns number 该类子形状的个数。
|
|
200
|
+
* @param shape - 被统计的形状。type:Shape required:true
|
|
201
|
+
* @param type - 子形状类型(vertex/edge/wire/face/shell/solid)。type:string required:true
|
|
202
|
+
* @example
|
|
203
|
+
* const n = cad.subShapeCount(box, 'face')
|
|
204
|
+
*/
|
|
205
|
+
export declare function subShapeCount(shape: Shape, type: SubShapeType): number;
|
|
206
|
+
/**
|
|
207
|
+
* 遍历全部子形状(递归展平,返回 Shape[])。
|
|
208
|
+
* @group 查询
|
|
209
|
+
* @inputs 1
|
|
210
|
+
* @async false
|
|
211
|
+
* @qual ok
|
|
212
|
+
* @name iterShapes
|
|
213
|
+
* @note 平台 op:仅 occt 引擎(原生 iterShapes;L1 契约的 getSubShapes 只按类型单层取)。
|
|
214
|
+
* 非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
215
|
+
* 返回 Shape 数组(非单个 Shape)⇒ 普通函数形态,与 shape-type 同口径。
|
|
216
|
+
* @returns Shape[] 子形状列表(vertex/edge/wire 形态为 curve)。
|
|
217
|
+
* @param shape - 被遍历的形状。type:Shape required:true
|
|
218
|
+
* @example
|
|
219
|
+
* const subs = cad.iterShapes(box)
|
|
220
|
+
*/
|
|
221
|
+
export declare function iterShapes(shape: Shape): Shape[];
|
|
222
|
+
/**
|
|
223
|
+
* 把 2D 点集抬升到指定平面上,构造平面 wire。
|
|
224
|
+
* @group 创建
|
|
225
|
+
* @inputs 4
|
|
226
|
+
* @async false
|
|
227
|
+
* @qual ok
|
|
228
|
+
* @name liftCurve2d
|
|
229
|
+
* @note 平台 op:仅 occt 引擎(原生 liftCurve2dToPlane,L1 契约无对应成员)。
|
|
230
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。
|
|
231
|
+
* 坐标收 `[x,y]` 数对(脚本面习惯),内部转成上游的 `{x,y}` 对象;
|
|
232
|
+
* planeZ/planeX 须非零且互不平行。
|
|
233
|
+
* @returns Shape 平面上的 wire(登记为 kind:'curve')。
|
|
234
|
+
* @param points2d - 2D 点集 [[x,y], …](≥2 点)。type:Array required:true
|
|
235
|
+
* @param planeOrigin - 平面原点 [x,y,z]。type:Vec3 required:true
|
|
236
|
+
* @param planeZ - 平面法向 [x,y,z](非零)。type:Vec3 required:true
|
|
237
|
+
* @param planeX - 平面内 X 轴方向 [x,y,z](非零)。type:Vec3 required:true
|
|
238
|
+
* @example
|
|
239
|
+
* const w = cad.liftCurve2d([[0,0],[10,0],[10,5]], [0,0,0], [0,0,1], [1,0,0])
|
|
240
|
+
*/
|
|
241
|
+
export declare const liftCurve2d: ((points2d: [number, number][], planeOrigin: Vec3, planeZ: Vec3, planeX: Vec3) => Promise<Shape>) & {
|
|
242
|
+
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* 求多个形状的重叠区域(通用熔合胞元,常用于干涉检查)。
|
|
246
|
+
* @group 布尔
|
|
247
|
+
* @inputs 1
|
|
248
|
+
* @async false
|
|
249
|
+
* @qual ok
|
|
250
|
+
* @name commonCells
|
|
251
|
+
* @note 平台 op:仅 occt 引擎(原生 intersectionCells;与 `intersect` 的区别:
|
|
252
|
+
* 后者是两形状求交,本 op 支持 ≥2 输入并返回全部重叠胞元)。
|
|
253
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。
|
|
254
|
+
* @returns Shape 重叠区域(无重叠时为空复合体)。
|
|
255
|
+
* @param shapes - 输入形状数组(≥2)。type:Shape[] required:true
|
|
256
|
+
* @example
|
|
257
|
+
* const overlap = cad.commonCells([boxA, boxB, boxC])
|
|
258
|
+
*/
|
|
259
|
+
export declare const commonCells: ((shapes: Shape[]) => Promise<Shape>) & {
|
|
260
|
+
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/measure-query/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AASpD,oCAAoC;AACpC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAwClF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAK1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAG9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAGrD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,IAAI,GACV;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAKnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAIjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAM1F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAI9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAGlD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAQtE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,CAIhD;AA6BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW;;CAUtB,CAAA;AAmBF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;CAYtB,CAAA"}
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api measure-query — 测量与查询族(S4 剩余,平台 op engines:['occt'])
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 13 个原生方法直调 occt-wasm(occt-wasm 5.6.0 有,见
|
|
5
|
+
* `dist/index.d.ts` 的 `OcctKernel`):
|
|
6
|
+
* containsPoint / distanceBetween / getInertia / getLinearCenterOfMass /
|
|
7
|
+
* projectPointOnEdge / projectPointOnFace / classifyPointOnFace / uvFromPoint /
|
|
8
|
+
* vertexPosition / subShapeCount / iterShapes / liftCurve2dToPlane / intersectionCells
|
|
9
|
+
* 它们**不在** L1 契约 `BrepEngineApi` 里(L1 只有 getCenterOfMass / getVolume /
|
|
10
|
+
* getSurfaceArea / getBoundingBox 等子集,见 brep/engine/primitives.ts)⇒ 全族平台 op。
|
|
11
|
+
*
|
|
12
|
+
* 方案落点:docs/plans/2026-10-07-occt-wasm-op-enablement-plan.md §3.4.6。
|
|
13
|
+
*
|
|
14
|
+
* **形态二分**(沿用 shape-type / view-export / curve-sketch 的既定口径):
|
|
15
|
+
* - 返回 Shape 的两项(`liftCurve2d` / `commonCells`)走 `defineOp` + `engines:['occt']`,
|
|
16
|
+
* 由 dispatchPath 门控(D11-4,brep_mock 豁免走 D11-3);
|
|
17
|
+
* - 其余返回标量 / Vec3 / 对象 / Shape[] 的 11 项走**普通函数** +
|
|
18
|
+
* `assertEngineFor('<name>', ['occt'])`:defineOp 的 brep 包装
|
|
19
|
+
* (define-op.ts#wrapBrepOne)把返回值一律收养为 Shape,装不下这些形态。普通函数
|
|
20
|
+
* 形态的 op 由覆盖率扫描器 `scan-occt-op-coverage.ts` 的 PLAN_C2_EXTRA 计入 C2。
|
|
21
|
+
*
|
|
22
|
+
* **GOTCHA(上游载体差异,务必读)**:occt-wasm 的 `Vec3` 是 **`{x, y, z}` 对象接口**
|
|
23
|
+
* (dist/types.d.ts:52-56),而 faijs 脚本面的 `Vec3` 是 **`[x, y, z]` 数组**
|
|
24
|
+
* (mesh/types,见 api/geom.ts 里 `normal = [n.x, n.y, n.z]` 的同款转接)。因此本文件
|
|
25
|
+
* 在**边界处做双向转换**,不外泄载体差异:入参 `[x,y,z]` → `{x,y,z}`,返回值
|
|
26
|
+
* `{x,y,z}` → `[x,y,z]`。漏掉这层转换时症状是原生方法读到 `undefined` 坐标
|
|
27
|
+
* (`{}.x` 静默取不到 → 落在原点)而非显式报错,故每条都配了返回值数组的测试。
|
|
28
|
+
*
|
|
29
|
+
* `iterShapes` 返回的子形状既有实体/面也有边/wire ⇒ 按 `getShapeType` 判定收养形态
|
|
30
|
+
* (vertex/edge/wire → `fromBrepCurve`,其余 → `fromBrep`),避免把 1D 产物谎报成实体。
|
|
31
|
+
*
|
|
32
|
+
* §9.5 降级路径(记录在案):一旦 brepkit 把这些测量/查询接进 L1 契约且两侧适配器
|
|
33
|
+
* 同时落地,普通函数删掉 assertEngineFor 改走 getBrepApi()、defineOp 删掉 engines
|
|
34
|
+
* 声明,对应方法即从 C2 转入 C1。
|
|
35
|
+
*/
|
|
36
|
+
import { solidToShape } from '../../brep/brep-ops.js';
|
|
37
|
+
import { getBrepApi } from '../../brep/handle-bridge.js';
|
|
38
|
+
import { brepOf, fromBrep, fromBrepCurve } from '../../shape.js';
|
|
39
|
+
import { defineOp } from '../../sdk.js';
|
|
40
|
+
import { getOcctKernel } from '../../occt-kernel/occtKernel.js';
|
|
41
|
+
import { assertEngineFor } from '../internal/l3-bridge.js';
|
|
42
|
+
const SUB_SHAPE_TYPES = ['vertex', 'edge', 'wire', 'face', 'shell', 'solid'];
|
|
43
|
+
/** 输入 Shape → 内核句柄(无 BREP 槽报错)。 */
|
|
44
|
+
function occtHandleOf(shape, op) {
|
|
45
|
+
const h = brepOf(shape);
|
|
46
|
+
if (!h) {
|
|
47
|
+
throw new Error(`E_SHAPE_TYPE_NO_BREP: ${op} requires a BREP handle (mesh-only shape has none)`);
|
|
48
|
+
}
|
|
49
|
+
return h;
|
|
50
|
+
}
|
|
51
|
+
/** 脚本面 `[x,y,z]` → 原生 `{x,y,z}`(见头注 GOTCHA)。 */
|
|
52
|
+
function toNativeVec3(v, op, which) {
|
|
53
|
+
if (!Array.isArray(v) || v.length !== 3 || v.some((n) => typeof n !== 'number' || !Number.isFinite(n))) {
|
|
54
|
+
throw new Error(`E_${op.toUpperCase()}_BAD_${which.toUpperCase()}: ${which} must be a finite [x,y,z]`);
|
|
55
|
+
}
|
|
56
|
+
return { x: v[0], y: v[1], z: v[2] };
|
|
57
|
+
}
|
|
58
|
+
/** 原生 `{x,y,z}` → 脚本面 `[x,y,z]`(同上)。 */
|
|
59
|
+
function fromNativeVec3(v) {
|
|
60
|
+
return [v.x, v.y, v.z];
|
|
61
|
+
}
|
|
62
|
+
/** 句柄 → Shape:1D(vertex/edge/wire)登记为 kind:'curve',其余为实体/面。 */
|
|
63
|
+
function adopt(handle) {
|
|
64
|
+
const mesh = solidToShape(getBrepApi(), handle);
|
|
65
|
+
const t = getOcctKernel().getShapeType(handle);
|
|
66
|
+
if (t === 'vertex' || t === 'edge' || t === 'wire') {
|
|
67
|
+
return fromBrepCurve(mesh, { solid: handle });
|
|
68
|
+
}
|
|
69
|
+
return fromBrep(mesh, { solid: handle });
|
|
70
|
+
}
|
|
71
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
72
|
+
// 标量/数据型查询(普通函数形态 + assertEngineFor)
|
|
73
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
74
|
+
/**
|
|
75
|
+
* 点是否在实体内(含边界,带容差)。
|
|
76
|
+
* @group 查询
|
|
77
|
+
* @inputs 1
|
|
78
|
+
* @async false
|
|
79
|
+
* @qual ok
|
|
80
|
+
* @name containsPoint
|
|
81
|
+
* @note 平台 op:仅 occt 引擎(原生 containsPoint,L1 契约无对应成员)。
|
|
82
|
+
* 非 occt 引擎执行前报 E_BREP_UNSUPPORTED。坐标收脚本面的 [x,y,z]。
|
|
83
|
+
* @returns boolean 点是否在形状内。
|
|
84
|
+
* @param shape - 被检测的形状(语义上是实体/壳)。type:Shape required:true
|
|
85
|
+
* @param point - 待判定点 [x,y,z]。type:Vec3 required:true
|
|
86
|
+
* @param tolerance - 判定容差(模型单位)。type:number required:false
|
|
87
|
+
* @example
|
|
88
|
+
* const inside = cad.containsPoint(box, [1, 1, 1])
|
|
89
|
+
*/
|
|
90
|
+
export function containsPoint(shape, point, tolerance) {
|
|
91
|
+
assertEngineFor('containsPoint', ['occt']);
|
|
92
|
+
const p = toNativeVec3(point, 'containsPoint', 'point');
|
|
93
|
+
return getOcctKernel().containsPoint(occtHandleOf(shape, 'containsPoint'), p, tolerance);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 两形状之间的最短距离。
|
|
97
|
+
* @group 查询
|
|
98
|
+
* @inputs 2
|
|
99
|
+
* @async false
|
|
100
|
+
* @qual ok
|
|
101
|
+
* @name distanceBetween
|
|
102
|
+
* @note 平台 op:仅 occt 引擎(原生 distanceBetween,BRepExtrema_DistShapeShape)。
|
|
103
|
+
* 非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
104
|
+
* @returns number 最短距离(模型单位;相交为 0)。
|
|
105
|
+
* @param a - 第一个形状。type:Shape required:true
|
|
106
|
+
* @param b - 第二个形状。type:Shape required:true
|
|
107
|
+
* @example
|
|
108
|
+
* const gap = cad.distanceBetween(box1, box2)
|
|
109
|
+
*/
|
|
110
|
+
export function distanceBetween(a, b) {
|
|
111
|
+
assertEngineFor('distanceBetween', ['occt']);
|
|
112
|
+
const ha = occtHandleOf(a, 'distanceBetween');
|
|
113
|
+
const hb = occtHandleOf(b, 'distanceBetween');
|
|
114
|
+
return getOcctKernel().distanceBetween(ha, hb);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* 绕质心的惯性矩阵(row-major 3×3,长度 9;对称:[1]==[3]、[2]==[6]、[5]==[7])。
|
|
118
|
+
* @group 查询
|
|
119
|
+
* @inputs 1
|
|
120
|
+
* @async false
|
|
121
|
+
* @qual ok
|
|
122
|
+
* @name inertia
|
|
123
|
+
* @note 平台 op:仅 occt 引擎(原生 getInertia)。非 occt 引擎执行前报
|
|
124
|
+
* E_BREP_UNSUPPORTED。
|
|
125
|
+
* @returns number[] row-major 3×3 惯性矩阵。
|
|
126
|
+
* @param shape - 被测量的形状。type:Shape required:true
|
|
127
|
+
* @example
|
|
128
|
+
* const m = cad.inertia(box)
|
|
129
|
+
*/
|
|
130
|
+
export function inertia(shape) {
|
|
131
|
+
assertEngineFor('inertia', ['occt']);
|
|
132
|
+
return getOcctKernel().getInertia(occtHandleOf(shape, 'inertia'));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 线性质心(按边长加权的质心;wire/edge 用它与体积质心区分)。
|
|
136
|
+
* @group 查询
|
|
137
|
+
* @inputs 1
|
|
138
|
+
* @async false
|
|
139
|
+
* @qual ok
|
|
140
|
+
* @name linearCenterOfMass
|
|
141
|
+
* @note 平台 op:仅 occt 引擎(原生 getLinearCenterOfMass)。非 occt 引擎执行前报
|
|
142
|
+
* E_BREP_UNSUPPORTED。返回脚本面的 [x,y,z](非 occt 的 {x,y,z} 对象)。
|
|
143
|
+
* @returns Vec3 线性质心坐标 [x,y,z]。
|
|
144
|
+
* @param shape - 被测量的形状。type:Shape required:true
|
|
145
|
+
* @example
|
|
146
|
+
* const c = cad.linearCenterOfMass(wire)
|
|
147
|
+
*/
|
|
148
|
+
export function linearCenterOfMass(shape) {
|
|
149
|
+
assertEngineFor('linearCenterOfMass', ['occt']);
|
|
150
|
+
return fromNativeVec3(getOcctKernel().getLinearCenterOfMass(occtHandleOf(shape, 'linearCenterOfMass')));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* 点到边的最近点(含该处切向与参数)。
|
|
154
|
+
* @group 查询
|
|
155
|
+
* @inputs 2
|
|
156
|
+
* @async false
|
|
157
|
+
* @qual ok
|
|
158
|
+
* @name projectPointOnEdge
|
|
159
|
+
* @note 平台 op:仅 occt 引擎(原生 projectPointOnEdge)。非 occt 引擎执行前报
|
|
160
|
+
* E_BREP_UNSUPPORTED。返回体里的 point/tangent 是脚本面的 [x,y,z]。
|
|
161
|
+
* @returns object { point: Vec3; tangent: Vec3; parameter: number }。
|
|
162
|
+
* @param edge - 被投影的边。type:Shape required:true
|
|
163
|
+
* @param point - 待投影点 [x,y,z]。type:Vec3 required:true
|
|
164
|
+
* @example
|
|
165
|
+
* const hit = cad.projectPointOnEdge(e, [3, 4, 0])
|
|
166
|
+
*/
|
|
167
|
+
export function projectPointOnEdge(edge, point) {
|
|
168
|
+
assertEngineFor('projectPointOnEdge', ['occt']);
|
|
169
|
+
const p = toNativeVec3(point, 'projectPointOnEdge', 'point');
|
|
170
|
+
const r = getOcctKernel().projectPointOnEdge(occtHandleOf(edge, 'projectPointOnEdge'), p);
|
|
171
|
+
return { point: fromNativeVec3(r.point), tangent: fromNativeVec3(r.tangent), parameter: r.parameter };
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* 点到面的最近点(三维坐标)。
|
|
175
|
+
* @group 查询
|
|
176
|
+
* @inputs 2
|
|
177
|
+
* @async false
|
|
178
|
+
* @qual ok
|
|
179
|
+
* @name projectPointOnFace
|
|
180
|
+
* @note 平台 op:仅 occt 引擎(原生 projectPointOnFace)。非 occt 引擎执行前报
|
|
181
|
+
* E_BREP_UNSUPPORTED。要 UV 参数用 `uvFromPoint`。
|
|
182
|
+
* @returns Vec3 面上的最近点 [x,y,z]。
|
|
183
|
+
* @param face - 被投影的面。type:Shape required:true
|
|
184
|
+
* @param point - 待投影点 [x,y,z]。type:Vec3 required:true
|
|
185
|
+
* @example
|
|
186
|
+
* const p = cad.projectPointOnFace(f, [3, 4, 5])
|
|
187
|
+
*/
|
|
188
|
+
export function projectPointOnFace(face, point) {
|
|
189
|
+
assertEngineFor('projectPointOnFace', ['occt']);
|
|
190
|
+
const p = toNativeVec3(point, 'projectPointOnFace', 'point');
|
|
191
|
+
return fromNativeVec3(getOcctKernel().projectPointOnFace(occtHandleOf(face, 'projectPointOnFace'), p));
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* UV 点相对面边界的分类(BRepClass_FaceClassifier)。
|
|
195
|
+
* @group 查询
|
|
196
|
+
* @inputs 3
|
|
197
|
+
* @async false
|
|
198
|
+
* @qual ok
|
|
199
|
+
* @name classifyPointOnFace
|
|
200
|
+
* @note 平台 op:仅 occt 引擎(原生 classifyPointOnFace)。非 occt 引擎执行前报
|
|
201
|
+
* E_BREP_UNSUPPORTED。
|
|
202
|
+
* @returns string 'in' | 'on' | 'out'。
|
|
203
|
+
* @param face - 被判定的面。type:Shape required:true
|
|
204
|
+
* @param u - U 参数。type:number required:true
|
|
205
|
+
* @param v - V 参数。type:number required:true
|
|
206
|
+
* @example
|
|
207
|
+
* const cls = cad.classifyPointOnFace(f, 0.5, 0.5)
|
|
208
|
+
*/
|
|
209
|
+
export function classifyPointOnFace(face, u, v) {
|
|
210
|
+
assertEngineFor('classifyPointOnFace', ['occt']);
|
|
211
|
+
if (typeof u !== 'number' || !Number.isFinite(u) || typeof v !== 'number' || !Number.isFinite(v)) {
|
|
212
|
+
throw new Error('E_CLASSIFYPOINTONFACE_BAD_UV: u and v must be finite numbers');
|
|
213
|
+
}
|
|
214
|
+
return getOcctKernel().classifyPointOnFace(occtHandleOf(face, 'classifyPointOnFace'), u, v);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 三维点 → 面的 UV 参数。
|
|
218
|
+
* @group 查询
|
|
219
|
+
* @inputs 2
|
|
220
|
+
* @async false
|
|
221
|
+
* @qual ok
|
|
222
|
+
* @name uvFromPoint
|
|
223
|
+
* @note 平台 op:仅 occt 引擎(原生 uvFromPoint)。非 occt 引擎执行前报
|
|
224
|
+
* E_BREP_UNSUPPORTED。
|
|
225
|
+
* @returns object { u: number; v: number }。
|
|
226
|
+
* @param face - 目标面。type:Shape required:true
|
|
227
|
+
* @param point - 三维点 [x,y,z]。type:Vec3 required:true
|
|
228
|
+
* @example
|
|
229
|
+
* const { u, v } = cad.uvFromPoint(f, [1, 2, 0])
|
|
230
|
+
*/
|
|
231
|
+
export function uvFromPoint(face, point) {
|
|
232
|
+
assertEngineFor('uvFromPoint', ['occt']);
|
|
233
|
+
const p = toNativeVec3(point, 'uvFromPoint', 'point');
|
|
234
|
+
return getOcctKernel().uvFromPoint(occtHandleOf(face, 'uvFromPoint'), p);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* 顶点坐标。
|
|
238
|
+
* @group 查询
|
|
239
|
+
* @inputs 1
|
|
240
|
+
* @async false
|
|
241
|
+
* @qual ok
|
|
242
|
+
* @name vertexPosition
|
|
243
|
+
* @note 平台 op:仅 occt 引擎(原生 vertexPosition)。非 occt 引擎执行前报
|
|
244
|
+
* E_BREP_UNSUPPORTED。返回脚本面的 [x,y,z]。
|
|
245
|
+
* @returns Vec3 顶点坐标 [x,y,z]。
|
|
246
|
+
* @param vertex - 顶点形状。type:Shape required:true
|
|
247
|
+
* @example
|
|
248
|
+
* const p = cad.vertexPosition(v)
|
|
249
|
+
*/
|
|
250
|
+
export function vertexPosition(vertex) {
|
|
251
|
+
assertEngineFor('vertexPosition', ['occt']);
|
|
252
|
+
return fromNativeVec3(getOcctKernel().vertexPosition(occtHandleOf(vertex, 'vertexPosition')));
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* 子形状计数(不物化逐个子形状句柄)。
|
|
256
|
+
* @group 查询
|
|
257
|
+
* @inputs 2
|
|
258
|
+
* @async false
|
|
259
|
+
* @qual ok
|
|
260
|
+
* @name subShapeCount
|
|
261
|
+
* @note 平台 op:仅 occt 引擎(原生 subShapeCount;L1 契约只有 getSubShapes,
|
|
262
|
+
* 计数能力是 occt 独有)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
263
|
+
* @returns number 该类子形状的个数。
|
|
264
|
+
* @param shape - 被统计的形状。type:Shape required:true
|
|
265
|
+
* @param type - 子形状类型(vertex/edge/wire/face/shell/solid)。type:string required:true
|
|
266
|
+
* @example
|
|
267
|
+
* const n = cad.subShapeCount(box, 'face')
|
|
268
|
+
*/
|
|
269
|
+
export function subShapeCount(shape, type) {
|
|
270
|
+
assertEngineFor('subShapeCount', ['occt']);
|
|
271
|
+
if (!SUB_SHAPE_TYPES.includes(type)) {
|
|
272
|
+
throw new Error(`E_SUBSHAPECOUNT_BAD_TYPE: type must be one of ${SUB_SHAPE_TYPES.join('/')} (got ${String(type)})`);
|
|
273
|
+
}
|
|
274
|
+
return getOcctKernel().subShapeCount(occtHandleOf(shape, 'subShapeCount'), type);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* 遍历全部子形状(递归展平,返回 Shape[])。
|
|
278
|
+
* @group 查询
|
|
279
|
+
* @inputs 1
|
|
280
|
+
* @async false
|
|
281
|
+
* @qual ok
|
|
282
|
+
* @name iterShapes
|
|
283
|
+
* @note 平台 op:仅 occt 引擎(原生 iterShapes;L1 契约的 getSubShapes 只按类型单层取)。
|
|
284
|
+
* 非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
285
|
+
* 返回 Shape 数组(非单个 Shape)⇒ 普通函数形态,与 shape-type 同口径。
|
|
286
|
+
* @returns Shape[] 子形状列表(vertex/edge/wire 形态为 curve)。
|
|
287
|
+
* @param shape - 被遍历的形状。type:Shape required:true
|
|
288
|
+
* @example
|
|
289
|
+
* const subs = cad.iterShapes(box)
|
|
290
|
+
*/
|
|
291
|
+
export function iterShapes(shape) {
|
|
292
|
+
assertEngineFor('iterShapes', ['occt']);
|
|
293
|
+
const handles = getOcctKernel().iterShapes(occtHandleOf(shape, 'iterShapes'));
|
|
294
|
+
return handles.map(adopt);
|
|
295
|
+
}
|
|
296
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
297
|
+
// liftCurve2d — 2D 点集 → 平面 wire(返回 Shape ⇒ defineOp)
|
|
298
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
299
|
+
/** BREP 路径:occt 原生 liftCurve2dToPlane(脚本面收 [x,y],此处转成 {x,y})。 */
|
|
300
|
+
function liftCurve2dBrep(points2d, planeOrigin, planeZ, planeX) {
|
|
301
|
+
if (!Array.isArray(points2d) || points2d.length < 2) {
|
|
302
|
+
throw new Error('E_LIFTCURVE2D_TOO_FEW_POINTS: liftCurve2d requires at least 2 points');
|
|
303
|
+
}
|
|
304
|
+
const pts = points2d.map((p, i) => {
|
|
305
|
+
if (!Array.isArray(p) || p.length !== 2 || p.some((n) => typeof n !== 'number' || !Number.isFinite(n))) {
|
|
306
|
+
throw new Error(`E_LIFTCURVE2D_BAD_POINT: points2d[${i}] must be a finite [x,y]`);
|
|
307
|
+
}
|
|
308
|
+
return { x: p[0], y: p[1] };
|
|
309
|
+
});
|
|
310
|
+
const o = toNativeVec3(planeOrigin, 'liftCurve2d', 'planeOrigin');
|
|
311
|
+
const z = toNativeVec3(planeZ, 'liftCurve2d', 'planeZ');
|
|
312
|
+
const x = toNativeVec3(planeX, 'liftCurve2d', 'planeX');
|
|
313
|
+
const handle = getOcctKernel().liftCurve2dToPlane(pts, o, z, x);
|
|
314
|
+
return fromBrepCurve(solidToShape(getBrepApi(), handle), { solid: handle });
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* 把 2D 点集抬升到指定平面上,构造平面 wire。
|
|
318
|
+
* @group 创建
|
|
319
|
+
* @inputs 4
|
|
320
|
+
* @async false
|
|
321
|
+
* @qual ok
|
|
322
|
+
* @name liftCurve2d
|
|
323
|
+
* @note 平台 op:仅 occt 引擎(原生 liftCurve2dToPlane,L1 契约无对应成员)。
|
|
324
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。
|
|
325
|
+
* 坐标收 `[x,y]` 数对(脚本面习惯),内部转成上游的 `{x,y}` 对象;
|
|
326
|
+
* planeZ/planeX 须非零且互不平行。
|
|
327
|
+
* @returns Shape 平面上的 wire(登记为 kind:'curve')。
|
|
328
|
+
* @param points2d - 2D 点集 [[x,y], …](≥2 点)。type:Array required:true
|
|
329
|
+
* @param planeOrigin - 平面原点 [x,y,z]。type:Vec3 required:true
|
|
330
|
+
* @param planeZ - 平面法向 [x,y,z](非零)。type:Vec3 required:true
|
|
331
|
+
* @param planeX - 平面内 X 轴方向 [x,y,z](非零)。type:Vec3 required:true
|
|
332
|
+
* @example
|
|
333
|
+
* const w = cad.liftCurve2d([[0,0],[10,0],[10,5]], [0,0,0], [0,0,1], [1,0,0])
|
|
334
|
+
*/
|
|
335
|
+
export const liftCurve2d = defineOp({
|
|
336
|
+
name: 'liftCurve2d',
|
|
337
|
+
brep(points2d, planeOrigin, planeZ, planeX) {
|
|
338
|
+
return liftCurve2dBrep(points2d, planeOrigin, planeZ, planeX);
|
|
339
|
+
},
|
|
340
|
+
engines: ['occt'],
|
|
341
|
+
naming: {
|
|
342
|
+
kind: 'unmodeled',
|
|
343
|
+
reason: '1D wire lifted from 2D points has no face role vocabulary',
|
|
344
|
+
},
|
|
345
|
+
});
|
|
346
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
347
|
+
// commonCells — ≥2 输入的重叠区域(干涉/通用熔合胞元,返回 Shape ⇒ defineOp)
|
|
348
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
349
|
+
/** BREP 路径:occt 原生 intersectionCells(≥2 输入,不足则报错)。 */
|
|
350
|
+
function commonCellsBrep(shapes) {
|
|
351
|
+
if (!Array.isArray(shapes) || shapes.length < 2) {
|
|
352
|
+
throw new Error('E_COMMONCELLS_TOO_FEW: commonCells requires at least 2 shapes');
|
|
353
|
+
}
|
|
354
|
+
const handles = shapes.map((s, i) => {
|
|
355
|
+
if (!s)
|
|
356
|
+
throw new Error(`E_COMMONCELLS_MISSING_ARG: shapes[${i}] is empty`);
|
|
357
|
+
return occtHandleOf(s, 'commonCells');
|
|
358
|
+
});
|
|
359
|
+
const handle = getOcctKernel().intersectionCells(handles);
|
|
360
|
+
return fromBrep(solidToShape(getBrepApi(), handle), { solid: handle });
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* 求多个形状的重叠区域(通用熔合胞元,常用于干涉检查)。
|
|
364
|
+
* @group 布尔
|
|
365
|
+
* @inputs 1
|
|
366
|
+
* @async false
|
|
367
|
+
* @qual ok
|
|
368
|
+
* @name commonCells
|
|
369
|
+
* @note 平台 op:仅 occt 引擎(原生 intersectionCells;与 `intersect` 的区别:
|
|
370
|
+
* 后者是两形状求交,本 op 支持 ≥2 输入并返回全部重叠胞元)。
|
|
371
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。
|
|
372
|
+
* @returns Shape 重叠区域(无重叠时为空复合体)。
|
|
373
|
+
* @param shapes - 输入形状数组(≥2)。type:Shape[] required:true
|
|
374
|
+
* @example
|
|
375
|
+
* const overlap = cad.commonCells([boxA, boxB, boxC])
|
|
376
|
+
*/
|
|
377
|
+
export const commonCells = defineOp({
|
|
378
|
+
name: 'commonCells',
|
|
379
|
+
brep(shapes) {
|
|
380
|
+
return commonCellsBrep(shapes);
|
|
381
|
+
},
|
|
382
|
+
engines: ['occt'],
|
|
383
|
+
naming: {
|
|
384
|
+
// 原生 intersectionCells 只回 Shape(无 EvolutionData),
|
|
385
|
+
// 无法给出新面的来源词汇 —— 方案 §4.2「词汇未定义就用 unmodeled + reason」。
|
|
386
|
+
kind: 'unmodeled',
|
|
387
|
+
reason: 'intersectionCells returns a bare shape with no face evolution data',
|
|
388
|
+
},
|
|
389
|
+
});
|
|
390
|
+
//# sourceMappingURL=index.js.map
|