@faicad/faijs 0.29.3 → 0.30.9
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/api-namespace.d.ts +1 -1
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +53 -1
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/appearance.d.ts +136 -0
- package/dist/api/appearance.d.ts.map +1 -0
- package/dist/api/appearance.js +228 -0
- package/dist/api/appearance.js.map +1 -0
- 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.d.ts.map +1 -1
- package/dist/api/boolean.js +7 -6
- 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 +78 -0
- package/dist/api/brep-operations/healingFns.d.ts.map +1 -0
- package/dist/api/brep-operations/healingFns.js +294 -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 +90 -0
- package/dist/api/brep-operations/topologyFns.d.ts.map +1 -0
- package/dist/api/brep-operations/topologyFns.js +276 -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/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 +487 -0
- package/dist/api/curve-sketch/index.js.map +1 -0
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +3 -2
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/export-brep.d.ts +41 -0
- package/dist/api/export-brep.d.ts.map +1 -0
- package/dist/api/export-brep.js +58 -0
- package/dist/api/export-brep.js.map +1 -0
- package/dist/api/export-stl.d.ts +50 -0
- package/dist/api/export-stl.d.ts.map +1 -0
- package/dist/api/export-stl.js +99 -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/fillet-variable.d.ts +2 -2
- package/dist/api/fillet-variable.js +2 -2
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts +2 -4
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +2 -4
- 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 +52 -48
- 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/sketching.d.ts +2 -2
- package/dist/api/generated/sketching.d.ts.map +1 -1
- package/dist/api/generated/sketching.js +7 -3
- 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 +67 -63
- 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 +10 -1
- package/dist/api/helix.d.ts.map +1 -1
- package/dist/api/helix.js +19 -3
- package/dist/api/helix.js.map +1 -1
- package/dist/api/import-step.d.ts.map +1 -1
- package/dist/api/import-step.js +28 -0
- package/dist/api/import-step.js.map +1 -1
- package/dist/api/index.d.ts +19 -6
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +31 -8
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts +4 -30
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +10 -42
- 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/l3-bridge.d.ts +5 -37
- package/dist/api/internal/l3-bridge.d.ts.map +1 -1
- package/dist/api/internal/l3-bridge.js +7 -76
- 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/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 +91 -0
- package/dist/api/meta.d.ts.map +1 -0
- package/dist/api/meta.js +97 -0
- package/dist/api/meta.js.map +1 -0
- 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.js +3 -3
- package/dist/api/pattern.js.map +1 -1
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +124 -8
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/replicate.d.ts +2 -2
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +12 -12
- 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/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.js +2 -2
- package/dist/api/shell.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/surface/arg-spec.d.ts +35 -33
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +222 -224
- 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 +59 -9
- package/dist/api/sweep.d.ts.map +1 -1
- package/dist/api/sweep.js +11 -6
- package/dist/api/sweep.js.map +1 -1
- package/dist/api/thicken.d.ts +1 -1
- package/dist/api/thicken.js +1 -1
- package/dist/api/thicken.js.map +1 -1
- package/dist/api/transform.d.ts +5 -5
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +11 -10
- 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/brep/brep-ops.d.ts +89 -1
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +204 -13
- 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/occt.d.ts +1 -1
- package/dist/brep/engine/adapters/occt.js +8 -8
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- 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 +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 +2 -2
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/export-model.d.ts +40 -0
- package/dist/brep/export/export-model.d.ts.map +1 -1
- package/dist/brep/export/export-model.js +268 -25
- package/dist/brep/export/export-model.js.map +1 -1
- package/dist/brep/export/step-meta-header.d.ts +102 -0
- package/dist/brep/export/step-meta-header.d.ts.map +1 -0
- package/dist/brep/export/step-meta-header.js +225 -0
- package/dist/brep/export/step-meta-header.js.map +1 -0
- package/dist/brep/export/step.d.ts +5 -1
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +11 -2
- package/dist/brep/export/step.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.d.ts +2 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +5 -4
- 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.js +12 -3
- package/dist/cad-runtime/backend-dispatch.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 +3 -3
- package/dist/cad-runtime/ports.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts +21 -7
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +45 -6
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +4 -3
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +65 -3
- package/dist/define-op.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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- 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 +90 -29
- 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 +36 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +36 -0
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/lang/types.d.ts +5 -6
- package/dist/lang/types.d.ts.map +1 -1
- package/dist/lang/types.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 -58
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +19 -70
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/io.d.ts +39 -16
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +151 -22
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/primitives.d.ts.map +1 -1
- package/dist/mesh/primitives.js +42 -7
- 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 +37 -1
- package/dist/mesh/threemf-loader.d.ts.map +1 -1
- package/dist/mesh/threemf-loader.js +205 -14
- 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 +43 -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 +55 -0
- package/dist/node-host/execute-script.d.ts.map +1 -0
- package/dist/node-host/execute-script.js +46 -0
- package/dist/node-host/execute-script.js.map +1 -0
- 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/highLevelApi.d.ts +4 -1
- package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
- package/dist/occt-kernel/highLevelApi.js +4 -2
- package/dist/occt-kernel/highLevelApi.js.map +1 -1
- 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 +32 -5
- package/dist/occt-kernel/occt-primitives.js.map +1 -1
- package/dist/occt-kernel/occtKernel.d.ts +1 -1
- package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
- package/dist/occt-kernel/occtKernel.js +19 -1
- package/dist/occt-kernel/occtKernel.js.map +1 -1
- package/dist/occt-kernel/stepMetaParser.d.ts +44 -0
- package/dist/occt-kernel/stepMetaParser.d.ts.map +1 -0
- package/dist/occt-kernel/stepMetaParser.js +166 -0
- package/dist/occt-kernel/stepMetaParser.js.map +1 -0
- 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/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 +16 -0
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +27 -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/shape.d.ts +35 -3
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +44 -2
- package/dist/shape.js.map +1 -1
- package/dist/step/stepMetaParser.d.ts +55 -0
- package/dist/step/stepMetaParser.d.ts.map +1 -0
- package/dist/step/stepMetaParser.js +177 -0
- package/dist/step/stepMetaParser.js.map +1 -0
- 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 +1 -1
- package/dist/weapp.js +1 -1
- package/dist/weapp.js.map +1 -1
- package/package.json +9 -11
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api shape-type — 类型判定谓词族(平台 op engines:['occt'],普通函数形态)
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 8 个布尔谓词(isEdge / isFace / isShell / isVertex / isWire /
|
|
5
|
+
* isCompound / isCompSolid / isEqual)直调 occt 原生 `isEdge`/`isFace`/…(occt-wasm
|
|
6
|
+
* 有)。这些原生方法**不在** L1 契约 `BrepEngineApi` 里(L1 只有 `isSolid` 与
|
|
7
|
+
* `getSubShapes`/`subShapeHashes`,见 brep/engine/primitives.ts)——因此它们不能走
|
|
8
|
+
* 中立路径,必须声明 `engines: ['occt']` 直调 occt(方案 §3.4.6 校正注)。
|
|
9
|
+
*
|
|
10
|
+
* 为什么不是 `defineOp`:本族返回**布尔**(非 Shape)。`defineOp` 的 brep 包装
|
|
11
|
+
* (define-op.ts#wrapBrepOne)把返回值一律收养为 Shape,装不下布尔。数据型平台 op
|
|
12
|
+
* 走普通函数,是 `api/export-brep.ts` 的既定口径(先例:projectView 返回 SVG 字符串)。
|
|
13
|
+
*
|
|
14
|
+
* 引擎身份**不能**靠 dispatchPath 门控(普通函数不走那条路)⇒ 按
|
|
15
|
+
* `api/internal/l3-bridge.ts#assertEngineFor` 的既定做法:函数体第一行断言当前引擎,
|
|
16
|
+
* 触碰内核之前报出与 D11-4 同构的 `E_BREP_UNSUPPORTED`,不补桩、不回退。
|
|
17
|
+
* (与 dispatchPath 的差异:`assertEngineFor` **不含** D11-3 的 `brep_mock` 豁免——
|
|
18
|
+
* mock 句柄不是 occt 句柄,放行只会拿到错形状,故这里如实拦截。)
|
|
19
|
+
*
|
|
20
|
+
* 注册:api/api-namespace.ts 手动 import + 进 createApiNamespace 对象;覆盖率扫描器
|
|
21
|
+
* scan-occt-op-coverage.ts 的 PLAN_C2_EXTRA 补 8 个方法名(普通函数不在 defineOp
|
|
22
|
+
* 全集口径内,collectOps 看不见)。
|
|
23
|
+
*
|
|
24
|
+
* §9.5 降级路径(记录在案):一旦 brepkit 的 wasm 面把 isEdge/isFace/… 接进 L1 契约
|
|
25
|
+
* 且两侧适配器同时落地,这些函数删掉 assertEngineFor 并改走 `getBrepApi()`,对应方法
|
|
26
|
+
* 即从 C2 转入 C1。
|
|
27
|
+
*/
|
|
28
|
+
import type { Shape } from '../../mesh/types.js';
|
|
29
|
+
/**
|
|
30
|
+
* 形状是否为边(edge)。
|
|
31
|
+
* @group 查询
|
|
32
|
+
* @inputs 1
|
|
33
|
+
* @async false
|
|
34
|
+
* @qual ok
|
|
35
|
+
* @name isEdge
|
|
36
|
+
* @note 平台 op:仅 occt 引擎(原生 isEdge)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
37
|
+
* @returns boolean 是否为边。
|
|
38
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
39
|
+
* @example
|
|
40
|
+
* const e = cad.makeLineEdge([0,0,0],[1,0,0])
|
|
41
|
+
* const yes = cad.isEdge(e)
|
|
42
|
+
*/
|
|
43
|
+
export declare function isEdge(shape: Shape): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* 形状是否为面(face)。
|
|
46
|
+
* @group 查询
|
|
47
|
+
* @inputs 1
|
|
48
|
+
* @async false
|
|
49
|
+
* @qual ok
|
|
50
|
+
* @name isFace
|
|
51
|
+
* @note 平台 op:仅 occt 引擎(原生 isFace)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
52
|
+
* @returns boolean 是否为面。
|
|
53
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
54
|
+
* @example
|
|
55
|
+
* const f = cad.makeFace(wire)
|
|
56
|
+
* const yes = cad.isFace(f)
|
|
57
|
+
*/
|
|
58
|
+
export declare function isFace(shape: Shape): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 形状是否为壳(shell)。
|
|
61
|
+
* @group 查询
|
|
62
|
+
* @inputs 1
|
|
63
|
+
* @async false
|
|
64
|
+
* @qual ok
|
|
65
|
+
* @name isShell
|
|
66
|
+
* @note 平台 op:仅 occt 引擎(原生 isShell)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
67
|
+
* @returns boolean 是否为壳。
|
|
68
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
69
|
+
*/
|
|
70
|
+
export declare function isShell(shape: Shape): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* 形状是否为顶点(vertex)。
|
|
73
|
+
* @group 查询
|
|
74
|
+
* @inputs 1
|
|
75
|
+
* @async false
|
|
76
|
+
* @qual ok
|
|
77
|
+
* @name isVertex
|
|
78
|
+
* @note 平台 op:仅 occt 引擎(原生 isVertex)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
79
|
+
* @returns boolean 是否为顶点。
|
|
80
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
81
|
+
*/
|
|
82
|
+
export declare function isVertex(shape: Shape): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 形状是否为线(wire)。
|
|
85
|
+
* @group 查询
|
|
86
|
+
* @inputs 1
|
|
87
|
+
* @async false
|
|
88
|
+
* @qual ok
|
|
89
|
+
* @name isWire
|
|
90
|
+
* @note 平台 op:仅 occt 引擎(原生 isWire)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
91
|
+
* @returns boolean 是否为线。
|
|
92
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
93
|
+
*/
|
|
94
|
+
export declare function isWire(shape: Shape): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* 形状是否为复合体(compound)。
|
|
97
|
+
* @group 查询
|
|
98
|
+
* @inputs 1
|
|
99
|
+
* @async false
|
|
100
|
+
* @qual ok
|
|
101
|
+
* @name isCompound
|
|
102
|
+
* @note 平台 op:仅 occt 引擎(原生 isCompound)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
103
|
+
* @returns boolean 是否为复合体。
|
|
104
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
105
|
+
*/
|
|
106
|
+
export declare function isCompound(shape: Shape): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* 形状是否为组合实体(comp-solid)。
|
|
109
|
+
* @group 查询
|
|
110
|
+
* @inputs 1
|
|
111
|
+
* @async false
|
|
112
|
+
* @qual ok
|
|
113
|
+
* @name isCompSolid
|
|
114
|
+
* @note 平台 op:仅 occt 引擎(原生 isCompSolid)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
115
|
+
* @returns boolean 是否为组合实体。
|
|
116
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
117
|
+
*/
|
|
118
|
+
export declare function isCompSolid(shape: Shape): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* 两个形状是否为同一几何实体(occt 原生 `isEqual` 语义)。
|
|
121
|
+
*
|
|
122
|
+
* occt 的 `IsEqual` 当且仅当两形状共享同一 `TShape` 且 `Location`/`Orientation`
|
|
123
|
+
* 相同时返回 true——即「同一几何实体」,不是「几何内容相同但独立构造」。因此两个
|
|
124
|
+
* 几何相同但各自 `makeBox` 出来的形状会返回 false;要比较「内容相同」需另走几何
|
|
125
|
+
* 比较(非本 op 职责)。区别于 `isSame`(同一句柄引用)。
|
|
126
|
+
* @group 查询
|
|
127
|
+
* @inputs 2
|
|
128
|
+
* @async false
|
|
129
|
+
* @qual ok
|
|
130
|
+
* @name isEqual
|
|
131
|
+
* @note 平台 op:仅 occt 引擎(原生 isEqual,L1 无对应成员)。非 occt 引擎执行前报
|
|
132
|
+
* E_BREP_UNSUPPORTED。
|
|
133
|
+
* @returns boolean 是否为同一几何实体。
|
|
134
|
+
* @param a - 第一个形状。type:Shape required:true
|
|
135
|
+
* @param b - 第二个形状。type:Shape required:true
|
|
136
|
+
* @example
|
|
137
|
+
* const same = cad.isEqual(part0, part0) // true(同一手柄)
|
|
138
|
+
* const diff = cad.isEqual(part0, part1) // 独立构造的相同几何 → false
|
|
139
|
+
*/
|
|
140
|
+
export declare function isEqual(a: Shape, b: Shape): boolean;
|
|
141
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/shape-type/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AA+B7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEjD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAMnD"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api shape-type — 类型判定谓词族(平台 op engines:['occt'],普通函数形态)
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 8 个布尔谓词(isEdge / isFace / isShell / isVertex / isWire /
|
|
5
|
+
* isCompound / isCompSolid / isEqual)直调 occt 原生 `isEdge`/`isFace`/…(occt-wasm
|
|
6
|
+
* 有)。这些原生方法**不在** L1 契约 `BrepEngineApi` 里(L1 只有 `isSolid` 与
|
|
7
|
+
* `getSubShapes`/`subShapeHashes`,见 brep/engine/primitives.ts)——因此它们不能走
|
|
8
|
+
* 中立路径,必须声明 `engines: ['occt']` 直调 occt(方案 §3.4.6 校正注)。
|
|
9
|
+
*
|
|
10
|
+
* 为什么不是 `defineOp`:本族返回**布尔**(非 Shape)。`defineOp` 的 brep 包装
|
|
11
|
+
* (define-op.ts#wrapBrepOne)把返回值一律收养为 Shape,装不下布尔。数据型平台 op
|
|
12
|
+
* 走普通函数,是 `api/export-brep.ts` 的既定口径(先例:projectView 返回 SVG 字符串)。
|
|
13
|
+
*
|
|
14
|
+
* 引擎身份**不能**靠 dispatchPath 门控(普通函数不走那条路)⇒ 按
|
|
15
|
+
* `api/internal/l3-bridge.ts#assertEngineFor` 的既定做法:函数体第一行断言当前引擎,
|
|
16
|
+
* 触碰内核之前报出与 D11-4 同构的 `E_BREP_UNSUPPORTED`,不补桩、不回退。
|
|
17
|
+
* (与 dispatchPath 的差异:`assertEngineFor` **不含** D11-3 的 `brep_mock` 豁免——
|
|
18
|
+
* mock 句柄不是 occt 句柄,放行只会拿到错形状,故这里如实拦截。)
|
|
19
|
+
*
|
|
20
|
+
* 注册:api/api-namespace.ts 手动 import + 进 createApiNamespace 对象;覆盖率扫描器
|
|
21
|
+
* scan-occt-op-coverage.ts 的 PLAN_C2_EXTRA 补 8 个方法名(普通函数不在 defineOp
|
|
22
|
+
* 全集口径内,collectOps 看不见)。
|
|
23
|
+
*
|
|
24
|
+
* §9.5 降级路径(记录在案):一旦 brepkit 的 wasm 面把 isEdge/isFace/… 接进 L1 契约
|
|
25
|
+
* 且两侧适配器同时落地,这些函数删掉 assertEngineFor 并改走 `getBrepApi()`,对应方法
|
|
26
|
+
* 即从 C2 转入 C1。
|
|
27
|
+
*/
|
|
28
|
+
import { brepOf } from '../../shape.js';
|
|
29
|
+
import { getOcctKernel } from '../../occt-kernel/occtKernel.js';
|
|
30
|
+
import { assertEngineFor } from '../internal/l3-bridge.js';
|
|
31
|
+
/** 借出形状的内核句柄;无 BREP 槽(mesh-only)报错。 */
|
|
32
|
+
function occtHandleOf(shape, op) {
|
|
33
|
+
const h = brepOf(shape);
|
|
34
|
+
if (!h) {
|
|
35
|
+
throw new Error(`E_SHAPE_TYPE_NO_BREP: ${op} requires a BREP handle (mesh-only shape has none)`);
|
|
36
|
+
}
|
|
37
|
+
return h;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 单参数类型判定:先断言引擎身份 → 借出句柄 → occt 原生 is* 直调。
|
|
41
|
+
* @param method - occt 原生方法名(op 名与之相同)。
|
|
42
|
+
* @param shape - 被判别的形状。
|
|
43
|
+
* @returns 该形状是否为对应拓扑类型。
|
|
44
|
+
*/
|
|
45
|
+
function shapePredicate(method, shape) {
|
|
46
|
+
assertEngineFor(method, ['occt']);
|
|
47
|
+
const kernel = getOcctKernel();
|
|
48
|
+
return kernel[method](occtHandleOf(shape, method));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 形状是否为边(edge)。
|
|
52
|
+
* @group 查询
|
|
53
|
+
* @inputs 1
|
|
54
|
+
* @async false
|
|
55
|
+
* @qual ok
|
|
56
|
+
* @name isEdge
|
|
57
|
+
* @note 平台 op:仅 occt 引擎(原生 isEdge)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
58
|
+
* @returns boolean 是否为边。
|
|
59
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
60
|
+
* @example
|
|
61
|
+
* const e = cad.makeLineEdge([0,0,0],[1,0,0])
|
|
62
|
+
* const yes = cad.isEdge(e)
|
|
63
|
+
*/
|
|
64
|
+
export function isEdge(shape) {
|
|
65
|
+
return shapePredicate('isEdge', shape);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 形状是否为面(face)。
|
|
69
|
+
* @group 查询
|
|
70
|
+
* @inputs 1
|
|
71
|
+
* @async false
|
|
72
|
+
* @qual ok
|
|
73
|
+
* @name isFace
|
|
74
|
+
* @note 平台 op:仅 occt 引擎(原生 isFace)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
75
|
+
* @returns boolean 是否为面。
|
|
76
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
77
|
+
* @example
|
|
78
|
+
* const f = cad.makeFace(wire)
|
|
79
|
+
* const yes = cad.isFace(f)
|
|
80
|
+
*/
|
|
81
|
+
export function isFace(shape) {
|
|
82
|
+
return shapePredicate('isFace', shape);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 形状是否为壳(shell)。
|
|
86
|
+
* @group 查询
|
|
87
|
+
* @inputs 1
|
|
88
|
+
* @async false
|
|
89
|
+
* @qual ok
|
|
90
|
+
* @name isShell
|
|
91
|
+
* @note 平台 op:仅 occt 引擎(原生 isShell)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
92
|
+
* @returns boolean 是否为壳。
|
|
93
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
94
|
+
*/
|
|
95
|
+
export function isShell(shape) {
|
|
96
|
+
return shapePredicate('isShell', shape);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 形状是否为顶点(vertex)。
|
|
100
|
+
* @group 查询
|
|
101
|
+
* @inputs 1
|
|
102
|
+
* @async false
|
|
103
|
+
* @qual ok
|
|
104
|
+
* @name isVertex
|
|
105
|
+
* @note 平台 op:仅 occt 引擎(原生 isVertex)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
106
|
+
* @returns boolean 是否为顶点。
|
|
107
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
108
|
+
*/
|
|
109
|
+
export function isVertex(shape) {
|
|
110
|
+
return shapePredicate('isVertex', shape);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 形状是否为线(wire)。
|
|
114
|
+
* @group 查询
|
|
115
|
+
* @inputs 1
|
|
116
|
+
* @async false
|
|
117
|
+
* @qual ok
|
|
118
|
+
* @name isWire
|
|
119
|
+
* @note 平台 op:仅 occt 引擎(原生 isWire)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
120
|
+
* @returns boolean 是否为线。
|
|
121
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
122
|
+
*/
|
|
123
|
+
export function isWire(shape) {
|
|
124
|
+
return shapePredicate('isWire', shape);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 形状是否为复合体(compound)。
|
|
128
|
+
* @group 查询
|
|
129
|
+
* @inputs 1
|
|
130
|
+
* @async false
|
|
131
|
+
* @qual ok
|
|
132
|
+
* @name isCompound
|
|
133
|
+
* @note 平台 op:仅 occt 引擎(原生 isCompound)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
134
|
+
* @returns boolean 是否为复合体。
|
|
135
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
136
|
+
*/
|
|
137
|
+
export function isCompound(shape) {
|
|
138
|
+
return shapePredicate('isCompound', shape);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* 形状是否为组合实体(comp-solid)。
|
|
142
|
+
* @group 查询
|
|
143
|
+
* @inputs 1
|
|
144
|
+
* @async false
|
|
145
|
+
* @qual ok
|
|
146
|
+
* @name isCompSolid
|
|
147
|
+
* @note 平台 op:仅 occt 引擎(原生 isCompSolid)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。
|
|
148
|
+
* @returns boolean 是否为组合实体。
|
|
149
|
+
* @param shape - 被判别的形状。type:Shape required:true
|
|
150
|
+
*/
|
|
151
|
+
export function isCompSolid(shape) {
|
|
152
|
+
return shapePredicate('isCompSolid', shape);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 两个形状是否为同一几何实体(occt 原生 `isEqual` 语义)。
|
|
156
|
+
*
|
|
157
|
+
* occt 的 `IsEqual` 当且仅当两形状共享同一 `TShape` 且 `Location`/`Orientation`
|
|
158
|
+
* 相同时返回 true——即「同一几何实体」,不是「几何内容相同但独立构造」。因此两个
|
|
159
|
+
* 几何相同但各自 `makeBox` 出来的形状会返回 false;要比较「内容相同」需另走几何
|
|
160
|
+
* 比较(非本 op 职责)。区别于 `isSame`(同一句柄引用)。
|
|
161
|
+
* @group 查询
|
|
162
|
+
* @inputs 2
|
|
163
|
+
* @async false
|
|
164
|
+
* @qual ok
|
|
165
|
+
* @name isEqual
|
|
166
|
+
* @note 平台 op:仅 occt 引擎(原生 isEqual,L1 无对应成员)。非 occt 引擎执行前报
|
|
167
|
+
* E_BREP_UNSUPPORTED。
|
|
168
|
+
* @returns boolean 是否为同一几何实体。
|
|
169
|
+
* @param a - 第一个形状。type:Shape required:true
|
|
170
|
+
* @param b - 第二个形状。type:Shape required:true
|
|
171
|
+
* @example
|
|
172
|
+
* const same = cad.isEqual(part0, part0) // true(同一手柄)
|
|
173
|
+
* const diff = cad.isEqual(part0, part1) // 独立构造的相同几何 → false
|
|
174
|
+
*/
|
|
175
|
+
export function isEqual(a, b) {
|
|
176
|
+
assertEngineFor('isEqual', ['occt']);
|
|
177
|
+
const ka = occtHandleOf(a, 'isEqual');
|
|
178
|
+
const kb = occtHandleOf(b, 'isEqual');
|
|
179
|
+
const kernel = getOcctKernel();
|
|
180
|
+
return kernel.isEqual(ka, kb);
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/shape-type/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAMvD,uCAAuC;AACvC,SAAS,YAAY,CAAC,KAAY,EAAE,EAAU;IAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAA2B,CAAA;IACjD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,oDAAoD,CAAC,CAAA;IAClG,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAAyB,EAAE,KAAY;IAC7D,eAAe,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,aAAa,EAAmE,CAAA;IAC/F,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY;IAClC,OAAO,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,OAAO,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,OAAO,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,OAAO,CAAC,CAAQ,EAAE,CAAQ;IACxC,eAAe,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACpC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACrC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,aAAa,EAA8D,CAAA;IAC1F,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC","sourcesContent":["/**\n * api shape-type — 类型判定谓词族(平台 op engines:['occt'],普通函数形态)\n *\n * @platform occt — 8 个布尔谓词(isEdge / isFace / isShell / isVertex / isWire /\n * isCompound / isCompSolid / isEqual)直调 occt 原生 `isEdge`/`isFace`/…(occt-wasm\n * 有)。这些原生方法**不在** L1 契约 `BrepEngineApi` 里(L1 只有 `isSolid` 与\n * `getSubShapes`/`subShapeHashes`,见 brep/engine/primitives.ts)——因此它们不能走\n * 中立路径,必须声明 `engines: ['occt']` 直调 occt(方案 §3.4.6 校正注)。\n *\n * 为什么不是 `defineOp`:本族返回**布尔**(非 Shape)。`defineOp` 的 brep 包装\n * (define-op.ts#wrapBrepOne)把返回值一律收养为 Shape,装不下布尔。数据型平台 op\n * 走普通函数,是 `api/export-brep.ts` 的既定口径(先例:projectView 返回 SVG 字符串)。\n *\n * 引擎身份**不能**靠 dispatchPath 门控(普通函数不走那条路)⇒ 按\n * `api/internal/l3-bridge.ts#assertEngineFor` 的既定做法:函数体第一行断言当前引擎,\n * 触碰内核之前报出与 D11-4 同构的 `E_BREP_UNSUPPORTED`,不补桩、不回退。\n * (与 dispatchPath 的差异:`assertEngineFor` **不含** D11-3 的 `brep_mock` 豁免——\n * mock 句柄不是 occt 句柄,放行只会拿到错形状,故这里如实拦截。)\n *\n * 注册:api/api-namespace.ts 手动 import + 进 createApiNamespace 对象;覆盖率扫描器\n * scan-occt-op-coverage.ts 的 PLAN_C2_EXTRA 补 8 个方法名(普通函数不在 defineOp\n * 全集口径内,collectOps 看不见)。\n *\n * §9.5 降级路径(记录在案):一旦 brepkit 的 wasm 面把 isEdge/isFace/… 接进 L1 契约\n * 且两侧适配器同时落地,这些函数删掉 assertEngineFor 并改走 `getBrepApi()`,对应方法\n * 即从 C2 转入 C1。\n */\n\nimport type { Shape } from '../../mesh/types'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport { brepOf } from '../../shape'\nimport { getOcctKernel } from '../../occt-kernel/occtKernel'\nimport { assertEngineFor } from '../internal/l3-bridge'\n\n/** occt 原生类型判定方法名(与 OcctKernel 导出一一对应)。 */\ntype OcctTypePredicate =\n | 'isEdge' | 'isFace' | 'isShell' | 'isVertex' | 'isWire' | 'isCompound' | 'isCompSolid'\n\n/** 借出形状的内核句柄;无 BREP 槽(mesh-only)报错。 */\nfunction occtHandleOf(shape: Shape, op: string): BrepHandle {\n const h = brepOf(shape) as BrepHandle | undefined\n if (!h) {\n throw new Error(`E_SHAPE_TYPE_NO_BREP: ${op} requires a BREP handle (mesh-only shape has none)`)\n }\n return h\n}\n\n/**\n * 单参数类型判定:先断言引擎身份 → 借出句柄 → occt 原生 is* 直调。\n * @param method - occt 原生方法名(op 名与之相同)。\n * @param shape - 被判别的形状。\n * @returns 该形状是否为对应拓扑类型。\n */\nfunction shapePredicate(method: OcctTypePredicate, shape: Shape): boolean {\n assertEngineFor(method, ['occt'])\n const kernel = getOcctKernel() as unknown as Record<OcctTypePredicate, (h: unknown) => boolean>\n return kernel[method](occtHandleOf(shape, method))\n}\n\n/**\n * 形状是否为边(edge)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isEdge\n * @note 平台 op:仅 occt 引擎(原生 isEdge)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为边。\n * @param shape - 被判别的形状。type:Shape required:true\n * @example\n * const e = cad.makeLineEdge([0,0,0],[1,0,0])\n * const yes = cad.isEdge(e)\n */\nexport function isEdge(shape: Shape): boolean {\n return shapePredicate('isEdge', shape)\n}\n\n/**\n * 形状是否为面(face)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isFace\n * @note 平台 op:仅 occt 引擎(原生 isFace)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为面。\n * @param shape - 被判别的形状。type:Shape required:true\n * @example\n * const f = cad.makeFace(wire)\n * const yes = cad.isFace(f)\n */\nexport function isFace(shape: Shape): boolean {\n return shapePredicate('isFace', shape)\n}\n\n/**\n * 形状是否为壳(shell)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isShell\n * @note 平台 op:仅 occt 引擎(原生 isShell)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为壳。\n * @param shape - 被判别的形状。type:Shape required:true\n */\nexport function isShell(shape: Shape): boolean {\n return shapePredicate('isShell', shape)\n}\n\n/**\n * 形状是否为顶点(vertex)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isVertex\n * @note 平台 op:仅 occt 引擎(原生 isVertex)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为顶点。\n * @param shape - 被判别的形状。type:Shape required:true\n */\nexport function isVertex(shape: Shape): boolean {\n return shapePredicate('isVertex', shape)\n}\n\n/**\n * 形状是否为线(wire)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isWire\n * @note 平台 op:仅 occt 引擎(原生 isWire)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为线。\n * @param shape - 被判别的形状。type:Shape required:true\n */\nexport function isWire(shape: Shape): boolean {\n return shapePredicate('isWire', shape)\n}\n\n/**\n * 形状是否为复合体(compound)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isCompound\n * @note 平台 op:仅 occt 引擎(原生 isCompound)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为复合体。\n * @param shape - 被判别的形状。type:Shape required:true\n */\nexport function isCompound(shape: Shape): boolean {\n return shapePredicate('isCompound', shape)\n}\n\n/**\n * 形状是否为组合实体(comp-solid)。\n * @group 查询\n * @inputs 1\n * @async false\n * @qual ok\n * @name isCompSolid\n * @note 平台 op:仅 occt 引擎(原生 isCompSolid)。非 occt 引擎执行前报 E_BREP_UNSUPPORTED。\n * @returns boolean 是否为组合实体。\n * @param shape - 被判别的形状。type:Shape required:true\n */\nexport function isCompSolid(shape: Shape): boolean {\n return shapePredicate('isCompSolid', shape)\n}\n\n/**\n * 两个形状是否为同一几何实体(occt 原生 `isEqual` 语义)。\n *\n * occt 的 `IsEqual` 当且仅当两形状共享同一 `TShape` 且 `Location`/`Orientation`\n * 相同时返回 true——即「同一几何实体」,不是「几何内容相同但独立构造」。因此两个\n * 几何相同但各自 `makeBox` 出来的形状会返回 false;要比较「内容相同」需另走几何\n * 比较(非本 op 职责)。区别于 `isSame`(同一句柄引用)。\n * @group 查询\n * @inputs 2\n * @async false\n * @qual ok\n * @name isEqual\n * @note 平台 op:仅 occt 引擎(原生 isEqual,L1 无对应成员)。非 occt 引擎执行前报\n * E_BREP_UNSUPPORTED。\n * @returns boolean 是否为同一几何实体。\n * @param a - 第一个形状。type:Shape required:true\n * @param b - 第二个形状。type:Shape required:true\n * @example\n * const same = cad.isEqual(part0, part0) // true(同一手柄)\n * const diff = cad.isEqual(part0, part1) // 独立构造的相同几何 → false\n */\nexport function isEqual(a: Shape, b: Shape): boolean {\n assertEngineFor('isEqual', ['occt'])\n const ka = occtHandleOf(a, 'isEqual')\n const kb = occtHandleOf(b, 'isEqual')\n const kernel = getOcctKernel() as unknown as { isEqual(h: unknown, h2: unknown): boolean }\n return kernel.isEqual(ka, kb)\n}\n"]}
|
package/dist/api/shell.d.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与
|
|
5
5
|
* brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`
|
|
6
6
|
* (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是
|
|
7
|
-
*
|
|
7
|
+
* 能力升级——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。
|
|
8
8
|
*
|
|
9
9
|
* 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),
|
|
10
|
-
* 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo`
|
|
10
|
+
* 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧
|
|
11
11
|
* `Face[]` 句柄入参。解析在 op 内一处完成(`buildEdgeResolutionContext` 现场枚举
|
|
12
12
|
* + `resolveTopoRef`)。
|
|
13
13
|
*
|
package/dist/api/shell.js
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与
|
|
5
5
|
* brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`
|
|
6
6
|
* (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是
|
|
7
|
-
*
|
|
7
|
+
* 能力升级——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。
|
|
8
8
|
*
|
|
9
9
|
* 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),
|
|
10
|
-
* 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo`
|
|
10
|
+
* 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧
|
|
11
11
|
* `Face[]` 句柄入参。解析在 op 内一处完成(`buildEdgeResolutionContext` 现场枚举
|
|
12
12
|
* + `resolveTopoRef`)。
|
|
13
13
|
*
|
package/dist/api/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/api/shell.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * api shell — 抽壳:按面移除生成等厚薄壁(手写中立 op,Phase 5)\n *\n * 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与\n * brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`\n * (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是\n *
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/api/shell.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * api shell — 抽壳:按面移除生成等厚薄壁(手写中立 op,Phase 5)\n *\n * 中立 op:L1 `shell(solid, facesToRemove, thickness, tolerance)` 在 occt 与\n * brepkit 两侧均有真实现(engine-method-map 实测 `dialect`)⇒ 走 `getBrepApi()`\n * (D12),不声明 engines(中立 op:实现只经 L1 契约面)。相对现状是\n * 能力升级——旧版是 occt 平台 op(arg-spec `engines:['occt']`,skip)。\n *\n * 选面口径(设计原则 4):`openFaces: FaceTopoRef[]`(`cad.faceRef` 产物),\n * 与 `fillet` 的 `EdgeTopoRef[]` / `extrude` 的 `upTo` 同族;不复刻旧\n * `Face[]` 句柄入参。解析在 op 内一处完成(`buildEdgeResolutionContext` 现场枚举\n * + `resolveTopoRef`)。\n *\n * 网格链(方案 2026-10-01 §4 Phase 4 / B3 批):`mesh:` 实现走网格后端,面按\n * **序号或 FaceTopoRef** 解析(近似拓扑没有 role 层),产物是新的网格零件。\n */\n\nimport type { Shape } from '../mesh/types'\nimport type { BrepHandle } from '../brep/engine/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrep } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { FaceTopoRef } from '../topology/naming'\nimport { resolveTopoRef, TopoRefError } from '../topology/naming'\nimport type { Provenance } from '../topology/naming/lineage'\nimport { buildEdgeResolutionContext } from './topo-resolve'\nimport { meshKernelFailure, meshSolidBasicEntry, meshSolidProduct, resolveMeshFaces } from './internal/mesh-solid-op'\n\n/** 抽壳时移除的面选择器:精度链用 `FaceTopoRef`;网格链也可用 1 起序号。 */\nexport type ShellFaceSelector = number | FaceTopoRef\n\n/** `cad.shell` 参数。 */\nexport interface ShellParams {\n /** 抽壳时移除的面(FaceTopoRef[],`cad.faceRef` 产物;空数组 = 全封闭薄壁)。 */\n openFaces: ShellFaceSelector[]\n /** 壁厚(mm,>0,向内偏置)。 */\n thickness: number\n /** 容差(mm,可选;默认走内核约定值)。 */\n tolerance?: number\n}\n\n/** 参数共校验(两条路径共用;`openFaces` 为空数组合法 = 全封闭薄壁)。 */\nfunction assertShellParams(params: ShellParams): void {\n const { openFaces, thickness } = params ?? ({} as ShellParams)\n if (!Array.isArray(openFaces)) {\n throw new Error('E_SHELL_BAD_OPEN_FACES: shell.openFaces must be an array of FaceTopoRef or ordinals')\n }\n if (typeof thickness !== 'number' || !Number.isFinite(thickness) || thickness <= 0) {\n throw new Error('E_SHELL_BAD_THICKNESS: shell.thickness must be a positive number')\n }\n}\n\n/** BREP 路径:解析面引用 → L1 shell → 收养。 */\nfunction shellBrep(input: Shape, params: ShellParams): Shape {\n const { openFaces, thickness, tolerance } = params\n assertShellParams(params)\n const kernel = getBrepApi()\n const solid = brepOf(input) as BrepHandle | undefined\n if (!solid) throw new Error('E_SHELL_NO_BREP: shell input is not BREP')\n\n const ctx = buildEdgeResolutionContext(kernel, input as object)\n if (!ctx) throw new TopoRefError('E_TOPO_NOT_FOUND', 'face', 'shell: input has no BREP naming context')\n const faceHandles = openFaces.map((ref) => {\n // 精度链不开序号口子:BREP 的面身份是 `(origin, role)`,序号只是本次枚举序。\n if (typeof ref === 'number') {\n throw new Error(\n 'E_SHELL_BAD_OPEN_FACES: an ordinal face selector is only available on the mesh chain — ' +\n 'a precision-chain face is identified by its role line (cad.faceRef)',\n )\n }\n if (!ref || (ref as { kind?: unknown }).kind !== 'face') {\n throw new Error('E_SHELL_BAD_OPEN_FACES: every openFaces entry must be a FaceTopoRef (cad.faceRef)')\n }\n const r = resolveTopoRef(ref, ctx)\n if (r.handle === undefined) {\n throw new TopoRefError('E_TOPO_NOT_FOUND', 'face', `shell: face resolved without handle (${ref.origin}/${ref.role})`)\n }\n return r.handle as BrepHandle\n })\n\n const result = kernel.shell(solid, faceHandles, thickness, tolerance ?? 1e-6)\n return fromBrep(solidToShape(kernel, result), { solid: result })\n}\n\n/**\n * 网格实体路径:按序号或几何选出要开口的面,交网格后端抽壳。\n *\n * 与 BREP 路径同一条 L1 契约面(`shell(solid, faces, thickness, tolerance)`),\n * 差别只在选面方式:近似拓扑没有 role 层,面靠**序号**(拓扑 `faces` 数组下标 + 1)\n * 或 `FaceTopoRef` 的几何匹配(法向/中心/面积)指认。产物是新网格零件,\n * 近似拓扑由 `meshSolidProduct` 重建。\n *\n * @param input - the mesh-solid input.\n * @param params - the shell parameters.\n * @returns the shelled mesh solid as a new mesh part.\n */\nfunction shellMeshSolid(input: Shape, params: ShellParams): Shape {\n const { openFaces, thickness, tolerance } = params\n assertShellParams(params)\n const entry = meshSolidBasicEntry(input, 'shell')\n const faceHandles = resolveMeshFaces(entry.kernel, input, openFaces, 'shell')\n\n let result: BrepHandle\n try {\n result = entry.kernel.shell(entry.solid, faceHandles, thickness, tolerance ?? 1e-6)\n } catch (cause) {\n throw meshKernelFailure(\n 'shell',\n 'E_SHELL_FAILED',\n `shell(thickness=${thickness}) removing ${faceHandles.length} face(s)`,\n cause,\n )\n }\n return meshSolidProduct(entry, result)\n}\n\n/**\n * 抽壳:移除指定面并把余下面偏置成等厚薄壁。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name shell\n * @note 中立 op:L1 shell 两引擎同实现。`openFaces` 为空数组时生成全封闭薄壁。\n * 精度链按 role 线路选面(`cad.faceRef`);网格链按序号或几何选面——网格零件\n * 没有 role 层,序号是唯一无歧义的指认方式。\n * @returns Shape 抽壳后的薄壁体。\n * @param input - 目标几何。type:Shape required:true\n * @param params.openFaces - 要移除的面(FaceTopoRef[],cad.faceRef 产物;网格链可用 1 起序号)。type:FaceTopoRef[] required:true\n * @param params.thickness - 壁厚(mm,>0)。type:number required:true\n * @param params.tolerance - 容差(mm)。type:number required:false\n * @example\n * const sh = await cad.shell(part0, { openFaces: [cad.faceRef(part0, 1)], thickness: 2 })\n * const sm = await cad.shell(meshPart, { openFaces: [4], thickness: 2 })\n */\nexport const shell = defineOp({\n capabilities: ['directEdit'],\n meshEngines: ['brepkit'],\n mesh(input: Shape, params: ShellParams) {\n return shellMeshSolid(input, params)\n },\n brep(input: Shape, params: ShellParams) {\n return shellBrep(input, params)\n },\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n})\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api solidFromFaces — 面集一次成型为实体(手写平台 op engines:['occt'])
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 本文件 import occt-kernel(`getOcctKernel().buildSolidFromFaces`):
|
|
5
|
+
* 该原生方法在 L1 契约 `brep/engine/primitives.ts` 里**没有对应成员**(L1 只有
|
|
6
|
+
* `sewAndSolidify`),故 op 声明 `engines: ['occt']`(D11)。守卫 ① 要求平台
|
|
7
|
+
* import 自证身份(本头注);调用方 op 声明 `engines` 由守卫 ② 校验。
|
|
8
|
+
*
|
|
9
|
+
* 与 `sewAndSolidify` / `sew` 的分工(方案 §4.5 去重表):
|
|
10
|
+
* - `sewAndSolidify(faces, {tolerance})` — **中立** op,走 L1 契约的
|
|
11
|
+
* 「面 → 缝合 → 固化」两步链,两引擎(occt / brepkit)同实现;
|
|
12
|
+
* - `solidFromFaces(faces, {tolerance})` — **平台** op,直调 occt 原生一次性
|
|
13
|
+
* 构造器 `buildSolidFromFaces`(`BRepBuilderAPI_*` 单次成型,自带缝合容差)。
|
|
14
|
+
*
|
|
15
|
+
* 二者并存不是双轨:一个是引擎中立的可切换路径,一个是 occt 原生的一次成型
|
|
16
|
+
* 入口(真值来源是 occt-wasm 的两个不同内核方法)。新增 op 前已对照 §4.5 表。
|
|
17
|
+
*
|
|
18
|
+
* 产物形态:实体(solid),经 `fromBrep` 收养;面演化由内核给出 ⇒
|
|
19
|
+
* `naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } }`(同 sew 族口径)。
|
|
20
|
+
*/
|
|
21
|
+
import type { Shape } from '../mesh/types.js';
|
|
22
|
+
/** `cad.solidFromFaces` 参数。 */
|
|
23
|
+
export interface SolidFromFacesParams {
|
|
24
|
+
/** 缝合容差(mm,可选;缺省 = occt 原生默认 1e-6)。 */
|
|
25
|
+
tolerance?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 面集一次成型为实体:把一组共享边界的面缝合成一个实体(occt 原生一次构造)。
|
|
29
|
+
* @group 特征
|
|
30
|
+
* @inputs 1
|
|
31
|
+
* @async true
|
|
32
|
+
* @qual ok
|
|
33
|
+
* @name solidFromFaces
|
|
34
|
+
* @note 平台 op:仅 occt 引擎(原生 buildSolidFromFaces,L1 契约无对应成员)。
|
|
35
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。中立路径见 `sewAndSolidify`。
|
|
36
|
+
* @returns Shape 缝合固化后的实体。
|
|
37
|
+
* @param faces - 面集合(共享边界、构成闭合壳)。type:Shape[] required:true
|
|
38
|
+
* @param params.tolerance - 缝合容差(mm,默认 occt 1e-6)。type:number required:false
|
|
39
|
+
* @example
|
|
40
|
+
* const solid = await cad.solidFromFaces([f0, f1, f2, f3, f4, f5])
|
|
41
|
+
*/
|
|
42
|
+
export declare const solidFromFaces: ((faces: Shape[], params?: SolidFromFacesParams | undefined) => Promise<Shape>) & {
|
|
43
|
+
__faijs__dualOp?: import("../define-op.js").DualOpMeta;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=solid-from-faces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-from-faces.d.ts","sourceRoot":"","sources":["../../src/api/solid-from-faces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAS1C,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA0BD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc;;CAQzB,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api solidFromFaces — 面集一次成型为实体(手写平台 op engines:['occt'])
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 本文件 import occt-kernel(`getOcctKernel().buildSolidFromFaces`):
|
|
5
|
+
* 该原生方法在 L1 契约 `brep/engine/primitives.ts` 里**没有对应成员**(L1 只有
|
|
6
|
+
* `sewAndSolidify`),故 op 声明 `engines: ['occt']`(D11)。守卫 ① 要求平台
|
|
7
|
+
* import 自证身份(本头注);调用方 op 声明 `engines` 由守卫 ② 校验。
|
|
8
|
+
*
|
|
9
|
+
* 与 `sewAndSolidify` / `sew` 的分工(方案 §4.5 去重表):
|
|
10
|
+
* - `sewAndSolidify(faces, {tolerance})` — **中立** op,走 L1 契约的
|
|
11
|
+
* 「面 → 缝合 → 固化」两步链,两引擎(occt / brepkit)同实现;
|
|
12
|
+
* - `solidFromFaces(faces, {tolerance})` — **平台** op,直调 occt 原生一次性
|
|
13
|
+
* 构造器 `buildSolidFromFaces`(`BRepBuilderAPI_*` 单次成型,自带缝合容差)。
|
|
14
|
+
*
|
|
15
|
+
* 二者并存不是双轨:一个是引擎中立的可切换路径,一个是 occt 原生的一次成型
|
|
16
|
+
* 入口(真值来源是 occt-wasm 的两个不同内核方法)。新增 op 前已对照 §4.5 表。
|
|
17
|
+
*
|
|
18
|
+
* 产物形态:实体(solid),经 `fromBrep` 收养;面演化由内核给出 ⇒
|
|
19
|
+
* `naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } }`(同 sew 族口径)。
|
|
20
|
+
*/
|
|
21
|
+
import { solidToShape } from '../brep/brep-ops.js';
|
|
22
|
+
import { getBrepApi } from '../brep/handle-bridge.js';
|
|
23
|
+
import { brepOf, fromBrep } from '../shape.js';
|
|
24
|
+
import { defineOp } from '../sdk.js';
|
|
25
|
+
import { getOcctKernel } from '../occt-kernel/occtKernel.js';
|
|
26
|
+
/** BREP 路径:借入面句柄 → occt 原生 buildSolidFromFaces(一次成型)→ fromBrep 收养。 */
|
|
27
|
+
function solidFromFacesBrep(faces, params) {
|
|
28
|
+
if (!Array.isArray(faces) || faces.length === 0) {
|
|
29
|
+
throw new Error('E_SOLID_FROM_FACES_NO_FACES: solidFromFaces requires a non-empty array of faces');
|
|
30
|
+
}
|
|
31
|
+
const tolerance = params?.tolerance;
|
|
32
|
+
if (tolerance !== undefined && (typeof tolerance !== 'number' || !(tolerance > 0))) {
|
|
33
|
+
throw new Error('E_SOLID_FROM_FACES_BAD_TOLERANCE: tolerance must be a positive number');
|
|
34
|
+
}
|
|
35
|
+
const handles = faces.map((s) => {
|
|
36
|
+
const h = brepOf(s);
|
|
37
|
+
if (!h)
|
|
38
|
+
throw new Error('E_SOLID_FROM_FACES_NO_BREP: solidFromFaces input shape is not BREP');
|
|
39
|
+
return h;
|
|
40
|
+
});
|
|
41
|
+
const kernel = getBrepApi();
|
|
42
|
+
const occt = getOcctKernel();
|
|
43
|
+
const handle = (tolerance === undefined
|
|
44
|
+
? occt.buildSolidFromFaces(handles)
|
|
45
|
+
: occt.buildSolidFromFaces(handles, tolerance));
|
|
46
|
+
return fromBrep(solidToShape(kernel, handle), { solid: handle });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 面集一次成型为实体:把一组共享边界的面缝合成一个实体(occt 原生一次构造)。
|
|
50
|
+
* @group 特征
|
|
51
|
+
* @inputs 1
|
|
52
|
+
* @async true
|
|
53
|
+
* @qual ok
|
|
54
|
+
* @name solidFromFaces
|
|
55
|
+
* @note 平台 op:仅 occt 引擎(原生 buildSolidFromFaces,L1 契约无对应成员)。
|
|
56
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。中立路径见 `sewAndSolidify`。
|
|
57
|
+
* @returns Shape 缝合固化后的实体。
|
|
58
|
+
* @param faces - 面集合(共享边界、构成闭合壳)。type:Shape[] required:true
|
|
59
|
+
* @param params.tolerance - 缝合容差(mm,默认 occt 1e-6)。type:number required:false
|
|
60
|
+
* @example
|
|
61
|
+
* const solid = await cad.solidFromFaces([f0, f1, f2, f3, f4, f5])
|
|
62
|
+
*/
|
|
63
|
+
export const solidFromFaces = defineOp({
|
|
64
|
+
name: 'solidFromFaces',
|
|
65
|
+
paramDims: { 'params.tolerance': 'length' },
|
|
66
|
+
brep(faces, params) {
|
|
67
|
+
return solidFromFacesBrep(faces, params);
|
|
68
|
+
},
|
|
69
|
+
engines: ['occt'],
|
|
70
|
+
naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } },
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=solid-from-faces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid-from-faces.js","sourceRoot":"","sources":["../../src/api/solid-from-faces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAQzD,sEAAsE;AACtE,SAAS,kBAAkB,CAAC,KAAc,EAAE,MAA6B;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;IACpG,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,CAAA;IACnC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;IAC1F,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAA2B,CAAA;QAC7C,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;QAC7F,OAAO,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,CACb,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAgB,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAgB,EAAE,SAAS,CAAC,CACjC,CAAA;IAC1B,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE;IAC3C,IAAI,CAAC,KAAc,EAAE,MAA6B;QAChD,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAgB;CAC3E,CAAC,CAAA","sourcesContent":["/**\n * api solidFromFaces — 面集一次成型为实体(手写平台 op engines:['occt'])\n *\n * @platform occt — 本文件 import occt-kernel(`getOcctKernel().buildSolidFromFaces`):\n * 该原生方法在 L1 契约 `brep/engine/primitives.ts` 里**没有对应成员**(L1 只有\n * `sewAndSolidify`),故 op 声明 `engines: ['occt']`(D11)。守卫 ① 要求平台\n * import 自证身份(本头注);调用方 op 声明 `engines` 由守卫 ② 校验。\n *\n * 与 `sewAndSolidify` / `sew` 的分工(方案 §4.5 去重表):\n * - `sewAndSolidify(faces, {tolerance})` — **中立** op,走 L1 契约的\n * 「面 → 缝合 → 固化」两步链,两引擎(occt / brepkit)同实现;\n * - `solidFromFaces(faces, {tolerance})` — **平台** op,直调 occt 原生一次性\n * 构造器 `buildSolidFromFaces`(`BRepBuilderAPI_*` 单次成型,自带缝合容差)。\n *\n * 二者并存不是双轨:一个是引擎中立的可切换路径,一个是 occt 原生的一次成型\n * 入口(真值来源是 occt-wasm 的两个不同内核方法)。新增 op 前已对照 §4.5 表。\n *\n * 产物形态:实体(solid),经 `fromBrep` 收养;面演化由内核给出 ⇒\n * `naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } }`(同 sew 族口径)。\n */\n\nimport type { Shape } from '../mesh/types'\nimport type { BrepHandle } from '../brep/engine/types'\nimport { solidToShape } from '../brep/brep-ops'\nimport { getBrepApi } from '../brep/handle-bridge'\nimport { brepOf, fromBrep } from '../shape'\nimport { defineOp } from '../sdk'\nimport type { Provenance } from '../topology/naming/lineage'\nimport { getOcctKernel } from '../occt-kernel/occtKernel'\n\n/** `cad.solidFromFaces` 参数。 */\nexport interface SolidFromFacesParams {\n /** 缝合容差(mm,可选;缺省 = occt 原生默认 1e-6)。 */\n tolerance?: number\n}\n\n/** BREP 路径:借入面句柄 → occt 原生 buildSolidFromFaces(一次成型)→ fromBrep 收养。 */\nfunction solidFromFacesBrep(faces: Shape[], params?: SolidFromFacesParams): Shape {\n if (!Array.isArray(faces) || faces.length === 0) {\n throw new Error('E_SOLID_FROM_FACES_NO_FACES: solidFromFaces requires a non-empty array of faces')\n }\n const tolerance = params?.tolerance\n if (tolerance !== undefined && (typeof tolerance !== 'number' || !(tolerance > 0))) {\n throw new Error('E_SOLID_FROM_FACES_BAD_TOLERANCE: tolerance must be a positive number')\n }\n const handles = faces.map((s) => {\n const h = brepOf(s) as BrepHandle | undefined\n if (!h) throw new Error('E_SOLID_FROM_FACES_NO_BREP: solidFromFaces input shape is not BREP')\n return h\n })\n const kernel = getBrepApi()\n const occt = getOcctKernel()\n const handle = (\n tolerance === undefined\n ? occt.buildSolidFromFaces(handles as never)\n : occt.buildSolidFromFaces(handles as never, tolerance)\n ) as unknown as BrepHandle\n return fromBrep(solidToShape(kernel, handle), { solid: handle })\n}\n\n/**\n * 面集一次成型为实体:把一组共享边界的面缝合成一个实体(occt 原生一次构造)。\n * @group 特征\n * @inputs 1\n * @async true\n * @qual ok\n * @name solidFromFaces\n * @note 平台 op:仅 occt 引擎(原生 buildSolidFromFaces,L1 契约无对应成员)。\n * 非 occt 引擎执行前报错;brep_mock 不拦截。中立路径见 `sewAndSolidify`。\n * @returns Shape 缝合固化后的实体。\n * @param faces - 面集合(共享边界、构成闭合壳)。type:Shape[] required:true\n * @param params.tolerance - 缝合容差(mm,默认 occt 1e-6)。type:number required:false\n * @example\n * const solid = await cad.solidFromFaces([f0, f1, f2, f3, f4, f5])\n */\nexport const solidFromFaces = defineOp({\n name: 'solidFromFaces',\n paramDims: { 'params.tolerance': 'length' },\n brep(faces: Shape[], params?: SolidFromFacesParams) {\n return solidFromFacesBrep(faces, params)\n },\n engines: ['occt'],\n naming: { kind: 'kernel', newFaces: { via: 'byAdjacency' } } as Provenance,\n})\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api solid-offset — 实体与偏置族(S4 剩余:draftPrism / pipe,平台 op engines:['occt'])
|
|
3
|
+
*
|
|
4
|
+
* @platform occt — 本目录 import occt-kernel:`draftPrism`(拔模棱柱)与 `pipe`
|
|
5
|
+
* (沿脊柱的管)直调 occt 原生(occt-wasm 原生有)。这两个原生方法**不在** L1 契约
|
|
6
|
+
* `BrepEngineApi` 里(L1 只有 `offset` / `sweepPipeShell` 等,见
|
|
7
|
+
* brep/engine/primitives.ts)⇒ 平台 op:defineOp 声明 `engines: ['occt']`(D11)。
|
|
8
|
+
*
|
|
9
|
+
* 方案落点:docs/plans/2026-10-07-occt-wasm-op-enablement-plan.md §3.4.4
|
|
10
|
+
* (该族 5 项中 `offsetWire2d` / `buildSolidFromFaces` / `halfSpace` 已由 S3 落地)。
|
|
11
|
+
* 与既有 op 的边界(§4.5 去重表):
|
|
12
|
+
* - `pipe` vs `sweep`:pipe = `BRepOffsetAPI_MakePipe`(沿脊柱的管,单截面裸管线);
|
|
13
|
+
* sweep = `sweepPipeShell` / `simplePipe`(截面扫掠,带 Frenet/平滑选项);
|
|
14
|
+
* - `draftPrism` vs `extrude`:前者带拔模角(上下截面渐变),后者平行拔出;
|
|
15
|
+
* - `draftPrism` vs `draft`:draft 对已有实体面加拔模斜度;draftPrism 是拔模挤出。
|
|
16
|
+
*
|
|
17
|
+
* 角度约定(实测钉住,见 test/api/occt-s4-solid-offset.test.ts):occt 原生
|
|
18
|
+
* `draftPrism` 的形参名即 `angleDeg`(**度**,facade 内部自行换算弧度)——脚本面
|
|
19
|
+
* 直传度,不做二次换算。
|
|
20
|
+
*/
|
|
21
|
+
import type { Shape } from '../../mesh/types.js';
|
|
22
|
+
type Vec3 = [number, number, number];
|
|
23
|
+
/**
|
|
24
|
+
* 拔模棱柱:把平面基底(face 或 wire)沿方向挤出,并施加拔模角(上下截面渐变)。
|
|
25
|
+
* @group 创建
|
|
26
|
+
* @inputs 0
|
|
27
|
+
* @async false
|
|
28
|
+
* @qual ok
|
|
29
|
+
* @name draftPrism
|
|
30
|
+
* @note 平台 op:仅 occt 引擎(原生 draftPrism,形参即 angleDeg——角度单位是**度**,
|
|
31
|
+
* 原生内部换算)。角度为 0 时等价普通挤出。
|
|
32
|
+
* @returns Shape 拔模挤出体。
|
|
33
|
+
* @param base - 平面基底(face 或闭合 wire)。type:Shape required:true
|
|
34
|
+
* @param direction - 挤出方向 [dx,dy,dz](非零;长度即挤出距离)。type:Vec3 required:true
|
|
35
|
+
* @param angleDeg - 拔模角(度)。type:number required:true
|
|
36
|
+
* @example
|
|
37
|
+
* const s = cad.draftPrism(squareFace, [0, 0, 10], 5)
|
|
38
|
+
*/
|
|
39
|
+
export declare const draftPrism: ((base: Shape, direction: Vec3, angleDeg: number) => Promise<Shape>) & {
|
|
40
|
+
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* 沿脊柱扫出管:把截面沿脊柱 wire 扫掠(`BRepOffsetAPI_MakePipe` 裸管线;
|
|
44
|
+
* 带过渡/方向控制的扫掠见 `sweep`)。
|
|
45
|
+
*
|
|
46
|
+
* 产物类型随截面类型(实测钉住,test/api/occt-s4-solid-offset.test.ts A3/A4):
|
|
47
|
+
* **截面 face → 实体;截面 wire/edge → 壳(管面,体积无意义)**。要实体管,
|
|
48
|
+
* 喂面截面(如 `cad.profile` 的圆盘轮廓)。
|
|
49
|
+
* @group 创建
|
|
50
|
+
* @inputs 2
|
|
51
|
+
* @async false
|
|
52
|
+
* @qual ok
|
|
53
|
+
* @name pipe
|
|
54
|
+
* @note 平台 op:仅 occt 引擎(原生 pipe,L1 契约无对应成员)。脊柱须为 wire。
|
|
55
|
+
* 非 occt 引擎执行前报错;brep_mock 不拦截。
|
|
56
|
+
* @returns Shape 扫出的管(截面 face → 实体;wire/edge → 壳)。
|
|
57
|
+
* @param profile - 截面(face → 实体;wire/edge → 壳)。
|
|
58
|
+
* type:Shape required:true
|
|
59
|
+
* @param spine - 脊柱 wire。type:Shape required:true
|
|
60
|
+
* @example
|
|
61
|
+
* const tube = cad.pipe(diskFace, spineWire)
|
|
62
|
+
*/
|
|
63
|
+
export declare const pipe: ((profile: Shape, spine: Shape) => Promise<Shape>) & {
|
|
64
|
+
__faijs__dualOp?: import("../../define-op.js").DualOpMeta;
|
|
65
|
+
};
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/solid-offset/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAS7C,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAsCpC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU;;CAWrB,CAAA;AAuBF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,IAAI;;CAUf,CAAA"}
|