brepjs 20.12.4 → 20.12.6
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/lib/offset.d.ts +1 -1
- package/dist/2d.cjs +6 -6
- package/dist/2d.js +6 -6
- package/dist/{adjacencyFns-54UTqtan.js → adjacencyFns--KmBIKYJ.js} +3 -3
- package/dist/{adjacencyFns-C_Vb1AeW.cjs → adjacencyFns-BFJfaUwX.cjs} +3 -3
- package/dist/{blueprint-DFpjcrlm.js → blueprint-BhIk9Pvm.js} +7 -8
- package/dist/{blueprint-D0VEeTzJ.cjs → blueprint-D83DDDPb.cjs} +7 -8
- package/dist/{blueprintFns-Douf5ZdX.cjs → blueprintFns-C4TQn-x_.cjs} +2 -2
- package/dist/{blueprintFns-Dye1jezD.js → blueprintFns-eULVgkq9.js} +2 -2
- package/dist/{blueprintSketcher-Cr0Lr1Dq.js → blueprintSketcher-D_Faf0GO.js} +32 -14
- package/dist/{blueprintSketcher-W9yON-UC.cjs → blueprintSketcher-Di376t-0.cjs} +32 -14
- package/dist/{boolean2D-C9VghXHG.cjs → boolean2D-CNZFI_y8.cjs} +4 -4
- package/dist/{boolean2D-CCV3R6lN.js → boolean2D-DqpCF72W.js} +4 -4
- package/dist/brepjs.cjs +128 -100
- package/dist/brepjs.js +128 -100
- package/dist/{cameraFns-DZOI_ewG.js → cameraFns-CrClIkmV.js} +3 -3
- package/dist/{cameraFns-x3L6dtA8.cjs → cameraFns-RqraCXIc.cjs} +3 -3
- package/dist/core.cjs +2 -2
- package/dist/core.js +2 -2
- package/dist/{cornerFinder-BY10jciz.js → cornerFinder-BZuQkRp2.js} +1 -1
- package/dist/{cornerFinder-B8PqO4um.cjs → cornerFinder-CdOe1Wrb.cjs} +1 -1
- package/dist/{curveFns-B4308HNM.js → curveFns-BP3srCfK.js} +1 -1
- package/dist/{curveFns-8lUhNquZ.cjs → curveFns-CyIvQNYT.cjs} +1 -1
- package/dist/{drawFns-C7zAvera.cjs → drawFns-71cOhWD-.cjs} +29 -16
- package/dist/{drawFns-DjnU3fEd.js → drawFns-DxDwJ5zZ.js} +29 -16
- package/dist/{faceFns-BjmlYcc9.cjs → faceFns-B7MiDYj1.cjs} +2 -2
- package/dist/{faceFns-7eHqNM0P.js → faceFns-iVPbTxki.js} +2 -2
- package/dist/{healingFns-BW7mZ_SW.js → healingFns-BhP8zfp1.js} +5 -5
- package/dist/{healingFns-CYLIcIWv.cjs → healingFns-DWljGTNR.cjs} +5 -5
- package/dist/{helpers-BQ6XMFcm.js → helpers-D2hANLRu.js} +14 -10
- package/dist/{helpers-De0Z_6iV.cjs → helpers-DKEVm6Hu.cjs} +14 -10
- package/dist/{importFns-BCL4-H8e.js → importFns-DUzIkns7.js} +2 -2
- package/dist/{importFns-3IMBHQrQ.cjs → importFns-KEPAgbjj.cjs} +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/io.cjs +2 -2
- package/dist/io.js +2 -2
- package/dist/kernel/bspline2dFit.d.ts +42 -0
- package/dist/kernel/geometry2d.d.ts +45 -0
- package/dist/kernel/occt/kernel2dOps.d.ts +1 -1
- package/dist/kernel/occtWasm/constructionOps.d.ts +1 -1
- package/dist/kernel/occtWasm/kernel2dOps.d.ts +7 -4
- package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
- package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +3 -3
- package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
- package/dist/kernel/occtWasm/occtWasmTypes.d.ts +7 -0
- package/dist/{loftFns-DlG5oR0X.cjs → loftFns-D5AvfCGG.cjs} +17 -2
- package/dist/{loftFns-H4ZOpRAk.js → loftFns-D5NJpHLZ.js} +17 -2
- package/dist/{measureFns-Ce01LVwq.cjs → measureFns-CZHNWkiA.cjs} +102 -35
- package/dist/{measureFns-1IfNe629.js → measureFns-mxBdPiWa.js} +102 -35
- package/dist/measurement/measureFns.d.ts +3 -2
- package/dist/measurement.cjs +2 -2
- package/dist/measurement.js +2 -2
- package/dist/{meshFns-nEvfwNRF.cjs → meshFns-Czlt-GBJ.cjs} +3 -3
- package/dist/{meshFns-DaRZxa7B.js → meshFns-DmjMzNbH.js} +3 -3
- package/dist/{occtWasmAdapter-ipKUdNLN.js → occtWasmAdapter-B9d0Q0Vl.js} +1160 -261
- package/dist/{occtWasmAdapter-CRd9RFEu.cjs → occtWasmAdapter-DVxLkjlJ.cjs} +1171 -260
- package/dist/operations/patternFns.d.ts +6 -1
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +2 -2
- package/dist/{originTrackingFns-zrksCJTa.js → originTrackingFns-CBnyKLm7.js} +2 -2
- package/dist/{originTrackingFns-9gyCMFFQ.cjs → originTrackingFns-CHymOLLm.cjs} +2 -2
- package/dist/{primitiveFns-BRXZ7jnP.cjs → primitiveFns-BVeBEaa4.cjs} +7 -14
- package/dist/{primitiveFns-ClQP6zMQ.js → primitiveFns-DeNl60Rw.js} +7 -14
- package/dist/{principalBoxFns-DsfWOoXg.js → principalBoxFns-3mW_hA6z.js} +3 -3
- package/dist/{principalBoxFns-tIv-crMB.cjs → principalBoxFns-CG6kG7vT.cjs} +3 -3
- package/dist/projection.cjs +1 -1
- package/dist/projection.js +1 -1
- package/dist/query/finderCore.d.ts +7 -7
- package/dist/query.cjs +2 -2
- package/dist/query.js +2 -2
- package/dist/{refResolveFns-BZdUlv9f.cjs → refResolveFns-BAs4p9z7.cjs} +6 -6
- package/dist/{refResolveFns-BG3JGs--.js → refResolveFns-DHx1Y3GG.js} +6 -6
- package/dist/{shapeFns-BbXqiNqY.cjs → shapeFns-C0w8vvfb.cjs} +2 -2
- package/dist/{shapeFns-BCgegapL.js → shapeFns-CgqKICF_.js} +2 -2
- package/dist/shapeRef.cjs +1 -1
- package/dist/shapeRef.js +1 -1
- package/dist/{shapeTypes-DJT3SnGK.cjs → shapeTypes-Dc7j-MYg.cjs} +10 -16
- package/dist/{shapeTypes-DAz6aAnJ.js → shapeTypes-DwvQUp9M.js} +10 -16
- package/dist/sketching/sketches.d.ts +2 -0
- package/dist/sketching.cjs +3 -3
- package/dist/sketching.js +3 -3
- package/dist/{solidBuilders-8xytLt8-.js → solidBuilders-DT1gpVWM.js} +5 -5
- package/dist/{solidBuilders-BWbqhbyv.cjs → solidBuilders-iS5DDwg8.cjs} +5 -5
- package/dist/{surfaceBuilders-CwG_RPdZ.cjs → surfaceBuilders-BvwSgD3C.cjs} +3 -3
- package/dist/{surfaceBuilders-BO96DMCH.js → surfaceBuilders-CPLe0bbk.js} +3 -3
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/{textBlueprints-Dhe8_Uvc.js → textBlueprints-BU0Rhk54.js} +19 -11
- package/dist/{textBlueprints-DHfYmLtP.cjs → textBlueprints-CNPCPJix.cjs} +19 -11
- package/dist/{textMetrics-CwYDH9js.cjs → textMetrics-C71g4TmO.cjs} +1 -1
- package/dist/{textMetrics-Bbf-Dllw.js → textMetrics-Df9aLYK2.js} +1 -1
- package/dist/{threadFns-B23RqugN.cjs → threadFns-CzXEnnmo.cjs} +37 -29
- package/dist/{threadFns-Cn7_bmux.js → threadFns-DESH7lcs.js} +36 -28
- package/dist/topology/apiTypes.d.ts +13 -7
- package/dist/topology.cjs +9 -9
- package/dist/topology.d.ts +1 -1
- package/dist/topology.js +9 -9
- package/dist/{topologyQueryFns-xh11vEQw.cjs → topologyQueryFns-5Frx8Y-0.cjs} +1 -1
- package/dist/{topologyQueryFns-BfYdGOJc.js → topologyQueryFns-LXV1nTaS.js} +1 -1
- package/dist/{validityTypes-CXkecqMw.cjs → validityTypes-C6rROGTP.cjs} +1 -1
- package/dist/{validityTypes-BfOuvfyp.js → validityTypes-DM-Iwe8N.js} +1 -1
- package/package.json +2 -1
package/dist/brepjs.cjs
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_rolldown_runtime = require("./rolldown-runtime-BW-eSwOZ.cjs");
|
|
3
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
4
|
-
const require_occtWasmAdapter = require("./occtWasmAdapter-
|
|
3
|
+
const require_shapeTypes = require("./shapeTypes-Dc7j-MYg.cjs");
|
|
4
|
+
const require_occtWasmAdapter = require("./occtWasmAdapter-DVxLkjlJ.cjs");
|
|
5
5
|
const require_bug = require("./bug-CBcpIPuf.cjs");
|
|
6
6
|
const require_errors = require("./errors-O_blYTWT.cjs");
|
|
7
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
8
|
-
const require_validityTypes = require("./validityTypes-
|
|
7
|
+
const require_topologyQueryFns = require("./topologyQueryFns-5Frx8Y-0.cjs");
|
|
8
|
+
const require_validityTypes = require("./validityTypes-C6rROGTP.cjs");
|
|
9
9
|
const require_constants = require("./constants-oee0S_x6.cjs");
|
|
10
10
|
const require_types = require("./types-CjF9Rofr.cjs");
|
|
11
11
|
const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
|
|
12
12
|
const require_planeOps = require("./planeOps-DZfLToKZ.cjs");
|
|
13
|
-
const require_faceFns = require("./faceFns-
|
|
14
|
-
const require_originTrackingFns = require("./originTrackingFns-
|
|
15
|
-
const require_solidBuilders = require("./solidBuilders-
|
|
16
|
-
const require_primitiveFns = require("./primitiveFns-
|
|
17
|
-
const require_shapeFns = require("./shapeFns-
|
|
18
|
-
const require_curveFns = require("./curveFns-
|
|
19
|
-
const require_meshFns = require("./meshFns-
|
|
13
|
+
const require_faceFns = require("./faceFns-B7MiDYj1.cjs");
|
|
14
|
+
const require_originTrackingFns = require("./originTrackingFns-CHymOLLm.cjs");
|
|
15
|
+
const require_solidBuilders = require("./solidBuilders-iS5DDwg8.cjs");
|
|
16
|
+
const require_primitiveFns = require("./primitiveFns-BVeBEaa4.cjs");
|
|
17
|
+
const require_shapeFns = require("./shapeFns-C0w8vvfb.cjs");
|
|
18
|
+
const require_curveFns = require("./curveFns-CyIvQNYT.cjs");
|
|
19
|
+
const require_meshFns = require("./meshFns-Czlt-GBJ.cjs");
|
|
20
20
|
const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
|
|
21
|
-
const require_surfaceBuilders = require("./surfaceBuilders-
|
|
22
|
-
const require_healingFns = require("./healingFns-
|
|
23
|
-
const require_threadFns = require("./threadFns-
|
|
24
|
-
const require_blueprintSketcher = require("./blueprintSketcher-
|
|
25
|
-
const require_helpers = require("./helpers-
|
|
26
|
-
const require_blueprint = require("./blueprint-
|
|
27
|
-
const require_drawFns = require("./drawFns-
|
|
28
|
-
const require_measureFns = require("./measureFns-
|
|
29
|
-
const require_cornerFinder = require("./cornerFinder-
|
|
30
|
-
const require_boolean2D = require("./boolean2D-
|
|
31
|
-
const require_blueprintFns = require("./blueprintFns-
|
|
32
|
-
const require_importFns = require("./importFns-
|
|
33
|
-
const require_textBlueprints = require("./textBlueprints-
|
|
34
|
-
const require_loftFns = require("./loftFns-
|
|
35
|
-
const require_refResolveFns = require("./refResolveFns-
|
|
36
|
-
const require_adjacencyFns = require("./adjacencyFns-
|
|
37
|
-
const require_cameraFns = require("./cameraFns-
|
|
38
|
-
const require_textMetrics = require("./textMetrics-
|
|
39
|
-
const require_principalBoxFns = require("./principalBoxFns-
|
|
21
|
+
const require_surfaceBuilders = require("./surfaceBuilders-BvwSgD3C.cjs");
|
|
22
|
+
const require_healingFns = require("./healingFns-DWljGTNR.cjs");
|
|
23
|
+
const require_threadFns = require("./threadFns-CzXEnnmo.cjs");
|
|
24
|
+
const require_blueprintSketcher = require("./blueprintSketcher-Di376t-0.cjs");
|
|
25
|
+
const require_helpers = require("./helpers-DKEVm6Hu.cjs");
|
|
26
|
+
const require_blueprint = require("./blueprint-D83DDDPb.cjs");
|
|
27
|
+
const require_drawFns = require("./drawFns-71cOhWD-.cjs");
|
|
28
|
+
const require_measureFns = require("./measureFns-CZHNWkiA.cjs");
|
|
29
|
+
const require_cornerFinder = require("./cornerFinder-CdOe1Wrb.cjs");
|
|
30
|
+
const require_boolean2D = require("./boolean2D-CNZFI_y8.cjs");
|
|
31
|
+
const require_blueprintFns = require("./blueprintFns-C4TQn-x_.cjs");
|
|
32
|
+
const require_importFns = require("./importFns-KEPAgbjj.cjs");
|
|
33
|
+
const require_textBlueprints = require("./textBlueprints-CNPCPJix.cjs");
|
|
34
|
+
const require_loftFns = require("./loftFns-D5AvfCGG.cjs");
|
|
35
|
+
const require_refResolveFns = require("./refResolveFns-BAs4p9z7.cjs");
|
|
36
|
+
const require_adjacencyFns = require("./adjacencyFns-BFJfaUwX.cjs");
|
|
37
|
+
const require_cameraFns = require("./cameraFns-RqraCXIc.cjs");
|
|
38
|
+
const require_textMetrics = require("./textMetrics-C71g4TmO.cjs");
|
|
39
|
+
const require_principalBoxFns = require("./principalBoxFns-CG6kG7vT.cjs");
|
|
40
40
|
const require_workerPool = require("./workerPool-D5tiNXrI.cjs");
|
|
41
41
|
// src/kernel/types.ts
|
|
42
42
|
/** Check if the kernel supports hidden-line-removal projection. */
|
|
@@ -5124,29 +5124,29 @@ function toKernelPnt(v) {
|
|
|
5124
5124
|
function toKernelDir(v) {
|
|
5125
5125
|
return require_shapeTypes.getKernel().createDirection3d(v[0], v[1], v[2]);
|
|
5126
5126
|
}
|
|
5127
|
-
|
|
5128
|
-
|
|
5127
|
+
function xyzOf(v) {
|
|
5128
|
+
if (typeof v.X === "function") return [
|
|
5129
|
+
v.X(),
|
|
5130
|
+
v.Y(),
|
|
5131
|
+
v.Z()
|
|
5132
|
+
];
|
|
5129
5133
|
return [
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5134
|
+
v.x,
|
|
5135
|
+
v.y,
|
|
5136
|
+
v.z
|
|
5133
5137
|
];
|
|
5134
5138
|
}
|
|
5139
|
+
/** Extract Vec3 from a kernel 3D vector */
|
|
5140
|
+
function fromKernelVec(ocVec) {
|
|
5141
|
+
return xyzOf(ocVec);
|
|
5142
|
+
}
|
|
5135
5143
|
/** Extract Vec3 from a kernel 3D point */
|
|
5136
5144
|
function fromKernelPnt(ocPnt) {
|
|
5137
|
-
return
|
|
5138
|
-
ocPnt.X(),
|
|
5139
|
-
ocPnt.Y(),
|
|
5140
|
-
ocPnt.Z()
|
|
5141
|
-
];
|
|
5145
|
+
return xyzOf(ocPnt);
|
|
5142
5146
|
}
|
|
5143
5147
|
/** Extract Vec3 from a kernel 3D direction */
|
|
5144
5148
|
function fromKernelDir(ocDir) {
|
|
5145
|
-
return
|
|
5146
|
-
ocDir.X(),
|
|
5147
|
-
ocDir.Y(),
|
|
5148
|
-
ocDir.Z()
|
|
5149
|
-
];
|
|
5149
|
+
return xyzOf(ocDir);
|
|
5150
5150
|
}
|
|
5151
5151
|
/** Execute fn with a temporary kernel 3D vector, auto-deleted after. */
|
|
5152
5152
|
function withKernelVec(v, fn) {
|
|
@@ -7950,19 +7950,73 @@ function resolveTargetFace(shape, faceSpec) {
|
|
|
7950
7950
|
return require_errors.ok(faceSpec);
|
|
7951
7951
|
}
|
|
7952
7952
|
/**
|
|
7953
|
-
*
|
|
7954
|
-
*
|
|
7955
|
-
* (the caller must dispose it); false when the caller's own Wire is passed through.
|
|
7953
|
+
* Build the profile's face in the XY plane. A Drawing's sketch is released once
|
|
7954
|
+
* its face exists; a caller's Wire is expected to be closed and planar.
|
|
7956
7955
|
*/
|
|
7957
|
-
function
|
|
7958
|
-
if ("sketchOnPlane" in profile && typeof profile.sketchOnPlane === "function")
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7956
|
+
function profileFace(profile) {
|
|
7957
|
+
if ("sketchOnPlane" in profile && typeof profile.sketchOnPlane === "function") {
|
|
7958
|
+
const sketch = profile.sketchOnPlane("XY");
|
|
7959
|
+
try {
|
|
7960
|
+
return require_errors.ok(sketch.face());
|
|
7961
|
+
} catch (e) {
|
|
7962
|
+
return require_errors.err(require_errors.validationError("COMPOUND_PROFILE_INVALID", `compoundOps: the profile does not make a single face: ${e instanceof Error ? e.message : String(e)}`));
|
|
7963
|
+
} finally {
|
|
7964
|
+
sketch.delete?.();
|
|
7965
|
+
}
|
|
7966
|
+
}
|
|
7967
|
+
return require_surfaceBuilders.makeFace(profile);
|
|
7968
|
+
}
|
|
7969
|
+
/**
|
|
7970
|
+
* Move a face drawn in XY onto a target face: its origin to `center`, its Z axis
|
|
7971
|
+
* to `normal`. Faces parallel to XY keep the world X and Y axes; on any other
|
|
7972
|
+
* face local Y runs up the face (world +Z projected onto it) and local X is
|
|
7973
|
+
* Y x normal, which points right when the face is seen from outside.
|
|
7974
|
+
*/
|
|
7975
|
+
function placeOnFace(face, normal, center) {
|
|
7976
|
+
const [nx, ny, nz] = normal;
|
|
7977
|
+
if (Math.abs(nz) > 1 - 1e-9) return require_errors.ok(require_primitiveFns.translate(face, center));
|
|
7978
|
+
const yDir = require_vecOps.vecNormalize([
|
|
7979
|
+
-nx * nz,
|
|
7980
|
+
-ny * nz,
|
|
7981
|
+
1 - nz * nz
|
|
7982
|
+
]);
|
|
7983
|
+
const xDir = require_vecOps.vecCross(yDir, normal);
|
|
7984
|
+
return require_primitiveFns.applyMatrix(face, {
|
|
7985
|
+
linear: [
|
|
7986
|
+
xDir[0],
|
|
7987
|
+
yDir[0],
|
|
7988
|
+
nx,
|
|
7989
|
+
xDir[1],
|
|
7990
|
+
yDir[1],
|
|
7991
|
+
ny,
|
|
7992
|
+
xDir[2],
|
|
7993
|
+
yDir[2],
|
|
7994
|
+
nz
|
|
7995
|
+
],
|
|
7996
|
+
translation: center
|
|
7997
|
+
});
|
|
7998
|
+
}
|
|
7999
|
+
/** Extrude the profile, placed on the target face, by `distance` along the face normal. */
|
|
8000
|
+
function profileTool(shape, faceSpec, profile, distance) {
|
|
8001
|
+
try {
|
|
8002
|
+
var _usingCtx$3 = require_shapeTypes._usingCtx();
|
|
8003
|
+
const targetResult = resolveTargetFace(shape, faceSpec);
|
|
8004
|
+
if (require_errors.isErr(targetResult)) return targetResult;
|
|
8005
|
+
const normal = require_vecOps.vecNormalize(require_faceFns.normalAt(targetResult.value));
|
|
8006
|
+
const center = require_faceFns.faceCenter(targetResult.value);
|
|
8007
|
+
const scope = _usingCtx$3.u(new require_shapeTypes.DisposalScope());
|
|
8008
|
+
const flat = profileFace(profile);
|
|
8009
|
+
if (require_errors.isErr(flat)) return flat;
|
|
8010
|
+
scope.register(flat.value);
|
|
8011
|
+
const placed = placeOnFace(flat.value, normal, center);
|
|
8012
|
+
if (require_errors.isErr(placed)) return placed;
|
|
8013
|
+
scope.register(placed.value);
|
|
8014
|
+
return require_textBlueprints.extrude(placed.value, require_vecOps.vecScale(normal, distance));
|
|
8015
|
+
} catch (_) {
|
|
8016
|
+
_usingCtx$3.e = _;
|
|
8017
|
+
} finally {
|
|
8018
|
+
_usingCtx$3.d();
|
|
8019
|
+
}
|
|
7966
8020
|
}
|
|
7967
8021
|
/**
|
|
7968
8022
|
* Drill a hole through a 3D shape.
|
|
@@ -8068,31 +8122,18 @@ function drill(shape, options) {
|
|
|
8068
8122
|
*/
|
|
8069
8123
|
function pocket(shape, options) {
|
|
8070
8124
|
try {
|
|
8071
|
-
var
|
|
8125
|
+
var _usingCtx3 = require_shapeTypes._usingCtx();
|
|
8072
8126
|
const s = resolve(shape);
|
|
8073
8127
|
const { profile, depth } = options;
|
|
8074
8128
|
if (depth <= 0) return require_errors.err(require_errors.validationError("POCKET_INVALID_DEPTH", "Pocket depth must be positive"));
|
|
8075
|
-
const
|
|
8076
|
-
if (require_errors.isErr(targetResult)) return targetResult;
|
|
8077
|
-
const targetFace = targetResult.value;
|
|
8078
|
-
const normal = require_faceFns.normalAt(targetFace);
|
|
8079
|
-
const center = require_faceFns.faceCenter(targetFace);
|
|
8080
|
-
const scope = _usingCtx$3.u(new require_shapeTypes.DisposalScope());
|
|
8081
|
-
const { wire: w, owned } = toWire(profile);
|
|
8082
|
-
if (owned) scope.register(w);
|
|
8083
|
-
const faceResult = require_surfaceBuilders.makeFace(w);
|
|
8084
|
-
if (require_errors.isErr(faceResult)) return faceResult;
|
|
8085
|
-
scope.register(faceResult.value);
|
|
8086
|
-
const positioned = scope.register(require_primitiveFns.translate(faceResult.value, center));
|
|
8087
|
-
const extDir = require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth);
|
|
8088
|
-
const toolResult = require_textBlueprints.extrude(positioned, extDir);
|
|
8129
|
+
const toolResult = profileTool(s, options.face, profile, -depth);
|
|
8089
8130
|
if (require_errors.isErr(toolResult)) return toolResult;
|
|
8090
|
-
|
|
8091
|
-
return require_solidBuilders.cut(s,
|
|
8131
|
+
const tool = _usingCtx3.u(toolResult.value);
|
|
8132
|
+
return require_solidBuilders.cut(s, tool, { unsafe: true });
|
|
8092
8133
|
} catch (_) {
|
|
8093
|
-
|
|
8134
|
+
_usingCtx3.e = _;
|
|
8094
8135
|
} finally {
|
|
8095
|
-
|
|
8136
|
+
_usingCtx3.d();
|
|
8096
8137
|
}
|
|
8097
8138
|
}
|
|
8098
8139
|
/**
|
|
@@ -8103,31 +8144,18 @@ function pocket(shape, options) {
|
|
|
8103
8144
|
*/
|
|
8104
8145
|
function boss(shape, options) {
|
|
8105
8146
|
try {
|
|
8106
|
-
var
|
|
8147
|
+
var _usingCtx4 = require_shapeTypes._usingCtx();
|
|
8107
8148
|
const s = resolve(shape);
|
|
8108
8149
|
const { profile, height } = options;
|
|
8109
8150
|
if (height <= 0) return require_errors.err(require_errors.validationError("BOSS_INVALID_HEIGHT", "Boss height must be positive"));
|
|
8110
|
-
const
|
|
8111
|
-
if (require_errors.isErr(targetResult)) return targetResult;
|
|
8112
|
-
const targetFace = targetResult.value;
|
|
8113
|
-
const normal = require_faceFns.normalAt(targetFace);
|
|
8114
|
-
const center = require_faceFns.faceCenter(targetFace);
|
|
8115
|
-
const scope = _usingCtx3.u(new require_shapeTypes.DisposalScope());
|
|
8116
|
-
const { wire: w, owned } = toWire(profile);
|
|
8117
|
-
if (owned) scope.register(w);
|
|
8118
|
-
const faceResult = require_surfaceBuilders.makeFace(w);
|
|
8119
|
-
if (require_errors.isErr(faceResult)) return faceResult;
|
|
8120
|
-
scope.register(faceResult.value);
|
|
8121
|
-
const positioned = scope.register(require_primitiveFns.translate(faceResult.value, center));
|
|
8122
|
-
const extDir = require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height);
|
|
8123
|
-
const toolResult = require_textBlueprints.extrude(positioned, extDir);
|
|
8151
|
+
const toolResult = profileTool(s, options.face, profile, height);
|
|
8124
8152
|
if (require_errors.isErr(toolResult)) return toolResult;
|
|
8125
|
-
|
|
8126
|
-
return require_solidBuilders.fuse(s,
|
|
8153
|
+
const tool = _usingCtx4.u(toolResult.value);
|
|
8154
|
+
return require_solidBuilders.fuse(s, tool, { unsafe: true });
|
|
8127
8155
|
} catch (_) {
|
|
8128
|
-
|
|
8156
|
+
_usingCtx4.e = _;
|
|
8129
8157
|
} finally {
|
|
8130
|
-
|
|
8158
|
+
_usingCtx4.d();
|
|
8131
8159
|
}
|
|
8132
8160
|
}
|
|
8133
8161
|
/**
|
|
@@ -8137,7 +8165,7 @@ function boss(shape, options) {
|
|
|
8137
8165
|
*/
|
|
8138
8166
|
function mirrorJoin(shape, options) {
|
|
8139
8167
|
try {
|
|
8140
|
-
var
|
|
8168
|
+
var _usingCtx5 = require_shapeTypes._usingCtx();
|
|
8141
8169
|
const s = resolve(shape);
|
|
8142
8170
|
const normal = options?.normal ?? [
|
|
8143
8171
|
1,
|
|
@@ -8146,12 +8174,12 @@ function mirrorJoin(shape, options) {
|
|
|
8146
8174
|
];
|
|
8147
8175
|
const planeOrigin = options?.at;
|
|
8148
8176
|
if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
|
|
8149
|
-
const mirrored =
|
|
8177
|
+
const mirrored = _usingCtx5.u(require_primitiveFns.mirror(s, normal, planeOrigin));
|
|
8150
8178
|
return require_solidBuilders.fuse(s, mirrored, { unsafe: true });
|
|
8151
8179
|
} catch (_) {
|
|
8152
|
-
|
|
8180
|
+
_usingCtx5.e = _;
|
|
8153
8181
|
} finally {
|
|
8154
|
-
|
|
8182
|
+
_usingCtx5.d();
|
|
8155
8183
|
}
|
|
8156
8184
|
}
|
|
8157
8185
|
/**
|
|
@@ -8166,7 +8194,7 @@ function rectangularPattern(shape, options) {
|
|
|
8166
8194
|
if (xCount < 1 || yCount < 1) return require_errors.err(require_errors.validationError("PATTERN_INVALID_COUNT", "Pattern counts must be at least 1"));
|
|
8167
8195
|
if (require_vecOps.vecIsZero(xDir)) return require_errors.err(require_errors.validationError("PATTERN_ZERO_DIRECTION", "X direction cannot be zero"));
|
|
8168
8196
|
if (require_vecOps.vecIsZero(yDir)) return require_errors.err(require_errors.validationError("PATTERN_ZERO_DIRECTION", "Y direction cannot be zero"));
|
|
8169
|
-
if (xCount === 1 && yCount === 1) return
|
|
8197
|
+
if (xCount === 1 && yCount === 1) return require_shapeFns.clone(s);
|
|
8170
8198
|
const xNorm = require_vecOps.vecNormalize(xDir);
|
|
8171
8199
|
const yNorm = require_vecOps.vecNormalize(yDir);
|
|
8172
8200
|
const copies = [s];
|