@faicad/faijs 0.33.2 → 0.35.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api-namespace.d.ts +14 -14
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +40 -14
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/appearance.d.ts +47 -6
- package/dist/api/appearance.d.ts.map +1 -1
- package/dist/api/appearance.js.map +1 -1
- package/dist/api/assembly/solve-tree.d.ts +1 -0
- package/dist/api/assembly/solve-tree.d.ts.map +1 -1
- package/dist/api/assembly/solve-tree.js +42 -17
- package/dist/api/assembly/solve-tree.js.map +1 -1
- package/dist/api/assembly/solve.d.ts +1 -0
- package/dist/api/assembly/solve.d.ts.map +1 -1
- package/dist/api/assembly/solve.js.map +1 -1
- package/dist/api/assembly/solvers/global-solver.d.ts.map +1 -1
- package/dist/api/assembly/solvers/global-solver.js +130 -23
- package/dist/api/assembly/solvers/global-solver.js.map +1 -1
- package/dist/api/assembly/solvers/pose-from-delta.d.ts +9 -0
- package/dist/api/assembly/solvers/pose-from-delta.d.ts.map +1 -1
- package/dist/api/assembly/solvers/pose-from-delta.js +23 -0
- package/dist/api/assembly/solvers/pose-from-delta.js.map +1 -1
- package/dist/api/assembly/solvers/types.d.ts +20 -2
- package/dist/api/assembly/solvers/types.d.ts.map +1 -1
- package/dist/api/assembly/solvers/types.js.map +1 -1
- package/dist/api/chamfer.d.ts +7 -4
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +57 -13
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/draft.d.ts +7 -4
- package/dist/api/draft.d.ts.map +1 -1
- package/dist/api/draft.js +11 -6
- package/dist/api/draft.js.map +1 -1
- package/dist/api/edge-ref.d.ts +4 -4
- package/dist/api/edge-ref.js +4 -4
- package/dist/api/edge-ref.js.map +1 -1
- package/dist/api/extrude.d.ts +10 -6
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +50 -25
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/face-ref.d.ts +4 -4
- package/dist/api/face-ref.js +4 -4
- package/dist/api/face-ref.js.map +1 -1
- package/dist/api/feature-repair.d.ts +6 -3
- package/dist/api/feature-repair.d.ts.map +1 -1
- package/dist/api/feature-repair.js +12 -7
- package/dist/api/feature-repair.js.map +1 -1
- package/dist/api/fillet-variable.d.ts +6 -2
- package/dist/api/fillet-variable.d.ts.map +1 -1
- package/dist/api/fillet-variable.js +24 -6
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts +7 -4
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +45 -12
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/helix.d.ts +13 -13
- package/dist/api/helix.d.ts.map +1 -1
- package/dist/api/helix.js +19 -24
- package/dist/api/helix.js.map +1 -1
- package/dist/api/import-brep.d.ts +10 -18
- package/dist/api/import-brep.d.ts.map +1 -1
- package/dist/api/import-brep.js +17 -25
- package/dist/api/import-brep.js.map +1 -1
- package/dist/api/import-step.d.ts +10 -15
- package/dist/api/import-step.d.ts.map +1 -1
- package/dist/api/import-step.js +24 -29
- package/dist/api/import-step.js.map +1 -1
- package/dist/api/index.js +2 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/export-members.js.map +1 -1
- package/dist/api/loft-advanced.d.ts +4 -0
- package/dist/api/loft-advanced.d.ts.map +1 -1
- package/dist/api/loft-advanced.js +4 -0
- package/dist/api/loft-advanced.js.map +1 -1
- package/dist/api/loft.d.ts +5 -3
- package/dist/api/loft.d.ts.map +1 -1
- package/dist/api/loft.js +5 -3
- package/dist/api/loft.js.map +1 -1
- package/dist/api/meta.d.ts +42 -6
- package/dist/api/meta.d.ts.map +1 -1
- package/dist/api/meta.js.map +1 -1
- package/dist/api/punch-hole.d.ts +5 -2
- package/dist/api/punch-hole.d.ts.map +1 -1
- package/dist/api/punch-hole.js +4 -1
- package/dist/api/punch-hole.js.map +1 -1
- package/dist/api/replicate.d.ts +4 -5
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +4 -5
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/selectors-to-refs.d.ts +83 -0
- package/dist/api/selectors-to-refs.d.ts.map +1 -0
- package/dist/api/selectors-to-refs.js +211 -0
- package/dist/api/selectors-to-refs.js.map +1 -0
- package/dist/api/shell.d.ts +17 -8
- package/dist/api/shell.d.ts.map +1 -1
- package/dist/api/shell.js +45 -15
- package/dist/api/shell.js.map +1 -1
- package/dist/api/sketch-on-face.d.ts +12 -6
- package/dist/api/sketch-on-face.d.ts.map +1 -1
- package/dist/api/sketch-on-face.js +31 -4
- package/dist/api/sketch-on-face.js.map +1 -1
- package/dist/api/sketch-on-plane.d.ts +3 -0
- package/dist/api/sketch-on-plane.d.ts.map +1 -1
- package/dist/api/sketch-on-plane.js +3 -0
- package/dist/api/sketch-on-plane.js.map +1 -1
- package/dist/api/sketch-on-surface.d.ts +4 -1
- package/dist/api/sketch-on-surface.d.ts.map +1 -1
- package/dist/api/sketch-on-surface.js +4 -1
- package/dist/api/sketch-on-surface.js.map +1 -1
- package/dist/api/view/view-projection.d.ts.map +1 -1
- package/dist/api/view/view-projection.js +9 -2
- package/dist/api/view/view-projection.js.map +1 -1
- package/dist/brep/brep-chain.js +2 -2
- package/dist/brep/brep-chain.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +1 -1
- package/dist/brep/brep-ops.js +1 -1
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +45 -0
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +87 -3
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js +1 -1
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/registry.d.ts +33 -7
- package/dist/brep/engine/registry.d.ts.map +1 -1
- package/dist/brep/engine/registry.js +47 -16
- package/dist/brep/engine/registry.js.map +1 -1
- package/dist/brep/handle-bridge.d.ts +14 -15
- package/dist/brep/handle-bridge.d.ts.map +1 -1
- package/dist/brep/handle-bridge.js +35 -15
- package/dist/brep/handle-bridge.js.map +1 -1
- package/dist/brep/primitives-brep.js +2 -2
- package/dist/brep/primitives-brep.js.map +1 -1
- package/dist/brep/text/text-to-solid.d.ts +40 -3
- package/dist/brep/text/text-to-solid.d.ts.map +1 -1
- package/dist/brep/text/text-to-solid.js +104 -24
- package/dist/brep/text/text-to-solid.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts +2 -2
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +315 -36
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/brepkit-kernel/brepkitWasm.js +7 -7
- package/dist/brepkit-kernel/brepkitWasm.js.map +1 -1
- package/dist/brepkit-kernel/multi-version-test.d.ts +2 -2
- package/dist/brepkit-kernel/multi-version-test.d.ts.map +1 -1
- package/dist/brepkit-kernel/multi-version-test.js +6 -6
- package/dist/brepkit-kernel/multi-version-test.js.map +1 -1
- package/dist/browser.d.ts +2 -3
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -2
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts +9 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.js +11 -1
- package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.d.ts +16 -11
- package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.js +16 -8
- package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
- package/dist/cad-runtime/direct-executor.d.ts +62 -5
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
- package/dist/cad-runtime/direct-executor.js +617 -42
- package/dist/cad-runtime/direct-executor.js.map +1 -1
- package/dist/cad-runtime/interp/closure.d.ts +3 -2
- package/dist/cad-runtime/interp/closure.d.ts.map +1 -1
- package/dist/cad-runtime/interp/closure.js.map +1 -1
- package/dist/cad-runtime/interp/env.d.ts +9 -6
- package/dist/cad-runtime/interp/env.d.ts.map +1 -1
- package/dist/cad-runtime/interp/env.js +4 -2
- package/dist/cad-runtime/interp/env.js.map +1 -1
- package/dist/cad-runtime/lib-decl.d.ts +121 -0
- package/dist/cad-runtime/lib-decl.d.ts.map +1 -0
- package/dist/cad-runtime/lib-decl.js +100 -0
- package/dist/cad-runtime/lib-decl.js.map +1 -0
- package/dist/cad-runtime/ports.d.ts +12 -0
- package/dist/cad-runtime/ports.d.ts.map +1 -1
- package/dist/cad-runtime/ports.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts +59 -5
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +237 -18
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/extra/browser.d.ts +9 -0
- package/dist/extra/browser.d.ts.map +1 -0
- package/dist/extra/browser.js +9 -0
- package/dist/extra/browser.js.map +1 -0
- package/dist/extra/editor-ops.d.ts +22 -0
- package/dist/extra/editor-ops.d.ts.map +1 -0
- package/dist/extra/editor-ops.js +21 -0
- package/dist/extra/editor-ops.js.map +1 -0
- package/dist/extra/extras/svg-extrude.d.ts +45 -0
- package/dist/extra/extras/svg-extrude.d.ts.map +1 -0
- package/dist/extra/extras/svg-extrude.js +110 -0
- package/dist/extra/extras/svg-extrude.js.map +1 -0
- package/dist/extra/extras/text-cjk.d.ts +36 -0
- package/dist/extra/extras/text-cjk.d.ts.map +1 -0
- package/dist/extra/extras/text-cjk.js +86 -0
- package/dist/extra/extras/text-cjk.js.map +1 -0
- package/dist/extra/extras/text-geometry.d.ts +69 -0
- package/dist/extra/extras/text-geometry.d.ts.map +1 -0
- package/dist/extra/extras/text-geometry.js +188 -0
- package/dist/extra/extras/text-geometry.js.map +1 -0
- package/dist/extra/index.d.ts +40 -0
- package/dist/extra/index.d.ts.map +1 -0
- package/dist/extra/index.js +40 -0
- package/dist/extra/index.js.map +1 -0
- package/dist/extra/mesh/drill-hole/DrillHoleCore.d.ts +94 -0
- package/dist/extra/mesh/drill-hole/DrillHoleCore.d.ts.map +1 -0
- package/dist/extra/mesh/drill-hole/DrillHoleCore.js +282 -0
- package/dist/extra/mesh/drill-hole/DrillHoleCore.js.map +1 -0
- package/dist/extra/mesh/drill-hole/drill-types.d.ts +34 -0
- package/dist/extra/mesh/drill-hole/drill-types.d.ts.map +1 -0
- package/dist/extra/mesh/drill-hole/drill-types.js +7 -0
- package/dist/extra/mesh/drill-hole/drill-types.js.map +1 -0
- package/dist/extra/mesh/engrave-decoration.d.ts +42 -0
- package/dist/extra/mesh/engrave-decoration.d.ts.map +1 -0
- package/dist/extra/mesh/engrave-decoration.js +39 -0
- package/dist/extra/mesh/engrave-decoration.js.map +1 -0
- package/dist/extra/mesh/fai_drill.d.ts +21 -0
- package/dist/extra/mesh/fai_drill.d.ts.map +1 -0
- package/dist/extra/mesh/fai_drill.js +89 -0
- package/dist/extra/mesh/fai_drill.js.map +1 -0
- package/dist/extra/mesh/fai_extrude.d.ts +24 -0
- package/dist/extra/mesh/fai_extrude.d.ts.map +1 -0
- package/dist/extra/mesh/fai_extrude.js +42 -0
- package/dist/extra/mesh/fai_extrude.js.map +1 -0
- package/dist/extra/mesh/fai_split.d.ts +164 -0
- package/dist/extra/mesh/fai_split.d.ts.map +1 -0
- package/dist/extra/mesh/fai_split.js +269 -0
- package/dist/extra/mesh/fai_split.js.map +1 -0
- package/dist/extra/mesh/primitives.d.ts +29 -0
- package/dist/extra/mesh/primitives.d.ts.map +1 -0
- package/dist/extra/mesh/primitives.js +41 -0
- package/dist/extra/mesh/primitives.js.map +1 -0
- package/dist/extra/op-names.d.ts +37 -0
- package/dist/extra/op-names.d.ts.map +1 -0
- package/dist/extra/op-names.js +46 -0
- package/dist/extra/op-names.js.map +1 -0
- package/dist/extra/ops/compound.d.ts +140 -0
- package/dist/extra/ops/compound.d.ts.map +1 -0
- package/dist/extra/ops/compound.js +167 -0
- package/dist/extra/ops/compound.js.map +1 -0
- package/dist/extra/ops/copy.d.ts +40 -0
- package/dist/extra/ops/copy.d.ts.map +1 -0
- package/dist/extra/ops/copy.js +83 -0
- package/dist/extra/ops/copy.js.map +1 -0
- package/dist/extra/ops/fai_drill.d.ts +51 -0
- package/dist/extra/ops/fai_drill.d.ts.map +1 -0
- package/dist/extra/ops/fai_drill.js +233 -0
- package/dist/extra/ops/fai_drill.js.map +1 -0
- package/dist/extra/ops/fai_extrude.d.ts +36 -0
- package/dist/extra/ops/fai_extrude.d.ts.map +1 -0
- package/dist/extra/ops/fai_extrude.js +84 -0
- package/dist/extra/ops/fai_extrude.js.map +1 -0
- package/dist/extra/ops/fai_split.d.ts +46 -0
- package/dist/extra/ops/fai_split.d.ts.map +1 -0
- package/dist/extra/ops/fai_split.js +235 -0
- package/dist/extra/ops/fai_split.js.map +1 -0
- package/dist/extra/ops/load.d.ts +49 -0
- package/dist/extra/ops/load.d.ts.map +1 -0
- package/dist/extra/ops/load.js +385 -0
- package/dist/extra/ops/load.js.map +1 -0
- package/dist/extra/ops/svg-extrude.d.ts +32 -0
- package/dist/extra/ops/svg-extrude.d.ts.map +1 -0
- package/dist/extra/ops/svg-extrude.js +74 -0
- package/dist/extra/ops/svg-extrude.js.map +1 -0
- package/dist/extra/ops/text.d.ts +34 -0
- package/dist/extra/ops/text.d.ts.map +1 -0
- package/dist/extra/ops/text.js +100 -0
- package/dist/extra/ops/text.js.map +1 -0
- package/dist/geometry2d/bridge/lift-on-plane.d.ts +8 -5
- package/dist/geometry2d/bridge/lift-on-plane.d.ts.map +1 -1
- package/dist/geometry2d/bridge/lift-on-plane.js +8 -5
- package/dist/geometry2d/bridge/lift-on-plane.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lang/symbol-table.d.ts +3 -3
- package/dist/lang/symbol-table.generated.d.ts +10 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +10 -0
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/lang/symbol-table.js +3 -3
- package/dist/lang/symbol-table.js.map +1 -1
- package/dist/math3d/index.d.ts +1 -1
- package/dist/math3d/index.js +1 -1
- package/dist/math3d/index.js.map +1 -1
- package/dist/mesh/engrave.d.ts +2 -3
- package/dist/mesh/engrave.d.ts.map +1 -1
- package/dist/mesh/engrave.js +4 -11
- package/dist/mesh/engrave.js.map +1 -1
- package/dist/mesh/index.d.ts +0 -2
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +0 -2
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/primitives.d.ts +1 -1
- package/dist/mesh/primitives.js +1 -1
- package/dist/mesh/primitives.js.map +1 -1
- package/dist/node-host/cli.d.ts +11 -4
- package/dist/node-host/cli.d.ts.map +1 -1
- package/dist/node-host/cli.js +53 -28
- package/dist/node-host/cli.js.map +1 -1
- package/dist/node-host/execute-script.d.ts.map +1 -1
- package/dist/node-host/execute-script.js +3 -4
- package/dist/node-host/execute-script.js.map +1 -1
- package/dist/node-host/lib-package-json.d.ts +36 -0
- package/dist/node-host/lib-package-json.d.ts.map +1 -0
- package/dist/node-host/lib-package-json.js +73 -0
- package/dist/node-host/lib-package-json.js.map +1 -0
- package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
- package/dist/occt-kernel/occt-primitives.js +41 -0
- package/dist/occt-kernel/occt-primitives.js.map +1 -1
- package/dist/occt-kernel/occtKernel.d.ts +1 -1
- package/dist/occt-kernel/occtKernel.js +1 -1
- package/dist/occt-kernel/occtKernel.js.map +1 -1
- package/dist/runtime-state.d.ts +28 -1
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +14 -1
- package/dist/runtime-state.js.map +1 -1
- package/dist/sdk.d.ts +2 -2
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +11 -2
- package/dist/sdk.js.map +1 -1
- package/dist/sketch/bspline.d.ts +58 -0
- package/dist/sketch/bspline.d.ts.map +1 -0
- package/dist/sketch/bspline.js +104 -0
- package/dist/sketch/bspline.js.map +1 -0
- package/dist/sketch/canonical.d.ts +239 -0
- package/dist/sketch/canonical.d.ts.map +1 -0
- package/dist/sketch/canonical.js +17 -0
- package/dist/sketch/canonical.js.map +1 -0
- package/dist/sketch/contour.d.ts +43 -0
- package/dist/sketch/contour.d.ts.map +1 -0
- package/dist/sketch/contour.js +202 -0
- package/dist/sketch/contour.js.map +1 -0
- package/dist/sketch/dim-spec.d.ts +32 -0
- package/dist/sketch/dim-spec.d.ts.map +1 -0
- package/dist/sketch/dim-spec.js +112 -0
- package/dist/sketch/dim-spec.js.map +1 -0
- package/dist/sketch/faces.d.ts +45 -0
- package/dist/sketch/faces.d.ts.map +1 -0
- package/dist/sketch/faces.js +108 -0
- package/dist/sketch/faces.js.map +1 -0
- package/dist/sketch/fcstd-types.d.ts +194 -0
- package/dist/sketch/fcstd-types.d.ts.map +1 -0
- package/dist/sketch/fcstd-types.js +67 -0
- package/dist/sketch/fcstd-types.js.map +1 -0
- package/dist/sketch/index.d.ts +46 -0
- package/dist/sketch/index.d.ts.map +1 -0
- package/dist/sketch/index.js +39 -0
- package/dist/sketch/index.js.map +1 -0
- package/dist/sketch/node.d.ts +14 -0
- package/dist/sketch/node.d.ts.map +1 -0
- package/dist/sketch/node.js +43 -0
- package/dist/sketch/node.js.map +1 -0
- package/dist/sketch/op.d.ts +111 -0
- package/dist/sketch/op.d.ts.map +1 -0
- package/dist/sketch/op.js +185 -0
- package/dist/sketch/op.js.map +1 -0
- package/dist/sketch/planegcs-backend.d.ts +69 -0
- package/dist/sketch/planegcs-backend.d.ts.map +1 -0
- package/dist/sketch/planegcs-backend.js +812 -0
- package/dist/sketch/planegcs-backend.js.map +1 -0
- package/dist/sketch/project.d.ts +176 -0
- package/dist/sketch/project.d.ts.map +1 -0
- package/dist/sketch/project.js +656 -0
- package/dist/sketch/project.js.map +1 -0
- package/dist/sketch/shapes.d.ts +370 -0
- package/dist/sketch/shapes.d.ts.map +1 -0
- package/dist/sketch/shapes.js +959 -0
- package/dist/sketch/shapes.js.map +1 -0
- package/dist/sketch/solve.d.ts +21 -0
- package/dist/sketch/solve.d.ts.map +1 -0
- package/dist/sketch/solve.js +144 -0
- package/dist/sketch/solve.js.map +1 -0
- package/dist/sketch/solver-loader.d.ts +47 -0
- package/dist/sketch/solver-loader.d.ts.map +1 -0
- package/dist/sketch/solver-loader.js +77 -0
- package/dist/sketch/solver-loader.js.map +1 -0
- package/dist/sketch/solver.d.ts +63 -0
- package/dist/sketch/solver.d.ts.map +1 -0
- package/dist/sketch/solver.js +28 -0
- package/dist/sketch/solver.js.map +1 -0
- package/dist/sketch/verify.d.ts +53 -0
- package/dist/sketch/verify.d.ts.map +1 -0
- package/dist/sketch/verify.js +71 -0
- package/dist/sketch/verify.js.map +1 -0
- package/dist/weapp.d.ts +1 -1
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +1 -1
- package/dist/weapp.js.map +1 -1
- package/package.json +43 -11
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M3.2 — SketchSolver interface (D5) with the planegcs WASM backend.
|
|
3
|
+
*
|
|
4
|
+
* faijs depends only on this interface; the WASM implementation is swappable
|
|
5
|
+
* (前文 B R2/R3). Input: parsed sketch geometry + constraints (M3.1 types).
|
|
6
|
+
* Output: solved geometry or a structured failure — the caller (M3.5) decides
|
|
7
|
+
* between solution and initial-value fallback (D2).
|
|
8
|
+
*/
|
|
9
|
+
import type { Result } from '../api/result.js';
|
|
10
|
+
import type { FcstdSketchGeom, FcstdSketchCon } from './fcstd-types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Result of one solver run: the solved geometry plus convergence status and
|
|
13
|
+
* diagnostics for the caller's L0/L1/L2 decision (D2).
|
|
14
|
+
*/
|
|
15
|
+
export interface FcstdSolveOutcome {
|
|
16
|
+
/** geometry after solve, same order/index as input */
|
|
17
|
+
geoms: FcstdSketchGeom[];
|
|
18
|
+
/** true when the solver reports Success with no conflicts */
|
|
19
|
+
converged: boolean;
|
|
20
|
+
/** diagnostics when not converged */
|
|
21
|
+
reason?: 'conflicting' | 'redundant' | 'failed' | 'unsupported-constraint';
|
|
22
|
+
/** constraint indices the solver flagged */
|
|
23
|
+
problemConstraints: number[];
|
|
24
|
+
/** constraint indices dropped because their GCS shape could not be pushed */
|
|
25
|
+
droppedConstraints: number[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* One pre-projected external geometry segment passed to the solver as fixed
|
|
29
|
+
* (immutable) geometry.
|
|
30
|
+
*/
|
|
31
|
+
export interface ExternalFixedSeg {
|
|
32
|
+
/** negative geoId in link order: -3, -4, ... (GeoEnum.RefExt downward) */
|
|
33
|
+
geoId: number;
|
|
34
|
+
/** the projected sketch-local 2D polyline (immutable to the solver) */
|
|
35
|
+
polyline: [number, number][];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Solver abstraction (D5): faijs depends only on this interface; the WASM
|
|
39
|
+
* implementation is swappable.
|
|
40
|
+
*/
|
|
41
|
+
export interface SketchSolver {
|
|
42
|
+
/**
|
|
43
|
+
* Solve constraints against the given geometry. The input geometry's stored
|
|
44
|
+
* coordinates are used as the initial guess (D2 — they are FreeCAD's last
|
|
45
|
+
* solution and the ideal starting point).
|
|
46
|
+
*
|
|
47
|
+
* `external` carries pre-projected fixed geometry (M6.3): immutable 2D
|
|
48
|
+
* polylines that constraints may reference by negative geoId. When a
|
|
49
|
+
* constraint references an external geoId not present here, the solver
|
|
50
|
+
* drops that constraint (recorded in droppedConstraints).
|
|
51
|
+
*/
|
|
52
|
+
solve(geoms: FcstdSketchGeom[], constraints: FcstdSketchCon[], external?: ExternalFixedSeg[]): Promise<Result<FcstdSolveOutcome, never>>;
|
|
53
|
+
}
|
|
54
|
+
/** Constraint types the planegcs backend can express (P0 set, plan §7 M3.4). */
|
|
55
|
+
export declare const SUPPORTED_CONSTRAINT_TYPES: Set<number>;
|
|
56
|
+
/**
|
|
57
|
+
* Check whether every constraint in a sketch is expressible by the backend.
|
|
58
|
+
*
|
|
59
|
+
* @param constraints - the parsed sketch constraints.
|
|
60
|
+
* @returns true when every constraint's type is in SUPPORTED_CONSTRAINT_TYPES.
|
|
61
|
+
*/
|
|
62
|
+
export declare function allConstraintsSupported(constraints: FcstdSketchCon[]): boolean;
|
|
63
|
+
//# sourceMappingURL=solver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/sketch/solver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,MAAM,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,wBAAwB,CAAC;IAC3E,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,KAAK,CACH,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,cAAc,EAAE,EAC7B,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;CAC9C;AAED,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,aAgBrC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAE9E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Constraint types the planegcs backend can express (P0 set, plan §7 M3.4). */
|
|
2
|
+
export const SUPPORTED_CONSTRAINT_TYPES = new Set([
|
|
3
|
+
1, // Coincident
|
|
4
|
+
2, // Horizontal
|
|
5
|
+
3, // Vertical
|
|
6
|
+
4, // Parallel
|
|
7
|
+
5, // Tangent
|
|
8
|
+
6, // Distance
|
|
9
|
+
7, // DistanceX
|
|
10
|
+
8, // DistanceY
|
|
11
|
+
9, // Angle
|
|
12
|
+
10, // Perpendicular
|
|
13
|
+
11, // Radius
|
|
14
|
+
12, // Equal
|
|
15
|
+
13, // PointOnObject
|
|
16
|
+
14, // Symmetric
|
|
17
|
+
18, // Diameter
|
|
18
|
+
]);
|
|
19
|
+
/**
|
|
20
|
+
* Check whether every constraint in a sketch is expressible by the backend.
|
|
21
|
+
*
|
|
22
|
+
* @param constraints - the parsed sketch constraints.
|
|
23
|
+
* @returns true when every constraint's type is in SUPPORTED_CONSTRAINT_TYPES.
|
|
24
|
+
*/
|
|
25
|
+
export function allConstraintsSupported(constraints) {
|
|
26
|
+
return constraints.every((c) => SUPPORTED_CONSTRAINT_TYPES.has(c.type));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=solver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/sketch/solver.ts"],"names":[],"mappings":"AA6DA,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAS;IACxD,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,QAAQ;IACX,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,WAAW;CAChB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAA6B;IACnE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,CAAC","sourcesContent":["/**\n * M3.2 — SketchSolver interface (D5) with the planegcs WASM backend.\n *\n * faijs depends only on this interface; the WASM implementation is swappable\n * (前文 B R2/R3). Input: parsed sketch geometry + constraints (M3.1 types).\n * Output: solved geometry or a structured failure — the caller (M3.5) decides\n * between solution and initial-value fallback (D2).\n */\nimport type { Result } from '../api/result';\nimport type { FcstdSketchGeom, FcstdSketchCon } from './fcstd-types.js';\n\n/**\n * Result of one solver run: the solved geometry plus convergence status and\n * diagnostics for the caller's L0/L1/L2 decision (D2).\n */\nexport interface FcstdSolveOutcome {\n /** geometry after solve, same order/index as input */\n geoms: FcstdSketchGeom[];\n /** true when the solver reports Success with no conflicts */\n converged: boolean;\n /** diagnostics when not converged */\n reason?: 'conflicting' | 'redundant' | 'failed' | 'unsupported-constraint';\n /** constraint indices the solver flagged */\n problemConstraints: number[];\n /** constraint indices dropped because their GCS shape could not be pushed */\n droppedConstraints: number[];\n}\n\n/**\n * One pre-projected external geometry segment passed to the solver as fixed\n * (immutable) geometry.\n */\nexport interface ExternalFixedSeg {\n /** negative geoId in link order: -3, -4, ... (GeoEnum.RefExt downward) */\n geoId: number;\n /** the projected sketch-local 2D polyline (immutable to the solver) */\n polyline: [number, number][];\n}\n\n/**\n * Solver abstraction (D5): faijs depends only on this interface; the WASM\n * implementation is swappable.\n */\nexport interface SketchSolver {\n /**\n * Solve constraints against the given geometry. The input geometry's stored\n * coordinates are used as the initial guess (D2 — they are FreeCAD's last\n * solution and the ideal starting point).\n *\n * `external` carries pre-projected fixed geometry (M6.3): immutable 2D\n * polylines that constraints may reference by negative geoId. When a\n * constraint references an external geoId not present here, the solver\n * drops that constraint (recorded in droppedConstraints).\n */\n solve(\n geoms: FcstdSketchGeom[],\n constraints: FcstdSketchCon[],\n external?: ExternalFixedSeg[],\n ): Promise<Result<FcstdSolveOutcome, never>>;\n}\n\n/** Constraint types the planegcs backend can express (P0 set, plan §7 M3.4). */\nexport const SUPPORTED_CONSTRAINT_TYPES = new Set<number>([\n 1, // Coincident\n 2, // Horizontal\n 3, // Vertical\n 4, // Parallel\n 5, // Tangent\n 6, // Distance\n 7, // DistanceX\n 8, // DistanceY\n 9, // Angle\n 10, // Perpendicular\n 11, // Radius\n 12, // Equal\n 13, // PointOnObject\n 14, // Symmetric\n 18, // Diameter\n]);\n\n/**\n * Check whether every constraint in a sketch is expressible by the backend.\n *\n * @param constraints - the parsed sketch constraints.\n * @returns true when every constraint's type is in SUPPORTED_CONSTRAINT_TYPES.\n */\nexport function allConstraintsSupported(constraints: FcstdSketchCon[]): boolean {\n return constraints.every((c) => SUPPORTED_CONSTRAINT_TYPES.has(c.type));\n}\n"]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M3.5 — solved-vs-stored comparison (D2/V2).
|
|
3
|
+
*
|
|
4
|
+
* The on-disk coordinates ARE FreeCAD's last solution, so a correct pipeline
|
|
5
|
+
* re-derives (nearly) the same geometry. maxPointDistance is the V2 metric;
|
|
6
|
+
* its tolerance T1 is calibrated from the sample-set distribution, not
|
|
7
|
+
* pre-set (plan §8).
|
|
8
|
+
*/
|
|
9
|
+
import type { FcstdSketchGeom } from './fcstd-types.js';
|
|
10
|
+
import type { FcstdSolveOutcome } from './solver.js';
|
|
11
|
+
/**
|
|
12
|
+
* P4: exported for testability — anchor points used by maxPointDistance.
|
|
13
|
+
*
|
|
14
|
+
* @param g - the sketch geometry element (point/line/circle/arc/ellipse/bspline).
|
|
15
|
+
* @returns the element's comparison anchor points (center/endpoints as applicable).
|
|
16
|
+
*/
|
|
17
|
+
export declare function anchorPoints(g: FcstdSketchGeom): {
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
}[];
|
|
21
|
+
/**
|
|
22
|
+
* Maximum anchor-point distance between two geometry lists (same indexing).
|
|
23
|
+
*
|
|
24
|
+
* @param a - first geometry list (e.g. the solver result).
|
|
25
|
+
* @param b - second geometry list (e.g. the stored geometry).
|
|
26
|
+
* @returns the maximum Euclidean distance between corresponding anchor points
|
|
27
|
+
* (0 when the lists have no comparable points).
|
|
28
|
+
*/
|
|
29
|
+
export declare function maxPointDistance(a: FcstdSketchGeom[], b: FcstdSketchGeom[]): number;
|
|
30
|
+
/**
|
|
31
|
+
* Three-level downgrade verdict (D3) for one sketch.
|
|
32
|
+
*/
|
|
33
|
+
export interface SketchVerdict {
|
|
34
|
+
/** solved quality level: L0 = solved & matches, L1 = flagged, L2 = baked */
|
|
35
|
+
level: 'L0' | 'L1' | 'L2';
|
|
36
|
+
/** human-readable reason for a non-L0 verdict */
|
|
37
|
+
reason?: string;
|
|
38
|
+
/** max anchor distance between re-solved and stored geometry */
|
|
39
|
+
maxDelta?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Three-level downgrade (D3). L0 = solved & matches stored (delta <= T1).
|
|
43
|
+
* L1 = solver result kept but flagged, stored coords used instead.
|
|
44
|
+
* L2 = baked (unsupported geometry/constraints, external geometry).
|
|
45
|
+
*
|
|
46
|
+
* @param outcome - the solver result, or undefined when none was produced.
|
|
47
|
+
* @param stored - the on-disk (stored) geometry to compare against.
|
|
48
|
+
* @param t1 - the calibrated distance tolerance for the L0/L1 split.
|
|
49
|
+
* @param preBlocked - pre-solve downgrade reason; when set the sketch is L2.
|
|
50
|
+
* @returns the classification verdict for the sketch.
|
|
51
|
+
*/
|
|
52
|
+
export declare function classifySketch(outcome: FcstdSolveOutcome | undefined, stored: FcstdSketchGeom[], t1: number, preBlocked?: string): SketchVerdict;
|
|
53
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/sketch/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAgB3E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,GAAG,MAAM,CAanF;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,MAAM,EAAE,eAAe,EAAE,EACzB,EAAE,EAAE,MAAM,EACV,UAAU,CAAC,EAAE,MAAM,GAClB,aAAa,CASf"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P4: exported for testability — anchor points used by maxPointDistance.
|
|
3
|
+
*
|
|
4
|
+
* @param g - the sketch geometry element (point/line/circle/arc/ellipse/bspline).
|
|
5
|
+
* @returns the element's comparison anchor points (center/endpoints as applicable).
|
|
6
|
+
*/
|
|
7
|
+
export function anchorPoints(g) {
|
|
8
|
+
switch (g.kind) {
|
|
9
|
+
case 'point':
|
|
10
|
+
return [{ x: g.x, y: g.y }];
|
|
11
|
+
case 'line':
|
|
12
|
+
return [{ x: g.x1, y: g.y1 }, { x: g.x2, y: g.y2 }];
|
|
13
|
+
case 'circle':
|
|
14
|
+
return [{ x: g.cx, y: g.cy }];
|
|
15
|
+
case 'arc':
|
|
16
|
+
return [{ x: g.cx, y: g.cy }, { x: g.x1, y: g.y1 }, { x: g.x2, y: g.y2 }];
|
|
17
|
+
case 'ellipse':
|
|
18
|
+
return [{ x: g.cx, y: g.cy }];
|
|
19
|
+
case 'bspline':
|
|
20
|
+
// P4: spline anchors are its exact endpoints (poles move with them)
|
|
21
|
+
return [{ x: g.x1, y: g.y1 }, { x: g.x2, y: g.y2 }];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Maximum anchor-point distance between two geometry lists (same indexing).
|
|
26
|
+
*
|
|
27
|
+
* @param a - first geometry list (e.g. the solver result).
|
|
28
|
+
* @param b - second geometry list (e.g. the stored geometry).
|
|
29
|
+
* @returns the maximum Euclidean distance between corresponding anchor points
|
|
30
|
+
* (0 when the lists have no comparable points).
|
|
31
|
+
*/
|
|
32
|
+
export function maxPointDistance(a, b) {
|
|
33
|
+
let max = 0;
|
|
34
|
+
const n = Math.min(a.length, b.length);
|
|
35
|
+
for (let i = 0; i < n; i++) {
|
|
36
|
+
const pa = anchorPoints(a[i]);
|
|
37
|
+
const pb = anchorPoints(b[i]);
|
|
38
|
+
const m = Math.min(pa.length, pb.length);
|
|
39
|
+
for (let k = 0; k < m; k++) {
|
|
40
|
+
const d = Math.hypot(pa[k].x - pb[k].x, pa[k].y - pb[k].y);
|
|
41
|
+
if (Number.isFinite(d) && d > max)
|
|
42
|
+
max = d;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return max;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Three-level downgrade (D3). L0 = solved & matches stored (delta <= T1).
|
|
49
|
+
* L1 = solver result kept but flagged, stored coords used instead.
|
|
50
|
+
* L2 = baked (unsupported geometry/constraints, external geometry).
|
|
51
|
+
*
|
|
52
|
+
* @param outcome - the solver result, or undefined when none was produced.
|
|
53
|
+
* @param stored - the on-disk (stored) geometry to compare against.
|
|
54
|
+
* @param t1 - the calibrated distance tolerance for the L0/L1 split.
|
|
55
|
+
* @param preBlocked - pre-solve downgrade reason; when set the sketch is L2.
|
|
56
|
+
* @returns the classification verdict for the sketch.
|
|
57
|
+
*/
|
|
58
|
+
export function classifySketch(outcome, stored, t1, preBlocked) {
|
|
59
|
+
if (preBlocked)
|
|
60
|
+
return { level: 'L2', reason: preBlocked };
|
|
61
|
+
if (!outcome)
|
|
62
|
+
return { level: 'L2', reason: 'no-solver-result' };
|
|
63
|
+
if (!outcome.converged) {
|
|
64
|
+
return { level: 'L1', reason: outcome.reason ?? 'solve-failed' };
|
|
65
|
+
}
|
|
66
|
+
const maxDelta = maxPointDistance(outcome.geoms, stored);
|
|
67
|
+
if (maxDelta <= t1)
|
|
68
|
+
return { level: 'L0', maxDelta };
|
|
69
|
+
return { level: 'L1', reason: 'delta-exceeds-t1', maxDelta };
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/sketch/verify.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * M3.5 — solved-vs-stored comparison (D2/V2).\n *\n * The on-disk coordinates ARE FreeCAD's last solution, so a correct pipeline\n * re-derives (nearly) the same geometry. maxPointDistance is the V2 metric;\n * its tolerance T1 is calibrated from the sample-set distribution, not\n * pre-set (plan §8).\n */\nimport type { FcstdSketchGeom } from './fcstd-types.js';\nimport type { FcstdSolveOutcome } from './solver.js';\n\n/**\n * P4: exported for testability — anchor points used by maxPointDistance.\n *\n * @param g - the sketch geometry element (point/line/circle/arc/ellipse/bspline).\n * @returns the element's comparison anchor points (center/endpoints as applicable).\n */\nexport function anchorPoints(g: FcstdSketchGeom): { x: number; y: number }[] {\n switch (g.kind) {\n case 'point':\n return [{ x: g.x, y: g.y }];\n case 'line':\n return [{ x: g.x1, y: g.y1 }, { x: g.x2, y: g.y2 }];\n case 'circle':\n return [{ x: g.cx, y: g.cy }];\n case 'arc':\n return [{ x: g.cx, y: g.cy }, { x: g.x1, y: g.y1 }, { x: g.x2, y: g.y2 }];\n case 'ellipse':\n return [{ x: g.cx, y: g.cy }];\n case 'bspline':\n // P4: spline anchors are its exact endpoints (poles move with them)\n return [{ x: g.x1, y: g.y1 }, { x: g.x2, y: g.y2 }];\n }\n}\n\n/**\n * Maximum anchor-point distance between two geometry lists (same indexing).\n *\n * @param a - first geometry list (e.g. the solver result).\n * @param b - second geometry list (e.g. the stored geometry).\n * @returns the maximum Euclidean distance between corresponding anchor points\n * (0 when the lists have no comparable points).\n */\nexport function maxPointDistance(a: FcstdSketchGeom[], b: FcstdSketchGeom[]): number {\n let max = 0;\n const n = Math.min(a.length, b.length);\n for (let i = 0; i < n; i++) {\n const pa = anchorPoints(a[i]!);\n const pb = anchorPoints(b[i]!);\n const m = Math.min(pa.length, pb.length);\n for (let k = 0; k < m; k++) {\n const d = Math.hypot(pa[k]!.x - pb[k]!.x, pa[k]!.y - pb[k]!.y);\n if (Number.isFinite(d) && d > max) max = d;\n }\n }\n return max;\n}\n\n/**\n * Three-level downgrade verdict (D3) for one sketch.\n */\nexport interface SketchVerdict {\n /** solved quality level: L0 = solved & matches, L1 = flagged, L2 = baked */\n level: 'L0' | 'L1' | 'L2';\n /** human-readable reason for a non-L0 verdict */\n reason?: string;\n /** max anchor distance between re-solved and stored geometry */\n maxDelta?: number;\n}\n\n/**\n * Three-level downgrade (D3). L0 = solved & matches stored (delta <= T1).\n * L1 = solver result kept but flagged, stored coords used instead.\n * L2 = baked (unsupported geometry/constraints, external geometry).\n *\n * @param outcome - the solver result, or undefined when none was produced.\n * @param stored - the on-disk (stored) geometry to compare against.\n * @param t1 - the calibrated distance tolerance for the L0/L1 split.\n * @param preBlocked - pre-solve downgrade reason; when set the sketch is L2.\n * @returns the classification verdict for the sketch.\n */\nexport function classifySketch(\n outcome: FcstdSolveOutcome | undefined,\n stored: FcstdSketchGeom[],\n t1: number,\n preBlocked?: string,\n): SketchVerdict {\n if (preBlocked) return { level: 'L2', reason: preBlocked };\n if (!outcome) return { level: 'L2', reason: 'no-solver-result' };\n if (!outcome.converged) {\n return { level: 'L1', reason: outcome.reason ?? 'solve-failed' };\n }\n const maxDelta = maxPointDistance(outcome.geoms, stored);\n if (maxDelta <= t1) return { level: 'L0', maxDelta };\n return { level: 'L1', reason: 'delta-exceeds-t1', maxDelta };\n}\n"]}
|
package/dist/weapp.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export * from './env-agnostic.js';
|
|
|
15
15
|
export { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm.js';
|
|
16
16
|
export { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit.js';
|
|
17
17
|
export { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit.js';
|
|
18
|
-
export { registerBrepEngine,
|
|
18
|
+
export { registerBrepEngine, getBrepEngine, getActiveBrepEngine, hasBrepEngine, getActiveBrepEngineId, freezeEngineRegistries, registerMeshEngine, getMeshEngine, getActiveMeshEngine, getActiveMeshEngineId, isMeshEngineRegistered, getMeshSolidBackend } from './brep/engine/registry.js';
|
|
19
19
|
export type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry.js';
|
|
20
20
|
export type { BrepEngineApi } from './brep/engine/primitives.js';
|
|
21
21
|
export { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid.js';
|
package/dist/weapp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weapp.d.ts","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,cAAc,gBAAgB,CAAA;AAG9B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAG1G,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAG9H,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAG5H,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"weapp.d.ts","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,cAAc,gBAAgB,CAAA;AAG9B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAG1G,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAG9H,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAG5H,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACzR,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtI,YAAY,EACV,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,GACjG,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAIzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/weapp.js
CHANGED
|
@@ -22,7 +22,7 @@ export { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefault
|
|
|
22
22
|
// `cad.load` 的 STL/3MF 路径就产出「网格实体 + 近似拓扑」。
|
|
23
23
|
export { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit.js';
|
|
24
24
|
// BREP 引擎注册表(环境无关;ensureBrepChain 见已注册引擎即跳过 OCCT)
|
|
25
|
-
export { registerBrepEngine,
|
|
25
|
+
export { registerBrepEngine, getBrepEngine, getActiveBrepEngine, hasBrepEngine, getActiveBrepEngineId, freezeEngineRegistries, registerMeshEngine, getMeshEngine, getActiveMeshEngine, getActiveMeshEngineId, isMeshEngineRegistered, getMeshSolidBackend } from './brep/engine/registry.js';
|
|
26
26
|
// 网格实体(近似拓扑的载体):端口 + 注册表 + 驱动。
|
|
27
27
|
export { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid.js';
|
|
28
28
|
export { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch.js';
|
package/dist/weapp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weapp.js","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,sEAAsE;AACtE,wDAAwD;AACxD,cAAc,gBAAgB,CAAA;AAE9B,8DAA8D;AAC9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE1G,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAC9H,kDAAkD;AAClD,2CAA2C;AAC3C,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE5H,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"weapp.js","sourceRoot":"","sources":["../src/weapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,sEAAsE;AACtE,wDAAwD;AACxD,cAAc,gBAAgB,CAAA;AAE9B,8DAA8D;AAC9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE1G,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAC9H,kDAAkD;AAClD,2CAA2C;AAC3C,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE5H,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAGzR,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAItI,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,2DAA2D;AAC3D,+CAA+C;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA","sourcesContent":["/**\n * @faicad/faijs-core/weapp — weapp 专用宿主入口\n *\n * 小程序(无 OCCT 环境)宿主的最小导出面:brepkit wasm 装载注入点 + brepkit BREP\n * 引擎注册 + 环境无关执行栈。全部为 re-export,零新实现。\n *\n * 为什么独立成入口:browser umbrella 曾 re-export brepkit 符号,导致 web 端模块图\n * 包含 brepkitWasm.js(其 node 分支 import('brepkit-wasm') 被 vite 静态解析而报错)。\n * 宿主边界必须由静态入口声明,而不是靠构建脚本事后 stub 剔除。\n *\n * 导出面受 entry-boundary.test.ts 白名单守卫约束——新增导出必须同步更新白名单。\n * web/desktop 宿主禁止 import 本入口(brepkit 是 weapp 专属 BREP 引擎)。\n */\n\n// 共享面(env-agnostic:identity + runtime-state + lang/*)——三处 umbrella 统一\n// re-export(§9.1),weapp worker 由此获得 analyzeCode 等语言层符号。\nexport * from './env-agnostic'\n\n// brepkit wasm 装载(weapp 专属注入点;宿主装配期调用一次 setBrepkitWasmInitFn)\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\n\n// brepkit BREP 引擎注册(weapp 只注册 brepkit,不注册 occt)\nexport { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit'\n// brepkit 网格实体后端(网格语义路径;与 BREP 槽独立注册)。weapp 侧装了它,\n// `cad.load` 的 STL/3MF 路径就产出「网格实体 + 近似拓扑」。\nexport { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit'\n\n// BREP 引擎注册表(环境无关;ensureBrepChain 见已注册引擎即跳过 OCCT)\nexport { registerBrepEngine, getBrepEngine, getActiveBrepEngine, hasBrepEngine, getActiveBrepEngineId, freezeEngineRegistries, registerMeshEngine, getMeshEngine, getActiveMeshEngine, getActiveMeshEngineId, isMeshEngineRegistered, getMeshSolidBackend } from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry'\nexport type { BrepEngineApi } from './brep/engine/primitives'\n// 网格实体(近似拓扑的载体):端口 + 注册表 + 驱动。\nexport { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid'\nexport type {\n MeshSolidBackend, MeshSolidResult, MeshSolidKernelOps, MeshSolidInput, MeshSolidNormalizeOptions,\n} from './brep/mesh-solid'\nexport { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch'\n\n// cad-runtime(环境无关执行栈):createRuntime 为 with-cad 变体(§9.2),与\n// browser/node 入口同口径——自带 cad 命名空间注册,宿主无需手工补注册。\nexport { createRuntime } from './cad-runtime/runtime'\nexport type { CadRuntime } from './cad-runtime/runtime'\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faicad/faijs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.2",
|
|
4
|
+
"faijs": {
|
|
5
|
+
"lib": {
|
|
6
|
+
"role": "host"
|
|
7
|
+
}
|
|
8
|
+
},
|
|
4
9
|
"type": "module",
|
|
5
10
|
"license": "Apache-2.0",
|
|
6
11
|
"repository": {
|
|
@@ -22,6 +27,10 @@
|
|
|
22
27
|
"types": "./dist/api/cadquery-selectors/index.d.ts",
|
|
23
28
|
"default": "./dist/api/cadquery-selectors/index.js"
|
|
24
29
|
},
|
|
30
|
+
"./api/view": {
|
|
31
|
+
"types": "./dist/api/view/index.d.ts",
|
|
32
|
+
"default": "./dist/api/view/index.js"
|
|
33
|
+
},
|
|
25
34
|
"./api/*": {
|
|
26
35
|
"types": "./dist/api/*.d.ts",
|
|
27
36
|
"default": "./dist/api/*.js"
|
|
@@ -86,14 +95,6 @@
|
|
|
86
95
|
"types": "./dist/mesh/boolean.d.ts",
|
|
87
96
|
"default": "./dist/mesh/boolean.js"
|
|
88
97
|
},
|
|
89
|
-
"./mesh/decoration-provider": {
|
|
90
|
-
"types": "./dist/mesh/decoration-provider.d.ts",
|
|
91
|
-
"default": "./dist/mesh/decoration-provider.js"
|
|
92
|
-
},
|
|
93
|
-
"./mesh/engrave": {
|
|
94
|
-
"types": "./dist/mesh/engrave.d.ts",
|
|
95
|
-
"default": "./dist/mesh/engrave.js"
|
|
96
|
-
},
|
|
97
98
|
"./mesh/stl-loader": {
|
|
98
99
|
"types": "./dist/mesh/stl-loader.d.ts",
|
|
99
100
|
"default": "./dist/mesh/stl-loader.js"
|
|
@@ -250,6 +251,10 @@
|
|
|
250
251
|
"types": "./dist/brepkit-kernel/brepkitWasm.d.ts",
|
|
251
252
|
"default": "./dist/brepkit-kernel/brepkitWasm.js"
|
|
252
253
|
},
|
|
254
|
+
"./brepkit-kernel/brepkitKernel": {
|
|
255
|
+
"types": "./dist/brepkit-kernel/brepkitKernel.d.ts",
|
|
256
|
+
"default": "./dist/brepkit-kernel/brepkitKernel.js"
|
|
257
|
+
},
|
|
253
258
|
"./primitives/brep-primitives": {
|
|
254
259
|
"types": "./dist/primitives/brep-primitives.d.ts",
|
|
255
260
|
"default": "./dist/primitives/brep-primitives.js"
|
|
@@ -326,6 +331,10 @@
|
|
|
326
331
|
"types": "./dist/occt-kernel/occtKernel.d.ts",
|
|
327
332
|
"default": "./dist/occt-kernel/occtKernel.js"
|
|
328
333
|
},
|
|
334
|
+
"./occt-kernel/occt-primitives": {
|
|
335
|
+
"types": "./dist/occt-kernel/occt-primitives.d.ts",
|
|
336
|
+
"default": "./dist/occt-kernel/occt-primitives.js"
|
|
337
|
+
},
|
|
329
338
|
"./occt-kernel/topologyExt": {
|
|
330
339
|
"types": "./dist/occt-kernel/topologyExt.d.ts",
|
|
331
340
|
"default": "./dist/occt-kernel/topologyExt.js"
|
|
@@ -409,6 +418,26 @@
|
|
|
409
418
|
"./units": {
|
|
410
419
|
"types": "./dist/units.d.ts",
|
|
411
420
|
"default": "./dist/units.js"
|
|
421
|
+
},
|
|
422
|
+
"./sketch": {
|
|
423
|
+
"types": "./dist/sketch/index.d.ts",
|
|
424
|
+
"default": "./dist/sketch/index.js"
|
|
425
|
+
},
|
|
426
|
+
"./sketch/node": {
|
|
427
|
+
"types": "./dist/sketch/node.d.ts",
|
|
428
|
+
"default": "./dist/sketch/node.js"
|
|
429
|
+
},
|
|
430
|
+
"./extra": {
|
|
431
|
+
"types": "./dist/extra/index.d.ts",
|
|
432
|
+
"default": "./dist/extra/index.js"
|
|
433
|
+
},
|
|
434
|
+
"./extra/browser": {
|
|
435
|
+
"types": "./dist/extra/browser.d.ts",
|
|
436
|
+
"default": "./dist/extra/browser.js"
|
|
437
|
+
},
|
|
438
|
+
"./extra/editor-ops": {
|
|
439
|
+
"types": "./dist/extra/editor-ops.d.ts",
|
|
440
|
+
"default": "./dist/extra/editor-ops.js"
|
|
412
441
|
}
|
|
413
442
|
},
|
|
414
443
|
"files": [
|
|
@@ -420,14 +449,16 @@
|
|
|
420
449
|
"@xmldom/xmldom": "^0.9.8",
|
|
421
450
|
"acorn": "^8.18.0",
|
|
422
451
|
"fflate": "^0.8.3",
|
|
452
|
+
"@salusoft89/planegcs": "^1.2.0",
|
|
423
453
|
"manifold-3d": "^3.5.1",
|
|
424
|
-
"opentype.js": "^1.3.4"
|
|
454
|
+
"opentype.js": "^1.3.4",
|
|
455
|
+
"brepkit-wasm": "^4.1.49"
|
|
425
456
|
},
|
|
426
457
|
"peerDependencies": {
|
|
427
458
|
"occt-wasm": "^5.6.0"
|
|
428
459
|
},
|
|
429
460
|
"devDependencies": {
|
|
430
|
-
"@faicad/brepkit2-wasm": "^2.
|
|
461
|
+
"@faicad/brepkit2-wasm": "^2.131.0",
|
|
431
462
|
"@types/three": "^0.184.1",
|
|
432
463
|
"sucrase": "^3.35.1",
|
|
433
464
|
"three-162": "npm:three@^0.162.0",
|
|
@@ -438,6 +469,7 @@
|
|
|
438
469
|
"build": "tsc -p tsconfig.build.json && node ../../scripts/fix-import-extensions.mjs dist",
|
|
439
470
|
"typecheck": "tsc --noEmit",
|
|
440
471
|
"test": "vitest run",
|
|
472
|
+
"test:install": "vitest run -c vitest.install.config.ts",
|
|
441
473
|
"lint": "eslint src",
|
|
442
474
|
"gen:capability-map": "tsx scripts/gen-capability-map.ts",
|
|
443
475
|
"gen:brepkit-surface": "tsx scripts/gen-brepkit-surface.ts",
|