@faicad/faijs 0.31.1 → 0.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +9 -3
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/boolean-op/index.d.ts.map +1 -1
- package/dist/api/boolean-op/index.js +1 -0
- package/dist/api/boolean-op/index.js.map +1 -1
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +4 -0
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/brep-operations/joinery-brep.js +10 -10
- package/dist/api/brep-operations/joinery-brep.js.map +1 -1
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +1 -0
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/curve-sketch/index.d.ts.map +1 -1
- package/dist/api/curve-sketch/index.js +3 -0
- package/dist/api/curve-sketch/index.js.map +1 -1
- package/dist/api/draft.d.ts.map +1 -1
- package/dist/api/draft.js +1 -0
- package/dist/api/draft.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +1 -0
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +18 -17
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/feature-repair.d.ts.map +1 -1
- package/dist/api/feature-repair.js +6 -0
- package/dist/api/feature-repair.js.map +1 -1
- package/dist/api/fillet-variable.d.ts.map +1 -1
- package/dist/api/fillet-variable.js +1 -0
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +1 -0
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/operations.js +16 -16
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/sketching.js +1 -1
- package/dist/api/generated/sketching.js.map +1 -1
- package/dist/api/generated/topology.js +18 -18
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/helix.d.ts.map +1 -1
- package/dist/api/helix.js +1 -0
- package/dist/api/helix.js.map +1 -1
- package/dist/api/import-brep.d.ts.map +1 -1
- package/dist/api/import-brep.js +1 -0
- package/dist/api/import-brep.js.map +1 -1
- package/dist/api/import-step.d.ts.map +1 -1
- package/dist/api/import-step.js +1 -0
- package/dist/api/import-step.js.map +1 -1
- package/dist/api/index.d.ts +5 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/loft-advanced.d.ts +66 -0
- package/dist/api/loft-advanced.d.ts.map +1 -0
- package/dist/api/loft-advanced.js +112 -0
- package/dist/api/loft-advanced.js.map +1 -0
- package/dist/api/loft.d.ts +16 -23
- package/dist/api/loft.d.ts.map +1 -1
- package/dist/api/loft.js +22 -40
- package/dist/api/loft.js.map +1 -1
- package/dist/api/measure-query/index.d.ts.map +1 -1
- package/dist/api/measure-query/index.js +2 -0
- package/dist/api/measure-query/index.js.map +1 -1
- package/dist/api/pattern.d.ts.map +1 -1
- package/dist/api/pattern.js +1 -0
- package/dist/api/pattern.js.map +1 -1
- package/dist/api/place.d.ts.map +1 -1
- package/dist/api/place.js +1 -0
- package/dist/api/place.js.map +1 -1
- package/dist/api/profile.d.ts.map +1 -1
- package/dist/api/profile.js +1 -0
- package/dist/api/profile.js.map +1 -1
- package/dist/api/punch-hole.d.ts.map +1 -1
- package/dist/api/punch-hole.js +1 -0
- package/dist/api/punch-hole.js.map +1 -1
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +6 -0
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/revolve.d.ts.map +1 -1
- package/dist/api/revolve.js +1 -0
- package/dist/api/revolve.js.map +1 -1
- package/dist/api/screw.d.ts.map +1 -1
- package/dist/api/screw.js +1 -0
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts.map +1 -1
- package/dist/api/sdf.js +1 -0
- package/dist/api/sdf.js.map +1 -1
- package/dist/api/shell.d.ts.map +1 -1
- package/dist/api/shell.js +1 -0
- package/dist/api/shell.js.map +1 -1
- package/dist/api/sketch-on-face.d.ts +34 -30
- package/dist/api/sketch-on-face.d.ts.map +1 -1
- package/dist/api/sketch-on-face.js +41 -31
- package/dist/api/sketch-on-face.js.map +1 -1
- package/dist/api/sketch-on-plane.d.ts.map +1 -1
- package/dist/api/sketch-on-plane.js +1 -0
- package/dist/api/sketch-on-plane.js.map +1 -1
- package/dist/api/sketch-on-surface.d.ts +76 -0
- package/dist/api/sketch-on-surface.d.ts.map +1 -0
- package/dist/api/sketch-on-surface.js +99 -0
- package/dist/api/sketch-on-surface.js.map +1 -0
- package/dist/api/solid-offset/index.d.ts.map +1 -1
- package/dist/api/solid-offset/index.js +1 -0
- package/dist/api/solid-offset/index.js.map +1 -1
- package/dist/api/split.d.ts.map +1 -1
- package/dist/api/split.js +1 -0
- package/dist/api/split.js.map +1 -1
- package/dist/api/surface/arg-spec.d.ts +5 -4
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +2 -2
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/surface-face/index.d.ts.map +1 -1
- package/dist/api/surface-face/index.js +5 -0
- package/dist/api/surface-face/index.js.map +1 -1
- package/dist/api/surface.d.ts.map +1 -1
- package/dist/api/surface.js +1 -0
- package/dist/api/surface.js.map +1 -1
- package/dist/api/sweep-advanced.d.ts +117 -0
- package/dist/api/sweep-advanced.d.ts.map +1 -0
- package/dist/api/sweep-advanced.js +94 -0
- package/dist/api/sweep-advanced.js.map +1 -0
- package/dist/api/sweep.d.ts +18 -88
- package/dist/api/sweep.d.ts.map +1 -1
- package/dist/api/sweep.js +27 -30
- package/dist/api/sweep.js.map +1 -1
- package/dist/api/thicken.d.ts.map +1 -1
- package/dist/api/thicken.js +1 -0
- package/dist/api/thicken.js.map +1 -1
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +2 -0
- package/dist/api/transform.js.map +1 -1
- package/dist/api/wire.d.ts.map +1 -1
- package/dist/api/wire.js +1 -0
- package/dist/api/wire.js.map +1 -1
- package/dist/boolean/cross-section.d.ts +7 -6
- package/dist/boolean/cross-section.d.ts.map +1 -1
- package/dist/boolean/cross-section.js +38 -27
- package/dist/boolean/cross-section.js.map +1 -1
- package/dist/boolean/deriveNormals.d.ts +5 -5
- package/dist/boolean/deriveNormals.d.ts.map +1 -1
- package/dist/boolean/deriveNormals.js +18 -18
- package/dist/boolean/deriveNormals.js.map +1 -1
- package/dist/boolean/extrude-helpers.d.ts +6 -6
- package/dist/boolean/extrude-helpers.d.ts.map +1 -1
- package/dist/boolean/extrude-helpers.js +6 -6
- package/dist/boolean/extrude-helpers.js.map +1 -1
- package/dist/boolean/geo-convert.d.ts +11 -8
- package/dist/boolean/geo-convert.d.ts.map +1 -1
- package/dist/boolean/geo-convert.js +17 -73
- package/dist/boolean/geo-convert.js.map +1 -1
- package/dist/boolean/index.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +5 -5
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +42 -42
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +24 -0
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +30 -0
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +138 -0
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +5 -2
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +16 -7
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +2 -0
- package/dist/define-op.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lang/codegen.d.ts +14 -3
- package/dist/lang/codegen.d.ts.map +1 -1
- package/dist/lang/codegen.js +80 -5
- package/dist/lang/codegen.js.map +1 -1
- package/dist/lang/metadata-extractor.d.ts +10 -3
- package/dist/lang/metadata-extractor.d.ts.map +1 -1
- package/dist/lang/metadata-extractor.js +160 -65
- package/dist/lang/metadata-extractor.js.map +1 -1
- package/dist/lang/symbol-table.generated.d.ts +3 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +3 -0
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/math3d/Box3.d.ts +86 -0
- package/dist/math3d/Box3.d.ts.map +1 -0
- package/dist/math3d/Box3.js +149 -0
- package/dist/math3d/Box3.js.map +1 -0
- package/dist/math3d/Euler.d.ts +64 -0
- package/dist/math3d/Euler.d.ts.map +1 -0
- package/dist/math3d/Euler.js +94 -0
- package/dist/math3d/Euler.js.map +1 -0
- package/dist/math3d/Mat4.d.ts +196 -0
- package/dist/math3d/Mat4.d.ts.map +1 -0
- package/dist/math3d/Mat4.js +518 -0
- package/dist/math3d/Mat4.js.map +1 -0
- package/dist/math3d/Plane.d.ts +67 -0
- package/dist/math3d/Plane.d.ts.map +1 -0
- package/dist/math3d/Plane.js +90 -0
- package/dist/math3d/Plane.js.map +1 -0
- package/dist/math3d/Quat.d.ts +163 -0
- package/dist/math3d/Quat.d.ts.map +1 -0
- package/dist/math3d/Quat.js +408 -0
- package/dist/math3d/Quat.js.map +1 -0
- package/dist/math3d/Vec2.d.ts +185 -0
- package/dist/math3d/Vec2.d.ts.map +1 -0
- package/dist/math3d/Vec2.js +276 -0
- package/dist/math3d/Vec2.js.map +1 -0
- package/dist/math3d/Vec3.d.ts +326 -0
- package/dist/math3d/Vec3.d.ts.map +1 -0
- package/dist/math3d/Vec3.js +521 -0
- package/dist/math3d/Vec3.js.map +1 -0
- package/dist/math3d/index.d.ts +19 -0
- package/dist/math3d/index.d.ts.map +1 -0
- package/dist/math3d/index.js +19 -0
- package/dist/math3d/index.js.map +1 -0
- package/dist/mesh/decoration-provider.d.ts +2 -2
- package/dist/mesh/decoration-provider.d.ts.map +1 -1
- package/dist/mesh/decoration-provider.js.map +1 -1
- package/dist/mesh/engrave.d.ts.map +1 -1
- package/dist/mesh/engrave.js +36 -37
- package/dist/mesh/engrave.js.map +1 -1
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +6 -7
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/knurl/KnurlGenerator.d.ts +8 -7
- package/dist/mesh/knurl/KnurlGenerator.d.ts.map +1 -1
- package/dist/mesh/knurl/KnurlGenerator.js +9 -9
- package/dist/mesh/knurl/KnurlGenerator.js.map +1 -1
- package/dist/mesh/knurl/displacement.d.ts +7 -6
- package/dist/mesh/knurl/displacement.d.ts.map +1 -1
- package/dist/mesh/knurl/displacement.js +29 -29
- package/dist/mesh/knurl/displacement.js.map +1 -1
- package/dist/mesh/knurl/subdivision.d.ts +3 -3
- package/dist/mesh/knurl/subdivision.d.ts.map +1 -1
- package/dist/mesh/knurl/subdivision.js +21 -15
- package/dist/mesh/knurl/subdivision.js.map +1 -1
- package/dist/mesh/knurl/textureLoader.d.ts +3 -3
- package/dist/mesh/knurl/textureLoader.d.ts.map +1 -1
- package/dist/mesh/knurl/textureLoader.js.map +1 -1
- package/dist/mesh/meshdata/index.d.ts +12 -0
- package/dist/mesh/meshdata/index.d.ts.map +1 -0
- package/dist/mesh/meshdata/index.js +12 -0
- package/dist/mesh/meshdata/index.js.map +1 -0
- package/dist/mesh/meshdata/ops.d.ts +62 -0
- package/dist/mesh/meshdata/ops.d.ts.map +1 -0
- package/dist/mesh/meshdata/ops.js +160 -0
- package/dist/mesh/meshdata/ops.js.map +1 -0
- package/dist/mesh/meshdata/parametric.d.ts +70 -0
- package/dist/mesh/meshdata/parametric.d.ts.map +1 -0
- package/dist/mesh/meshdata/parametric.js +213 -0
- package/dist/mesh/meshdata/parametric.js.map +1 -0
- package/dist/mesh/meshdata/weld.d.ts +21 -0
- package/dist/mesh/meshdata/weld.d.ts.map +1 -0
- package/dist/mesh/meshdata/weld.js +50 -0
- package/dist/mesh/meshdata/weld.js.map +1 -0
- package/dist/mesh/primitives.d.ts +1 -1
- package/dist/mesh/primitives.d.ts.map +1 -1
- package/dist/mesh/primitives.js +38 -39
- package/dist/mesh/primitives.js.map +1 -1
- package/dist/mesh/query.js +11 -11
- package/dist/mesh/query.js.map +1 -1
- package/dist/mesh/stl-loader.d.ts +7 -7
- package/dist/mesh/stl-loader.d.ts.map +1 -1
- package/dist/mesh/stl-loader.js +12 -24
- package/dist/mesh/stl-loader.js.map +1 -1
- package/dist/mesh/threemf-view.d.ts +11 -11
- package/dist/mesh/threemf-view.d.ts.map +1 -1
- package/dist/mesh/threemf-view.js +10 -10
- package/dist/mesh/threemf-view.js.map +1 -1
- package/dist/mesh/transform.d.ts +14 -8
- package/dist/mesh/transform.d.ts.map +1 -1
- package/dist/mesh/transform.js +18 -13
- package/dist/mesh/transform.js.map +1 -1
- package/dist/mesh/types.d.ts +2 -0
- package/dist/mesh/types.d.ts.map +1 -1
- package/dist/mesh/types.js.map +1 -1
- package/dist/occt-kernel/occt-primitives.d.ts.map +1 -1
- package/dist/occt-kernel/occt-primitives.js +20 -0
- package/dist/occt-kernel/occt-primitives.js.map +1 -1
- package/dist/primitives/brep-primitives.d.ts +8 -12
- package/dist/primitives/brep-primitives.d.ts.map +1 -1
- package/dist/primitives/brep-primitives.js +10 -28
- package/dist/primitives/brep-primitives.js.map +1 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/mesh-primitives.d.ts +10 -10
- package/dist/primitives/mesh-primitives.d.ts.map +1 -1
- package/dist/primitives/mesh-primitives.js +29 -76
- package/dist/primitives/mesh-primitives.js.map +1 -1
- package/dist/primitives/screw/screw.d.ts +3 -3
- package/dist/primitives/screw/screw.d.ts.map +1 -1
- package/dist/primitives/screw/screw.js +10 -9
- package/dist/primitives/screw/screw.js.map +1 -1
- package/dist/sdf/index.js.map +1 -1
- package/dist/units.d.ts +40 -0
- package/dist/units.d.ts.map +1 -1
- package/dist/units.js.map +1 -1
- package/package.json +3 -5
- package/dist/api/brep-mirror/booleanFns.d.ts +0 -40
- package/dist/api/brep-mirror/booleanFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/booleanFns.js +0 -104
- package/dist/api/brep-mirror/booleanFns.js.map +0 -1
- package/dist/api/brep-mirror/brepHelpers.d.ts +0 -55
- package/dist/api/brep-mirror/brepHelpers.d.ts.map +0 -1
- package/dist/api/brep-mirror/brepHelpers.js +0 -131
- package/dist/api/brep-mirror/brepHelpers.js.map +0 -1
- package/dist/api/brep-mirror/compoundFns.d.ts +0 -47
- package/dist/api/brep-mirror/compoundFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/compoundFns.js +0 -300
- package/dist/api/brep-mirror/compoundFns.js.map +0 -1
- package/dist/api/brep-mirror/healingFns.d.ts +0 -78
- package/dist/api/brep-mirror/healingFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/healingFns.js +0 -294
- package/dist/api/brep-mirror/healingFns.js.map +0 -1
- package/dist/api/brep-mirror/hullFns.d.ts +0 -20
- package/dist/api/brep-mirror/hullFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/hullFns.js +0 -46
- package/dist/api/brep-mirror/hullFns.js.map +0 -1
- package/dist/api/brep-mirror/joinery-brep.d.ts +0 -172
- package/dist/api/brep-mirror/joinery-brep.d.ts.map +0 -1
- package/dist/api/brep-mirror/joinery-brep.js +0 -463
- package/dist/api/brep-mirror/joinery-brep.js.map +0 -1
- package/dist/api/brep-mirror/patternFns.d.ts +0 -43
- package/dist/api/brep-mirror/patternFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/patternFns.js +0 -178
- package/dist/api/brep-mirror/patternFns.js.map +0 -1
- package/dist/api/brep-mirror/primitiveFns.d.ts +0 -42
- package/dist/api/brep-mirror/primitiveFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/primitiveFns.js +0 -104
- package/dist/api/brep-mirror/primitiveFns.js.map +0 -1
- package/dist/api/brep-mirror/roofFns.d.ts +0 -24
- package/dist/api/brep-mirror/roofFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/roofFns.js +0 -229
- package/dist/api/brep-mirror/roofFns.js.map +0 -1
- package/dist/api/brep-mirror/straightSkeleton.d.ts +0 -36
- package/dist/api/brep-mirror/straightSkeleton.d.ts.map +0 -1
- package/dist/api/brep-mirror/straightSkeleton.js +0 -443
- package/dist/api/brep-mirror/straightSkeleton.js.map +0 -1
- package/dist/api/brep-mirror/sweepFns.d.ts +0 -55
- package/dist/api/brep-mirror/sweepFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/sweepFns.js +0 -200
- package/dist/api/brep-mirror/sweepFns.js.map +0 -1
- package/dist/api/brep-mirror/threadFns.d.ts +0 -83
- package/dist/api/brep-mirror/threadFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/threadFns.js +0 -138
- package/dist/api/brep-mirror/threadFns.js.map +0 -1
- package/dist/api/brep-mirror/topologyFns.d.ts +0 -74
- package/dist/api/brep-mirror/topologyFns.d.ts.map +0 -1
- package/dist/api/brep-mirror/topologyFns.js +0 -276
- package/dist/api/brep-mirror/topologyFns.js.map +0 -1
- package/dist/api/brepjs-compat/constants.d.ts +0 -11
- package/dist/api/brepjs-compat/constants.d.ts.map +0 -1
- package/dist/api/brepjs-compat/constants.js +0 -11
- package/dist/api/brepjs-compat/constants.js.map +0 -1
- package/dist/api/brepjs-compat/index.d.ts +0 -21
- package/dist/api/brepjs-compat/index.d.ts.map +0 -1
- package/dist/api/brepjs-compat/index.js +0 -22
- package/dist/api/brepjs-compat/index.js.map +0 -1
- package/dist/api/brepjs-compat/planeOps.d.ts +0 -98
- package/dist/api/brepjs-compat/planeOps.d.ts.map +0 -1
- package/dist/api/brepjs-compat/planeOps.js +0 -170
- package/dist/api/brepjs-compat/planeOps.js.map +0 -1
- package/dist/api/brepjs-compat/planeTypes.d.ts +0 -24
- package/dist/api/brepjs-compat/planeTypes.d.ts.map +0 -1
- package/dist/api/brepjs-compat/planeTypes.js +0 -8
- package/dist/api/brepjs-compat/planeTypes.js.map +0 -1
- package/dist/api/brepjs-compat/types.d.ts +0 -64
- package/dist/api/brepjs-compat/types.d.ts.map +0 -1
- package/dist/api/brepjs-compat/types.js +0 -48
- package/dist/api/brepjs-compat/types.js.map +0 -1
- package/dist/api/brepjs-compat/vecOps.d.ts +0 -124
- package/dist/api/brepjs-compat/vecOps.d.ts.map +0 -1
- package/dist/api/brepjs-compat/vecOps.js +0 -202
- package/dist/api/brepjs-compat/vecOps.js.map +0 -1
- package/dist/api/generated/brepjs/index.d.ts +0 -310
- package/dist/api/generated/brepjs/index.d.ts.map +0 -1
- package/dist/api/generated/brepjs/index.js +0 -195
- package/dist/api/generated/brepjs/index.js.map +0 -1
- package/dist/api/generated/cad/script-face.d.ts +0 -12
- package/dist/api/generated/cad/script-face.d.ts.map +0 -1
- package/dist/api/generated/cad/script-face.js +0 -146
- package/dist/api/generated/cad/script-face.js.map +0 -1
- package/dist/api/internal/compat-projection.d.ts +0 -55
- package/dist/api/internal/compat-projection.d.ts.map +0 -1
- package/dist/api/internal/compat-projection.js +0 -75
- package/dist/api/internal/compat-projection.js.map +0 -1
- package/dist/api/occt-kernel-bridge.d.ts +0 -118
- package/dist/api/occt-kernel-bridge.d.ts.map +0 -1
- package/dist/api/occt-kernel-bridge.js +0 -283
- package/dist/api/occt-kernel-bridge.js.map +0 -1
- package/dist/api/sketch.d.ts +0 -80
- package/dist/api/sketch.d.ts.map +0 -1
- package/dist/api/sketch.js +0 -155
- package/dist/api/sketch.js.map +0 -1
- package/dist/api/surface/projection-overrides.d.ts +0 -38
- package/dist/api/surface/projection-overrides.d.ts.map +0 -1
- package/dist/api/surface/projection-overrides.js +0 -169
- package/dist/api/surface/projection-overrides.js.map +0 -1
- package/dist/brepjs-compat.d.ts +0 -20
- package/dist/brepjs-compat.d.ts.map +0 -1
- package/dist/brepjs-compat.js +0 -20
- package/dist/brepjs-compat.js.map +0 -1
- package/dist/cad-runtime/createRuntimeWithCad.d.ts +0 -22
- package/dist/cad-runtime/createRuntimeWithCad.d.ts.map +0 -1
- package/dist/cad-runtime/createRuntimeWithCad.js +0 -29
- package/dist/cad-runtime/createRuntimeWithCad.js.map +0 -1
- package/dist/fcstd/attachment.d.ts +0 -72
- package/dist/fcstd/attachment.d.ts.map +0 -1
- package/dist/fcstd/attachment.js +0 -93
- package/dist/fcstd/attachment.js.map +0 -1
- package/dist/fcstd/build-fai-zip.d.ts +0 -40
- package/dist/fcstd/build-fai-zip.d.ts.map +0 -1
- package/dist/fcstd/build-fai-zip.js +0 -111
- package/dist/fcstd/build-fai-zip.js.map +0 -1
- package/dist/fcstd/cli.d.ts +0 -3
- package/dist/fcstd/cli.d.ts.map +0 -1
- package/dist/fcstd/cli.js +0 -37
- package/dist/fcstd/cli.js.map +0 -1
- package/dist/fcstd/codegen.d.ts +0 -79
- package/dist/fcstd/codegen.d.ts.map +0 -1
- package/dist/fcstd/codegen.js +0 -605
- package/dist/fcstd/codegen.js.map +0 -1
- package/dist/fcstd/container.d.ts +0 -75
- package/dist/fcstd/container.d.ts.map +0 -1
- package/dist/fcstd/container.js +0 -36
- package/dist/fcstd/container.js.map +0 -1
- package/dist/fcstd/contour.d.ts +0 -43
- package/dist/fcstd/contour.d.ts.map +0 -1
- package/dist/fcstd/contour.js +0 -96
- package/dist/fcstd/contour.js.map +0 -1
- package/dist/fcstd/convert.d.ts +0 -63
- package/dist/fcstd/convert.d.ts.map +0 -1
- package/dist/fcstd/convert.js +0 -274
- package/dist/fcstd/convert.js.map +0 -1
- package/dist/fcstd/document.d.ts +0 -48
- package/dist/fcstd/document.d.ts.map +0 -1
- package/dist/fcstd/document.js +0 -140
- package/dist/fcstd/document.js.map +0 -1
- package/dist/fcstd/expressions.d.ts +0 -74
- package/dist/fcstd/expressions.d.ts.map +0 -1
- package/dist/fcstd/expressions.js +0 -157
- package/dist/fcstd/expressions.js.map +0 -1
- package/dist/fcstd/external-geo.d.ts +0 -49
- package/dist/fcstd/external-geo.d.ts.map +0 -1
- package/dist/fcstd/external-geo.js +0 -140
- package/dist/fcstd/external-geo.js.map +0 -1
- package/dist/fcstd/feature-translate.d.ts +0 -189
- package/dist/fcstd/feature-translate.d.ts.map +0 -1
- package/dist/fcstd/feature-translate.js +0 -968
- package/dist/fcstd/feature-translate.js.map +0 -1
- package/dist/fcstd/index.d.ts +0 -23
- package/dist/fcstd/index.d.ts.map +0 -1
- package/dist/fcstd/index.js +0 -19
- package/dist/fcstd/index.js.map +0 -1
- package/dist/fcstd/placement.d.ts +0 -93
- package/dist/fcstd/placement.d.ts.map +0 -1
- package/dist/fcstd/placement.js +0 -117
- package/dist/fcstd/placement.js.map +0 -1
- package/dist/fcstd/planegcs-backend.d.ts +0 -34
- package/dist/fcstd/planegcs-backend.d.ts.map +0 -1
- package/dist/fcstd/planegcs-backend.js +0 -626
- package/dist/fcstd/planegcs-backend.js.map +0 -1
- package/dist/fcstd/sketch-parse.d.ts +0 -181
- package/dist/fcstd/sketch-parse.d.ts.map +0 -1
- package/dist/fcstd/sketch-parse.js +0 -227
- package/dist/fcstd/sketch-parse.js.map +0 -1
- package/dist/fcstd/sketch-solver.d.ts +0 -63
- package/dist/fcstd/sketch-solver.d.ts.map +0 -1
- package/dist/fcstd/sketch-solver.js +0 -28
- package/dist/fcstd/sketch-solver.js.map +0 -1
- package/dist/fcstd/sketch-verify.d.ts +0 -43
- package/dist/fcstd/sketch-verify.d.ts.map +0 -1
- package/dist/fcstd/sketch-verify.js +0 -62
- package/dist/fcstd/sketch-verify.js.map +0 -1
- package/dist/fcstd/structural-types.d.ts +0 -83
- package/dist/fcstd/structural-types.d.ts.map +0 -1
- package/dist/fcstd/structural-types.js +0 -121
- package/dist/fcstd/structural-types.js.map +0 -1
- package/dist/fcstd/unpack.d.ts +0 -44
- package/dist/fcstd/unpack.d.ts.map +0 -1
- package/dist/fcstd/unpack.js +0 -64
- package/dist/fcstd/unpack.js.map +0 -1
- package/dist/fcstd-convert.d.ts +0 -30
- package/dist/fcstd-convert.d.ts.map +0 -1
- package/dist/fcstd-convert.js +0 -27
- package/dist/fcstd-convert.js.map +0 -1
- package/dist/mesh/creased-normals.d.ts +0 -50
- package/dist/mesh/creased-normals.d.ts.map +0 -1
- package/dist/mesh/creased-normals.js +0 -114
- package/dist/mesh/creased-normals.js.map +0 -1
- package/dist/occt-kernel/generated/occtPlatform.generated.d.ts +0 -260
- package/dist/occt-kernel/generated/occtPlatform.generated.d.ts.map +0 -1
- package/dist/occt-kernel/generated/occtPlatform.generated.js +0 -875
- package/dist/occt-kernel/generated/occtPlatform.generated.js.map +0 -1
- package/dist/occt-kernel/stepMetaParser.d.ts +0 -44
- package/dist/occt-kernel/stepMetaParser.d.ts.map +0 -1
- package/dist/occt-kernel/stepMetaParser.js +0 -166
- package/dist/occt-kernel/stepMetaParser.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts +0 -106
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js +0 -341
- package/dist/vendored/brepjs/2d/blueprints/baseSketcher2d.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts +0 -185
- package/dist/vendored/brepjs/2d/blueprints/blueprint.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprint.js +0 -361
- package/dist/vendored/brepjs/2d/blueprints/blueprint.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts +0 -15
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js +0 -28
- package/dist/vendored/brepjs/2d/blueprints/blueprintApproximations.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts +0 -29
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js +0 -86
- package/dist/vendored/brepjs/2d/blueprints/blueprintCustomCorners.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts +0 -57
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js +0 -92
- package/dist/vendored/brepjs/2d/blueprints/blueprintFns.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts +0 -58
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js +0 -346
- package/dist/vendored/brepjs/2d/blueprints/blueprintOffset.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts +0 -30
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js +0 -45
- package/dist/vendored/brepjs/2d/blueprints/blueprintSketcher.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts +0 -68
- package/dist/vendored/brepjs/2d/blueprints/blueprints.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/blueprints.js +0 -116
- package/dist/vendored/brepjs/2d/blueprints/blueprints.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts +0 -68
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.js +0 -362
- package/dist/vendored/brepjs/2d/blueprints/boolean2D.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts +0 -34
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js +0 -176
- package/dist/vendored/brepjs/2d/blueprints/booleanHelpers.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts +0 -55
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js +0 -110
- package/dist/vendored/brepjs/2d/blueprints/booleanOperations.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts +0 -41
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js +0 -90
- package/dist/vendored/brepjs/2d/blueprints/cannedBlueprints.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts +0 -85
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js +0 -136
- package/dist/vendored/brepjs/2d/blueprints/compoundBlueprint.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts +0 -48
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js +0 -154
- package/dist/vendored/brepjs/2d/blueprints/ellipseUtils.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts +0 -342
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js +0 -32
- package/dist/vendored/brepjs/2d/blueprints/genericSketcher.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/index.d.ts +0 -16
- package/dist/vendored/brepjs/2d/blueprints/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/index.js +0 -13
- package/dist/vendored/brepjs/2d/blueprints/index.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts +0 -18
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js +0 -230
- package/dist/vendored/brepjs/2d/blueprints/intersectionSegments.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/lib.d.ts +0 -73
- package/dist/vendored/brepjs/2d/blueprints/lib.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/lib.js +0 -103
- package/dist/vendored/brepjs/2d/blueprints/lib.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts +0 -31
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js +0 -226
- package/dist/vendored/brepjs/2d/blueprints/segmentAssembly.js.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/svg.d.ts +0 -22
- package/dist/vendored/brepjs/2d/blueprints/svg.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/blueprints/svg.js +0 -30
- package/dist/vendored/brepjs/2d/blueprints/svg.js.map +0 -1
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts +0 -124
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.js +0 -235
- package/dist/vendored/brepjs/2d/curve2dGeometryFns.js.map +0 -1
- package/dist/vendored/brepjs/2d/curves.d.ts +0 -45
- package/dist/vendored/brepjs/2d/curves.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/curves.js +0 -139
- package/dist/vendored/brepjs/2d/curves.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/approximations.d.ts +0 -47
- package/dist/vendored/brepjs/2d/lib/approximations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/approximations.js +0 -82
- package/dist/vendored/brepjs/2d/lib/approximations.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts +0 -39
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.js +0 -88
- package/dist/vendored/brepjs/2d/lib/boundingBox2d.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2D.d.ts +0 -82
- package/dist/vendored/brepjs/2d/lib/curve2D.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2D.js +0 -258
- package/dist/vendored/brepjs/2d/lib/curve2D.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts +0 -53
- package/dist/vendored/brepjs/2d/lib/curve2dFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/curve2dFns.js +0 -69
- package/dist/vendored/brepjs/2d/lib/curve2dFns.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/customCorners.d.ts +0 -29
- package/dist/vendored/brepjs/2d/lib/customCorners.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/customCorners.js +0 -237
- package/dist/vendored/brepjs/2d/lib/customCorners.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/definitions.d.ts +0 -12
- package/dist/vendored/brepjs/2d/lib/definitions.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/definitions.js +0 -19
- package/dist/vendored/brepjs/2d/lib/definitions.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts +0 -21
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js +0 -71
- package/dist/vendored/brepjs/2d/lib/ellipseArcFlags.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/index.d.ts +0 -14
- package/dist/vendored/brepjs/2d/lib/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/index.js +0 -14
- package/dist/vendored/brepjs/2d/lib/index.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/intersections.d.ts +0 -34
- package/dist/vendored/brepjs/2d/lib/intersections.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/intersections.js +0 -77
- package/dist/vendored/brepjs/2d/lib/intersections.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts +0 -63
- package/dist/vendored/brepjs/2d/lib/makeCurves.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/makeCurves.js +0 -117
- package/dist/vendored/brepjs/2d/lib/makeCurves.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/offset.d.ts +0 -30
- package/dist/vendored/brepjs/2d/lib/offset.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/offset.js +0 -109
- package/dist/vendored/brepjs/2d/lib/offset.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/precision.d.ts +0 -12
- package/dist/vendored/brepjs/2d/lib/precision.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/precision.js +0 -12
- package/dist/vendored/brepjs/2d/lib/precision.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/stitching.d.ts +0 -15
- package/dist/vendored/brepjs/2d/lib/stitching.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/stitching.js +0 -67
- package/dist/vendored/brepjs/2d/lib/stitching.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/svgPath.d.ts +0 -4
- package/dist/vendored/brepjs/2d/lib/svgPath.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/svgPath.js +0 -114
- package/dist/vendored/brepjs/2d/lib/svgPath.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/utils.d.ts +0 -11
- package/dist/vendored/brepjs/2d/lib/utils.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/utils.js +0 -24
- package/dist/vendored/brepjs/2d/lib/utils.js.map +0 -1
- package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts +0 -19
- package/dist/vendored/brepjs/2d/lib/vectorOperations.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d/lib/vectorOperations.js +0 -26
- package/dist/vendored/brepjs/2d/lib/vectorOperations.js.map +0 -1
- package/dist/vendored/brepjs/2d.d.ts +0 -26
- package/dist/vendored/brepjs/2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/2d.js +0 -33
- package/dist/vendored/brepjs/2d.js.map +0 -1
- package/dist/vendored/brepjs/core/constants.d.ts +0 -7
- package/dist/vendored/brepjs/core/constants.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/constants.js +0 -7
- package/dist/vendored/brepjs/core/constants.js.map +0 -1
- package/dist/vendored/brepjs/core/curve2dHandle.d.ts +0 -35
- package/dist/vendored/brepjs/core/curve2dHandle.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/curve2dHandle.js +0 -48
- package/dist/vendored/brepjs/core/curve2dHandle.js.map +0 -1
- package/dist/vendored/brepjs/core/dimensionTypes.d.ts +0 -61
- package/dist/vendored/brepjs/core/dimensionTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/dimensionTypes.js +0 -54
- package/dist/vendored/brepjs/core/dimensionTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/disposal.d.ts +0 -136
- package/dist/vendored/brepjs/core/disposal.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/disposal.js +0 -441
- package/dist/vendored/brepjs/core/disposal.js.map +0 -1
- package/dist/vendored/brepjs/core/errors.d.ts +0 -191
- package/dist/vendored/brepjs/core/errors.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/errors.js +0 -238
- package/dist/vendored/brepjs/core/errors.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelBoundary.d.ts +0 -40
- package/dist/vendored/brepjs/core/kernelBoundary.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelBoundary.js +0 -99
- package/dist/vendored/brepjs/core/kernelBoundary.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelCall.d.ts +0 -48
- package/dist/vendored/brepjs/core/kernelCall.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelCall.js +0 -154
- package/dist/vendored/brepjs/core/kernelCall.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts +0 -17
- package/dist/vendored/brepjs/core/kernelErrorTranslation.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelErrorTranslation.js +0 -98
- package/dist/vendored/brepjs/core/kernelErrorTranslation.js.map +0 -1
- package/dist/vendored/brepjs/core/planeOps.d.ts +0 -62
- package/dist/vendored/brepjs/core/planeOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/planeOps.js +0 -148
- package/dist/vendored/brepjs/core/planeOps.js.map +0 -1
- package/dist/vendored/brepjs/core/planeTypes.d.ts +0 -22
- package/dist/vendored/brepjs/core/planeTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/planeTypes.js +0 -6
- package/dist/vendored/brepjs/core/planeTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/result.d.ts +0 -85
- package/dist/vendored/brepjs/core/result.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/result.js +0 -212
- package/dist/vendored/brepjs/core/result.js.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypeCache.d.ts +0 -27
- package/dist/vendored/brepjs/core/shapeTypeCache.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypeCache.js +0 -40
- package/dist/vendored/brepjs/core/shapeTypeCache.js.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypes.d.ts +0 -199
- package/dist/vendored/brepjs/core/shapeTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/shapeTypes.js +0 -267
- package/dist/vendored/brepjs/core/shapeTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/typeDiscriminants.d.ts +0 -25
- package/dist/vendored/brepjs/core/typeDiscriminants.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/typeDiscriminants.js +0 -50
- package/dist/vendored/brepjs/core/typeDiscriminants.js.map +0 -1
- package/dist/vendored/brepjs/core/types.d.ts +0 -51
- package/dist/vendored/brepjs/core/types.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/types.js +0 -35
- package/dist/vendored/brepjs/core/types.js.map +0 -1
- package/dist/vendored/brepjs/core/validityTypes.d.ts +0 -143
- package/dist/vendored/brepjs/core/validityTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/validityTypes.js +0 -174
- package/dist/vendored/brepjs/core/validityTypes.js.map +0 -1
- package/dist/vendored/brepjs/core/vecOps.d.ts +0 -53
- package/dist/vendored/brepjs/core/vecOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/vecOps.js +0 -131
- package/dist/vendored/brepjs/core/vecOps.js.map +0 -1
- package/dist/vendored/brepjs/core.d.ts +0 -17
- package/dist/vendored/brepjs/core.d.ts.map +0 -1
- package/dist/vendored/brepjs/core.js +0 -13
- package/dist/vendored/brepjs/core.js.map +0 -1
- package/dist/vendored/brepjs/gear/gearFns.d.ts +0 -148
- package/dist/vendored/brepjs/gear/gearFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/gearFns.js +0 -479
- package/dist/vendored/brepjs/gear/gearFns.js.map +0 -1
- package/dist/vendored/brepjs/gear/gearMath.d.ts +0 -89
- package/dist/vendored/brepjs/gear/gearMath.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/gearMath.js +0 -195
- package/dist/vendored/brepjs/gear/gearMath.js.map +0 -1
- package/dist/vendored/brepjs/gear/gearProfile.d.ts +0 -17
- package/dist/vendored/brepjs/gear/gearProfile.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/gearProfile.js +0 -159
- package/dist/vendored/brepjs/gear/gearProfile.js.map +0 -1
- package/dist/vendored/brepjs/gear/index.d.ts +0 -4
- package/dist/vendored/brepjs/gear/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/gear/index.js +0 -4
- package/dist/vendored/brepjs/gear/index.js.map +0 -1
- package/dist/vendored/brepjs/index.d.ts +0 -152
- package/dist/vendored/brepjs/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/index.js +0 -195
- package/dist/vendored/brepjs/index.js.map +0 -1
- package/dist/vendored/brepjs/io/dxfExportFns.d.ts +0 -74
- package/dist/vendored/brepjs/io/dxfExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/dxfExportFns.js +0 -134
- package/dist/vendored/brepjs/io/dxfExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/dxfImportFns.d.ts +0 -20
- package/dist/vendored/brepjs/io/dxfImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/dxfImportFns.js +0 -132
- package/dist/vendored/brepjs/io/dxfImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/gltfExportFns.d.ts +0 -97
- package/dist/vendored/brepjs/io/gltfExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/gltfExportFns.js +0 -460
- package/dist/vendored/brepjs/io/gltfExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/gltfImportFns.d.ts +0 -21
- package/dist/vendored/brepjs/io/gltfImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/gltfImportFns.js +0 -33
- package/dist/vendored/brepjs/io/gltfImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/importFns.d.ts +0 -56
- package/dist/vendored/brepjs/io/importFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/importFns.js +0 -108
- package/dist/vendored/brepjs/io/importFns.js.map +0 -1
- package/dist/vendored/brepjs/io/ioUtils.d.ts +0 -22
- package/dist/vendored/brepjs/io/ioUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/ioUtils.js +0 -56
- package/dist/vendored/brepjs/io/ioUtils.js.map +0 -1
- package/dist/vendored/brepjs/io/objExportFns.d.ts +0 -23
- package/dist/vendored/brepjs/io/objExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/objExportFns.js +0 -67
- package/dist/vendored/brepjs/io/objExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/objImportFns.d.ts +0 -26
- package/dist/vendored/brepjs/io/objImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/objImportFns.js +0 -96
- package/dist/vendored/brepjs/io/objImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/stepConfigFns.d.ts +0 -30
- package/dist/vendored/brepjs/io/stepConfigFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/stepConfigFns.js +0 -30
- package/dist/vendored/brepjs/io/stepConfigFns.js.map +0 -1
- package/dist/vendored/brepjs/io/svgImportFns.d.ts +0 -58
- package/dist/vendored/brepjs/io/svgImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/svgImportFns.js +0 -394
- package/dist/vendored/brepjs/io/svgImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/threemfExportFns.d.ts +0 -48
- package/dist/vendored/brepjs/io/threemfExportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/threemfExportFns.js +0 -345
- package/dist/vendored/brepjs/io/threemfExportFns.js.map +0 -1
- package/dist/vendored/brepjs/io/threemfImportFns.d.ts +0 -22
- package/dist/vendored/brepjs/io/threemfImportFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/io/threemfImportFns.js +0 -350
- package/dist/vendored/brepjs/io/threemfImportFns.js.map +0 -1
- package/dist/vendored/brepjs/io.d.ts +0 -17
- package/dist/vendored/brepjs/io.d.ts.map +0 -1
- package/dist/vendored/brepjs/io.js +0 -20
- package/dist/vendored/brepjs/io.js.map +0 -1
- package/dist/vendored/brepjs/kernel/capabilities.d.ts +0 -36
- package/dist/vendored/brepjs/kernel/capabilities.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/capabilities.js +0 -35
- package/dist/vendored/brepjs/kernel/capabilities.js.map +0 -1
- package/dist/vendored/brepjs/kernel/geometry2d.d.ts +0 -96
- package/dist/vendored/brepjs/kernel/geometry2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/geometry2d.js +0 -885
- package/dist/vendored/brepjs/kernel/geometry2d.js.map +0 -1
- package/dist/vendored/brepjs/kernel/hullGeometry.d.ts +0 -23
- package/dist/vendored/brepjs/kernel/hullGeometry.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/hullGeometry.js +0 -312
- package/dist/vendored/brepjs/kernel/hullGeometry.js.map +0 -1
- package/dist/vendored/brepjs/kernel/index.d.ts +0 -73
- package/dist/vendored/brepjs/kernel/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/index.js +0 -161
- package/dist/vendored/brepjs/kernel/index.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts +0 -44
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/booleanOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts +0 -67
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.js +0 -12
- package/dist/vendored/brepjs/kernel/interfaces/builderOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/core.d.ts +0 -46
- package/dist/vendored/brepjs/kernel/interfaces/core.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/core.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/core.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts +0 -53
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.js +0 -12
- package/dist/vendored/brepjs/kernel/interfaces/curveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts +0 -32
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js +0 -14
- package/dist/vendored/brepjs/kernel/interfaces/evolutionOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/index.d.ts +0 -43
- package/dist/vendored/brepjs/kernel/interfaces/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/index.js +0 -12
- package/dist/vendored/brepjs/kernel/interfaces/index.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts +0 -65
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/ioOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts +0 -55
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/measureOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts +0 -25
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.js +0 -8
- package/dist/vendored/brepjs/kernel/interfaces/meshOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts +0 -53
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js +0 -10
- package/dist/vendored/brepjs/kernel/interfaces/modifierOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts +0 -22
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/primitiveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts +0 -43
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/repairOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts +0 -72
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js +0 -13
- package/dist/vendored/brepjs/kernel/interfaces/surfaceOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts +0 -73
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/sweepOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts +0 -62
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js +0 -9
- package/dist/vendored/brepjs/kernel/interfaces/topologyOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts +0 -80
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.js +0 -11
- package/dist/vendored/brepjs/kernel/interfaces/transformOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts +0 -145
- package/dist/vendored/brepjs/kernel/kernel2dTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/kernel2dTypes.js +0 -18
- package/dist/vendored/brepjs/kernel/kernel2dTypes.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts +0 -41
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js +0 -2
- package/dist/vendored/brepjs/kernel/occt/wasmTypes/externals.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts +0 -17
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js +0 -75
- package/dist/vendored/brepjs/kernel/occtWasm/adapterShims.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts +0 -36
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js +0 -116
- package/dist/vendored/brepjs/kernel/occtWasm/booleanOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts +0 -43
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js +0 -292
- package/dist/vendored/brepjs/kernel/occtWasm/constructionOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts +0 -34
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js +0 -164
- package/dist/vendored/brepjs/kernel/occtWasm/curveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts +0 -26
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js +0 -256
- package/dist/vendored/brepjs/kernel/occtWasm/evolutionOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts +0 -42
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.js +0 -146
- package/dist/vendored/brepjs/kernel/occtWasm/helpers.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts +0 -17
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js +0 -55
- package/dist/vendored/brepjs/kernel/occtWasm/hullOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts +0 -58
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js +0 -303
- package/dist/vendored/brepjs/kernel/occtWasm/ioOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts +0 -113
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js +0 -731
- package/dist/vendored/brepjs/kernel/occtWasm/kernel2dOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts +0 -62
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js +0 -338
- package/dist/vendored/brepjs/kernel/occtWasm/measureOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts +0 -12
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js +0 -120
- package/dist/vendored/brepjs/kernel/occtWasm/meshOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts +0 -20
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js +0 -187
- package/dist/vendored/brepjs/kernel/occtWasm/modifierOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts +0 -513
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js +0 -1016
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmAdapter.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts +0 -332
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js +0 -10
- package/dist/vendored/brepjs/kernel/occtWasm/occtWasmTypes.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts +0 -16
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js +0 -64
- package/dist/vendored/brepjs/kernel/occtWasm/primitiveOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts +0 -16
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js +0 -38
- package/dist/vendored/brepjs/kernel/occtWasm/repairOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts +0 -56
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js +0 -247
- package/dist/vendored/brepjs/kernel/occtWasm/surfaceOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts +0 -56
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js +0 -235
- package/dist/vendored/brepjs/kernel/occtWasm/sweepOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts +0 -25
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js +0 -127
- package/dist/vendored/brepjs/kernel/occtWasm/topologyOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts +0 -40
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js +0 -275
- package/dist/vendored/brepjs/kernel/occtWasm/transformOps.js.map +0 -1
- package/dist/vendored/brepjs/kernel/quality.d.ts +0 -28
- package/dist/vendored/brepjs/kernel/quality.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/quality.js +0 -40
- package/dist/vendored/brepjs/kernel/quality.js.map +0 -1
- package/dist/vendored/brepjs/kernel/solverAdapter.d.ts +0 -50
- package/dist/vendored/brepjs/kernel/solverAdapter.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/solverAdapter.js +0 -330
- package/dist/vendored/brepjs/kernel/solverAdapter.js.map +0 -1
- package/dist/vendored/brepjs/kernel/stlBuilder.d.ts +0 -21
- package/dist/vendored/brepjs/kernel/stlBuilder.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/stlBuilder.js +0 -106
- package/dist/vendored/brepjs/kernel/stlBuilder.js.map +0 -1
- package/dist/vendored/brepjs/kernel/types.d.ts +0 -214
- package/dist/vendored/brepjs/kernel/types.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/types.js +0 -22
- package/dist/vendored/brepjs/kernel/types.js.map +0 -1
- package/dist/vendored/brepjs/kernel/unsupported.d.ts +0 -15
- package/dist/vendored/brepjs/kernel/unsupported.d.ts.map +0 -1
- package/dist/vendored/brepjs/kernel/unsupported.js +0 -25
- package/dist/vendored/brepjs/kernel/unsupported.js.map +0 -1
- package/dist/vendored/brepjs/measurement/interferenceFns.d.ts +0 -68
- package/dist/vendored/brepjs/measurement/interferenceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/interferenceFns.js +0 -102
- package/dist/vendored/brepjs/measurement/interferenceFns.js.map +0 -1
- package/dist/vendored/brepjs/measurement/measureCache.d.ts +0 -20
- package/dist/vendored/brepjs/measurement/measureCache.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/measureCache.js +0 -28
- package/dist/vendored/brepjs/measurement/measureCache.js.map +0 -1
- package/dist/vendored/brepjs/measurement/measureFns.d.ts +0 -92
- package/dist/vendored/brepjs/measurement/measureFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/measureFns.js +0 -239
- package/dist/vendored/brepjs/measurement/measureFns.js.map +0 -1
- package/dist/vendored/brepjs/measurement/measureTypes.d.ts +0 -35
- package/dist/vendored/brepjs/measurement/measureTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement/measureTypes.js +0 -7
- package/dist/vendored/brepjs/measurement/measureTypes.js.map +0 -1
- package/dist/vendored/brepjs/measurement.d.ts +0 -5
- package/dist/vendored/brepjs/measurement.d.ts.map +0 -1
- package/dist/vendored/brepjs/measurement.js +0 -5
- package/dist/vendored/brepjs/measurement.js.map +0 -1
- package/dist/vendored/brepjs/ns/booleans.d.ts +0 -11
- package/dist/vendored/brepjs/ns/booleans.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/booleans.js +0 -11
- package/dist/vendored/brepjs/ns/booleans.js.map +0 -1
- package/dist/vendored/brepjs/ns/construction.d.ts +0 -10
- package/dist/vendored/brepjs/ns/construction.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/construction.js +0 -10
- package/dist/vendored/brepjs/ns/construction.js.map +0 -1
- package/dist/vendored/brepjs/ns/ioNs.d.ts +0 -18
- package/dist/vendored/brepjs/ns/ioNs.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/ioNs.js +0 -20
- package/dist/vendored/brepjs/ns/ioNs.js.map +0 -1
- package/dist/vendored/brepjs/ns/measurement.d.ts +0 -6
- package/dist/vendored/brepjs/ns/measurement.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/measurement.js +0 -6
- package/dist/vendored/brepjs/ns/measurement.js.map +0 -1
- package/dist/vendored/brepjs/ns/modifiers.d.ts +0 -6
- package/dist/vendored/brepjs/ns/modifiers.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/modifiers.js +0 -6
- package/dist/vendored/brepjs/ns/modifiers.js.map +0 -1
- package/dist/vendored/brepjs/ns/patterns.d.ts +0 -5
- package/dist/vendored/brepjs/ns/patterns.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/patterns.js +0 -5
- package/dist/vendored/brepjs/ns/patterns.js.map +0 -1
- package/dist/vendored/brepjs/ns/primitives.d.ts +0 -7
- package/dist/vendored/brepjs/ns/primitives.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/primitives.js +0 -7
- package/dist/vendored/brepjs/ns/primitives.js.map +0 -1
- package/dist/vendored/brepjs/ns/query.d.ts +0 -6
- package/dist/vendored/brepjs/ns/query.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/query.js +0 -6
- package/dist/vendored/brepjs/ns/query.js.map +0 -1
- package/dist/vendored/brepjs/ns/transforms.d.ts +0 -5
- package/dist/vendored/brepjs/ns/transforms.d.ts.map +0 -1
- package/dist/vendored/brepjs/ns/transforms.js +0 -5
- package/dist/vendored/brepjs/ns/transforms.js.map +0 -1
- package/dist/vendored/brepjs/operations/api.d.ts +0 -39
- package/dist/vendored/brepjs/operations/api.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/api.js +0 -41
- package/dist/vendored/brepjs/operations/api.js.map +0 -1
- package/dist/vendored/brepjs/operations/assemblyFns.d.ts +0 -54
- package/dist/vendored/brepjs/operations/assemblyFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/assemblyFns.js +0 -91
- package/dist/vendored/brepjs/operations/assemblyFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts +0 -43
- package/dist/vendored/brepjs/operations/compoundOpsFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/compoundOpsFns.js +0 -368
- package/dist/vendored/brepjs/operations/compoundOpsFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/convexHullFns.d.ts +0 -27
- package/dist/vendored/brepjs/operations/convexHullFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/convexHullFns.js +0 -50
- package/dist/vendored/brepjs/operations/convexHullFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/dhFns.d.ts +0 -47
- package/dist/vendored/brepjs/operations/dhFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/dhFns.js +0 -53
- package/dist/vendored/brepjs/operations/dhFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/exporterFns.d.ts +0 -47
- package/dist/vendored/brepjs/operations/exporterFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/exporterFns.js +0 -66
- package/dist/vendored/brepjs/operations/exporterFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/exporterUtils.d.ts +0 -6
- package/dist/vendored/brepjs/operations/exporterUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/exporterUtils.js +0 -5
- package/dist/vendored/brepjs/operations/exporterUtils.js.map +0 -1
- package/dist/vendored/brepjs/operations/exporters.d.ts +0 -59
- package/dist/vendored/brepjs/operations/exporters.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/exporters.js +0 -74
- package/dist/vendored/brepjs/operations/exporters.js.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeFns.d.ts +0 -47
- package/dist/vendored/brepjs/operations/extrudeFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeFns.js +0 -119
- package/dist/vendored/brepjs/operations/extrudeFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeUtils.d.ts +0 -63
- package/dist/vendored/brepjs/operations/extrudeUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/extrudeUtils.js +0 -33
- package/dist/vendored/brepjs/operations/extrudeUtils.js.map +0 -1
- package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts +0 -6
- package/dist/vendored/brepjs/operations/guidedSweepFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/guidedSweepFns.js +0 -6
- package/dist/vendored/brepjs/operations/guidedSweepFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/historyFns.d.ts +0 -83
- package/dist/vendored/brepjs/operations/historyFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/historyFns.js +0 -256
- package/dist/vendored/brepjs/operations/historyFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/ikFns.d.ts +0 -74
- package/dist/vendored/brepjs/operations/ikFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/ikFns.js +0 -320
- package/dist/vendored/brepjs/operations/ikFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/instanceFns.d.ts +0 -76
- package/dist/vendored/brepjs/operations/instanceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/instanceFns.js +0 -128
- package/dist/vendored/brepjs/operations/instanceFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/jointFns.d.ts +0 -176
- package/dist/vendored/brepjs/operations/jointFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/jointFns.js +0 -298
- package/dist/vendored/brepjs/operations/jointFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/loftFns.d.ts +0 -60
- package/dist/vendored/brepjs/operations/loftFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/loftFns.js +0 -112
- package/dist/vendored/brepjs/operations/loftFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/mateFns.d.ts +0 -53
- package/dist/vendored/brepjs/operations/mateFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/mateFns.js +0 -142
- package/dist/vendored/brepjs/operations/mateFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/multiSweepFns.d.ts +0 -6
- package/dist/vendored/brepjs/operations/multiSweepFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/multiSweepFns.js +0 -6
- package/dist/vendored/brepjs/operations/multiSweepFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/patternFns.d.ts +0 -46
- package/dist/vendored/brepjs/operations/patternFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/patternFns.js +0 -126
- package/dist/vendored/brepjs/operations/patternFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/roofFns.d.ts +0 -25
- package/dist/vendored/brepjs/operations/roofFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/roofFns.js +0 -250
- package/dist/vendored/brepjs/operations/roofFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/straightSkeleton.d.ts +0 -29
- package/dist/vendored/brepjs/operations/straightSkeleton.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/straightSkeleton.js +0 -440
- package/dist/vendored/brepjs/operations/straightSkeleton.js.map +0 -1
- package/dist/vendored/brepjs/operations/sweepFns.d.ts +0 -121
- package/dist/vendored/brepjs/operations/sweepFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/sweepFns.js +0 -438
- package/dist/vendored/brepjs/operations/sweepFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/threadFns.d.ts +0 -57
- package/dist/vendored/brepjs/operations/threadFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/threadFns.js +0 -145
- package/dist/vendored/brepjs/operations/threadFns.js.map +0 -1
- package/dist/vendored/brepjs/operations/urdfFns.d.ts +0 -48
- package/dist/vendored/brepjs/operations/urdfFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations/urdfFns.js +0 -171
- package/dist/vendored/brepjs/operations/urdfFns.js.map +0 -1
- package/dist/vendored/brepjs/operations.d.ts +0 -20
- package/dist/vendored/brepjs/operations.d.ts.map +0 -1
- package/dist/vendored/brepjs/operations.js +0 -26
- package/dist/vendored/brepjs/operations.js.map +0 -1
- package/dist/vendored/brepjs/projection/cameraFns.d.ts +0 -63
- package/dist/vendored/brepjs/projection/cameraFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection/cameraFns.js +0 -89
- package/dist/vendored/brepjs/projection/cameraFns.js.map +0 -1
- package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts +0 -14
- package/dist/vendored/brepjs/projection/makeProjectedEdges.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection/makeProjectedEdges.js +0 -111
- package/dist/vendored/brepjs/projection/makeProjectedEdges.js.map +0 -1
- package/dist/vendored/brepjs/projection/projectionPlanes.d.ts +0 -18
- package/dist/vendored/brepjs/projection/projectionPlanes.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection/projectionPlanes.js +0 -23
- package/dist/vendored/brepjs/projection/projectionPlanes.js.map +0 -1
- package/dist/vendored/brepjs/projection.d.ts +0 -12
- package/dist/vendored/brepjs/projection.d.ts.map +0 -1
- package/dist/vendored/brepjs/projection.js +0 -12
- package/dist/vendored/brepjs/projection.js.map +0 -1
- package/dist/vendored/brepjs/query/cornerFinder.d.ts +0 -54
- package/dist/vendored/brepjs/query/cornerFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/cornerFinder.js +0 -73
- package/dist/vendored/brepjs/query/cornerFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/directionUtils.d.ts +0 -9
- package/dist/vendored/brepjs/query/directionUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/directionUtils.js +0 -18
- package/dist/vendored/brepjs/query/directionUtils.js.map +0 -1
- package/dist/vendored/brepjs/query/edgeFinder.d.ts +0 -5
- package/dist/vendored/brepjs/query/edgeFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/edgeFinder.js +0 -5
- package/dist/vendored/brepjs/query/edgeFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/faceFinder.d.ts +0 -5
- package/dist/vendored/brepjs/query/faceFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/faceFinder.js +0 -5
- package/dist/vendored/brepjs/query/faceFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/finderCore.d.ts +0 -49
- package/dist/vendored/brepjs/query/finderCore.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/finderCore.js +0 -120
- package/dist/vendored/brepjs/query/finderCore.js.map +0 -1
- package/dist/vendored/brepjs/query/finderFns.d.ts +0 -25
- package/dist/vendored/brepjs/query/finderFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/finderFns.js +0 -25
- package/dist/vendored/brepjs/query/finderFns.js.map +0 -1
- package/dist/vendored/brepjs/query/helpers.d.ts +0 -11
- package/dist/vendored/brepjs/query/helpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/helpers.js +0 -17
- package/dist/vendored/brepjs/query/helpers.js.map +0 -1
- package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts +0 -15
- package/dist/vendored/brepjs/query/shapeDistanceFilter.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/shapeDistanceFilter.js +0 -21
- package/dist/vendored/brepjs/query/shapeDistanceFilter.js.map +0 -1
- package/dist/vendored/brepjs/query/shapeFinders.d.ts +0 -39
- package/dist/vendored/brepjs/query/shapeFinders.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/shapeFinders.js +0 -82
- package/dist/vendored/brepjs/query/shapeFinders.js.map +0 -1
- package/dist/vendored/brepjs/query/vertexFinder.d.ts +0 -19
- package/dist/vendored/brepjs/query/vertexFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/vertexFinder.js +0 -73
- package/dist/vendored/brepjs/query/vertexFinder.js.map +0 -1
- package/dist/vendored/brepjs/query/wireFinder.d.ts +0 -5
- package/dist/vendored/brepjs/query/wireFinder.d.ts.map +0 -1
- package/dist/vendored/brepjs/query/wireFinder.js +0 -5
- package/dist/vendored/brepjs/query/wireFinder.js.map +0 -1
- package/dist/vendored/brepjs/query.d.ts +0 -6
- package/dist/vendored/brepjs/query.d.ts.map +0 -1
- package/dist/vendored/brepjs/query.js +0 -6
- package/dist/vendored/brepjs/query.js.map +0 -1
- package/dist/vendored/brepjs/result.d.ts +0 -7
- package/dist/vendored/brepjs/result.d.ts.map +0 -1
- package/dist/vendored/brepjs/result.js +0 -7
- package/dist/vendored/brepjs/result.js.map +0 -1
- package/dist/vendored/brepjs/shapeRef.d.ts +0 -13
- package/dist/vendored/brepjs/shapeRef.d.ts.map +0 -1
- package/dist/vendored/brepjs/shapeRef.js +0 -13
- package/dist/vendored/brepjs/shapeRef.js.map +0 -1
- package/dist/vendored/brepjs/sketching/cannedSketches.d.ts +0 -144
- package/dist/vendored/brepjs/sketching/cannedSketches.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/cannedSketches.js +0 -327
- package/dist/vendored/brepjs/sketching/cannedSketches.js.map +0 -1
- package/dist/vendored/brepjs/sketching/compoundSketch.d.ts +0 -70
- package/dist/vendored/brepjs/sketching/compoundSketch.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/compoundSketch.js +0 -87
- package/dist/vendored/brepjs/sketching/compoundSketch.js.map +0 -1
- package/dist/vendored/brepjs/sketching/draw3d.d.ts +0 -22
- package/dist/vendored/brepjs/sketching/draw3d.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/draw3d.js +0 -150
- package/dist/vendored/brepjs/sketching/draw3d.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawFns.d.ts +0 -122
- package/dist/vendored/brepjs/sketching/drawFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawFns.js +0 -129
- package/dist/vendored/brepjs/sketching/drawFns.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawing.d.ts +0 -128
- package/dist/vendored/brepjs/sketching/drawing.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawing.js +0 -275
- package/dist/vendored/brepjs/sketching/drawing.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingFactories.d.ts +0 -95
- package/dist/vendored/brepjs/sketching/drawingFactories.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingFactories.js +0 -125
- package/dist/vendored/brepjs/sketching/drawingFactories.js.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingPen.d.ts +0 -35
- package/dist/vendored/brepjs/sketching/drawingPen.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/drawingPen.js +0 -57
- package/dist/vendored/brepjs/sketching/drawingPen.js.map +0 -1
- package/dist/vendored/brepjs/sketching/faceSketcher.d.ts +0 -53
- package/dist/vendored/brepjs/sketching/faceSketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/faceSketcher.js +0 -167
- package/dist/vendored/brepjs/sketching/faceSketcher.js.map +0 -1
- package/dist/vendored/brepjs/sketching/shortcuts.d.ts +0 -16
- package/dist/vendored/brepjs/sketching/shortcuts.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/shortcuts.js +0 -24
- package/dist/vendored/brepjs/sketching/shortcuts.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketch.d.ts +0 -157
- package/dist/vendored/brepjs/sketching/sketch.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketch.js +0 -151
- package/dist/vendored/brepjs/sketching/sketch.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketchFns.d.ts +0 -89
- package/dist/vendored/brepjs/sketching/sketchFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketchFns.js +0 -266
- package/dist/vendored/brepjs/sketching/sketchFns.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketcher.d.ts +0 -70
- package/dist/vendored/brepjs/sketching/sketcher.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketcher.js +0 -181
- package/dist/vendored/brepjs/sketching/sketcher.js.map +0 -1
- package/dist/vendored/brepjs/sketching/sketches.d.ts +0 -70
- package/dist/vendored/brepjs/sketching/sketches.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching/sketches.js +0 -91
- package/dist/vendored/brepjs/sketching/sketches.js.map +0 -1
- package/dist/vendored/brepjs/sketching.d.ts +0 -28
- package/dist/vendored/brepjs/sketching.d.ts.map +0 -1
- package/dist/vendored/brepjs/sketching.js +0 -30
- package/dist/vendored/brepjs/sketching.js.map +0 -1
- package/dist/vendored/brepjs/text/fontRegistry.d.ts +0 -23
- package/dist/vendored/brepjs/text/fontRegistry.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/fontRegistry.js +0 -61
- package/dist/vendored/brepjs/text/fontRegistry.js.map +0 -1
- package/dist/vendored/brepjs/text/sketchText.d.ts +0 -31
- package/dist/vendored/brepjs/text/sketchText.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/sketchText.js +0 -30
- package/dist/vendored/brepjs/text/sketchText.js.map +0 -1
- package/dist/vendored/brepjs/text/textBlueprints.d.ts +0 -19
- package/dist/vendored/brepjs/text/textBlueprints.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/textBlueprints.js +0 -61
- package/dist/vendored/brepjs/text/textBlueprints.js.map +0 -1
- package/dist/vendored/brepjs/text/textMetrics.d.ts +0 -40
- package/dist/vendored/brepjs/text/textMetrics.d.ts.map +0 -1
- package/dist/vendored/brepjs/text/textMetrics.js +0 -43
- package/dist/vendored/brepjs/text/textMetrics.js.map +0 -1
- package/dist/vendored/brepjs/text.d.ts +0 -13
- package/dist/vendored/brepjs/text.d.ts.map +0 -1
- package/dist/vendored/brepjs/text.js +0 -13
- package/dist/vendored/brepjs/text.js.map +0 -1
- package/dist/vendored/brepjs/topology/adjacencyFns.d.ts +0 -89
- package/dist/vendored/brepjs/topology/adjacencyFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/adjacencyFns.js +0 -411
- package/dist/vendored/brepjs/topology/adjacencyFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/api.d.ts +0 -145
- package/dist/vendored/brepjs/topology/api.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/api.js +0 -282
- package/dist/vendored/brepjs/topology/api.js.map +0 -1
- package/dist/vendored/brepjs/topology/apiTypes.d.ts +0 -135
- package/dist/vendored/brepjs/topology/apiTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/apiTypes.js +0 -24
- package/dist/vendored/brepjs/topology/apiTypes.js.map +0 -1
- package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts +0 -52
- package/dist/vendored/brepjs/topology/booleanBatchFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/booleanBatchFns.js +0 -164
- package/dist/vendored/brepjs/topology/booleanBatchFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts +0 -21
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js +0 -23
- package/dist/vendored/brepjs/topology/booleanDiagnosticFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/booleanFns.d.ts +0 -155
- package/dist/vendored/brepjs/topology/booleanFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/booleanFns.js +0 -600
- package/dist/vendored/brepjs/topology/booleanFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/cast.d.ts +0 -48
- package/dist/vendored/brepjs/topology/cast.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/cast.js +0 -113
- package/dist/vendored/brepjs/topology/cast.js.map +0 -1
- package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts +0 -24
- package/dist/vendored/brepjs/topology/chamferAngleFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/chamferAngleFns.js +0 -64
- package/dist/vendored/brepjs/topology/chamferAngleFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts +0 -6
- package/dist/vendored/brepjs/topology/compoundOpsFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/compoundOpsFns.js +0 -6
- package/dist/vendored/brepjs/topology/compoundOpsFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/curveBuilders.d.ts +0 -90
- package/dist/vendored/brepjs/topology/curveBuilders.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/curveBuilders.js +0 -125
- package/dist/vendored/brepjs/topology/curveBuilders.js.map +0 -1
- package/dist/vendored/brepjs/topology/curveFns.d.ts +0 -96
- package/dist/vendored/brepjs/topology/curveFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/curveFns.js +0 -191
- package/dist/vendored/brepjs/topology/curveFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/evolutionFns.d.ts +0 -78
- package/dist/vendored/brepjs/topology/evolutionFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/evolutionFns.js +0 -271
- package/dist/vendored/brepjs/topology/evolutionFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/faceFns.d.ts +0 -86
- package/dist/vendored/brepjs/topology/faceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/faceFns.js +0 -169
- package/dist/vendored/brepjs/topology/faceFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/healingFns.d.ts +0 -98
- package/dist/vendored/brepjs/topology/healingFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/healingFns.js +0 -338
- package/dist/vendored/brepjs/topology/healingFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/hullFns.d.ts +0 -21
- package/dist/vendored/brepjs/topology/hullFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/hullFns.js +0 -60
- package/dist/vendored/brepjs/topology/hullFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/index.d.ts +0 -14
- package/dist/vendored/brepjs/topology/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/index.js +0 -17
- package/dist/vendored/brepjs/topology/index.js.map +0 -1
- package/dist/vendored/brepjs/topology/meshCache.d.ts +0 -68
- package/dist/vendored/brepjs/topology/meshCache.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/meshCache.js +0 -117
- package/dist/vendored/brepjs/topology/meshCache.js.map +0 -1
- package/dist/vendored/brepjs/topology/meshFns.d.ts +0 -179
- package/dist/vendored/brepjs/topology/meshFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/meshFns.js +0 -393
- package/dist/vendored/brepjs/topology/meshFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts +0 -41
- package/dist/vendored/brepjs/topology/metadata/colorFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/colorFns.js +0 -128
- package/dist/vendored/brepjs/topology/metadata/colorFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts +0 -44
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.js +0 -168
- package/dist/vendored/brepjs/topology/metadata/faceTagFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts +0 -59
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js +0 -109
- package/dist/vendored/brepjs/topology/metadata/metadataPropagation.js.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts +0 -43
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js +0 -270
- package/dist/vendored/brepjs/topology/metadata/originTrackingFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/minkowskiFns.d.ts +0 -26
- package/dist/vendored/brepjs/topology/minkowskiFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/minkowskiFns.js +0 -136
- package/dist/vendored/brepjs/topology/minkowskiFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/modifierFns.d.ts +0 -87
- package/dist/vendored/brepjs/topology/modifierFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/modifierFns.js +0 -446
- package/dist/vendored/brepjs/topology/modifierFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/nurbsFns.d.ts +0 -13
- package/dist/vendored/brepjs/topology/nurbsFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/nurbsFns.js +0 -22
- package/dist/vendored/brepjs/topology/nurbsFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/polyhedronFns.d.ts +0 -11
- package/dist/vendored/brepjs/topology/polyhedronFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/polyhedronFns.js +0 -47
- package/dist/vendored/brepjs/topology/polyhedronFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/positionFns.d.ts +0 -18
- package/dist/vendored/brepjs/topology/positionFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/positionFns.js +0 -34
- package/dist/vendored/brepjs/topology/positionFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/primitiveFns.d.ts +0 -244
- package/dist/vendored/brepjs/topology/primitiveFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/primitiveFns.js +0 -361
- package/dist/vendored/brepjs/topology/primitiveFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeBooleans.d.ts +0 -14
- package/dist/vendored/brepjs/topology/shapeBooleans.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeBooleans.js +0 -24
- package/dist/vendored/brepjs/topology/shapeBooleans.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeFns.d.ts +0 -30
- package/dist/vendored/brepjs/topology/shapeFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeFns.js +0 -50
- package/dist/vendored/brepjs/topology/shapeFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeHelpers.d.ts +0 -9
- package/dist/vendored/brepjs/topology/shapeHelpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeHelpers.js +0 -14
- package/dist/vendored/brepjs/topology/shapeHelpers.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeModifiers.d.ts +0 -33
- package/dist/vendored/brepjs/topology/shapeModifiers.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeModifiers.js +0 -28
- package/dist/vendored/brepjs/topology/shapeModifiers.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts +0 -29
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js +0 -135
- package/dist/vendored/brepjs/topology/shapeRef/derivedFaceRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts +0 -25
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js +0 -123
- package/dist/vendored/brepjs/topology/shapeRef/edgeRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/index.d.ts +0 -11
- package/dist/vendored/brepjs/topology/shapeRef/index.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/index.js +0 -10
- package/dist/vendored/brepjs/topology/shapeRef/index.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts +0 -66
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js +0 -128
- package/dist/vendored/brepjs/topology/shapeRef/refResolveFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts +0 -18
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js +0 -51
- package/dist/vendored/brepjs/topology/shapeRef/roleLookup.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts +0 -20
- package/dist/vendored/brepjs/topology/shapeRef/scoring.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/scoring.js +0 -65
- package/dist/vendored/brepjs/topology/shapeRef/scoring.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts +0 -59
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js +0 -266
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts +0 -153
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js +0 -6
- package/dist/vendored/brepjs/topology/shapeRef/shapeRefTypes.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts +0 -24
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js +0 -128
- package/dist/vendored/brepjs/topology/shapeRef/vertexRefFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/shapeUtils.d.ts +0 -16
- package/dist/vendored/brepjs/topology/shapeUtils.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/shapeUtils.js +0 -28
- package/dist/vendored/brepjs/topology/shapeUtils.js.map +0 -1
- package/dist/vendored/brepjs/topology/solidBuilders.d.ts +0 -74
- package/dist/vendored/brepjs/topology/solidBuilders.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/solidBuilders.js +0 -173
- package/dist/vendored/brepjs/topology/solidBuilders.js.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts +0 -47
- package/dist/vendored/brepjs/topology/surfaceBuilders.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceBuilders.js +0 -162
- package/dist/vendored/brepjs/topology/surfaceBuilders.js.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceFns.d.ts +0 -41
- package/dist/vendored/brepjs/topology/surfaceFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/surfaceFns.js +0 -178
- package/dist/vendored/brepjs/topology/surfaceFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/threeHelpers.d.ts +0 -124
- package/dist/vendored/brepjs/topology/threeHelpers.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/threeHelpers.js +0 -118
- package/dist/vendored/brepjs/topology/threeHelpers.js.map +0 -1
- package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts +0 -100
- package/dist/vendored/brepjs/topology/topologyQueryFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/topologyQueryFns.js +0 -307
- package/dist/vendored/brepjs/topology/topologyQueryFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/transformFns.d.ts +0 -69
- package/dist/vendored/brepjs/topology/transformFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/transformFns.js +0 -235
- package/dist/vendored/brepjs/topology/transformFns.js.map +0 -1
- package/dist/vendored/brepjs/topology/wrapperFns.d.ts +0 -169
- package/dist/vendored/brepjs/topology/wrapperFns.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology/wrapperFns.js +0 -291
- package/dist/vendored/brepjs/topology/wrapperFns.js.map +0 -1
- package/dist/vendored/brepjs/topology.d.ts +0 -28
- package/dist/vendored/brepjs/topology.d.ts.map +0 -1
- package/dist/vendored/brepjs/topology.js +0 -39
- package/dist/vendored/brepjs/topology.js.map +0 -1
- package/dist/vendored/brepjs/utils/arrayAccess.d.ts +0 -12
- package/dist/vendored/brepjs/utils/arrayAccess.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/arrayAccess.js +0 -25
- package/dist/vendored/brepjs/utils/arrayAccess.js.map +0 -1
- package/dist/vendored/brepjs/utils/bug.d.ts +0 -15
- package/dist/vendored/brepjs/utils/bug.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/bug.js +0 -21
- package/dist/vendored/brepjs/utils/bug.js.map +0 -1
- package/dist/vendored/brepjs/utils/ioFilename.d.ts +0 -3
- package/dist/vendored/brepjs/utils/ioFilename.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/ioFilename.js +0 -7
- package/dist/vendored/brepjs/utils/ioFilename.js.map +0 -1
- package/dist/vendored/brepjs/utils/precisionRound.d.ts +0 -11
- package/dist/vendored/brepjs/utils/precisionRound.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/precisionRound.js +0 -19
- package/dist/vendored/brepjs/utils/precisionRound.js.map +0 -1
- package/dist/vendored/brepjs/utils/quaternion.d.ts +0 -18
- package/dist/vendored/brepjs/utils/quaternion.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/quaternion.js +0 -68
- package/dist/vendored/brepjs/utils/quaternion.js.map +0 -1
- package/dist/vendored/brepjs/utils/range.d.ts +0 -3
- package/dist/vendored/brepjs/utils/range.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/range.js +0 -5
- package/dist/vendored/brepjs/utils/range.js.map +0 -1
- package/dist/vendored/brepjs/utils/uuid.d.ts +0 -3
- package/dist/vendored/brepjs/utils/uuid.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/uuid.js +0 -7
- package/dist/vendored/brepjs/utils/uuid.js.map +0 -1
- package/dist/vendored/brepjs/utils/vec2d.d.ts +0 -62
- package/dist/vendored/brepjs/utils/vec2d.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/vec2d.js +0 -107
- package/dist/vendored/brepjs/utils/vec2d.js.map +0 -1
- package/dist/vendored/brepjs/utils/vec3.d.ts +0 -32
- package/dist/vendored/brepjs/utils/vec3.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/vec3.js +0 -35
- package/dist/vendored/brepjs/utils/vec3.js.map +0 -1
- package/dist/vendored/brepjs/utils/zip.d.ts +0 -5
- package/dist/vendored/brepjs/utils/zip.d.ts.map +0 -1
- package/dist/vendored/brepjs/utils/zip.js +0 -8
- package/dist/vendored/brepjs/utils/zip.js.map +0 -1
- package/dist/vendored/brepjs/vectors.d.ts +0 -11
- package/dist/vendored/brepjs/vectors.d.ts.map +0 -1
- package/dist/vendored/brepjs/vectors.js +0 -9
- package/dist/vendored/brepjs/vectors.js.map +0 -1
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Mat4 } from '../math3d/index.js';
|
|
2
|
+
import { boxGeometry, sphereGeometry, cylinderGeometry, coneGeometry } from '../mesh/meshdata/parametric.js';
|
|
3
|
+
import { transformShape, translateShape, mergeShapes } from '../mesh/meshdata/ops.js';
|
|
2
4
|
/** Default size in mm used when no explicit size is given. */
|
|
3
5
|
export const DEFAULT_SIZE = 20;
|
|
4
6
|
/** Default angular/height segment count used by curved primitives. */
|
|
5
7
|
export const DEFAULT_SEGMENTS = 32;
|
|
6
8
|
/** Rotation matrix: +90° around X — converts Y-up vertex data to Z-up. */
|
|
7
|
-
const ROT_Y_TO_Z = new
|
|
9
|
+
const ROT_Y_TO_Z = new Mat4().makeRotationX(Math.PI / 2);
|
|
8
10
|
/**
|
|
9
11
|
* Build the base geometry for a primitive type, centred on the origin.
|
|
10
12
|
*
|
|
11
|
-
* Returns a
|
|
13
|
+
* Returns a Shape in Z-up coordinates. Cube/sphere/cylinder/cone
|
|
12
14
|
* geometry is rotated from Y-up to Z-up; the wedge is constructed directly
|
|
13
15
|
* in Z-up.
|
|
14
16
|
*
|
|
15
17
|
* @param type - the primitive type to build.
|
|
16
18
|
* @param size - nominal size in mm (defaults to DEFAULT_SIZE).
|
|
17
19
|
* @param segments - angular/height resolution for curved primitives (defaults to DEFAULT_SEGMENTS).
|
|
18
|
-
* @returns the primitive
|
|
20
|
+
* @returns the primitive Shape.
|
|
19
21
|
*/
|
|
20
22
|
export function makePrimitiveGeo(type, size, segments) {
|
|
21
23
|
const s = size ?? DEFAULT_SIZE;
|
|
@@ -23,22 +25,26 @@ export function makePrimitiveGeo(type, size, segments) {
|
|
|
23
25
|
let geo;
|
|
24
26
|
switch (type) {
|
|
25
27
|
case 'cube':
|
|
26
|
-
case 'box':
|
|
27
|
-
|
|
28
|
-
geo
|
|
28
|
+
case 'box': {
|
|
29
|
+
const g = boxGeometry(s, s, s);
|
|
30
|
+
geo = transformShape(g, ROT_Y_TO_Z);
|
|
29
31
|
break;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
}
|
|
33
|
+
case 'sphere': {
|
|
34
|
+
const g = sphereGeometry(s / 2, segs, segs);
|
|
35
|
+
geo = transformShape(g, ROT_Y_TO_Z);
|
|
33
36
|
break;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
}
|
|
38
|
+
case 'cylinder': {
|
|
39
|
+
const g = cylinderGeometry(s / 2, s / 2, s, segs);
|
|
40
|
+
geo = transformShape(g, ROT_Y_TO_Z);
|
|
37
41
|
break;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
}
|
|
43
|
+
case 'cone': {
|
|
44
|
+
const g = coneGeometry(s / 2, s, segs);
|
|
45
|
+
geo = transformShape(g, ROT_Y_TO_Z);
|
|
41
46
|
break;
|
|
47
|
+
}
|
|
42
48
|
case 'wedge': {
|
|
43
49
|
// 楔形体:梯形棱柱,直接在 Z-up 中构建
|
|
44
50
|
// 梯形在 YZ 平面(Y=宽度方向,Z=高度方向),拉升沿 X 轴
|
|
@@ -76,10 +82,7 @@ export function makePrimitiveGeo(type, size, segments) {
|
|
|
76
82
|
// 右侧面 (outward = +Y)
|
|
77
83
|
1, 6, 5, 1, 2, 6,
|
|
78
84
|
]);
|
|
79
|
-
geo =
|
|
80
|
-
geo.setAttribute('position', new THREE.BufferAttribute(positions, 3));
|
|
81
|
-
geo.setIndex(new THREE.BufferAttribute(indices, 1));
|
|
82
|
-
// 楔形体直接在 Z-up 中构建,无需 ROT_Y_TO_Z
|
|
85
|
+
geo = { positions, indices };
|
|
83
86
|
break;
|
|
84
87
|
}
|
|
85
88
|
}
|
|
@@ -93,68 +96,18 @@ export function makePrimitiveGeo(type, size, segments) {
|
|
|
93
96
|
* @param geo - the geometry to translate.
|
|
94
97
|
* @param x - the X offset in mm.
|
|
95
98
|
* @param y - the Y offset in mm.
|
|
99
|
+
* @returns a new translated Shape.
|
|
96
100
|
*/
|
|
97
101
|
export function applyPrimitiveOffset(geo, x, y) {
|
|
98
|
-
|
|
99
|
-
return;
|
|
100
|
-
geo.translate(x, y, 0);
|
|
102
|
+
return translateShape(geo, x, y, 0);
|
|
101
103
|
}
|
|
102
104
|
/**
|
|
103
|
-
* Merge multiple
|
|
104
|
-
* Automatically handles a mix of indexed and non-indexed inputs.
|
|
105
|
+
* Merge multiple Shapes into a single indexed Shape.
|
|
105
106
|
*
|
|
106
|
-
* @param geometries - the
|
|
107
|
-
* @returns a new
|
|
107
|
+
* @param geometries - the shapes to merge.
|
|
108
|
+
* @returns a new Shape containing the combined vertices and triangles.
|
|
108
109
|
*/
|
|
109
110
|
export function mergeBufferGeometries(geometries) {
|
|
110
|
-
|
|
111
|
-
return geometries[0].clone();
|
|
112
|
-
const merged = new THREE.BufferGeometry();
|
|
113
|
-
// Collect all position arrays
|
|
114
|
-
const allPositions = [];
|
|
115
|
-
const allIndices = [];
|
|
116
|
-
let vertexOffset = 0;
|
|
117
|
-
for (const geo of geometries) {
|
|
118
|
-
const pos = geo.getAttribute('position');
|
|
119
|
-
if (!pos)
|
|
120
|
-
continue;
|
|
121
|
-
allPositions.push(new Float32Array(pos.array));
|
|
122
|
-
const idx = geo.index;
|
|
123
|
-
if (idx) {
|
|
124
|
-
const shifted = new Uint32Array(idx.array.length);
|
|
125
|
-
for (let i = 0; i < idx.count; i++) {
|
|
126
|
-
shifted[i] = idx.array[i] + vertexOffset;
|
|
127
|
-
}
|
|
128
|
-
allIndices.push(shifted);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
// Non-indexed geometry: create sequential indices
|
|
132
|
-
const count = pos.count;
|
|
133
|
-
const indices = new Uint32Array(count);
|
|
134
|
-
for (let i = 0; i < count; i++)
|
|
135
|
-
indices[i] = i + vertexOffset;
|
|
136
|
-
allIndices.push(indices);
|
|
137
|
-
}
|
|
138
|
-
vertexOffset += pos.count;
|
|
139
|
-
}
|
|
140
|
-
// Concatenate positions
|
|
141
|
-
const totalPosLen = allPositions.reduce((s, a) => s + a.length, 0);
|
|
142
|
-
const mergedPos = new Float32Array(totalPosLen);
|
|
143
|
-
let posOffset = 0;
|
|
144
|
-
for (const arr of allPositions) {
|
|
145
|
-
mergedPos.set(arr, posOffset);
|
|
146
|
-
posOffset += arr.length;
|
|
147
|
-
}
|
|
148
|
-
merged.setAttribute('position', new THREE.BufferAttribute(mergedPos, 3));
|
|
149
|
-
// Concatenate indices
|
|
150
|
-
const totalIdxLen = allIndices.reduce((s, a) => s + a.length, 0);
|
|
151
|
-
const mergedIdx = new Uint32Array(totalIdxLen);
|
|
152
|
-
let idxOffset = 0;
|
|
153
|
-
for (const arr of allIndices) {
|
|
154
|
-
mergedIdx.set(arr, idxOffset);
|
|
155
|
-
idxOffset += arr.length;
|
|
156
|
-
}
|
|
157
|
-
merged.setIndex(new THREE.BufferAttribute(mergedIdx, 1));
|
|
158
|
-
return merged;
|
|
111
|
+
return mergeShapes(geometries);
|
|
159
112
|
}
|
|
160
113
|
//# sourceMappingURL=mesh-primitives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-primitives.js","sourceRoot":"","sources":["../../src/primitives/mesh-primitives.ts"],"names":[],"mappings":"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","sourcesContent":["import * as THREE from 'three'\nimport type { PrimitiveType } from './types'\n\n/** Default size in mm used when no explicit size is given. */\nexport const DEFAULT_SIZE = 20\n/** Default angular/height segment count used by curved primitives. */\nexport const DEFAULT_SEGMENTS = 32\n\n/** Rotation matrix: +90° around X — converts Y-up vertex data to Z-up. */\nconst ROT_Y_TO_Z = new THREE.Matrix4().makeRotationX(Math.PI / 2)\n\n/**\n * Build the base geometry for a primitive type, centred on the origin.\n *\n * Returns a BufferGeometry in Z-up coordinates. Cube/sphere/cylinder/cone\n * geometry is rotated from Y-up to Z-up; the wedge is constructed directly\n * in Z-up.\n *\n * @param type - the primitive type to build.\n * @param size - nominal size in mm (defaults to DEFAULT_SIZE).\n * @param segments - angular/height resolution for curved primitives (defaults to DEFAULT_SEGMENTS).\n * @returns the primitive BufferGeometry.\n */\nexport function makePrimitiveGeo(\n type: PrimitiveType,\n size?: number,\n segments?: number,\n): THREE.BufferGeometry {\n const s = size ?? DEFAULT_SIZE\n const segs = segments ?? DEFAULT_SEGMENTS\n\n let geo: THREE.BufferGeometry\n switch (type) {\n case 'cube':\n case 'box':\n geo = new THREE.BoxGeometry(s, s, s)\n geo.applyMatrix4(ROT_Y_TO_Z)\n break\n case 'sphere':\n geo = new THREE.SphereGeometry(s / 2, segs, segs)\n geo.applyMatrix4(ROT_Y_TO_Z)\n break\n case 'cylinder':\n geo = new THREE.CylinderGeometry(s / 2, s / 2, s, segs)\n geo.applyMatrix4(ROT_Y_TO_Z)\n break\n case 'cone':\n geo = new THREE.ConeGeometry(s / 2, s, segs)\n geo.applyMatrix4(ROT_Y_TO_Z)\n break\n case 'wedge': {\n // 楔形体:梯形棱柱,直接在 Z-up 中构建\n // 梯形在 YZ 平面(Y=宽度方向,Z=高度方向),拉升沿 X 轴\n const width = s // 底边长度(沿 Y)\n const height = s / 2 // 梯形高(沿 Z,默认 10mm)\n const angleDeg = 60 // 底边与斜边的夹角\n const angleRad = (angleDeg * Math.PI) / 180\n const halfExtrude = 25 // 拉升总长 50mm(沿 X)\n const hw = width / 2\n\n // 上边半宽 = 底边半宽 - 高 / tan(角度),钳制到 >= 0\n const halfTopWidth = Math.max(0, hw - height / Math.tan(angleRad))\n\n const positions = new Float32Array([\n // 前端面 (X = -halfExtrude)\n -halfExtrude, -hw, 0, // p0: bottomLeft\n -halfExtrude, hw, 0, // p1: bottomRight\n -halfExtrude, halfTopWidth, height, // p2: topRight\n -halfExtrude, -halfTopWidth, height, // p3: topLeft\n // 后端面 (X = +halfExtrude)\n halfExtrude, -hw, 0, // p4: bottomLeft\n halfExtrude, hw, 0, // p5: bottomRight\n halfExtrude, halfTopWidth, height, // p6: topRight\n halfExtrude, -halfTopWidth, height, // p7: topLeft\n ])\n\n const indices = new Uint32Array([\n // 前端面 (outward = -X, counterclockwise from outside)\n 0, 2, 1, 0, 3, 2,\n // 后端面 (outward = +X, counterclockwise from outside)\n 4, 5, 6, 4, 6, 7,\n // 底面 (outward = -Z)\n 0, 5, 4, 0, 1, 5,\n // 顶面 (outward = +Z)\n 3, 6, 2, 3, 7, 6,\n // 左侧面 (outward = -Y)\n 0, 7, 3, 0, 4, 7,\n // 右侧面 (outward = +Y)\n 1, 6, 5, 1, 2, 6,\n ])\n\n geo = new THREE.BufferGeometry()\n geo.setAttribute('position', new THREE.BufferAttribute(positions, 3))\n geo.setIndex(new THREE.BufferAttribute(indices, 1))\n // 楔形体直接在 Z-up 中构建,无需 ROT_Y_TO_Z\n break\n }\n }\n\n return geo\n}\n\n/**\n * Translate geometry to the given world coordinates.\n * The geometry should already be centred on the origin (makePrimitiveGeo /\n * makeScrew / createTextGeometry all produce centred geometry).\n *\n * @param geo - the geometry to translate.\n * @param x - the X offset in mm.\n * @param y - the Y offset in mm.\n */\nexport function applyPrimitiveOffset(\n geo: THREE.BufferGeometry,\n x: number,\n y: number,\n): void {\n if (x === 0 && y === 0) return\n geo.translate(x, y, 0)\n}\n\n/**\n * Merge multiple BufferGeometries into a single indexed geometry.\n * Automatically handles a mix of indexed and non-indexed inputs.\n *\n * @param geometries - the geometries to merge.\n * @returns a new BufferGeometry containing the combined vertices and triangles.\n */\nexport function mergeBufferGeometries(geometries: THREE.BufferGeometry[]): THREE.BufferGeometry {\n if (geometries.length === 1) return geometries[0].clone()\n\n const merged = new THREE.BufferGeometry()\n\n // Collect all position arrays\n const allPositions: Float32Array[] = []\n const allIndices: Uint32Array[] = []\n let vertexOffset = 0\n\n for (const geo of geometries) {\n const pos = geo.getAttribute('position') as THREE.BufferAttribute\n if (!pos) continue\n\n allPositions.push(new Float32Array(pos.array))\n const idx = geo.index\n if (idx) {\n const shifted = new Uint32Array(idx.array.length)\n for (let i = 0; i < idx.count; i++) {\n shifted[i] = (idx.array as Uint32Array | Uint16Array)[i] + vertexOffset\n }\n allIndices.push(shifted)\n } else {\n // Non-indexed geometry: create sequential indices\n const count = pos.count\n const indices = new Uint32Array(count)\n for (let i = 0; i < count; i++) indices[i] = i + vertexOffset\n allIndices.push(indices)\n }\n vertexOffset += pos.count\n }\n\n // Concatenate positions\n const totalPosLen = allPositions.reduce((s, a) => s + a.length, 0)\n const mergedPos = new Float32Array(totalPosLen)\n let posOffset = 0\n for (const arr of allPositions) {\n mergedPos.set(arr, posOffset)\n posOffset += arr.length\n }\n merged.setAttribute('position', new THREE.BufferAttribute(mergedPos, 3))\n\n // Concatenate indices\n const totalIdxLen = allIndices.reduce((s, a) => s + a.length, 0)\n const mergedIdx = new Uint32Array(totalIdxLen)\n let idxOffset = 0\n for (const arr of allIndices) {\n mergedIdx.set(arr, idxOffset)\n idxOffset += arr.length\n }\n merged.setIndex(new THREE.BufferAttribute(mergedIdx, 1))\n\n return merged\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mesh-primitives.js","sourceRoot":"","sources":["../../src/primitives/mesh-primitives.ts"],"names":[],"mappings":"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","sourcesContent":["import { Mat4 } from '../math3d'\nimport type { Shape } from '../mesh/types'\nimport { boxGeometry, sphereGeometry, cylinderGeometry, coneGeometry } from '../mesh/meshdata/parametric'\nimport { transformShape, translateShape, mergeShapes } from '../mesh/meshdata/ops'\nimport type { PrimitiveType } from './types'\n\n/** Default size in mm used when no explicit size is given. */\nexport const DEFAULT_SIZE = 20\n/** Default angular/height segment count used by curved primitives. */\nexport const DEFAULT_SEGMENTS = 32\n\n/** Rotation matrix: +90° around X — converts Y-up vertex data to Z-up. */\nconst ROT_Y_TO_Z = new Mat4().makeRotationX(Math.PI / 2)\n\n/**\n * Build the base geometry for a primitive type, centred on the origin.\n *\n * Returns a Shape in Z-up coordinates. Cube/sphere/cylinder/cone\n * geometry is rotated from Y-up to Z-up; the wedge is constructed directly\n * in Z-up.\n *\n * @param type - the primitive type to build.\n * @param size - nominal size in mm (defaults to DEFAULT_SIZE).\n * @param segments - angular/height resolution for curved primitives (defaults to DEFAULT_SEGMENTS).\n * @returns the primitive Shape.\n */\nexport function makePrimitiveGeo(\n type: PrimitiveType,\n size?: number,\n segments?: number,\n): Shape {\n const s = size ?? DEFAULT_SIZE\n const segs = segments ?? DEFAULT_SEGMENTS\n\n let geo: Shape\n switch (type) {\n case 'cube':\n case 'box': {\n const g = boxGeometry(s, s, s)\n geo = transformShape(g, ROT_Y_TO_Z)\n break\n }\n case 'sphere': {\n const g = sphereGeometry(s / 2, segs, segs)\n geo = transformShape(g, ROT_Y_TO_Z)\n break\n }\n case 'cylinder': {\n const g = cylinderGeometry(s / 2, s / 2, s, segs)\n geo = transformShape(g, ROT_Y_TO_Z)\n break\n }\n case 'cone': {\n const g = coneGeometry(s / 2, s, segs)\n geo = transformShape(g, ROT_Y_TO_Z)\n break\n }\n case 'wedge': {\n // 楔形体:梯形棱柱,直接在 Z-up 中构建\n // 梯形在 YZ 平面(Y=宽度方向,Z=高度方向),拉升沿 X 轴\n const width = s // 底边长度(沿 Y)\n const height = s / 2 // 梯形高(沿 Z,默认 10mm)\n const angleDeg = 60 // 底边与斜边的夹角\n const angleRad = (angleDeg * Math.PI) / 180\n const halfExtrude = 25 // 拉升总长 50mm(沿 X)\n const hw = width / 2\n\n // 上边半宽 = 底边半宽 - 高 / tan(角度),钳制到 >= 0\n const halfTopWidth = Math.max(0, hw - height / Math.tan(angleRad))\n\n const positions = new Float32Array([\n // 前端面 (X = -halfExtrude)\n -halfExtrude, -hw, 0, // p0: bottomLeft\n -halfExtrude, hw, 0, // p1: bottomRight\n -halfExtrude, halfTopWidth, height, // p2: topRight\n -halfExtrude, -halfTopWidth, height, // p3: topLeft\n // 后端面 (X = +halfExtrude)\n halfExtrude, -hw, 0, // p4: bottomLeft\n halfExtrude, hw, 0, // p5: bottomRight\n halfExtrude, halfTopWidth, height, // p6: topRight\n halfExtrude, -halfTopWidth, height, // p7: topLeft\n ])\n\n const indices = new Uint32Array([\n // 前端面 (outward = -X, counterclockwise from outside)\n 0, 2, 1, 0, 3, 2,\n // 后端面 (outward = +X, counterclockwise from outside)\n 4, 5, 6, 4, 6, 7,\n // 底面 (outward = -Z)\n 0, 5, 4, 0, 1, 5,\n // 顶面 (outward = +Z)\n 3, 6, 2, 3, 7, 6,\n // 左侧面 (outward = -Y)\n 0, 7, 3, 0, 4, 7,\n // 右侧面 (outward = +Y)\n 1, 6, 5, 1, 2, 6,\n ])\n\n geo = { positions, indices }\n break\n }\n }\n\n return geo\n}\n\n/**\n * Translate geometry to the given world coordinates.\n * The geometry should already be centred on the origin (makePrimitiveGeo /\n * makeScrew / createTextGeometry all produce centred geometry).\n *\n * @param geo - the geometry to translate.\n * @param x - the X offset in mm.\n * @param y - the Y offset in mm.\n * @returns a new translated Shape.\n */\nexport function applyPrimitiveOffset(\n geo: Shape,\n x: number,\n y: number,\n): Shape {\n return translateShape(geo, x, y, 0)\n}\n\n/**\n * Merge multiple Shapes into a single indexed Shape.\n *\n * @param geometries - the shapes to merge.\n * @returns a new Shape containing the combined vertices and triangles.\n */\nexport function mergeBufferGeometries(geometries: Shape[]): Shape {\n return mergeShapes(geometries)\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { GeoData } from '../../mesh/meshdata/parametric.js';
|
|
2
2
|
import type { ScrewParams } from './screw-db.js';
|
|
3
3
|
/**
|
|
4
4
|
* Generate screw geometry from parameters.
|
|
@@ -7,7 +7,7 @@ import type { ScrewParams } from './screw-db.js';
|
|
|
7
7
|
* at a specific angular phase; vertices near that phase get larger radius.
|
|
8
8
|
*
|
|
9
9
|
* @param params - the screw parameters (system, spec, thread, length, head, resolution).
|
|
10
|
-
* @returns a Z-up
|
|
10
|
+
* @returns a Z-up GeoData of the screw.
|
|
11
11
|
*/
|
|
12
|
-
export declare function makeScrew(params: ScrewParams):
|
|
12
|
+
export declare function makeScrew(params: ScrewParams): GeoData;
|
|
13
13
|
//# sourceMappingURL=screw.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screw.d.ts","sourceRoot":"","sources":["../../../src/primitives/screw/screw.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"screw.d.ts","sourceRoot":"","sources":["../../../src/primitives/screw/screw.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AA4B7C;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CA6KtD"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Mat4 } from '../../math3d/index.js';
|
|
2
|
+
import { transformShape } from '../../mesh/meshdata/ops.js';
|
|
2
3
|
import { getScrewSpec, threadToPitchMm, SCREW_HEAD_DIMS } from './screw-db.js';
|
|
3
4
|
/** Max axial rings */
|
|
4
5
|
const N_AX_MAX = 3200;
|
|
5
6
|
/** Rings per full turn */
|
|
6
7
|
const N_PER_TURN = 32;
|
|
7
8
|
/** Rotation matrix: +90° around X — converts Y-up vertex data to Z-up. */
|
|
8
|
-
const ROT_Y_TO_Z = new
|
|
9
|
+
const ROT_Y_TO_Z = new Mat4().makeRotationX(Math.PI / 2);
|
|
9
10
|
/**
|
|
10
11
|
* Modulo that always returns a positive result.
|
|
11
12
|
*/
|
|
@@ -27,7 +28,7 @@ function threadProfileFactor(offset) {
|
|
|
27
28
|
* at a specific angular phase; vertices near that phase get larger radius.
|
|
28
29
|
*
|
|
29
30
|
* @param params - the screw parameters (system, spec, thread, length, head, resolution).
|
|
30
|
-
* @returns a Z-up
|
|
31
|
+
* @returns a Z-up GeoData of the screw.
|
|
31
32
|
*/
|
|
32
33
|
export function makeScrew(params) {
|
|
33
34
|
const { system, specIdx, thread, pitchCustom, length, head, nRad, } = params;
|
|
@@ -166,11 +167,11 @@ export function makeScrew(params) {
|
|
|
166
167
|
tris.push(ringVertex(topRing, j), centerIdx, ringVertex(topRing, jNext));
|
|
167
168
|
}
|
|
168
169
|
}
|
|
169
|
-
// ---- Build
|
|
170
|
-
const geo =
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
return geo;
|
|
170
|
+
// ---- Build GeoData and rotate to Z-up ----
|
|
171
|
+
const geo = {
|
|
172
|
+
positions: new Float32Array(vPos),
|
|
173
|
+
indices: new Uint32Array(tris),
|
|
174
|
+
};
|
|
175
|
+
return transformShape(geo, ROT_Y_TO_Z);
|
|
175
176
|
}
|
|
176
177
|
//# sourceMappingURL=screw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screw.js","sourceRoot":"","sources":["../../../src/primitives/screw/screw.ts"],"names":[],"mappings":"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","sourcesContent":["import * as THREE from 'three'\nimport type { ScrewParams } from './screw-db'\nimport { getScrewSpec, threadToPitchMm, SCREW_HEAD_DIMS } from './screw-db'\n\n/** Max axial rings */\nconst N_AX_MAX = 3200\n\n/** Rings per full turn */\nconst N_PER_TURN = 32\n\n/** Rotation matrix: +90° around X — converts Y-up vertex data to Z-up. */\nconst ROT_Y_TO_Z = new THREE.Matrix4().makeRotationX(Math.PI / 2)\n\n/**\n * Modulo that always returns a positive result.\n */\nfunction modPos(a: number, b: number): number {\n return ((a % b) + b) % b\n}\n\n/**\n * Thread radial profile: returns radial factor [0..1] at a given angular offset\n * from the thread peak. offset=0 → crest, offset=±π → root.\n * Uses a sinusoidal profile.\n */\nfunction threadProfileFactor(offset: number): number {\n return (1 + Math.cos(offset)) / 2\n}\n\n/**\n * Generate screw geometry from parameters.\n * Internally Y-up (NASSCAD convention), then rotated to Z-up.\n * Thread ridge follows a helix: at each axial position, the crest occurs\n * at a specific angular phase; vertices near that phase get larger radius.\n *\n * @param params - the screw parameters (system, spec, thread, length, head, resolution).\n * @returns a Z-up BufferGeometry of the screw.\n */\nexport function makeScrew(params: ScrewParams): THREE.BufferGeometry {\n const {\n system,\n specIdx,\n thread,\n pitchCustom,\n length,\n head,\n nRad,\n } = params\n\n const spec = getScrewSpec(system, specIdx)\n const pitch = threadToPitchMm(system, spec, thread, pitchCustom)\n const rCrest = spec.dia / 2\n const rRoot = thread === 'none' ? rCrest : rCrest * 0.85\n\n // Number of axial rings\n const nAxial = pitch > 0\n ? Math.min(Math.round(length / pitch * N_PER_TURN), N_AX_MAX)\n : 4\n const nAxialClamped = Math.max(3, nAxial)\n\n // Fade region rings for lead-in/lead-out\n const fadeRings = Math.min(N_PER_TURN, Math.max(2, Math.floor(nAxialClamped * 0.12)))\n\n // Head geometry\n const hasHead = head !== 'none'\n const headRings = hasHead ? Math.max(4, Math.floor(nRad / 4)) : 0\n const totalRings = nAxialClamped + headRings\n\n // Head dimensions (shared with BREP path via SCREW_HEAD_DIMS)\n const headHeight = hasHead\n ? spec.dia * (head === 'hex' ? SCREW_HEAD_DIMS.hex.heightFactor : SCREW_HEAD_DIMS.chc.heightFactor)\n : 0\n const headRadius = hasHead\n ? spec.dia * (head === 'hex' ? SCREW_HEAD_DIMS.hex.radiusFactor : SCREW_HEAD_DIMS.chc.radiusFactor)\n : 0\n\n const vPos: number[] = []\n const tris: number[] = []\n\n // ---- Generate body rings ----\n // Shank is centered: Y from -length/2 to +length/2 (head at +length/2 end)\n for (let i = 0; i < nAxialClamped; i++) {\n const t = nAxialClamped > 1 ? i / (nAxialClamped - 1) : 0\n const axialPos = t * length - length / 2 // Y position (centered)\n\n // Thread helix phase at this axial position\n const threadPhase = pitch > 0 ? (axialPos / pitch) * 2 * Math.PI : 0\n\n // Fade factor: thread depth ramps up/down\n let fade = 1\n if (i < fadeRings) {\n fade = i / fadeRings\n } else if (i > nAxialClamped - fadeRings) {\n fade = (nAxialClamped - 1 - i) / (fadeRings - 1)\n }\n fade = Math.max(0, Math.min(1, fade))\n\n for (let j = 0; j < nRad; j++) {\n const phi = (j / nRad) * 2 * Math.PI\n\n let r: number\n if (thread === 'none') {\n r = rCrest\n } else {\n // Angular offset from thread peak\n const offset = modPos(phi - threadPhase + Math.PI, 2 * Math.PI) - Math.PI\n const profile = threadProfileFactor(offset)\n r = rRoot + (rCrest - rRoot) * profile * fade\n }\n\n const x = r * Math.cos(phi)\n const z = r * Math.sin(phi)\n vPos.push(x, axialPos, z)\n }\n }\n\n // ---- Generate head rings ----\n if (hasHead) {\n for (let i = 0; i < headRings; i++) {\n const t = headRings > 1 ? i / (headRings - 1) : 0\n const axialPos = length / 2 + t * headHeight\n\n for (let j = 0; j < nRad; j++) {\n const phi = (j / nRad) * 2 * Math.PI\n\n // Head blends from body-top radius to larger head radius\n const headR = headRadius\n const blend = Math.min(1, t * 2)\n const r = rCrest + (headR - rCrest) * blend\n\n let rx = r * Math.cos(phi)\n let rz = r * Math.sin(phi)\n\n if (head === 'hex') {\n // Hex head: truncate to flat sides every 60°\n // Circumscribed circle r acts as the \"corner-to-corner\" radius;\n // the flat-to-flat distance is r * sqrt(3)\n const flatAngle = Math.PI / 3\n const seg = Math.floor(phi / flatAngle)\n const angleInSeg = phi - seg * flatAngle\n // Distance from center to flat side at this angle\n const cornerR = r\n const flatDist = cornerR * Math.cos(Math.PI / 6) // flat-to-center distance\n const cosToFlat = Math.abs(Math.cos(angleInSeg - flatAngle / 2))\n const sideR = flatDist / Math.max(cosToFlat, 0.01)\n rx = sideR * Math.cos(phi)\n rz = sideR * Math.sin(phi)\n }\n\n vPos.push(rx, axialPos, rz)\n }\n }\n }\n\n // ---- Generate triangle indices ----\n function ringVertex(ring: number, seg: number): number {\n return ring * nRad + seg\n }\n\n // Connect adjacent rings\n for (let i = 0; i < totalRings - 1; i++) {\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n const a = ringVertex(i, j)\n const b = ringVertex(i, jNext)\n const c = ringVertex(i + 1, j)\n const d = ringVertex(i + 1, jNext)\n // Reversed winding: (a,c,b) and (c,d,b) → outward normals\n tris.push(a, c, b)\n tris.push(c, d, b)\n }\n }\n\n // Close top (cap) if no head\n if (!hasHead && nAxialClamped > 1) {\n const topRing = nAxialClamped - 1\n const centerIdx = vPos.length / 3\n vPos.push(0, length / 2, 0) // centered: top is at +length/2\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n tris.push(ringVertex(topRing, j), centerIdx, ringVertex(topRing, jNext))\n }\n }\n\n // Close bottom (always cap)\n if (nAxialClamped > 1) {\n const centerIdx = vPos.length / 3\n vPos.push(0, -length / 2, 0) // centered: bottom is at -length/2\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n tris.push(ringVertex(0, jNext), centerIdx, ringVertex(0, j))\n }\n }\n\n // Close head top\n if (hasHead) {\n const topRing = totalRings - 1\n const centerIdx = vPos.length / 3\n vPos.push(0, length / 2 + headHeight, 0) // centered: head top at length/2 + headHeight\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n tris.push(ringVertex(topRing, j), centerIdx, ringVertex(topRing, jNext))\n }\n }\n\n // ---- Build BufferGeometry and rotate to Z-up ----\n const geo = new THREE.BufferGeometry()\n geo.setAttribute('position', new THREE.BufferAttribute(new Float32Array(vPos), 3))\n geo.setIndex(new THREE.BufferAttribute(new Uint32Array(tris), 1))\n geo.applyMatrix4(ROT_Y_TO_Z)\n\n return geo\n}\n"]}
|
|
1
|
+
{"version":3,"file":"screw.js","sourceRoot":"","sources":["../../../src/primitives/screw/screw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3E,sBAAsB;AACtB,MAAM,QAAQ,GAAG,IAAI,CAAA;AAErB,0BAA0B;AAC1B,MAAM,UAAU,GAAG,EAAE,CAAA;AAErB,0EAA0E;AAC1E,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAExD;;GAEG;AACH,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,MAAM,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,EACX,MAAM,EACN,IAAI,EACJ,IAAI,GACL,GAAG,MAAM,CAAA;IAEV,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAA;IAExD,wBAAwB;IACxB,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC;QACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC,EAAE,QAAQ,CAAC;QAC7D,CAAC,CAAC,CAAC,CAAA;IACL,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAEzC,yCAAyC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IAErF,gBAAgB;IAChB,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,CAAA;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,CAAA;IAE5C,8DAA8D;IAC9D,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;QACnG,CAAC,CAAC,CAAC,CAAA;IACL,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;QACnG,CAAC,CAAC,CAAC,CAAA;IAEL,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,IAAI,GAAa,EAAE,CAAA;IAEzB,gCAAgC;IAChC,2EAA2E;IAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA,CAAE,wBAAwB;QAElE,4CAA4C;QAC5C,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpE,0CAA0C;QAC1C,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,GAAG,SAAS,CAAA;QACtB,CAAC;aAAM,IAAI,CAAC,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;YAEpC,IAAI,CAAS,CAAA;YACb,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,CAAC,GAAG,MAAM,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;gBACzE,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;gBAC3C,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAA;YAC/C,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAA;YAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;gBAEpC,yDAAyD;gBACzD,MAAM,KAAK,GAAG,UAAU,CAAA;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;gBAChC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,CAAA;gBAE3C,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC1B,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAE1B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACnB,6CAA6C;oBAC7C,gEAAgE;oBAChE,2CAA2C;oBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;oBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;oBACvC,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAA;oBACxC,kDAAkD;oBAClD,MAAM,OAAO,GAAG,CAAC,CAAA;oBACjB,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA,CAAE,0BAA0B;oBAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;oBAChE,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;oBAClD,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAC1B,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC5B,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,SAAS,UAAU,CAAC,IAAY,EAAE,GAAW;QAC3C,OAAO,IAAI,GAAG,IAAI,GAAG,GAAG,CAAA;IAC1B,CAAC;IAED,yBAAyB;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC9B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAClC,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,OAAO,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,CAAA;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,gCAAgC;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,mCAAmC;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAA;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC,CAAA,CAAE,8CAA8C;QACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,GAAG,GAAY;QACnB,SAAS,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;QACjC,OAAO,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC;KAC/B,CAAA;IACD,OAAO,cAAc,CAAC,GAAG,EAAE,UAAU,CAAY,CAAA;AACnD,CAAC","sourcesContent":["import { Mat4 } from '../../math3d'\nimport { transformShape } from '../../mesh/meshdata/ops'\nimport type { GeoData } from '../../mesh/meshdata/parametric'\nimport type { ScrewParams } from './screw-db'\nimport { getScrewSpec, threadToPitchMm, SCREW_HEAD_DIMS } from './screw-db'\n\n/** Max axial rings */\nconst N_AX_MAX = 3200\n\n/** Rings per full turn */\nconst N_PER_TURN = 32\n\n/** Rotation matrix: +90° around X — converts Y-up vertex data to Z-up. */\nconst ROT_Y_TO_Z = new Mat4().makeRotationX(Math.PI / 2)\n\n/**\n * Modulo that always returns a positive result.\n */\nfunction modPos(a: number, b: number): number {\n return ((a % b) + b) % b\n}\n\n/**\n * Thread radial profile: returns radial factor [0..1] at a given angular offset\n * from the thread peak. offset=0 → crest, offset=±π → root.\n * Uses a sinusoidal profile.\n */\nfunction threadProfileFactor(offset: number): number {\n return (1 + Math.cos(offset)) / 2\n}\n\n/**\n * Generate screw geometry from parameters.\n * Internally Y-up (NASSCAD convention), then rotated to Z-up.\n * Thread ridge follows a helix: at each axial position, the crest occurs\n * at a specific angular phase; vertices near that phase get larger radius.\n *\n * @param params - the screw parameters (system, spec, thread, length, head, resolution).\n * @returns a Z-up GeoData of the screw.\n */\nexport function makeScrew(params: ScrewParams): GeoData {\n const {\n system,\n specIdx,\n thread,\n pitchCustom,\n length,\n head,\n nRad,\n } = params\n\n const spec = getScrewSpec(system, specIdx)\n const pitch = threadToPitchMm(system, spec, thread, pitchCustom)\n const rCrest = spec.dia / 2\n const rRoot = thread === 'none' ? rCrest : rCrest * 0.85\n\n // Number of axial rings\n const nAxial = pitch > 0\n ? Math.min(Math.round(length / pitch * N_PER_TURN), N_AX_MAX)\n : 4\n const nAxialClamped = Math.max(3, nAxial)\n\n // Fade region rings for lead-in/lead-out\n const fadeRings = Math.min(N_PER_TURN, Math.max(2, Math.floor(nAxialClamped * 0.12)))\n\n // Head geometry\n const hasHead = head !== 'none'\n const headRings = hasHead ? Math.max(4, Math.floor(nRad / 4)) : 0\n const totalRings = nAxialClamped + headRings\n\n // Head dimensions (shared with BREP path via SCREW_HEAD_DIMS)\n const headHeight = hasHead\n ? spec.dia * (head === 'hex' ? SCREW_HEAD_DIMS.hex.heightFactor : SCREW_HEAD_DIMS.chc.heightFactor)\n : 0\n const headRadius = hasHead\n ? spec.dia * (head === 'hex' ? SCREW_HEAD_DIMS.hex.radiusFactor : SCREW_HEAD_DIMS.chc.radiusFactor)\n : 0\n\n const vPos: number[] = []\n const tris: number[] = []\n\n // ---- Generate body rings ----\n // Shank is centered: Y from -length/2 to +length/2 (head at +length/2 end)\n for (let i = 0; i < nAxialClamped; i++) {\n const t = nAxialClamped > 1 ? i / (nAxialClamped - 1) : 0\n const axialPos = t * length - length / 2 // Y position (centered)\n\n // Thread helix phase at this axial position\n const threadPhase = pitch > 0 ? (axialPos / pitch) * 2 * Math.PI : 0\n\n // Fade factor: thread depth ramps up/down\n let fade = 1\n if (i < fadeRings) {\n fade = i / fadeRings\n } else if (i > nAxialClamped - fadeRings) {\n fade = (nAxialClamped - 1 - i) / (fadeRings - 1)\n }\n fade = Math.max(0, Math.min(1, fade))\n\n for (let j = 0; j < nRad; j++) {\n const phi = (j / nRad) * 2 * Math.PI\n\n let r: number\n if (thread === 'none') {\n r = rCrest\n } else {\n // Angular offset from thread peak\n const offset = modPos(phi - threadPhase + Math.PI, 2 * Math.PI) - Math.PI\n const profile = threadProfileFactor(offset)\n r = rRoot + (rCrest - rRoot) * profile * fade\n }\n\n const x = r * Math.cos(phi)\n const z = r * Math.sin(phi)\n vPos.push(x, axialPos, z)\n }\n }\n\n // ---- Generate head rings ----\n if (hasHead) {\n for (let i = 0; i < headRings; i++) {\n const t = headRings > 1 ? i / (headRings - 1) : 0\n const axialPos = length / 2 + t * headHeight\n\n for (let j = 0; j < nRad; j++) {\n const phi = (j / nRad) * 2 * Math.PI\n\n // Head blends from body-top radius to larger head radius\n const headR = headRadius\n const blend = Math.min(1, t * 2)\n const r = rCrest + (headR - rCrest) * blend\n\n let rx = r * Math.cos(phi)\n let rz = r * Math.sin(phi)\n\n if (head === 'hex') {\n // Hex head: truncate to flat sides every 60°\n // Circumscribed circle r acts as the \"corner-to-corner\" radius;\n // the flat-to-flat distance is r * sqrt(3)\n const flatAngle = Math.PI / 3\n const seg = Math.floor(phi / flatAngle)\n const angleInSeg = phi - seg * flatAngle\n // Distance from center to flat side at this angle\n const cornerR = r\n const flatDist = cornerR * Math.cos(Math.PI / 6) // flat-to-center distance\n const cosToFlat = Math.abs(Math.cos(angleInSeg - flatAngle / 2))\n const sideR = flatDist / Math.max(cosToFlat, 0.01)\n rx = sideR * Math.cos(phi)\n rz = sideR * Math.sin(phi)\n }\n\n vPos.push(rx, axialPos, rz)\n }\n }\n }\n\n // ---- Generate triangle indices ----\n function ringVertex(ring: number, seg: number): number {\n return ring * nRad + seg\n }\n\n // Connect adjacent rings\n for (let i = 0; i < totalRings - 1; i++) {\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n const a = ringVertex(i, j)\n const b = ringVertex(i, jNext)\n const c = ringVertex(i + 1, j)\n const d = ringVertex(i + 1, jNext)\n // Reversed winding: (a,c,b) and (c,d,b) → outward normals\n tris.push(a, c, b)\n tris.push(c, d, b)\n }\n }\n\n // Close top (cap) if no head\n if (!hasHead && nAxialClamped > 1) {\n const topRing = nAxialClamped - 1\n const centerIdx = vPos.length / 3\n vPos.push(0, length / 2, 0) // centered: top is at +length/2\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n tris.push(ringVertex(topRing, j), centerIdx, ringVertex(topRing, jNext))\n }\n }\n\n // Close bottom (always cap)\n if (nAxialClamped > 1) {\n const centerIdx = vPos.length / 3\n vPos.push(0, -length / 2, 0) // centered: bottom is at -length/2\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n tris.push(ringVertex(0, jNext), centerIdx, ringVertex(0, j))\n }\n }\n\n // Close head top\n if (hasHead) {\n const topRing = totalRings - 1\n const centerIdx = vPos.length / 3\n vPos.push(0, length / 2 + headHeight, 0) // centered: head top at length/2 + headHeight\n for (let j = 0; j < nRad; j++) {\n const jNext = (j + 1) % nRad\n tris.push(ringVertex(topRing, j), centerIdx, ringVertex(topRing, jNext))\n }\n }\n\n // ---- Build GeoData and rotate to Z-up ----\n const geo: GeoData = {\n positions: new Float32Array(vPos),\n indices: new Uint32Array(tris),\n }\n return transformShape(geo, ROT_Y_TO_Z) as GeoData\n}\n"]}
|
package/dist/sdf/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdf/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAGrC,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAOjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdf/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAGrC,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAOjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA","sourcesContent":["/**\n * sdf — signed distance field mesh generation.\n *\n * Public API surface aggregated for umbrella `export *` consumption.\n */\n\n// sdf-runner\nexport { runSdf } from './sdf-runner'\nexport type { SdfMeshData } from './sdf-runner'\n\n// sdf-core\nexport { runSdfInline } from './sdf-core'\n\n// templates\nexport { SDF_TEMPLATES, DEFAULT_SDF_TEMPLATE } from './templates'\n\n// types\nexport type {\n SdfMeta, SdfBox, SdfParamDef, SdfTemplateCategory,\n SdfWorkerInput, SdfWorkerMessage,\n} from './types'\nexport { boxToTuple, parseParamDefs, defaultParamValues } from './types'\n"]}
|
package/dist/units.d.ts
CHANGED
|
@@ -22,6 +22,46 @@
|
|
|
22
22
|
export type BaseDimension = 'length' | 'angle' | 'mass' | 'temperature' | 'time' | 'current';
|
|
23
23
|
/** A dim name is any base dimension. */
|
|
24
24
|
export type DimName = BaseDimension;
|
|
25
|
+
/**
|
|
26
|
+
* A dimension declaration for a single parameter.
|
|
27
|
+
*
|
|
28
|
+
* `'plain'` means the parameter is a pure number with no physical dimension
|
|
29
|
+
* (e.g. `segments: 64`, `degree: 3`, `ccw: true`). It is a **legal, explicit
|
|
30
|
+
* declaration** — not an exemption — so that `paramDims` can exhaustively
|
|
31
|
+
* cover every numeric parameter without a second escape hatch (design doc
|
|
32
|
+
* §3.1, user裁定 2026-10-10).
|
|
33
|
+
*/
|
|
34
|
+
export type DimDecl = DimName | 'plain';
|
|
35
|
+
/**
|
|
36
|
+
* A recursive dimension specification for structured (nested) values.
|
|
37
|
+
*
|
|
38
|
+
* Serialization (`lang/codegen`'s `UnitSerializeOptions.spec`) uses it to
|
|
39
|
+
* describe the dimension of the numbers inside nested arrays/objects — e.g.
|
|
40
|
+
* `cad.sketch`'s `shapes[]` / `constraints[]`, where each element's fields
|
|
41
|
+
* carry different dimensions and are selected by a `kind` discriminator.
|
|
42
|
+
*
|
|
43
|
+
* - `dim` — a number of this dimension is emitted as `n * UNIT`;
|
|
44
|
+
* - `array` — each element carries `item`;
|
|
45
|
+
* - `object` — each field carries its own spec; unlisted fields stay bare;
|
|
46
|
+
* - `tagged` — dispatch on a string discriminator field (`key`, e.g. `kind`)
|
|
47
|
+
* to `cases`; an unknown value leaves the value bare.
|
|
48
|
+
*/
|
|
49
|
+
export type DimSpec = {
|
|
50
|
+
kind: 'dim';
|
|
51
|
+
dim: DimDecl;
|
|
52
|
+
} | {
|
|
53
|
+
kind: 'plain';
|
|
54
|
+
} | {
|
|
55
|
+
kind: 'array';
|
|
56
|
+
item: DimSpec;
|
|
57
|
+
} | {
|
|
58
|
+
kind: 'object';
|
|
59
|
+
fields: Record<string, DimSpec>;
|
|
60
|
+
} | {
|
|
61
|
+
kind: 'tagged';
|
|
62
|
+
key: string;
|
|
63
|
+
cases: Record<string, DimSpec>;
|
|
64
|
+
};
|
|
25
65
|
/**
|
|
26
66
|
* A unit name. `micron/mm/cm/m/inch/foot/meter` are the six legal values of
|
|
27
67
|
* the 3MF `<model unit>` enum and must all be present in `UNIT_SCALE`.
|
package/dist/units.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"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"}
|
package/dist/units.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"units.js","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * faijs unit system — the single source of truth for dimensions and units.\n *\n * Every dimensioned value in faijs is stored in the **base unit** of its\n * dimension, and units are pure scale factors relative to that base. This\n * module is a zero-dependency leaf: it must not import `lang/`, any op\n * registry, `occt-kernel/*` or `brepkit-kernel/*`, because it feeds the\n * serialization pipeline (codegen), platform-neutral imports, and static\n * dimension checks without dragging in a WASM chain.\n *\n * Base units (user-裁定, 2026-09-28):\n * length: mm | angle: degree | mass: gram | temperature: kelvin\n * time: second | current: ampere\n *\n * `ValueWithUnits.value` is ALWAYS the base-unit numeric value. There is no\n * \"this value remembers it is inches\" — conversion happens only at construction\n * (`inch.mul(2)`) and extraction (`.as(mm)`), which mirrors Onshape's design\n * but with faijs's own base table (NOT Onshape's meter/radian — do not copy\n * those numeric values).\n */\n\n/** Base dimensions of the system. Higher powers are built by exponents. */\nexport type BaseDimension =\n | 'length'\n | 'angle'\n | 'mass'\n | 'temperature'\n | 'time'\n | 'current'\n\n/** A dim name is any base dimension. */\nexport type DimName = BaseDimension\n\n/**\n * A unit name. `micron/mm/cm/m/inch/foot/meter` are the six legal values of\n * the 3MF `<model unit>` enum and must all be present in `UNIT_SCALE`.\n */\nexport type UnitName =\n | 'mm' | 'cm' | 'm' | 'micron' | 'inch' | 'foot' | 'yard'\n | 'degree' | 'radian' | 'gram' | 'kilogram' | 'second'\n\n/**\n * A dimension = a sparse map of base dimension → exponent (absent ⇒ 0).\n * Implemented as a frozen plain object.\n */\nexport type UnitSpec = Readonly<Partial<Record<BaseDimension, number>>>\n\n/**\n * True when two specs have identical exponents for every base dimension.\n * @param a - first spec.\n * @param b - second spec.\n * @returns `true` if every base-dimension exponent matches.\n */\nexport function unitEquals(a: UnitSpec, b: UnitSpec): boolean {\n for (const dim of ALL_DIMS) {\n const ea = a[dim] ?? 0\n const eb = b[dim] ?? 0\n if (ea !== eb) return false\n }\n return true\n}\n\n/** All base dimensions, in a stable order. */\nconst ALL_DIMS: readonly BaseDimension[] = [\n 'length', 'angle', 'mass', 'temperature', 'time', 'current',\n]\n\n/** Dimension spec for length (length^1). */\nexport const LENGTH: UnitSpec = Object.freeze({ length: 1 })\n/** Dimension spec for area (length^2). */\nexport const AREA: UnitSpec = Object.freeze({ length: 2 })\n/** Dimension spec for volume (length^3). */\nexport const VOLUME: UnitSpec = Object.freeze({ length: 3 })\n/** Dimension spec for angle (angle^1). */\nexport const ANGLE: UnitSpec = Object.freeze({ angle: 1 })\n/** Dimension spec for mass (mass^1). */\nexport const MASS: UnitSpec = Object.freeze({ mass: 1 })\n/** Dimension spec for temperature (temperature^1). */\nexport const TEMPERATURE: UnitSpec = Object.freeze({ temperature: 1 })\n/** Dimension spec for time (time^1). */\nexport const TIME: UnitSpec = Object.freeze({ time: 1 })\n/** Dimension spec for electric current (current^1). */\nexport const CURRENT: UnitSpec = Object.freeze({ current: 1 })\n\n/**\n * The dimension spec of a named base dimension.\n * @param dim - a base dimension name.\n * @returns the corresponding `UnitSpec`.\n */\nexport function specOfDim(dim: DimName): UnitSpec {\n switch (dim) {\n case 'length': return LENGTH\n case 'angle': return ANGLE\n case 'mass': return MASS\n case 'temperature': return TEMPERATURE\n case 'time': return TIME\n case 'current': return CURRENT\n }\n}\n\n/**\n * A value carrying an immutable dimension. All arithmetic is method-style —\n * there is no operator overloading in TS. `value` is always expressed in the\n * base unit of its dimension.\n */\nexport class ValueWithUnits {\n /** The numeric magnitude, always expressed in the base unit of the dimension. */\n readonly value: number\n /** The dimension spec (which base dimensions are present and with what exponent). */\n readonly spec: UnitSpec\n\n constructor(value: number, spec: UnitSpec) {\n this.value = value\n this.spec = issueFrozen(spec)\n }\n\n /**\n * Add another value; both must share the same dimension.\n * @param rhs - the value to add (must have the same dimension).\n * @returns a new `ValueWithUnits` whose value is `this.value + rhs.value`.\n */\n add(rhs: ValueWithUnits): ValueWithUnits {\n requireSameDim(this, rhs, 'add')\n return new ValueWithUnits(this.value + rhs.value, this.spec)\n }\n\n /**\n * Subtract another value; both must share the same dimension.\n * @param rhs - the value to subtract (must have the same dimension).\n * @returns a new `ValueWithUnits` whose value is `this.value - rhs.value`.\n */\n sub(rhs: ValueWithUnits): ValueWithUnits {\n requireSameDim(this, rhs, 'sub')\n return new ValueWithUnits(this.value - rhs.value, this.spec)\n }\n\n /**\n * Negate.\n * @returns a new `ValueWithUnits` with the negated magnitude.\n */\n neg(): ValueWithUnits {\n return new ValueWithUnits(-this.value, this.spec)\n }\n\n /**\n * Scale by a dimensionless number.\n * @param n - a dimensionless scalar.\n * @returns a new `ValueWithUnits` with the scaled magnitude.\n */\n mul(n: number): ValueWithUnits {\n return new ValueWithUnits(this.value * n, this.spec)\n }\n\n /**\n * Divide by a dimensionless number.\n * @param n - a dimensionless scalar.\n * @returns a new `ValueWithUnits` with the divided magnitude.\n */\n div(n: number): ValueWithUnits {\n return new ValueWithUnits(this.value / n, this.spec)\n }\n\n /**\n * The ratio to another value of the same dimension (dimensionless result).\n * @param rhs - the divisor (must have the same dimension).\n * @returns the dimensionless ratio `this.value / rhs.value`.\n */\n divBy(rhs: ValueWithUnits): number {\n requireSameDim(this, rhs, 'divBy')\n return this.value / rhs.value\n }\n\n /**\n * Raise to an integer power; each exponent times n must stay an integer.\n * @param n - the integer power.\n * @returns a new `ValueWithUnits` with exponents multiplied by `n`.\n */\n pow(n: number): ValueWithUnits {\n if (!Number.isInteger(n)) {\n throw dimensionalError('pow exponent must be an integer', this)\n }\n const out: Record<BaseDimension, number> = { length: 0, angle: 0, mass: 0, temperature: 0, time: 0, current: 0 }\n for (const dim of ALL_DIMS) {\n const e = this.spec[dim] ?? 0\n const ne = e * n\n if (!Number.isInteger(ne)) {\n throw new Error(\n `[units] pow(${n}) would produce a non-integer exponent ${ne} for dimension ${dim}`,\n )\n }\n out[dim] = ne\n }\n return new ValueWithUnits(this.value ** n, normalizeSpec(out))\n }\n\n /**\n * Extract the numeric magnitude expressed in another unit (dimension must match).\n * @param unit - a `ValueWithUnits` representing 1 of the target unit.\n * @returns the magnitude in that unit.\n */\n as(unit: ValueWithUnits): number {\n requireSameDim(this, unit, 'as')\n return this.value / unit.value\n }\n\n /**\n * True when the magnitude is ~0 (within an optional same-dimension epsilon).\n * @param eps - optional same-dimension epsilon; defaults to 1e-9 base units.\n * @returns `true` when `|value| <= eps`.\n */\n eqZero(eps?: ValueWithUnits): boolean {\n if (eps === undefined) {\n // Default epsilon is one atomic stride of the base unit.\n return Math.abs(this.value) <= 1e-9\n }\n requireSameDim(this, eps, 'eqZero')\n return Math.abs(this.value) <= Math.abs(eps.value)\n }\n}\n\n/** Builder for an error that carries both dimensions of a mismatch. */\nfunction dimensionalError(action: string, a: ValueWithUnits, b?: ValueWithUnits): Error {\n const extras = b === undefined ? '' : ` vs {${describeSpec(b.spec)}}`\n return new Error(\n `[units] dimension mismatch in \\`${action}\\`: {${describeSpec(a.spec)}}${extras}`,\n )\n}\n\nfunction requireSameDim(a: ValueWithUnits, b: ValueWithUnits, action: string): void {\n if (!unitEquals(a.spec, b.spec)) throw dimensionalError(action, a, b)\n}\n\nfunction describeSpec(spec: UnitSpec): string {\n const parts = ALL_DIMS.filter((d) => (spec[d] ?? 0) !== 0)\n .map((d) => `${d}^${spec[d]}`)\n return parts.length ? parts.join('·') : 'dimensionless'\n}\n\n/** Freeze a spec; never expose a mutable spec to callers. */\nfunction issueFrozen(spec: UnitSpec): UnitSpec {\n return Object.freeze({ ...spec })\n}\n\nfunction normalizeSpec(spec: Record<BaseDimension, number>): UnitSpec {\n return Object.freeze({ ...spec })\n}\n\n// ── Single-source-of-truth tables ──────────────────────────────────────────\n// `UNIT_SCALE` + `UNIT_DIM` are the only data. `UNIT_DIMS`, the typed\n// constants, the pure-number constants and everything else derive from them.\n\n/**\n * Unit name → base-unit scale factor. `length`: 1 mm; `angle`: 1 degree;\n * `mass`: 1 gram; `time`: 1 second.\n */\nexport const UNIT_SCALE: Readonly<Record<UnitName, number>> = Object.freeze({\n // length (base = mm)\n mm: 1,\n cm: 10,\n m: 1000,\n micron: 0.001,\n inch: 25.4,\n foot: 304.8,\n yard: 914.4,\n // angle (base = degree)\n degree: 1,\n radian: 180 / Math.PI,\n // mass (base = gram)\n gram: 1,\n kilogram: 1000,\n // time (base = second)\n second: 1,\n})\n\n/** Unit name → the dimension it measures. */\nexport const UNIT_DIM: Readonly<Record<UnitName, DimName>> = Object.freeze({\n mm: 'length', cm: 'length', m: 'length', micron: 'length',\n inch: 'length', foot: 'length', yard: 'length',\n degree: 'angle', radian: 'angle',\n gram: 'mass', kilogram: 'mass',\n second: 'time',\n})\n\n/** Derived: unit name → UnitSpec. */\nexport const UNIT_DIMS: Readonly<Record<UnitName, UnitSpec>> = Object.freeze(\n (Object.keys(UNIT_SCALE) as UnitName[]).reduce((acc, name) => {\n acc[name] = specOfDim(UNIT_DIM[name])\n return acc\n }, {} as Record<UnitName, UnitSpec>),\n)\n\n// ── Script-side unit constants (D7) ──────────────────────────────────────────\n// These are the bare-number constants available in .fai.js scripts.\n// `cm` and `meter` are script-friendly aliases for UNIT_SCALE keys `cm` and `m`.\n// The value is the base-unit scale factor (= UNIT_SCALE[name] for most, except\n// `meter` which maps to `m`).\n\n/**\n * Script-side unit constant names → their numeric values (base-unit scale).\n * These are registered as global read-only constants in the script runtime.\n * All names are UPPERCASE to avoid collisions with user variable names\n * (e.g. `cm` as center-of-mass would clash with `cm` as centimeter).\n * `10 * INCH` in a script evaluates to `10 * 25.4 === 254` (plain JS multiply).\n */\nexport const SCRIPT_UNIT_CONSTANTS: Readonly<Record<string, number>> = Object.freeze({\n MM: 1,\n CM: 10,\n METER: 1000,\n MICRON: 0.001,\n INCH: 25.4,\n FOOT: 304.8,\n YARD: 914.4,\n DEGREE: 1,\n RADIAN: 180 / Math.PI,\n GRAM: 1,\n KILOGRAM: 1000,\n SECOND: 1,\n})\n\n/**\n * Mapping from script-side unit constant names (UPPERCASE) to the internal\n * `UnitName` (lowercase, used by UNIT_SCALE/UNIT_DIM for format-level units).\n * Used by the dimension checker to resolve a script constant to its dimension.\n */\nexport const SCRIPT_UNIT_TO_NAME: Readonly<Record<string, UnitName>> = Object.freeze({\n MM: 'mm', CM: 'cm', METER: 'm', MICRON: 'micron',\n INCH: 'inch', FOOT: 'foot', YARD: 'yard',\n DEGREE: 'degree', RADIAN: 'radian',\n GRAM: 'gram', KILOGRAM: 'kilogram',\n SECOND: 'second',\n})\n\n/** The set of script-side unit constant names (for fast membership tests). */\nexport const SCRIPT_UNIT_NAMES: ReadonlySet<string> = new Set(Object.keys(SCRIPT_UNIT_CONSTANTS))\n\n// ── Typed constants (ValueWithUnits) ────────────────────────────────────────\n\n/** 1 mm — the base length unit. */\nexport const mm = new ValueWithUnits(1, LENGTH)\n/** 1 cm = 10 mm. */\nexport const centimeter = new ValueWithUnits(10, LENGTH)\n/** 1 m = 1000 mm. */\nexport const meter = new ValueWithUnits(1000, LENGTH)\n/** 1 micron = 0.001 mm (one of the 3MF unit enum values). */\nexport const micron = new ValueWithUnits(0.001, LENGTH)\n/** 1 inch = 25.4 mm. */\nexport const inch = new ValueWithUnits(25.4, LENGTH)\n/** 1 foot = 304.8 mm. */\nexport const foot = new ValueWithUnits(304.8, LENGTH)\n/** 1 yard = 914.4 mm. */\nexport const yard = new ValueWithUnits(914.4, LENGTH)\n\n/** The base angle unit — 1 degree. */\nexport const degree = new ValueWithUnits(1, ANGLE)\n/** 1 radian = 180/π degrees (base is degree). */\nexport const radian = new ValueWithUnits(180 / Math.PI, ANGLE)\n\n/** 1 gram (base mass unit). */\nexport const gram = new ValueWithUnits(1, MASS)\n/** 1 kilogram = 1000 gram. */\nexport const kilogram = new ValueWithUnits(1000, MASS)\n/** 1 second (base time unit). */\nexport const second = new ValueWithUnits(1, TIME)\n\n// ── Pure-number constants (number) = base-unit scale ────────────────────────\n// TS library code that calls geometric ops directly uses these bare numbers\n// (D4): `const L = 10 * INCH; cad.box({ size: [L, 20 * MM, 30 * MM] })`.\n\n/** 1 (mm). */\nexport const MM = 1\n/** 10 (mm). */\nexport const CM = 10\n/** 1000 (mm). */\nexport const M = 1000\n/** 0.001 (mm). */\nexport const MICRON = 0.001\n/** 25.4 (mm). */\nexport const INCH = 25.4\n/** 304.8 (mm). */\nexport const FOOT = 304.8\n/** 914.4 (mm). */\nexport const YARD = 914.4\n/** 1 (degree). */\nexport const DEGREE = 1\n/** 180/π (degree). */\nexport const RADIAN = 180 / Math.PI\n\n// ── System display unit ─────────────────────────────────────────────────────\n\n/**\n * The system display unit context, owned by the host (never a module-level\n * global). Defaults to the base units.\n */\nexport interface UnitContext {\n length: UnitName\n angle: UnitName\n}\n\n/** Base display units (mm / degree). */\nexport const BASE_UNITS: UnitContext = Object.freeze({ length: 'mm', angle: 'degree' })\n\n/**\n * The display unit for a dimension within a context. Only `length` and\n * `angle` are host-settable; all other dimensions fall back to their base unit.\n * @param dim - the dimension to look up.\n * @param ctx - the system unit context; defaults to base units.\n * @returns the unit name.\n */\nexport function unitFor(dim: DimName, ctx?: UnitContext): UnitName {\n if (dim === 'length' || dim === 'angle') {\n return (ctx ?? BASE_UNITS)[dim]\n }\n // mass / temperature / time / current have no display override → their base.\n switch (dim) {\n case 'mass': return 'gram'\n case 'temperature': return 'kelvin' as UnitName\n case 'time': return 'second'\n case 'current': return 'ampere' as UnitName\n default: return 'mm'\n }\n}\n\n/**\n * Scale factor of a unit name relative to the base unit.\n * @param name - the unit name.\n * @returns the scale factor (e.g. `inch` → `25.4`).\n */\nexport function unitScale(name: UnitName): number {\n return UNIT_SCALE[name]\n}\n\n/**\n * Convert a value given in a display unit to the base-unit value.\n * @param n - the value in `unitName`.\n * @param unitName - the source unit.\n * @param dimensionName - the dimension (for validation).\n * @returns the base-unit (mm/degree/...) value.\n */\nexport function toBase(n: number, unitName: UnitName, dimensionName: DimName): number {\n requireDim(unitName, dimensionName)\n return n * UNIT_SCALE[unitName]\n}\n\n/**\n * Convert a base-unit value into a display unit.\n * @param base - the base-unit (mm/degree/...) value.\n * @param unitName - the target unit.\n * @param dimensionName - the dimension (for validation).\n * @returns the value expressed in `unitName`.\n */\nexport function fromBase(base: number, unitName: UnitName, dimensionName: DimName): number {\n requireDim(unitName, dimensionName)\n return base / UNIT_SCALE[unitName]\n}\n\n/** Throw when a unit is not a member of a dimension. */\nfunction requireDim(unitName: UnitName, dimensionName: DimName): void {\n if (UNIT_DIM[unitName] !== dimensionName) {\n throw new Error(`[units] unit '${unitName}' is ${UNIT_DIM[unitName]}; expected ${dimensionName}`)\n }\n}\n\n/**\n * True when the value has dimension length.\n * @param v - the value to check.\n * @returns `true` if `v.spec` equals `LENGTH`.\n */\nexport function isLength(v: ValueWithUnits): boolean {\n return unitEquals(v.spec, LENGTH)\n}\n\n/**\n * True when the value has dimension angle.\n * @param v - the value to check.\n * @returns `true` if `v.spec` equals `ANGLE`.\n */\nexport function isAngle(v: ValueWithUnits): boolean {\n return unitEquals(v.spec, ANGLE)\n}"]}
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../src/units.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * faijs unit system — the single source of truth for dimensions and units.\n *\n * Every dimensioned value in faijs is stored in the **base unit** of its\n * dimension, and units are pure scale factors relative to that base. This\n * module is a zero-dependency leaf: it must not import `lang/`, any op\n * registry, `occt-kernel/*` or `brepkit-kernel/*`, because it feeds the\n * serialization pipeline (codegen), platform-neutral imports, and static\n * dimension checks without dragging in a WASM chain.\n *\n * Base units (user-裁定, 2026-09-28):\n * length: mm | angle: degree | mass: gram | temperature: kelvin\n * time: second | current: ampere\n *\n * `ValueWithUnits.value` is ALWAYS the base-unit numeric value. There is no\n * \"this value remembers it is inches\" — conversion happens only at construction\n * (`inch.mul(2)`) and extraction (`.as(mm)`), which mirrors Onshape's design\n * but with faijs's own base table (NOT Onshape's meter/radian — do not copy\n * those numeric values).\n */\n\n/** Base dimensions of the system. Higher powers are built by exponents. */\nexport type BaseDimension =\n | 'length'\n | 'angle'\n | 'mass'\n | 'temperature'\n | 'time'\n | 'current'\n\n/** A dim name is any base dimension. */\nexport type DimName = BaseDimension\n\n/**\n * A dimension declaration for a single parameter.\n *\n * `'plain'` means the parameter is a pure number with no physical dimension\n * (e.g. `segments: 64`, `degree: 3`, `ccw: true`). It is a **legal, explicit\n * declaration** — not an exemption — so that `paramDims` can exhaustively\n * cover every numeric parameter without a second escape hatch (design doc\n * §3.1, user裁定 2026-10-10).\n */\nexport type DimDecl = DimName | 'plain'\n\n/**\n * A recursive dimension specification for structured (nested) values.\n *\n * Serialization (`lang/codegen`'s `UnitSerializeOptions.spec`) uses it to\n * describe the dimension of the numbers inside nested arrays/objects — e.g.\n * `cad.sketch`'s `shapes[]` / `constraints[]`, where each element's fields\n * carry different dimensions and are selected by a `kind` discriminator.\n *\n * - `dim` — a number of this dimension is emitted as `n * UNIT`;\n * - `array` — each element carries `item`;\n * - `object` — each field carries its own spec; unlisted fields stay bare;\n * - `tagged` — dispatch on a string discriminator field (`key`, e.g. `kind`)\n * to `cases`; an unknown value leaves the value bare.\n */\nexport type DimSpec =\n | { kind: 'dim'; dim: DimDecl }\n | { kind: 'plain' }\n | { kind: 'array'; item: DimSpec }\n | { kind: 'object'; fields: Record<string, DimSpec> }\n | { kind: 'tagged'; key: string; cases: Record<string, DimSpec> }\n\n/**\n * A unit name. `micron/mm/cm/m/inch/foot/meter` are the six legal values of\n * the 3MF `<model unit>` enum and must all be present in `UNIT_SCALE`.\n */\nexport type UnitName =\n | 'mm' | 'cm' | 'm' | 'micron' | 'inch' | 'foot' | 'yard'\n | 'degree' | 'radian' | 'gram' | 'kilogram' | 'second'\n\n/**\n * A dimension = a sparse map of base dimension → exponent (absent ⇒ 0).\n * Implemented as a frozen plain object.\n */\nexport type UnitSpec = Readonly<Partial<Record<BaseDimension, number>>>\n\n/**\n * True when two specs have identical exponents for every base dimension.\n * @param a - first spec.\n * @param b - second spec.\n * @returns `true` if every base-dimension exponent matches.\n */\nexport function unitEquals(a: UnitSpec, b: UnitSpec): boolean {\n for (const dim of ALL_DIMS) {\n const ea = a[dim] ?? 0\n const eb = b[dim] ?? 0\n if (ea !== eb) return false\n }\n return true\n}\n\n/** All base dimensions, in a stable order. */\nconst ALL_DIMS: readonly BaseDimension[] = [\n 'length', 'angle', 'mass', 'temperature', 'time', 'current',\n]\n\n/** Dimension spec for length (length^1). */\nexport const LENGTH: UnitSpec = Object.freeze({ length: 1 })\n/** Dimension spec for area (length^2). */\nexport const AREA: UnitSpec = Object.freeze({ length: 2 })\n/** Dimension spec for volume (length^3). */\nexport const VOLUME: UnitSpec = Object.freeze({ length: 3 })\n/** Dimension spec for angle (angle^1). */\nexport const ANGLE: UnitSpec = Object.freeze({ angle: 1 })\n/** Dimension spec for mass (mass^1). */\nexport const MASS: UnitSpec = Object.freeze({ mass: 1 })\n/** Dimension spec for temperature (temperature^1). */\nexport const TEMPERATURE: UnitSpec = Object.freeze({ temperature: 1 })\n/** Dimension spec for time (time^1). */\nexport const TIME: UnitSpec = Object.freeze({ time: 1 })\n/** Dimension spec for electric current (current^1). */\nexport const CURRENT: UnitSpec = Object.freeze({ current: 1 })\n\n/**\n * The dimension spec of a named base dimension.\n * @param dim - a base dimension name.\n * @returns the corresponding `UnitSpec`.\n */\nexport function specOfDim(dim: DimName): UnitSpec {\n switch (dim) {\n case 'length': return LENGTH\n case 'angle': return ANGLE\n case 'mass': return MASS\n case 'temperature': return TEMPERATURE\n case 'time': return TIME\n case 'current': return CURRENT\n }\n}\n\n/**\n * A value carrying an immutable dimension. All arithmetic is method-style —\n * there is no operator overloading in TS. `value` is always expressed in the\n * base unit of its dimension.\n */\nexport class ValueWithUnits {\n /** The numeric magnitude, always expressed in the base unit of the dimension. */\n readonly value: number\n /** The dimension spec (which base dimensions are present and with what exponent). */\n readonly spec: UnitSpec\n\n constructor(value: number, spec: UnitSpec) {\n this.value = value\n this.spec = issueFrozen(spec)\n }\n\n /**\n * Add another value; both must share the same dimension.\n * @param rhs - the value to add (must have the same dimension).\n * @returns a new `ValueWithUnits` whose value is `this.value + rhs.value`.\n */\n add(rhs: ValueWithUnits): ValueWithUnits {\n requireSameDim(this, rhs, 'add')\n return new ValueWithUnits(this.value + rhs.value, this.spec)\n }\n\n /**\n * Subtract another value; both must share the same dimension.\n * @param rhs - the value to subtract (must have the same dimension).\n * @returns a new `ValueWithUnits` whose value is `this.value - rhs.value`.\n */\n sub(rhs: ValueWithUnits): ValueWithUnits {\n requireSameDim(this, rhs, 'sub')\n return new ValueWithUnits(this.value - rhs.value, this.spec)\n }\n\n /**\n * Negate.\n * @returns a new `ValueWithUnits` with the negated magnitude.\n */\n neg(): ValueWithUnits {\n return new ValueWithUnits(-this.value, this.spec)\n }\n\n /**\n * Scale by a dimensionless number.\n * @param n - a dimensionless scalar.\n * @returns a new `ValueWithUnits` with the scaled magnitude.\n */\n mul(n: number): ValueWithUnits {\n return new ValueWithUnits(this.value * n, this.spec)\n }\n\n /**\n * Divide by a dimensionless number.\n * @param n - a dimensionless scalar.\n * @returns a new `ValueWithUnits` with the divided magnitude.\n */\n div(n: number): ValueWithUnits {\n return new ValueWithUnits(this.value / n, this.spec)\n }\n\n /**\n * The ratio to another value of the same dimension (dimensionless result).\n * @param rhs - the divisor (must have the same dimension).\n * @returns the dimensionless ratio `this.value / rhs.value`.\n */\n divBy(rhs: ValueWithUnits): number {\n requireSameDim(this, rhs, 'divBy')\n return this.value / rhs.value\n }\n\n /**\n * Raise to an integer power; each exponent times n must stay an integer.\n * @param n - the integer power.\n * @returns a new `ValueWithUnits` with exponents multiplied by `n`.\n */\n pow(n: number): ValueWithUnits {\n if (!Number.isInteger(n)) {\n throw dimensionalError('pow exponent must be an integer', this)\n }\n const out: Record<BaseDimension, number> = { length: 0, angle: 0, mass: 0, temperature: 0, time: 0, current: 0 }\n for (const dim of ALL_DIMS) {\n const e = this.spec[dim] ?? 0\n const ne = e * n\n if (!Number.isInteger(ne)) {\n throw new Error(\n `[units] pow(${n}) would produce a non-integer exponent ${ne} for dimension ${dim}`,\n )\n }\n out[dim] = ne\n }\n return new ValueWithUnits(this.value ** n, normalizeSpec(out))\n }\n\n /**\n * Extract the numeric magnitude expressed in another unit (dimension must match).\n * @param unit - a `ValueWithUnits` representing 1 of the target unit.\n * @returns the magnitude in that unit.\n */\n as(unit: ValueWithUnits): number {\n requireSameDim(this, unit, 'as')\n return this.value / unit.value\n }\n\n /**\n * True when the magnitude is ~0 (within an optional same-dimension epsilon).\n * @param eps - optional same-dimension epsilon; defaults to 1e-9 base units.\n * @returns `true` when `|value| <= eps`.\n */\n eqZero(eps?: ValueWithUnits): boolean {\n if (eps === undefined) {\n // Default epsilon is one atomic stride of the base unit.\n return Math.abs(this.value) <= 1e-9\n }\n requireSameDim(this, eps, 'eqZero')\n return Math.abs(this.value) <= Math.abs(eps.value)\n }\n}\n\n/** Builder for an error that carries both dimensions of a mismatch. */\nfunction dimensionalError(action: string, a: ValueWithUnits, b?: ValueWithUnits): Error {\n const extras = b === undefined ? '' : ` vs {${describeSpec(b.spec)}}`\n return new Error(\n `[units] dimension mismatch in \\`${action}\\`: {${describeSpec(a.spec)}}${extras}`,\n )\n}\n\nfunction requireSameDim(a: ValueWithUnits, b: ValueWithUnits, action: string): void {\n if (!unitEquals(a.spec, b.spec)) throw dimensionalError(action, a, b)\n}\n\nfunction describeSpec(spec: UnitSpec): string {\n const parts = ALL_DIMS.filter((d) => (spec[d] ?? 0) !== 0)\n .map((d) => `${d}^${spec[d]}`)\n return parts.length ? parts.join('·') : 'dimensionless'\n}\n\n/** Freeze a spec; never expose a mutable spec to callers. */\nfunction issueFrozen(spec: UnitSpec): UnitSpec {\n return Object.freeze({ ...spec })\n}\n\nfunction normalizeSpec(spec: Record<BaseDimension, number>): UnitSpec {\n return Object.freeze({ ...spec })\n}\n\n// ── Single-source-of-truth tables ──────────────────────────────────────────\n// `UNIT_SCALE` + `UNIT_DIM` are the only data. `UNIT_DIMS`, the typed\n// constants, the pure-number constants and everything else derive from them.\n\n/**\n * Unit name → base-unit scale factor. `length`: 1 mm; `angle`: 1 degree;\n * `mass`: 1 gram; `time`: 1 second.\n */\nexport const UNIT_SCALE: Readonly<Record<UnitName, number>> = Object.freeze({\n // length (base = mm)\n mm: 1,\n cm: 10,\n m: 1000,\n micron: 0.001,\n inch: 25.4,\n foot: 304.8,\n yard: 914.4,\n // angle (base = degree)\n degree: 1,\n radian: 180 / Math.PI,\n // mass (base = gram)\n gram: 1,\n kilogram: 1000,\n // time (base = second)\n second: 1,\n})\n\n/** Unit name → the dimension it measures. */\nexport const UNIT_DIM: Readonly<Record<UnitName, DimName>> = Object.freeze({\n mm: 'length', cm: 'length', m: 'length', micron: 'length',\n inch: 'length', foot: 'length', yard: 'length',\n degree: 'angle', radian: 'angle',\n gram: 'mass', kilogram: 'mass',\n second: 'time',\n})\n\n/** Derived: unit name → UnitSpec. */\nexport const UNIT_DIMS: Readonly<Record<UnitName, UnitSpec>> = Object.freeze(\n (Object.keys(UNIT_SCALE) as UnitName[]).reduce((acc, name) => {\n acc[name] = specOfDim(UNIT_DIM[name])\n return acc\n }, {} as Record<UnitName, UnitSpec>),\n)\n\n// ── Script-side unit constants (D7) ──────────────────────────────────────────\n// These are the bare-number constants available in .fai.js scripts.\n// `cm` and `meter` are script-friendly aliases for UNIT_SCALE keys `cm` and `m`.\n// The value is the base-unit scale factor (= UNIT_SCALE[name] for most, except\n// `meter` which maps to `m`).\n\n/**\n * Script-side unit constant names → their numeric values (base-unit scale).\n * These are registered as global read-only constants in the script runtime.\n * All names are UPPERCASE to avoid collisions with user variable names\n * (e.g. `cm` as center-of-mass would clash with `cm` as centimeter).\n * `10 * INCH` in a script evaluates to `10 * 25.4 === 254` (plain JS multiply).\n */\nexport const SCRIPT_UNIT_CONSTANTS: Readonly<Record<string, number>> = Object.freeze({\n MM: 1,\n CM: 10,\n METER: 1000,\n MICRON: 0.001,\n INCH: 25.4,\n FOOT: 304.8,\n YARD: 914.4,\n DEGREE: 1,\n RADIAN: 180 / Math.PI,\n GRAM: 1,\n KILOGRAM: 1000,\n SECOND: 1,\n})\n\n/**\n * Mapping from script-side unit constant names (UPPERCASE) to the internal\n * `UnitName` (lowercase, used by UNIT_SCALE/UNIT_DIM for format-level units).\n * Used by the dimension checker to resolve a script constant to its dimension.\n */\nexport const SCRIPT_UNIT_TO_NAME: Readonly<Record<string, UnitName>> = Object.freeze({\n MM: 'mm', CM: 'cm', METER: 'm', MICRON: 'micron',\n INCH: 'inch', FOOT: 'foot', YARD: 'yard',\n DEGREE: 'degree', RADIAN: 'radian',\n GRAM: 'gram', KILOGRAM: 'kilogram',\n SECOND: 'second',\n})\n\n/** The set of script-side unit constant names (for fast membership tests). */\nexport const SCRIPT_UNIT_NAMES: ReadonlySet<string> = new Set(Object.keys(SCRIPT_UNIT_CONSTANTS))\n\n// ── Typed constants (ValueWithUnits) ────────────────────────────────────────\n\n/** 1 mm — the base length unit. */\nexport const mm = new ValueWithUnits(1, LENGTH)\n/** 1 cm = 10 mm. */\nexport const centimeter = new ValueWithUnits(10, LENGTH)\n/** 1 m = 1000 mm. */\nexport const meter = new ValueWithUnits(1000, LENGTH)\n/** 1 micron = 0.001 mm (one of the 3MF unit enum values). */\nexport const micron = new ValueWithUnits(0.001, LENGTH)\n/** 1 inch = 25.4 mm. */\nexport const inch = new ValueWithUnits(25.4, LENGTH)\n/** 1 foot = 304.8 mm. */\nexport const foot = new ValueWithUnits(304.8, LENGTH)\n/** 1 yard = 914.4 mm. */\nexport const yard = new ValueWithUnits(914.4, LENGTH)\n\n/** The base angle unit — 1 degree. */\nexport const degree = new ValueWithUnits(1, ANGLE)\n/** 1 radian = 180/π degrees (base is degree). */\nexport const radian = new ValueWithUnits(180 / Math.PI, ANGLE)\n\n/** 1 gram (base mass unit). */\nexport const gram = new ValueWithUnits(1, MASS)\n/** 1 kilogram = 1000 gram. */\nexport const kilogram = new ValueWithUnits(1000, MASS)\n/** 1 second (base time unit). */\nexport const second = new ValueWithUnits(1, TIME)\n\n// ── Pure-number constants (number) = base-unit scale ────────────────────────\n// TS library code that calls geometric ops directly uses these bare numbers\n// (D4): `const L = 10 * INCH; cad.box({ size: [L, 20 * MM, 30 * MM] })`.\n\n/** 1 (mm). */\nexport const MM = 1\n/** 10 (mm). */\nexport const CM = 10\n/** 1000 (mm). */\nexport const M = 1000\n/** 0.001 (mm). */\nexport const MICRON = 0.001\n/** 25.4 (mm). */\nexport const INCH = 25.4\n/** 304.8 (mm). */\nexport const FOOT = 304.8\n/** 914.4 (mm). */\nexport const YARD = 914.4\n/** 1 (degree). */\nexport const DEGREE = 1\n/** 180/π (degree). */\nexport const RADIAN = 180 / Math.PI\n\n// ── System display unit ─────────────────────────────────────────────────────\n\n/**\n * The system display unit context, owned by the host (never a module-level\n * global). Defaults to the base units.\n */\nexport interface UnitContext {\n length: UnitName\n angle: UnitName\n}\n\n/** Base display units (mm / degree). */\nexport const BASE_UNITS: UnitContext = Object.freeze({ length: 'mm', angle: 'degree' })\n\n/**\n * The display unit for a dimension within a context. Only `length` and\n * `angle` are host-settable; all other dimensions fall back to their base unit.\n * @param dim - the dimension to look up.\n * @param ctx - the system unit context; defaults to base units.\n * @returns the unit name.\n */\nexport function unitFor(dim: DimName, ctx?: UnitContext): UnitName {\n if (dim === 'length' || dim === 'angle') {\n return (ctx ?? BASE_UNITS)[dim]\n }\n // mass / temperature / time / current have no display override → their base.\n switch (dim) {\n case 'mass': return 'gram'\n case 'temperature': return 'kelvin' as UnitName\n case 'time': return 'second'\n case 'current': return 'ampere' as UnitName\n default: return 'mm'\n }\n}\n\n/**\n * Scale factor of a unit name relative to the base unit.\n * @param name - the unit name.\n * @returns the scale factor (e.g. `inch` → `25.4`).\n */\nexport function unitScale(name: UnitName): number {\n return UNIT_SCALE[name]\n}\n\n/**\n * Convert a value given in a display unit to the base-unit value.\n * @param n - the value in `unitName`.\n * @param unitName - the source unit.\n * @param dimensionName - the dimension (for validation).\n * @returns the base-unit (mm/degree/...) value.\n */\nexport function toBase(n: number, unitName: UnitName, dimensionName: DimName): number {\n requireDim(unitName, dimensionName)\n return n * UNIT_SCALE[unitName]\n}\n\n/**\n * Convert a base-unit value into a display unit.\n * @param base - the base-unit (mm/degree/...) value.\n * @param unitName - the target unit.\n * @param dimensionName - the dimension (for validation).\n * @returns the value expressed in `unitName`.\n */\nexport function fromBase(base: number, unitName: UnitName, dimensionName: DimName): number {\n requireDim(unitName, dimensionName)\n return base / UNIT_SCALE[unitName]\n}\n\n/** Throw when a unit is not a member of a dimension. */\nfunction requireDim(unitName: UnitName, dimensionName: DimName): void {\n if (UNIT_DIM[unitName] !== dimensionName) {\n throw new Error(`[units] unit '${unitName}' is ${UNIT_DIM[unitName]}; expected ${dimensionName}`)\n }\n}\n\n/**\n * True when the value has dimension length.\n * @param v - the value to check.\n * @returns `true` if `v.spec` equals `LENGTH`.\n */\nexport function isLength(v: ValueWithUnits): boolean {\n return unitEquals(v.spec, LENGTH)\n}\n\n/**\n * True when the value has dimension angle.\n * @param v - the value to check.\n * @returns `true` if `v.spec` equals `ANGLE`.\n */\nexport function isAngle(v: ValueWithUnits): boolean {\n return unitEquals(v.spec, ANGLE)\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faicad/faijs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -78,7 +78,6 @@
|
|
|
78
78
|
"types": "./dist/module-resolver/index.d.ts",
|
|
79
79
|
"default": "./dist/module-resolver/index.js"
|
|
80
80
|
},
|
|
81
|
-
|
|
82
81
|
"./mesh": {
|
|
83
82
|
"types": "./dist/mesh/index.d.ts",
|
|
84
83
|
"default": "./dist/mesh/index.js"
|
|
@@ -400,19 +399,18 @@
|
|
|
400
399
|
"dependencies": {
|
|
401
400
|
"@xmldom/xmldom": "^0.9.8",
|
|
402
401
|
"acorn": "^8.18.0",
|
|
402
|
+
"earcut": "^3.2.4",
|
|
403
403
|
"fflate": "^0.8.3",
|
|
404
404
|
"manifold-3d": "^3.5.1",
|
|
405
405
|
"opentype.js": "^1.3.4"
|
|
406
406
|
},
|
|
407
407
|
"peerDependencies": {
|
|
408
|
-
"occt-wasm": "^5.6.0"
|
|
409
|
-
"three": "^0.162.0 || ^0.184.0"
|
|
408
|
+
"occt-wasm": "^5.6.0"
|
|
410
409
|
},
|
|
411
410
|
"devDependencies": {
|
|
412
411
|
"@types/three": "^0.184.1",
|
|
413
412
|
"brepkit-wasm": "^3.4.18",
|
|
414
413
|
"sucrase": "^3.35.1",
|
|
415
|
-
"three": "^0.184.0",
|
|
416
414
|
"three-162": "npm:three@^0.162.0",
|
|
417
415
|
"typescript": "*",
|
|
418
416
|
"vitest": "*"
|