brepjs 12.8.2 → 12.10.0
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/2d/blueprints/{approximations.d.ts → blueprintApproximations.d.ts} +1 -1
- package/dist/2d/blueprints/blueprintApproximations.d.ts.map +1 -0
- package/dist/2d/blueprints/{customCorners.d.ts → blueprintCustomCorners.d.ts} +1 -1
- package/dist/2d/blueprints/blueprintCustomCorners.d.ts.map +1 -0
- package/dist/2d/blueprints/blueprintFns.d.ts +17 -3
- package/dist/2d/blueprints/blueprintFns.d.ts.map +1 -1
- package/dist/2d/blueprints/{offset.d.ts → blueprintOffset.d.ts} +1 -1
- package/dist/2d/blueprints/blueprintOffset.d.ts.map +1 -0
- package/dist/2d/blueprints/index.d.ts +4 -4
- package/dist/2d/blueprints/index.d.ts.map +1 -1
- package/dist/2d/lib/Curve2D.d.ts +1 -1
- package/dist/2d/lib/Curve2D.d.ts.map +1 -1
- package/dist/2d/lib/svgPath.d.ts.map +1 -1
- package/dist/2d/lib/vectorOperations.d.ts +4 -1
- package/dist/2d/lib/vectorOperations.d.ts.map +1 -1
- package/dist/2d-CzEysb7A.js +108 -0
- package/dist/2d-DCxS_sb_.cjs +107 -0
- package/dist/2d.cjs +24 -88
- package/dist/2d.d.ts +1 -1
- package/dist/2d.js +34 -99
- package/dist/{Blueprint-CQ28WJhz.cjs → Blueprint-BoC0DsDm.cjs} +15 -45
- package/dist/{Blueprint-DbVaf6k7.js → Blueprint-CQNRtmYG.js} +33 -63
- package/dist/{boolean2D-y3E92F0u.js → boolean2D-DXAt4GAK.js} +132 -62
- package/dist/{boolean2D-0blbVtJ8.cjs → boolean2D-N9Pgumgg.cjs} +112 -42
- package/dist/{booleanFns-BCTjYZAg.js → booleanFns-BXV7Oh0h.js} +53 -50
- package/dist/{booleanFns-gmsX3Cv2.cjs → booleanFns-CxArUj_q.cjs} +43 -40
- package/dist/brepjs.cjs +448 -379
- package/dist/brepjs.js +1634 -1563
- package/dist/core/dimensionTypes.d.ts +52 -0
- package/dist/core/dimensionTypes.d.ts.map +1 -0
- package/dist/core/disposal.d.ts +18 -0
- package/dist/core/disposal.d.ts.map +1 -1
- package/dist/core/errors.d.ts +7 -8
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/kernelErrorTranslation.d.ts +15 -0
- package/dist/core/kernelErrorTranslation.d.ts.map +1 -0
- package/dist/core/planeOps.d.ts +14 -0
- package/dist/core/planeOps.d.ts.map +1 -1
- package/dist/core/result.d.ts +4 -0
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/shapeTypes.d.ts +14 -146
- package/dist/core/shapeTypes.d.ts.map +1 -1
- package/dist/core/{definitionMaps.d.ts → typeDiscriminants.d.ts} +5 -1
- package/dist/core/typeDiscriminants.d.ts.map +1 -0
- package/dist/core/validityTypes.d.ts +100 -0
- package/dist/core/validityTypes.d.ts.map +1 -0
- package/dist/core.cjs +52 -11
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +119 -76
- package/dist/{curveFns-BZngcnQ1.cjs → curveFns-CWZRuXQ3.cjs} +2 -2
- package/dist/{curveFns-mROFhiuG.js → curveFns-OmbtFSG8.js} +14 -14
- package/dist/{drawFns-Bwakrq7w.js → drawFns-8S0ULGRj.js} +146 -118
- package/dist/{drawFns-CjRc1NfQ.cjs → drawFns-voV2wEp8.cjs} +153 -125
- package/dist/{faceFns-B8GnxjdY.js → faceFns-Bn2seBfp.js} +16 -24
- package/dist/{faceFns-DB1Fc5gy.cjs → faceFns-CmIrjdt1.cjs} +2 -10
- package/dist/{helpers-X0juxnwj.js → helpers-CEn618MW.js} +89 -21
- package/dist/{helpers-C8NoT0Wu.cjs → helpers-mipaxDTy.cjs} +77 -9
- package/dist/index.d.ts +20 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/io/gltfImportFns.d.ts +18 -0
- package/dist/io/gltfImportFns.d.ts.map +1 -0
- package/dist/io/ioUtils.d.ts +16 -0
- package/dist/io/ioUtils.d.ts.map +1 -0
- package/dist/io/objImportFns.d.ts.map +1 -1
- package/dist/io/threemfImportFns.d.ts.map +1 -1
- package/dist/io.cjs +4 -4
- package/dist/io.js +4 -4
- package/dist/kernel/brepkit/booleanOps.d.ts +23 -0
- package/dist/kernel/brepkit/booleanOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/constructionOps.d.ts +51 -0
- package/dist/kernel/brepkit/constructionOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/evolutionOps.d.ts +31 -0
- package/dist/kernel/brepkit/evolutionOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/geometryOps.d.ts +56 -0
- package/dist/kernel/brepkit/geometryOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/helpers.d.ts +84 -0
- package/dist/kernel/brepkit/helpers.d.ts.map +1 -0
- package/dist/kernel/brepkit/internalOps.d.ts +28 -0
- package/dist/kernel/brepkit/internalOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/ioOps.d.ts +43 -0
- package/dist/kernel/brepkit/ioOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/measureOps.d.ts +30 -0
- package/dist/kernel/brepkit/measureOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/meshOps.d.ts +7 -0
- package/dist/kernel/brepkit/meshOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/modifierOps.d.ts +15 -0
- package/dist/kernel/brepkit/modifierOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/repairOps.d.ts +14 -0
- package/dist/kernel/brepkit/repairOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/sweepOps.d.ts +27 -0
- package/dist/kernel/brepkit/sweepOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/topologyOps.d.ts +16 -0
- package/dist/kernel/brepkit/topologyOps.d.ts.map +1 -0
- package/dist/kernel/brepkit/transformOps.d.ts +14 -0
- package/dist/kernel/brepkit/transformOps.d.ts.map +1 -0
- package/dist/kernel/brepkitAdapter.d.ts +1 -1
- package/dist/kernel/brepkitAdapter.d.ts.map +1 -1
- package/dist/kernel/brepkitWasmTypes.d.ts +8 -0
- package/dist/kernel/brepkitWasmTypes.d.ts.map +1 -1
- package/dist/kernel/defaultAdapter.d.ts.map +1 -1
- package/dist/kernel/extendedConstructorOps.d.ts +9 -1
- package/dist/kernel/extendedConstructorOps.d.ts.map +1 -1
- package/dist/kernel/index.d.ts +1 -0
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/interfaces/boolean-ops.d.ts +25 -0
- package/dist/kernel/interfaces/boolean-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/builder-ops.d.ts +57 -0
- package/dist/kernel/interfaces/builder-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/core.d.ts +30 -0
- package/dist/kernel/interfaces/core.d.ts.map +1 -0
- package/dist/kernel/interfaces/curve-ops.d.ts +41 -0
- package/dist/kernel/interfaces/curve-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/evolution-ops.d.ts +19 -0
- package/dist/kernel/interfaces/evolution-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/index.d.ts +37 -0
- package/dist/kernel/interfaces/index.d.ts.map +1 -0
- package/dist/kernel/interfaces/io-ops.d.ts +66 -0
- package/dist/kernel/interfaces/io-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/measure-ops.d.ts +35 -0
- package/dist/kernel/interfaces/measure-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/mesh-ops.d.ts +21 -0
- package/dist/kernel/interfaces/mesh-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/modifier-ops.d.ts +22 -0
- package/dist/kernel/interfaces/modifier-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/primitive-ops.d.ts +13 -0
- package/dist/kernel/interfaces/primitive-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/repair-ops.d.ts +36 -0
- package/dist/kernel/interfaces/repair-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/surface-ops.d.ts +50 -0
- package/dist/kernel/interfaces/surface-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/sweep-ops.d.ts +49 -0
- package/dist/kernel/interfaces/sweep-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/topology-ops.d.ts +30 -0
- package/dist/kernel/interfaces/topology-ops.d.ts.map +1 -0
- package/dist/kernel/interfaces/transform-ops.d.ts +35 -0
- package/dist/kernel/interfaces/transform-ops.d.ts.map +1 -0
- package/dist/kernel/modifierOps.d.ts +2 -2
- package/dist/kernel/modifierOps.d.ts.map +1 -1
- package/dist/kernel/types.d.ts +2 -446
- package/dist/kernel/types.d.ts.map +1 -1
- package/dist/measurement/measureCache.d.ts +11 -9
- package/dist/measurement/measureCache.d.ts.map +1 -1
- package/dist/measurement/measureFns.d.ts +24 -71
- package/dist/measurement/measureFns.d.ts.map +1 -1
- package/dist/measurement/measureTypes.d.ts +30 -0
- package/dist/measurement/measureTypes.d.ts.map +1 -0
- package/dist/{measurement-D8EJ694A.js → measurement-fJWDEpz0.js} +53 -34
- package/dist/measurement-ph-kanQ7.cjs +154 -0
- package/dist/measurement.cjs +2 -1
- package/dist/measurement.d.ts +1 -1
- package/dist/measurement.d.ts.map +1 -1
- package/dist/measurement.js +4 -3
- package/dist/{meshFns-BnV0ZR8w.cjs → meshFns-B9p4EVV8.cjs} +4 -4
- package/dist/{meshFns-nQjK38EC.js → meshFns-D0qIoxm-.js} +3 -3
- package/dist/operations/compoundOpsFns.d.ts +38 -0
- package/dist/operations/compoundOpsFns.d.ts.map +1 -0
- package/dist/operations/convexHullFns.d.ts +21 -0
- package/dist/operations/convexHullFns.d.ts.map +1 -0
- package/dist/operations/extrudeFns.d.ts +2 -93
- package/dist/operations/extrudeFns.d.ts.map +1 -1
- package/dist/operations/guidedSweepFns.d.ts +3 -22
- package/dist/operations/guidedSweepFns.d.ts.map +1 -1
- package/dist/operations/multiSweepFns.d.ts +3 -29
- package/dist/operations/multiSweepFns.d.ts.map +1 -1
- package/dist/operations/roofFns.d.ts +2 -2
- package/dist/operations/roofFns.d.ts.map +1 -1
- package/dist/operations/straightSkeleton.d.ts.map +1 -1
- package/dist/operations/sweepFns.d.ts +121 -0
- package/dist/operations/sweepFns.d.ts.map +1 -0
- package/dist/{operations-BfbkK6DU.js → operations-DX_qy_TB.js} +29 -177
- package/dist/{operations-CYpmLSC4.cjs → operations-Ds4xoyxR.cjs} +6 -154
- package/dist/operations.cjs +6 -10
- package/dist/operations.d.ts +0 -2
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +26 -30
- package/dist/originTrackingFns-BOCAMfd0.js +137 -0
- package/dist/originTrackingFns-SPU7ly3_.cjs +136 -0
- package/dist/query/edgeFinder.d.ts +4 -14
- package/dist/query/edgeFinder.d.ts.map +1 -1
- package/dist/query/faceFinder.d.ts +4 -14
- package/dist/query/faceFinder.d.ts.map +1 -1
- package/dist/query/finderCore.d.ts +6 -0
- package/dist/query/finderCore.d.ts.map +1 -1
- package/dist/query/shapeFinders.d.ts +32 -0
- package/dist/query/shapeFinders.d.ts.map +1 -0
- package/dist/query/wireFinder.d.ts +4 -9
- package/dist/query/wireFinder.d.ts.map +1 -1
- package/dist/query.cjs +54 -32
- package/dist/query.js +56 -34
- package/dist/{result-BaSD1fqR.js → result-CoDaWsvc.js} +48 -90
- package/dist/{result-fAX0OZzI.cjs → result-DULetAht.cjs} +17 -59
- package/dist/result.cjs +1 -1
- package/dist/result.js +23 -23
- package/dist/shapeFns-BZ6zk7nd.js +34 -0
- package/dist/shapeFns-bRkrwI8R.cjs +33 -0
- package/dist/{shapeTypes-7xEam9Ri.cjs → shapeTypes-T0n6mRmt.cjs} +170 -137
- package/dist/{shapeTypes-CpSaBLDv.js → shapeTypes-dhhm-T5A.js} +205 -172
- package/dist/sketching/CompoundSketch.d.ts +4 -4
- package/dist/sketching/CompoundSketch.d.ts.map +1 -1
- package/dist/sketching/Sketch.d.ts +3 -3
- package/dist/sketching/Sketch.d.ts.map +1 -1
- package/dist/sketching/Sketcher.d.ts.map +1 -1
- package/dist/sketching/Sketches.d.ts +1 -1
- package/dist/sketching/Sketches.d.ts.map +1 -1
- package/dist/sketching/draw.d.ts +1 -20
- package/dist/sketching/draw.d.ts.map +1 -1
- package/dist/sketching/draw3d.d.ts +22 -0
- package/dist/sketching/draw3d.d.ts.map +1 -0
- package/dist/sketching/sketchFns.d.ts +3 -3
- package/dist/sketching/sketchFns.d.ts.map +1 -1
- package/dist/sketching/sketchLib.d.ts +2 -2
- package/dist/sketching/sketchLib.d.ts.map +1 -1
- package/dist/sketching.cjs +2 -2
- package/dist/sketching.d.ts +2 -1
- package/dist/sketching.d.ts.map +1 -1
- package/dist/sketching.js +2 -2
- package/dist/{solidBuilders-994_MQwB.cjs → solidBuilders-BEAoLYvr.cjs} +3 -3
- package/dist/{solidBuilders-DmwhTCCd.js → solidBuilders-tVmD3R7Z.js} +12 -12
- package/dist/{surfaceBuilders-5VA34a3_.cjs → surfaceBuilders-DYS8AMSS.cjs} +3 -3
- package/dist/{surfaceBuilders-nQdJ56fe.js → surfaceBuilders-Dl0ATFbO.js} +15 -15
- package/dist/sweepFns-BKnQs59A.js +215 -0
- package/dist/sweepFns-COqeYIUp.cjs +214 -0
- package/dist/text/textBlueprints.d.ts +4 -3
- package/dist/text/textBlueprints.d.ts.map +1 -1
- package/dist/topology/booleanFns.d.ts.map +1 -1
- package/dist/topology/cast.d.ts +1 -5
- package/dist/topology/cast.d.ts.map +1 -1
- package/dist/topology/compoundOpsFns.d.ts +3 -35
- package/dist/topology/compoundOpsFns.d.ts.map +1 -1
- package/dist/topology/curveFns.d.ts +1 -1
- package/dist/topology/curveFns.d.ts.map +1 -1
- package/dist/topology/index.d.ts +2 -3
- package/dist/topology/index.d.ts.map +1 -1
- package/dist/topology/{colorFns.d.ts → metadata/colorFns.d.ts} +2 -2
- package/dist/topology/metadata/colorFns.d.ts.map +1 -0
- package/dist/topology/{faceTagFns.d.ts → metadata/faceTagFns.d.ts} +2 -2
- package/dist/topology/metadata/faceTagFns.d.ts.map +1 -0
- package/dist/topology/metadata/metadataPropagation.d.ts +30 -0
- package/dist/topology/metadata/metadataPropagation.d.ts.map +1 -0
- package/dist/topology/metadata/originTrackingFns.d.ts +23 -0
- package/dist/topology/metadata/originTrackingFns.d.ts.map +1 -0
- package/dist/topology/modifierFns.d.ts.map +1 -1
- package/dist/topology/shapeFns.d.ts +6 -120
- package/dist/topology/shapeFns.d.ts.map +1 -1
- package/dist/topology/topologyQueryFns.d.ts +67 -0
- package/dist/topology/topologyQueryFns.d.ts.map +1 -0
- package/dist/topology/transformFns.d.ts +49 -0
- package/dist/topology/transformFns.d.ts.map +1 -0
- package/dist/topology/wrapperFns.d.ts.map +1 -1
- package/dist/{topology-C7x98OVn.js → topology-C1oUQXZS.js} +235 -50
- package/dist/{topology-ANwCzGL8.cjs → topology-xyDYbkHW.cjs} +205 -20
- package/dist/topology.cjs +18 -17
- package/dist/topology.js +97 -96
- package/dist/topologyQueryFns-0IptTUCo.cjs +118 -0
- package/dist/topologyQueryFns-Dj4Xd5kx.js +119 -0
- package/dist/{types-CWDdqcrq.js → types-CcKqsmd0.js} +2 -2
- package/dist/utils/precisionRound.d.ts +4 -0
- package/dist/utils/precisionRound.d.ts.map +1 -1
- package/dist/utils/vec2d.d.ts +5 -0
- package/dist/utils/vec2d.d.ts.map +1 -1
- package/dist/{vecOps-ZDdZWbwT.js → vecOps-LTN--A58.js} +15 -15
- package/dist/{vectors-Bx8wkNui.js → vectors-B8juLsQB.js} +15 -7
- package/dist/{vectors-D_IiZx0q.cjs → vectors-I_0zdD3O.cjs} +9 -1
- package/dist/vectors.cjs +1 -1
- package/dist/vectors.js +23 -23
- package/package.json +9 -9
- package/dist/2d/blueprints/approximations.d.ts.map +0 -1
- package/dist/2d/blueprints/customCorners.d.ts.map +0 -1
- package/dist/2d/blueprints/offset.d.ts.map +0 -1
- package/dist/core/definitionMaps.d.ts.map +0 -1
- package/dist/core/geometryHelpers.d.ts +0 -30
- package/dist/core/geometryHelpers.d.ts.map +0 -1
- package/dist/core/memory.d.ts +0 -6
- package/dist/core/memory.d.ts.map +0 -1
- package/dist/core/typeErrors.d.ts +0 -17
- package/dist/core/typeErrors.d.ts.map +0 -1
- package/dist/cornerFinder-Ckz-mPHE.js +0 -59
- package/dist/cornerFinder-ZmOyOOsh.cjs +0 -58
- package/dist/loft-Bhw-FMoL.js +0 -228
- package/dist/loft-hp3pc1M7.cjs +0 -227
- package/dist/measurement-BoNTUBAp.cjs +0 -135
- package/dist/operations/extrude.d.ts +0 -72
- package/dist/operations/extrude.d.ts.map +0 -1
- package/dist/operations/loft.d.ts +0 -33
- package/dist/operations/loft.d.ts.map +0 -1
- package/dist/shapeFns-C2SnNvdH.cjs +0 -468
- package/dist/shapeFns-FDuKkrDR.js +0 -469
- package/dist/topology/colorFns.d.ts.map +0 -1
- package/dist/topology/faceTagFns.d.ts.map +0 -1
- package/dist/utils/round2.d.ts +0 -3
- package/dist/utils/round2.d.ts.map +0 -1
- package/dist/utils/round5.d.ts +0 -3
- package/dist/utils/round5.d.ts.map +0 -1
|
@@ -43,22 +43,22 @@ var __callDispose = (stack, error, hasError) => {
|
|
|
43
43
|
};
|
|
44
44
|
return next();
|
|
45
45
|
};
|
|
46
|
-
import {
|
|
47
|
-
import { r as resolvePlane,
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
50
|
-
import { b as Flatbush, B as BaseSketcher2d, S as Sketch, r as
|
|
51
|
-
import { d as downcast, c as cast,
|
|
52
|
-
import { o as offsetWire2D } from "./curveFns-
|
|
53
|
-
import {
|
|
54
|
-
import {
|
|
55
|
-
import { c as curvesAsEdgesOnPlane,
|
|
56
|
-
import { s as samePoint$1, P as PRECISION_OFFSET,
|
|
57
|
-
import { d as getEdges } from "./
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
46
|
+
import { d as bug, u as unwrap, c as isOk, s as safeIndex, e as err, v as validationError, B as BrepErrorCode, o as ok, i as ioError } from "./result-CoDaWsvc.js";
|
|
47
|
+
import { r as resolvePlane, p as planeToWorld } from "./vectors-B8juLsQB.js";
|
|
48
|
+
import { t as toVec3 } from "./types-CcKqsmd0.js";
|
|
49
|
+
import { c as vecNormalize, e as vecCross, f as vecSub, b as vecScale, g as vecRotate, D as DEG2RAD, v as vecLength } from "./vecOps-LTN--A58.js";
|
|
50
|
+
import { b as Flatbush, B as BaseSketcher2d, S as Sketch, e as extrude, r as revolve, c as roundedRectangleBlueprint, d as Blueprints, C as CompoundBlueprint, f as cut2D, i as intersectCurves, g as fuse2D, m as make2dOffset, h as filletCurves, j as chamferCurves, o as organiseBlueprints, a as BlueprintSketcher, k as intersect2D, p as polysidesBlueprint } from "./boolean2D-DXAt4GAK.js";
|
|
51
|
+
import { d as downcast, c as cast, a as faceCenter, n as normalAt, o as outerWire } from "./faceFns-Bn2seBfp.js";
|
|
52
|
+
import { o as offsetWire2D } from "./curveFns-OmbtFSG8.js";
|
|
53
|
+
import { D as DisposalScope, g as getKernel, l as createWire, n as createFace, o as isFace, c as castShape } from "./shapeTypes-dhhm-T5A.js";
|
|
54
|
+
import { a as assembleWire, b as addHolesInFace, m as makeFace, c as makeCircle, d as makeEllipse, e as makeHelix, f as makeBSplineApproximation } from "./surfaceBuilders-Dl0ATFbO.js";
|
|
55
|
+
import { c as curvesAsEdgesOnPlane, B as Blueprint, C as Curve2D, m as make2dSegmentCurve, a as make2dArcFromCenter, b as approximateAsSvgCompatibleCurve, d as BoundingBox2d, e as make2dInerpolatedBSplineCurve, f as make2dCircle, g as make2dEllipse, h as deserializeCurve2D, i as edgeToCurve } from "./Blueprint-CQNRtmYG.js";
|
|
56
|
+
import { s as samePoint$1, P as PRECISION_OFFSET, e as squareDistance2d, c as subtract2d, b as add2d } from "./helpers-CEn618MW.js";
|
|
57
|
+
import { d as getEdges } from "./topologyQueryFns-Dj4Xd5kx.js";
|
|
58
|
+
import { m as makeCompound, a as makeSolid } from "./solidBuilders-tVmD3R7Z.js";
|
|
59
|
+
import { c as complexExtrude, t as twistExtrude } from "./sweepFns-BKnQs59A.js";
|
|
60
60
|
import opentype from "opentype.js";
|
|
61
|
-
import {
|
|
61
|
+
import { cornerFinder } from "./query.js";
|
|
62
62
|
const stitchCurves = (curves, precision = 1e-7) => {
|
|
63
63
|
const startPoints = new Flatbush(curves.length);
|
|
64
64
|
curves.forEach((c) => {
|
|
@@ -174,7 +174,7 @@ class Sketcher extends BaseSketcher2d {
|
|
|
174
174
|
const startToEndVector = vecNormalize(diff);
|
|
175
175
|
const normal = vecCross(startToEndVector, this.plane.zDir);
|
|
176
176
|
const clonedWrapped = unwrap(downcast(wire.wrapped));
|
|
177
|
-
const mirroredRaw = mirror(clonedWrapped,
|
|
177
|
+
const mirroredRaw = getKernel().mirror(clonedWrapped, toVec3(pointer3d), toVec3(normal));
|
|
178
178
|
const mirroredWrapped = unwrap(downcast(mirroredRaw));
|
|
179
179
|
const mirroredWire = createWire(mirroredWrapped);
|
|
180
180
|
const combinedWire = unwrap(assembleWire([wire, mirroredWire]));
|
|
@@ -312,7 +312,7 @@ class CompoundSketch {
|
|
|
312
312
|
)
|
|
313
313
|
);
|
|
314
314
|
} else {
|
|
315
|
-
result =
|
|
315
|
+
result = unwrap(extrude(this.face(), extrusionVec));
|
|
316
316
|
}
|
|
317
317
|
return result;
|
|
318
318
|
}
|
|
@@ -321,13 +321,9 @@ class CompoundSketch {
|
|
|
321
321
|
* (defaults to the sketch origin)
|
|
322
322
|
*/
|
|
323
323
|
revolve(revolutionAxis, { origin } = {}) {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
origin ? toVec3(origin) : this.outerSketch.defaultOrigin,
|
|
328
|
-
revolutionAxis
|
|
329
|
-
)
|
|
330
|
-
);
|
|
324
|
+
const center = origin ? toVec3(origin) : this.outerSketch.defaultOrigin;
|
|
325
|
+
const dir = revolutionAxis ? toVec3(revolutionAxis) : [0, 0, 1];
|
|
326
|
+
return unwrap(revolve(this.face(), center, dir));
|
|
331
327
|
}
|
|
332
328
|
/** Loft between this compound sketch and another with matching sub-sketch counts. */
|
|
333
329
|
loftWith(otherCompound, loftConfig) {
|
|
@@ -338,7 +334,9 @@ class CompoundSketch {
|
|
|
338
334
|
);
|
|
339
335
|
const shells = this.sketches.map((base, cIndex) => {
|
|
340
336
|
const outer = otherCompound.sketches[cIndex];
|
|
341
|
-
|
|
337
|
+
const loftOpts = {};
|
|
338
|
+
if (loftConfig.ruled !== void 0) loftOpts.ruled = loftConfig.ruled;
|
|
339
|
+
return base.clone().loftWith(outer.clone(), loftOpts, true);
|
|
342
340
|
});
|
|
343
341
|
const baseFaceRaw = this.face();
|
|
344
342
|
const baseFace = createFace(unwrap(downcast(baseFaceRaw.wrapped)));
|
|
@@ -791,7 +789,7 @@ function wrapSketchDataArray(dataArr) {
|
|
|
791
789
|
const FONT_REGISTER = {};
|
|
792
790
|
async function loadFont(fontPath, fontFamily = "default", force = false) {
|
|
793
791
|
if (!force && FONT_REGISTER[fontFamily]) {
|
|
794
|
-
return FONT_REGISTER[fontFamily];
|
|
792
|
+
return ok(FONT_REGISTER[fontFamily]);
|
|
795
793
|
}
|
|
796
794
|
let fontData;
|
|
797
795
|
if (typeof fontPath === "string") {
|
|
@@ -799,14 +797,20 @@ async function loadFont(fontPath, fontFamily = "default", force = false) {
|
|
|
799
797
|
try {
|
|
800
798
|
response = await fetch(fontPath);
|
|
801
799
|
} catch (e) {
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
800
|
+
return err(
|
|
801
|
+
ioError(
|
|
802
|
+
BrepErrorCode.FONT_FETCH_FAILED,
|
|
803
|
+
`Failed to fetch font from ${fontPath}: ${e instanceof Error ? e.message : String(e)}`,
|
|
804
|
+
e
|
|
805
|
+
)
|
|
805
806
|
);
|
|
806
807
|
}
|
|
807
808
|
if (!response.ok) {
|
|
808
|
-
|
|
809
|
-
|
|
809
|
+
return err(
|
|
810
|
+
ioError(
|
|
811
|
+
BrepErrorCode.FONT_FETCH_FAILED,
|
|
812
|
+
`Failed to fetch font from ${fontPath}: HTTP ${response.status} ${response.statusText}`
|
|
813
|
+
)
|
|
810
814
|
);
|
|
811
815
|
}
|
|
812
816
|
fontData = await response.arrayBuffer();
|
|
@@ -817,13 +821,17 @@ async function loadFont(fontPath, fontFamily = "default", force = false) {
|
|
|
817
821
|
try {
|
|
818
822
|
font = opentype.parse(fontData);
|
|
819
823
|
} catch (e) {
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
824
|
+
return err(
|
|
825
|
+
ioError(
|
|
826
|
+
BrepErrorCode.FONT_PARSE_FAILED,
|
|
827
|
+
`Failed to parse font data: ${e instanceof Error ? e.message : String(e)}`,
|
|
828
|
+
e
|
|
829
|
+
)
|
|
830
|
+
);
|
|
823
831
|
}
|
|
824
832
|
FONT_REGISTER[fontFamily] = font;
|
|
825
833
|
if (!FONT_REGISTER["default"]) FONT_REGISTER["default"] = font;
|
|
826
|
-
return font;
|
|
834
|
+
return ok(font);
|
|
827
835
|
}
|
|
828
836
|
const getFont = (fontFamily = "default") => {
|
|
829
837
|
return FONT_REGISTER[fontFamily];
|
|
@@ -883,107 +891,48 @@ function sketchText(text, textConfig, planeConfig = {}) {
|
|
|
883
891
|
function textMetrics(text, options) {
|
|
884
892
|
const fontSize = options?.fontSize ?? 1;
|
|
885
893
|
const font = getFont(options?.fontFamily);
|
|
886
|
-
if (!font)
|
|
894
|
+
if (!font) {
|
|
895
|
+
return err(
|
|
896
|
+
validationError(
|
|
897
|
+
BrepErrorCode.NO_FONT_LOADED,
|
|
898
|
+
"No font loaded. Call loadFont() first.",
|
|
899
|
+
void 0,
|
|
900
|
+
void 0,
|
|
901
|
+
"Load a font with loadFont() before calling textMetrics()"
|
|
902
|
+
)
|
|
903
|
+
);
|
|
904
|
+
}
|
|
887
905
|
const width = font.getAdvanceWidth(text, fontSize);
|
|
888
906
|
const scale = fontSize / font.unitsPerEm;
|
|
889
907
|
const ascender = font.ascender * scale;
|
|
890
908
|
const descender = font.descender * scale;
|
|
891
|
-
return { width, height: ascender - descender, ascender, descender };
|
|
909
|
+
return ok({ width, height: ascender - descender, ascender, descender });
|
|
892
910
|
}
|
|
893
911
|
function fontMetrics(options) {
|
|
894
912
|
const fontSize = options?.fontSize ?? 1;
|
|
895
913
|
const font = getFont(options?.fontFamily);
|
|
896
|
-
if (!font)
|
|
914
|
+
if (!font) {
|
|
915
|
+
return err(
|
|
916
|
+
validationError(
|
|
917
|
+
BrepErrorCode.NO_FONT_LOADED,
|
|
918
|
+
"No font loaded. Call loadFont() first.",
|
|
919
|
+
void 0,
|
|
920
|
+
void 0,
|
|
921
|
+
"Load a font with loadFont() before calling fontMetrics()"
|
|
922
|
+
)
|
|
923
|
+
);
|
|
924
|
+
}
|
|
897
925
|
const scale = fontSize / font.unitsPerEm;
|
|
898
926
|
const ascender = font.ascender * scale;
|
|
899
927
|
const descender = font.descender * scale;
|
|
900
928
|
const lineGap = (font.tables?.os2?.sTypoLineGap ?? 0) * scale;
|
|
901
|
-
return {
|
|
929
|
+
return ok({
|
|
902
930
|
ascender,
|
|
903
931
|
descender,
|
|
904
932
|
unitsPerEm: font.unitsPerEm,
|
|
905
933
|
lineHeight: ascender - descender + lineGap
|
|
906
|
-
};
|
|
907
|
-
}
|
|
908
|
-
const PROJECTION_PLANES = {
|
|
909
|
-
XY: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
|
|
910
|
-
XZ: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
|
|
911
|
-
YZ: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
|
|
912
|
-
YX: { dir: [0, 0, -1], xAxis: [0, 1, 0] },
|
|
913
|
-
ZX: { dir: [0, 1, 0], xAxis: [0, 0, 1] },
|
|
914
|
-
ZY: { dir: [-1, 0, 0], xAxis: [0, 0, 1] },
|
|
915
|
-
front: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
|
|
916
|
-
back: { dir: [0, 1, 0], xAxis: [-1, 0, 0] },
|
|
917
|
-
right: { dir: [-1, 0, 0], xAxis: [0, -1, 0] },
|
|
918
|
-
left: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
|
|
919
|
-
bottom: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
|
|
920
|
-
top: { dir: [0, 0, -1], xAxis: [1, 0, 0] }
|
|
921
|
-
};
|
|
922
|
-
function isProjectionPlane(plane) {
|
|
923
|
-
return typeof plane === "string" && plane in PROJECTION_PLANES;
|
|
924
|
-
}
|
|
925
|
-
const getEdgesFromOc = (shape) => {
|
|
926
|
-
if (shape.IsNull()) return [];
|
|
927
|
-
return getEdges(castShape(shape));
|
|
928
|
-
};
|
|
929
|
-
function makeProjectedEdges(shape, camera, withHiddenLines = true) {
|
|
930
|
-
const projected = getKernel().projectEdges(
|
|
931
|
-
shape.wrapped,
|
|
932
|
-
[...camera.position],
|
|
933
|
-
[...camera.direction],
|
|
934
|
-
[...camera.xAxis]
|
|
935
|
-
);
|
|
936
|
-
const visible = [
|
|
937
|
-
...getEdgesFromOc(projected.visible.sharp),
|
|
938
|
-
...getEdgesFromOc(projected.visible.smooth),
|
|
939
|
-
...getEdgesFromOc(projected.visible.outline)
|
|
940
|
-
];
|
|
941
|
-
const hidden = withHiddenLines ? [
|
|
942
|
-
...getEdgesFromOc(projected.hidden.sharp),
|
|
943
|
-
...getEdgesFromOc(projected.hidden.smooth),
|
|
944
|
-
...getEdgesFromOc(projected.hidden.outline)
|
|
945
|
-
] : [];
|
|
946
|
-
return { visible, hidden };
|
|
947
|
-
}
|
|
948
|
-
function createCamera(position = [0, 0, 0], direction = [0, 0, 1], xAxis) {
|
|
949
|
-
const dirLength = vecLength(direction);
|
|
950
|
-
if (dirLength < 1e-12) {
|
|
951
|
-
return err(
|
|
952
|
-
validationError("CAMERA_ZERO_DIRECTION", "Camera direction cannot be a zero-length vector")
|
|
953
|
-
);
|
|
954
|
-
}
|
|
955
|
-
let resolvedXAxis;
|
|
956
|
-
if (xAxis) {
|
|
957
|
-
resolvedXAxis = vecNormalize(xAxis);
|
|
958
|
-
} else {
|
|
959
|
-
let cross = vecCross([0, 0, 1], direction);
|
|
960
|
-
if (vecLength(cross) < 1e-12) {
|
|
961
|
-
cross = vecCross([0, 1, 0], direction);
|
|
962
|
-
}
|
|
963
|
-
if (vecLength(cross) < 1e-12) {
|
|
964
|
-
cross = vecCross([1, 0, 0], direction);
|
|
965
|
-
}
|
|
966
|
-
resolvedXAxis = vecNormalize(cross);
|
|
967
|
-
}
|
|
968
|
-
const yAxis = vecNormalize(vecCross(direction, resolvedXAxis));
|
|
969
|
-
return ok({
|
|
970
|
-
position,
|
|
971
|
-
direction: vecNormalize(direction),
|
|
972
|
-
xAxis: resolvedXAxis,
|
|
973
|
-
yAxis
|
|
974
934
|
});
|
|
975
935
|
}
|
|
976
|
-
function cameraLookAt(camera, target) {
|
|
977
|
-
const direction = vecNormalize(vecSub(camera.position, target));
|
|
978
|
-
return createCamera(camera.position, direction);
|
|
979
|
-
}
|
|
980
|
-
function cameraFromPlane(planeName) {
|
|
981
|
-
const config = PROJECTION_PLANES[planeName];
|
|
982
|
-
return createCamera([0, 0, 0], config.dir, config.xAxis);
|
|
983
|
-
}
|
|
984
|
-
function projectEdges(shape, camera, withHiddenLines = true) {
|
|
985
|
-
return makeProjectedEdges(shape, camera, withHiddenLines);
|
|
986
|
-
}
|
|
987
936
|
function wrapBlueprintResult(shape, result) {
|
|
988
937
|
if (shape instanceof Blueprint) {
|
|
989
938
|
return wrapSketchData(result);
|
|
@@ -1266,6 +1215,85 @@ const drawParametricFunction = (func, { pointsCount = 400, start = 0, stop = 1,
|
|
|
1266
1215
|
});
|
|
1267
1216
|
return drawPointsInterpolation(points, approximationConfig, { closeShape });
|
|
1268
1217
|
};
|
|
1218
|
+
const PROJECTION_PLANES = {
|
|
1219
|
+
XY: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
|
|
1220
|
+
XZ: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
|
|
1221
|
+
YZ: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
|
|
1222
|
+
YX: { dir: [0, 0, -1], xAxis: [0, 1, 0] },
|
|
1223
|
+
ZX: { dir: [0, 1, 0], xAxis: [0, 0, 1] },
|
|
1224
|
+
ZY: { dir: [-1, 0, 0], xAxis: [0, 0, 1] },
|
|
1225
|
+
front: { dir: [0, -1, 0], xAxis: [1, 0, 0] },
|
|
1226
|
+
back: { dir: [0, 1, 0], xAxis: [-1, 0, 0] },
|
|
1227
|
+
right: { dir: [-1, 0, 0], xAxis: [0, -1, 0] },
|
|
1228
|
+
left: { dir: [1, 0, 0], xAxis: [0, 1, 0] },
|
|
1229
|
+
bottom: { dir: [0, 0, 1], xAxis: [1, 0, 0] },
|
|
1230
|
+
top: { dir: [0, 0, -1], xAxis: [1, 0, 0] }
|
|
1231
|
+
};
|
|
1232
|
+
function isProjectionPlane(plane) {
|
|
1233
|
+
return typeof plane === "string" && plane in PROJECTION_PLANES;
|
|
1234
|
+
}
|
|
1235
|
+
const getEdgesFromOc = (shape) => {
|
|
1236
|
+
if (shape.IsNull()) return [];
|
|
1237
|
+
return getEdges(castShape(shape));
|
|
1238
|
+
};
|
|
1239
|
+
function makeProjectedEdges(shape, camera, withHiddenLines = true) {
|
|
1240
|
+
const projected = getKernel().projectEdges(
|
|
1241
|
+
shape.wrapped,
|
|
1242
|
+
[...camera.position],
|
|
1243
|
+
[...camera.direction],
|
|
1244
|
+
[...camera.xAxis]
|
|
1245
|
+
);
|
|
1246
|
+
const visible = [
|
|
1247
|
+
...getEdgesFromOc(projected.visible.sharp),
|
|
1248
|
+
...getEdgesFromOc(projected.visible.smooth),
|
|
1249
|
+
...getEdgesFromOc(projected.visible.outline)
|
|
1250
|
+
];
|
|
1251
|
+
const hidden = withHiddenLines ? [
|
|
1252
|
+
...getEdgesFromOc(projected.hidden.sharp),
|
|
1253
|
+
...getEdgesFromOc(projected.hidden.smooth),
|
|
1254
|
+
...getEdgesFromOc(projected.hidden.outline)
|
|
1255
|
+
] : [];
|
|
1256
|
+
return { visible, hidden };
|
|
1257
|
+
}
|
|
1258
|
+
function createCamera(position = [0, 0, 0], direction = [0, 0, 1], xAxis) {
|
|
1259
|
+
const dirLength = vecLength(direction);
|
|
1260
|
+
if (dirLength < 1e-12) {
|
|
1261
|
+
return err(
|
|
1262
|
+
validationError("CAMERA_ZERO_DIRECTION", "Camera direction cannot be a zero-length vector")
|
|
1263
|
+
);
|
|
1264
|
+
}
|
|
1265
|
+
let resolvedXAxis;
|
|
1266
|
+
if (xAxis) {
|
|
1267
|
+
resolvedXAxis = vecNormalize(xAxis);
|
|
1268
|
+
} else {
|
|
1269
|
+
let cross = vecCross([0, 0, 1], direction);
|
|
1270
|
+
if (vecLength(cross) < 1e-12) {
|
|
1271
|
+
cross = vecCross([0, 1, 0], direction);
|
|
1272
|
+
}
|
|
1273
|
+
if (vecLength(cross) < 1e-12) {
|
|
1274
|
+
cross = vecCross([1, 0, 0], direction);
|
|
1275
|
+
}
|
|
1276
|
+
resolvedXAxis = vecNormalize(cross);
|
|
1277
|
+
}
|
|
1278
|
+
const yAxis = vecNormalize(vecCross(direction, resolvedXAxis));
|
|
1279
|
+
return ok({
|
|
1280
|
+
position,
|
|
1281
|
+
direction: vecNormalize(direction),
|
|
1282
|
+
xAxis: resolvedXAxis,
|
|
1283
|
+
yAxis
|
|
1284
|
+
});
|
|
1285
|
+
}
|
|
1286
|
+
function cameraLookAt(camera, target) {
|
|
1287
|
+
const direction = vecNormalize(vecSub(camera.position, target));
|
|
1288
|
+
return createCamera(camera.position, direction);
|
|
1289
|
+
}
|
|
1290
|
+
function cameraFromPlane(planeName) {
|
|
1291
|
+
const config = PROJECTION_PLANES[planeName];
|
|
1292
|
+
return createCamera([0, 0, 0], config.dir, config.xAxis);
|
|
1293
|
+
}
|
|
1294
|
+
function projectEdges(shape, camera, withHiddenLines = true) {
|
|
1295
|
+
return makeProjectedEdges(shape, camera, withHiddenLines);
|
|
1296
|
+
}
|
|
1269
1297
|
const edgesToDrawing = (edges) => {
|
|
1270
1298
|
var _stack = [];
|
|
1271
1299
|
try {
|