brepjs 20.5.0 → 20.6.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/README.md +1 -0
- package/dist/2d.cjs +9 -11
- package/dist/2d.js +9 -11
- package/dist/{adjacencyFns-1rxgJ6Hw.cjs → adjacencyFns-CmNvIFu1.cjs} +5 -6
- package/dist/{adjacencyFns-DeyXahej.js → adjacencyFns-DO9_F2YJ.js} +5 -6
- package/dist/{arrayAccess-DrUGPADn.js → arrayAccess-BpgouNir.js} +1 -2
- package/dist/{arrayAccess-e4H9cBfh.cjs → arrayAccess-DpJYARwv.cjs} +1 -2
- package/dist/{blueprint-Yyoiz-U1.cjs → blueprint-Ci2Mw5v-.cjs} +24 -37
- package/dist/{blueprint-rwJjYPzo.js → blueprint-DHKul4EN.js} +24 -37
- package/dist/{blueprintFns-Ce6OoPSX.cjs → blueprintFns-CbJPSd5r.cjs} +5 -7
- package/dist/{blueprintFns-Q3Sq-Fse.js → blueprintFns-D68_PxRl.js} +5 -7
- package/dist/{blueprintSketcher-FywUpRiV.js → blueprintSketcher-j9vJAniE.js} +19 -31
- package/dist/{blueprintSketcher-CzKbxeTk.cjs → blueprintSketcher-pVbM0BHf.cjs} +19 -31
- package/dist/{boolean2D-D8igCYc9.js → boolean2D-D6Oc8tBx.js} +13 -19
- package/dist/{boolean2D-BzZ9iBSn.cjs → boolean2D-Dq29HCr9.cjs} +13 -19
- package/dist/brepjs.cjs +113 -187
- package/dist/brepjs.js +113 -188
- package/dist/{bug-O02CsAmt.cjs → bug-CBcpIPuf.cjs} +2 -4
- package/dist/{bug-BdOHwn_e.js → bug-ClMTAJhe.js} +2 -4
- package/dist/{cameraFns-RHCb1F1s.cjs → cameraFns-BMXugx7m.cjs} +8 -11
- package/dist/{cameraFns-Cs6v3bWQ.js → cameraFns-DVZkA2eq.js} +8 -11
- package/dist/{constants-ITRzCnCp.js → constants-iraOnb2p.js} +1 -2
- package/dist/{constants-BOVyEYGH.cjs → constants-oee0S_x6.cjs} +1 -2
- package/dist/core.cjs +8 -8
- package/dist/core.js +8 -8
- package/dist/{cornerFinder-Dlae8IX5.js → cornerFinder-DSnn8gRP.js} +4 -5
- package/dist/{cornerFinder-Cji_BK-R.cjs → cornerFinder-DshfhGHG.cjs} +4 -5
- package/dist/{curveFns-KS1BWGhF.js → curveFns-CEb6TLxC.js} +3 -4
- package/dist/{curveFns-6-ULFrEB.cjs → curveFns-Cxq5lFqU.cjs} +3 -4
- package/dist/{drawFns-Ddlgp9gQ.cjs → drawFns-CH0q-0JP.cjs} +32 -45
- package/dist/{drawFns-3yRVBDgI.js → drawFns-DMhKXGgG.js} +32 -45
- package/dist/{errors-Zb3jBa0u.js → errors-B3espUT6.js} +3 -5
- package/dist/{errors-jwhfQJZK.cjs → errors-DoMAp7mQ.cjs} +3 -5
- package/dist/{faceFns-CZeHWke7.cjs → faceFns-B8ctN5Te.cjs} +6 -8
- package/dist/{faceFns-CTlJC5IY.js → faceFns-C-wc4fX-.js} +6 -8
- package/dist/{faceRoleFns-CWU1-Pm8.js → faceRoleFns-BPxzQF-n.js} +1 -2
- package/dist/{faceRoleFns-CtH_48MO.cjs → faceRoleFns-Db5bYj4Q.cjs} +1 -2
- package/dist/{healingFns-Ct3gEMvk.js → healingFns-CJfuZMw2.js} +16 -25
- package/dist/{healingFns-DwSpJZfg.cjs → healingFns-D3mNy1rp.cjs} +16 -25
- package/dist/{helpers-BN1mVMuZ.js → helpers-BXoAMWe3.js} +15 -21
- package/dist/{helpers-NRZVshPb.cjs → helpers-BhHbDu6-.cjs} +15 -21
- package/dist/{importFns-BEi-HsSw.cjs → importFns-DHaw1x5R.cjs} +12 -19
- package/dist/{importFns-0kHGg-b8.js → importFns-YZyGYu_M.js} +12 -19
- package/dist/io.cjs +2 -2
- package/dist/io.js +2 -2
- package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
- package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -2
- package/dist/{loftFns-B5mq1WDh.js → loftFns-CTTia_cZ.js} +7 -10
- package/dist/{loftFns-DL9UsQhd.cjs → loftFns-DVr6PaTM.cjs} +7 -10
- package/dist/{measureFns-CyDVZomf.js → measureFns-BmdVG0_8.js} +6 -8
- package/dist/{measureFns-D_GpQw5z.cjs → measureFns-C6wgH_1a.cjs} +6 -8
- package/dist/measurement.cjs +2 -2
- package/dist/measurement.js +2 -2
- package/dist/{meshFns-CAxkaRTm.cjs → meshFns-r_p0RRoO.cjs} +6 -8
- package/dist/{meshFns-COlno8TY.js → meshFns-uNRS602U.js} +6 -8
- package/dist/{occtWasmAdapter-CA6PmIIj.cjs → occtWasmAdapter-CxSY6Ty2.cjs} +37 -56
- package/dist/{occtWasmAdapter-BX10fyla.js → occtWasmAdapter-cnV8J7Y-.js} +37 -56
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +2 -2
- package/dist/{originTrackingFns-DiHy5BZC.js → originTrackingFns-BIa3TdgX.js} +4 -5
- package/dist/{originTrackingFns-CWo6NWHK.cjs → originTrackingFns-DgJ-MTtE.cjs} +4 -5
- package/dist/{planeOps-DJuclNxa.cjs → planeOps-BDt05NAD.cjs} +5 -6
- package/dist/{planeOps-Cxws4Tiu.js → planeOps-BkwaqhUj.js} +5 -6
- package/dist/{primitiveFns-ZV3aMbqG.cjs → primitiveFns-CktCbLBo.cjs} +8 -10
- package/dist/{primitiveFns-CGJzS4MO.js → primitiveFns-h_zOAbmf.js} +8 -10
- package/dist/{principalBoxFns-5FSbxAj-.cjs → principalBoxFns-28BQIeo8.cjs} +7 -8
- package/dist/{principalBoxFns-BJgGEoik.js → principalBoxFns-DkP-681E.js} +7 -8
- package/dist/projection.cjs +1 -1
- package/dist/projection.js +1 -2
- package/dist/query.cjs +2 -2
- package/dist/query.js +2 -2
- package/dist/{refResolveFns-CpVZoeOT.js → refResolveFns-DUDJqfOM.js} +14 -21
- package/dist/{refResolveFns-Ct52Uw7R.cjs → refResolveFns-fSzDZ1rx.cjs} +14 -21
- package/dist/result.cjs +2 -2
- package/dist/result.js +2 -2
- package/dist/{rolldown-runtime-C0BPl7ul.cjs → rolldown-runtime-BW-eSwOZ.cjs} +1 -2
- package/dist/{shapeFns--1wNlcc_.js → shapeFns-B5hzkmwe.js} +5 -6
- package/dist/{shapeFns-C2j6oZ2u.cjs → shapeFns-DKDlt3k2.cjs} +5 -6
- package/dist/shapeRef.cjs +1 -1
- package/dist/shapeRef.js +1 -2
- package/dist/{shapeTypes-CqNJoSam.js → shapeTypes-Bva18qvE.js} +81 -160
- package/dist/{shapeTypes-DH2ShBU_.cjs → shapeTypes-CkxvJRpq.cjs} +81 -160
- package/dist/sketching.cjs +4 -5
- package/dist/sketching.js +4 -5
- package/dist/{solidBuilders-CgicU3le.cjs → solidBuilders-BFEnqrU0.cjs} +17 -23
- package/dist/{solidBuilders-IstbiWju.js → solidBuilders-BpTN-NfM.js} +17 -23
- package/dist/{surfaceBuilders-vYgSvgI6.cjs → surfaceBuilders-CTk2lGlw.cjs} +8 -12
- package/dist/{surfaceBuilders-8nLk2PWk.js → surfaceBuilders-DAZCPa5O.js} +8 -12
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/{textBlueprints-fa7VHJZz.cjs → textBlueprints-DbEWBdhF.cjs} +24 -32
- package/dist/{textBlueprints-C13NAA3C.js → textBlueprints-DuwP72D6.js} +23 -31
- package/dist/{textMetrics--cikHkGX.cjs → textMetrics-CbNBlPsl.cjs} +4 -6
- package/dist/{textMetrics-Dcc63qRm.js → textMetrics-q6RSXX9Z.js} +4 -6
- package/dist/{threadFns-BUQPg_vI.cjs → threadFns-5FXCN-9R.cjs} +21 -33
- package/dist/{threadFns-3U9x4v_M.js → threadFns-BcsScbp4.js} +21 -33
- package/dist/topology.cjs +9 -9
- package/dist/topology.js +9 -9
- package/dist/{topologyQueryFns-q2bGyuEV.cjs → topologyQueryFns-C6HwYYpi.cjs} +6 -9
- package/dist/{topologyQueryFns-DnfjQgP7.js → topologyQueryFns-CY6YiGsk.js} +6 -9
- package/dist/{types-D24Y27N0.js → types-CKXsIm9-.js} +1 -2
- package/dist/{types-KjA8tY4Y.cjs → types-CjF9Rofr.cjs} +1 -2
- package/dist/{validityTypes-r0A2YdNq.cjs → validityTypes-D0IDDMbY.cjs} +3 -4
- package/dist/{validityTypes-t7JpS0Ki.js → validityTypes-MiXYsBZi.js} +3 -4
- package/dist/{vecOps-CCnJt-yH.cjs → vecOps-CrGEPPQM.cjs} +1 -2
- package/dist/{vecOps-SKPRvPH-.js → vecOps-S-m9H_fe.js} +1 -2
- package/dist/vectors.cjs +4 -4
- package/dist/vectors.js +4 -4
- package/dist/worker.cjs +1 -1
- package/dist/worker.js +1 -2
- package/dist/{workerPool-XcYX2UZ0.js → workerPool-Bc5hmJc4.js} +5 -10
- package/dist/{workerPool-D30NsiIW.cjs → workerPool-D5tiNXrI.cjs} +5 -10
- package/package.json +10 -10
package/dist/brepjs.cjs
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_rolldown_runtime = require("./rolldown-runtime-
|
|
3
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
4
|
-
const require_occtWasmAdapter = require("./occtWasmAdapter-
|
|
5
|
-
const require_bug = require("./bug-
|
|
6
|
-
const require_errors = require("./errors-
|
|
7
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
8
|
-
const require_validityTypes = require("./validityTypes-
|
|
9
|
-
const require_constants = require("./constants-
|
|
10
|
-
const require_types = require("./types-
|
|
11
|
-
const require_vecOps = require("./vecOps-
|
|
12
|
-
const require_planeOps = require("./planeOps-
|
|
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-
|
|
20
|
-
const require_arrayAccess = require("./arrayAccess-
|
|
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-
|
|
40
|
-
const require_workerPool = require("./workerPool-
|
|
41
|
-
|
|
2
|
+
const require_rolldown_runtime = require("./rolldown-runtime-BW-eSwOZ.cjs");
|
|
3
|
+
const require_shapeTypes = require("./shapeTypes-CkxvJRpq.cjs");
|
|
4
|
+
const require_occtWasmAdapter = require("./occtWasmAdapter-CxSY6Ty2.cjs");
|
|
5
|
+
const require_bug = require("./bug-CBcpIPuf.cjs");
|
|
6
|
+
const require_errors = require("./errors-DoMAp7mQ.cjs");
|
|
7
|
+
const require_topologyQueryFns = require("./topologyQueryFns-C6HwYYpi.cjs");
|
|
8
|
+
const require_validityTypes = require("./validityTypes-D0IDDMbY.cjs");
|
|
9
|
+
const require_constants = require("./constants-oee0S_x6.cjs");
|
|
10
|
+
const require_types = require("./types-CjF9Rofr.cjs");
|
|
11
|
+
const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
|
|
12
|
+
const require_planeOps = require("./planeOps-BDt05NAD.cjs");
|
|
13
|
+
const require_faceFns = require("./faceFns-B8ctN5Te.cjs");
|
|
14
|
+
const require_originTrackingFns = require("./originTrackingFns-DgJ-MTtE.cjs");
|
|
15
|
+
const require_solidBuilders = require("./solidBuilders-BFEnqrU0.cjs");
|
|
16
|
+
const require_primitiveFns = require("./primitiveFns-CktCbLBo.cjs");
|
|
17
|
+
const require_shapeFns = require("./shapeFns-DKDlt3k2.cjs");
|
|
18
|
+
const require_curveFns = require("./curveFns-Cxq5lFqU.cjs");
|
|
19
|
+
const require_meshFns = require("./meshFns-r_p0RRoO.cjs");
|
|
20
|
+
const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
|
|
21
|
+
const require_surfaceBuilders = require("./surfaceBuilders-CTk2lGlw.cjs");
|
|
22
|
+
const require_healingFns = require("./healingFns-D3mNy1rp.cjs");
|
|
23
|
+
const require_threadFns = require("./threadFns-5FXCN-9R.cjs");
|
|
24
|
+
const require_blueprintSketcher = require("./blueprintSketcher-pVbM0BHf.cjs");
|
|
25
|
+
const require_helpers = require("./helpers-BhHbDu6-.cjs");
|
|
26
|
+
const require_blueprint = require("./blueprint-Ci2Mw5v-.cjs");
|
|
27
|
+
const require_drawFns = require("./drawFns-CH0q-0JP.cjs");
|
|
28
|
+
const require_measureFns = require("./measureFns-C6wgH_1a.cjs");
|
|
29
|
+
const require_cornerFinder = require("./cornerFinder-DshfhGHG.cjs");
|
|
30
|
+
const require_boolean2D = require("./boolean2D-Dq29HCr9.cjs");
|
|
31
|
+
const require_blueprintFns = require("./blueprintFns-CbJPSd5r.cjs");
|
|
32
|
+
const require_importFns = require("./importFns-DHaw1x5R.cjs");
|
|
33
|
+
const require_textBlueprints = require("./textBlueprints-DbEWBdhF.cjs");
|
|
34
|
+
const require_loftFns = require("./loftFns-DVr6PaTM.cjs");
|
|
35
|
+
const require_refResolveFns = require("./refResolveFns-fSzDZ1rx.cjs");
|
|
36
|
+
const require_adjacencyFns = require("./adjacencyFns-CmNvIFu1.cjs");
|
|
37
|
+
const require_cameraFns = require("./cameraFns-BMXugx7m.cjs");
|
|
38
|
+
const require_textMetrics = require("./textMetrics-CbNBlPsl.cjs");
|
|
39
|
+
const require_principalBoxFns = require("./principalBoxFns-28BQIeo8.cjs");
|
|
40
|
+
const require_workerPool = require("./workerPool-D5tiNXrI.cjs");
|
|
41
|
+
// src/kernel/types.ts
|
|
42
42
|
/** Check if the kernel supports hidden-line-removal projection. */
|
|
43
43
|
function supportsProjection(kernel) {
|
|
44
44
|
return "projectEdges" in kernel;
|
|
@@ -47,8 +47,7 @@ function supportsProjection(kernel) {
|
|
|
47
47
|
function supportsConstraintSketch(kernel) {
|
|
48
48
|
return "sketchNew" in kernel && "sketchDof" in kernel;
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
//#region src/topology/shapeBooleans.ts
|
|
50
|
+
// src/topology/shapeBooleans.ts
|
|
52
51
|
var BOPAlgo_GlueShift = 1;
|
|
53
52
|
var BOPAlgo_GlueFull = 2;
|
|
54
53
|
/**
|
|
@@ -61,8 +60,7 @@ function applyGlue(op, optimisation) {
|
|
|
61
60
|
if (optimisation === "commonFace") op.SetGlue(BOPAlgo_GlueShift);
|
|
62
61
|
if (optimisation === "sameFace") op.SetGlue(BOPAlgo_GlueFull);
|
|
63
62
|
}
|
|
64
|
-
|
|
65
|
-
//#region src/topology/shapeModifiers.ts
|
|
63
|
+
// src/topology/shapeModifiers.ts
|
|
66
64
|
function isNumber(r) {
|
|
67
65
|
return typeof r === "number";
|
|
68
66
|
}
|
|
@@ -79,8 +77,7 @@ function isFilletRadius(r) {
|
|
|
79
77
|
if (Array.isArray(r) && r.length === 2) return r.every(isNumber);
|
|
80
78
|
return false;
|
|
81
79
|
}
|
|
82
|
-
|
|
83
|
-
//#region src/query/vertexFinder.ts
|
|
80
|
+
// src/query/vertexFinder.ts
|
|
84
81
|
/**
|
|
85
82
|
* Wrap a vertex finder so that `findAll` and `findUnique` return only the
|
|
86
83
|
* single vertex closest to `nearestPoint` among candidates that pass all
|
|
@@ -134,8 +131,7 @@ function buildVertexFinder(filters) {
|
|
|
134
131
|
function vertexFinder() {
|
|
135
132
|
return buildVertexFinder([]);
|
|
136
133
|
}
|
|
137
|
-
|
|
138
|
-
//#region src/voxel/registry.ts
|
|
134
|
+
// src/voxel/registry.ts
|
|
139
135
|
var _engines = /* @__PURE__ */ new Map();
|
|
140
136
|
var _defaultId = null;
|
|
141
137
|
var _cached = null;
|
|
@@ -173,8 +169,7 @@ function initVoxel(engine, id = "voxel") {
|
|
|
173
169
|
_defaultId = id;
|
|
174
170
|
_cached = engine;
|
|
175
171
|
}
|
|
176
|
-
|
|
177
|
-
//#region src/voxel/signFns.ts
|
|
172
|
+
// src/voxel/signFns.ts
|
|
178
173
|
/**
|
|
179
174
|
* Validate a triangle-soup mesh before it crosses into wasm: flat-xyz vertices,
|
|
180
175
|
* triangle-multiple indices, and every index in range. An out-of-range index
|
|
@@ -232,8 +227,7 @@ function pointsInside(mesh, queries, id) {
|
|
|
232
227
|
const flags = engine.value.points_inside(mesh.vertices, mesh.triangles, queries);
|
|
233
228
|
return require_errors.ok(Array.from(flags, (flag) => flag === 1));
|
|
234
229
|
}
|
|
235
|
-
|
|
236
|
-
//#region src/voxel/repairFns.ts
|
|
230
|
+
// src/voxel/repairFns.ts
|
|
237
231
|
var DEFAULT_RESOLUTION$4 = 48;
|
|
238
232
|
var DEFAULT_PADDING$4 = 2;
|
|
239
233
|
/**
|
|
@@ -279,8 +273,7 @@ function repairMesh(mesh, opts, id) {
|
|
|
279
273
|
return require_errors.err(require_errors.computationError("VOXEL_REPAIR_FAILED", cause instanceof Error ? cause.message : "voxel repair failed (grid too large?).", cause));
|
|
280
274
|
}
|
|
281
275
|
}
|
|
282
|
-
|
|
283
|
-
//#region src/voxel/shapeMesh.ts
|
|
276
|
+
// src/voxel/shapeMesh.ts
|
|
284
277
|
var DEFAULT_DEFLECTION = .001;
|
|
285
278
|
/**
|
|
286
279
|
* Mesh a B-rep shape into the flat triangle-soup {@link VoxelMeshInput} the voxel
|
|
@@ -300,8 +293,7 @@ function shapeToMeshInput(shape, deflection = DEFAULT_DEFLECTION) {
|
|
|
300
293
|
return require_errors.err(require_errors.computationError("VOXEL_SHAPE_MESH_FAILED", cause instanceof Error ? cause.message : "failed to mesh shape for voxel op.", cause));
|
|
301
294
|
}
|
|
302
295
|
}
|
|
303
|
-
|
|
304
|
-
//#region src/voxel/meshOpsFns.ts
|
|
296
|
+
// src/voxel/meshOpsFns.ts
|
|
305
297
|
var DEFAULT_RESOLUTION$3 = 48;
|
|
306
298
|
var DEFAULT_PADDING$3 = 2;
|
|
307
299
|
var BOOLEAN_OP_CODES$1 = {
|
|
@@ -456,8 +448,7 @@ function voxelBooleanShapes(a, b, op, opts, id) {
|
|
|
456
448
|
if (require_errors.isErr(meshB)) return meshB;
|
|
457
449
|
return voxelBoolean(meshA.value, meshB.value, op, opts, id);
|
|
458
450
|
}
|
|
459
|
-
|
|
460
|
-
//#region src/voxel/fieldFns.ts
|
|
451
|
+
// src/voxel/fieldFns.ts
|
|
461
452
|
var DEFAULT_RESOLUTION$2 = 48;
|
|
462
453
|
var DEFAULT_PADDING$2 = 2;
|
|
463
454
|
var BOOLEAN_OP_CODES = {
|
|
@@ -718,8 +709,7 @@ function voxelBooleanFieldShapes(a, b, op, opts, id) {
|
|
|
718
709
|
if (require_errors.isErr(meshB)) return meshB;
|
|
719
710
|
return voxelBooleanField(meshA.value, meshB.value, op, opts, id);
|
|
720
711
|
}
|
|
721
|
-
|
|
722
|
-
//#region src/implicit/sdfFns.ts
|
|
712
|
+
// src/implicit/sdfFns.ts
|
|
723
713
|
var DEFAULT_RESOLUTION$1 = 48;
|
|
724
714
|
var DEFAULT_PADDING$1 = 2;
|
|
725
715
|
function resolveEngine(id) {
|
|
@@ -1015,8 +1005,7 @@ function fieldFromSdf(sdf, scale, offset, id) {
|
|
|
1015
1005
|
function fieldClamp(field, min, max, id) {
|
|
1016
1006
|
return buildField((e) => e.ScalarField.clamp(field.value, min, max), id);
|
|
1017
1007
|
}
|
|
1018
|
-
|
|
1019
|
-
//#region src/lattice/latticeFns.ts
|
|
1008
|
+
// src/lattice/latticeFns.ts
|
|
1020
1009
|
var LATTICE_TAGS = {
|
|
1021
1010
|
gyroid: 0,
|
|
1022
1011
|
schwarzP: 1,
|
|
@@ -1130,8 +1119,7 @@ function tpmsLattice(bounds, opts, id) {
|
|
|
1130
1119
|
return require_errors.err(require_errors.computationError("TPMS_LATTICE_FAILED", cause instanceof Error ? cause.message : "tpms lattice failed (grid too large?).", cause));
|
|
1131
1120
|
}
|
|
1132
1121
|
}
|
|
1133
|
-
|
|
1134
|
-
//#region src/csg/hash.ts
|
|
1122
|
+
// src/csg/hash.ts
|
|
1135
1123
|
var FNV_OFFSET = 14695981039346656037n;
|
|
1136
1124
|
var FNV_PRIME = 1099511628211n;
|
|
1137
1125
|
var MASK_64 = 18446744073709551615n;
|
|
@@ -1189,8 +1177,7 @@ function fnvMixBool(h, b) {
|
|
|
1189
1177
|
function toHex(h) {
|
|
1190
1178
|
return (h & MASK_64).toString(16).padStart(16, "0");
|
|
1191
1179
|
}
|
|
1192
|
-
|
|
1193
|
-
//#region src/csg/expressions.ts
|
|
1180
|
+
// src/csg/expressions.ts
|
|
1194
1181
|
var EMPTY_DEPS$1 = /* @__PURE__ */ new Set();
|
|
1195
1182
|
function startHash$1(tag) {
|
|
1196
1183
|
return fnvMixString(fnvInit(), tag);
|
|
@@ -1427,8 +1414,7 @@ function projectEnv(env, deps) {
|
|
|
1427
1414
|
}
|
|
1428
1415
|
return Object.freeze(out);
|
|
1429
1416
|
}
|
|
1430
|
-
|
|
1431
|
-
//#region src/csg/segments.ts
|
|
1417
|
+
// src/csg/segments.ts
|
|
1432
1418
|
/**
|
|
1433
1419
|
* Serializable 2D segment vocabulary — endpoint-parametrized (SVG-style)
|
|
1434
1420
|
* curve segments shared by the Path node (open spines) and, later, Profile
|
|
@@ -1530,8 +1516,7 @@ function foldSegment(s, foldExpr) {
|
|
|
1530
1516
|
});
|
|
1531
1517
|
}
|
|
1532
1518
|
}
|
|
1533
|
-
|
|
1534
|
-
//#region src/csg/jsonData.ts
|
|
1519
|
+
// src/csg/jsonData.ts
|
|
1535
1520
|
/** Validate `value` as JSON-safe and return its canonical frozen copy, or a
|
|
1536
1521
|
* message naming the first offending path (rooted at `path`). */
|
|
1537
1522
|
function canonicalJson(value, path) {
|
|
@@ -1605,8 +1590,7 @@ function hashJson(h, v) {
|
|
|
1605
1590
|
function isJsonArray(v) {
|
|
1606
1591
|
return Array.isArray(v);
|
|
1607
1592
|
}
|
|
1608
|
-
|
|
1609
|
-
//#region src/csg/types.ts
|
|
1593
|
+
// src/csg/types.ts
|
|
1610
1594
|
var OUTPUT_KINDS = {
|
|
1611
1595
|
Solid: true,
|
|
1612
1596
|
Face: true,
|
|
@@ -1654,8 +1638,7 @@ function outputKindOf(node) {
|
|
|
1654
1638
|
case "Extension": return node.output;
|
|
1655
1639
|
}
|
|
1656
1640
|
}
|
|
1657
|
-
|
|
1658
|
-
//#region src/csg/builders.ts
|
|
1641
|
+
// src/csg/builders.ts
|
|
1659
1642
|
var EMPTY_DEPS = /* @__PURE__ */ new Set();
|
|
1660
1643
|
function startHash(tag) {
|
|
1661
1644
|
return fnvMixString(fnvInit(), tag);
|
|
@@ -2200,8 +2183,7 @@ function extension(name, output, options) {
|
|
|
2200
2183
|
freeParams: depsOf(...children, ...params.map(([, e]) => e))
|
|
2201
2184
|
};
|
|
2202
2185
|
}
|
|
2203
|
-
|
|
2204
|
-
//#region src/csg/profiles.ts
|
|
2186
|
+
// src/csg/profiles.ts
|
|
2205
2187
|
/**
|
|
2206
2188
|
* Canned profile builders matching the brepjs-bim parametric profile set
|
|
2207
2189
|
* (IfcProfileDef vocabulary). Parameter names mirror the bim specs 1:1 so a
|
|
@@ -2409,8 +2391,7 @@ function arbitraryProfileWithVoids(outerPoints, voids) {
|
|
|
2409
2391
|
return contour(v[0] ?? [0, 0], v.slice(1).map((pt) => lineTo(pt)));
|
|
2410
2392
|
}));
|
|
2411
2393
|
}
|
|
2412
|
-
|
|
2413
|
-
//#region src/csg/evaluators/primitives.ts
|
|
2394
|
+
// src/csg/evaluators/primitives.ts
|
|
2414
2395
|
function evalBox(node, ctx) {
|
|
2415
2396
|
const x = evalScalar(node.x, ctx.env, "Box.x");
|
|
2416
2397
|
if (!x.ok) return x;
|
|
@@ -2474,8 +2455,7 @@ function evalVertex(node, ctx) {
|
|
|
2474
2455
|
if (!p.ok) return p;
|
|
2475
2456
|
return require_errors.ok(require_primitiveFns.vertex(p.value));
|
|
2476
2457
|
}
|
|
2477
|
-
|
|
2478
|
-
//#region src/csg/evaluators/booleans.ts
|
|
2458
|
+
// src/csg/evaluators/booleans.ts
|
|
2479
2459
|
/**
|
|
2480
2460
|
* Evaluators for CSG boolean nodes.
|
|
2481
2461
|
*
|
|
@@ -2555,8 +2535,7 @@ function evalCutAll(node, ctx) {
|
|
|
2555
2535
|
if (!resolved.ok) return resolved;
|
|
2556
2536
|
return require_solidBuilders.cutAll(base.value, resolved.value, boolOptions(node, ctx));
|
|
2557
2537
|
}
|
|
2558
|
-
|
|
2559
|
-
//#region src/csg/evaluators/transforms.ts
|
|
2538
|
+
// src/csg/evaluators/transforms.ts
|
|
2560
2539
|
function emptyResult(kind) {
|
|
2561
2540
|
return require_errors.err(require_errors.computationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, `${kind}: cannot transform an Empty node`));
|
|
2562
2541
|
}
|
|
@@ -2660,8 +2639,7 @@ function evalMirror(node, ctx) {
|
|
|
2660
2639
|
if (!r.ok) return r;
|
|
2661
2640
|
return require_errors.ok(require_primitiveFns.mirror(r.value, normal.value, at.value));
|
|
2662
2641
|
}
|
|
2663
|
-
|
|
2664
|
-
//#region src/csg/evaluators/compound.ts
|
|
2642
|
+
// src/csg/evaluators/compound.ts
|
|
2665
2643
|
function evalCompound(node, ctx) {
|
|
2666
2644
|
const non = node.children.filter((c) => c.kind !== "Empty");
|
|
2667
2645
|
if (non.length === 0) return require_errors.err(require_errors.computationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, "Compound: cannot materialize a compound with zero non-empty children"));
|
|
@@ -2676,8 +2654,7 @@ function evalCompound(node, ctx) {
|
|
|
2676
2654
|
function evalEmpty() {
|
|
2677
2655
|
return require_errors.err(require_errors.computationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, "Empty: cannot materialize an Empty node directly — only valid as boolean/transform operand"));
|
|
2678
2656
|
}
|
|
2679
|
-
|
|
2680
|
-
//#region src/operations/instanceFns.ts
|
|
2657
|
+
// src/operations/instanceFns.ts
|
|
2681
2658
|
/**
|
|
2682
2659
|
* Transform-only instancing — hold ONE source shape + N placements without
|
|
2683
2660
|
* copying the kernel shape. Real geometry (a Compound, or a fused solid) or a
|
|
@@ -2809,15 +2786,13 @@ function instancedMesh(inst, opts) {
|
|
|
2809
2786
|
instances: inst.placements
|
|
2810
2787
|
};
|
|
2811
2788
|
}
|
|
2812
|
-
|
|
2813
|
-
//#region src/csg/evaluators/instance.ts
|
|
2789
|
+
// src/csg/evaluators/instance.ts
|
|
2814
2790
|
function evalInstance(node, ctx) {
|
|
2815
2791
|
const r = ctx.evalNode(node.source);
|
|
2816
2792
|
if (!r.ok) return r;
|
|
2817
2793
|
return materialize(instance(r.value, node.placements), { fuse: node.fuse });
|
|
2818
2794
|
}
|
|
2819
|
-
|
|
2820
|
-
//#region src/csg/evaluators/profileFace.ts
|
|
2795
|
+
// src/csg/evaluators/profileFace.ts
|
|
2821
2796
|
/** Evaluate a profile child and prove it is an oriented planar face — the
|
|
2822
2797
|
* input contract shared by every profile-consuming feature node. */
|
|
2823
2798
|
function resolveProfileFace(ctx, profile, where) {
|
|
@@ -2829,8 +2804,7 @@ function resolveProfileFace(ctx, profile, where) {
|
|
|
2829
2804
|
if (!require_validityTypes.isPlanarFace(oriented.value)) return require_errors.err(require_errors.typeCastError("CSG_NOT_FACE", `${where}: face is not planar`));
|
|
2830
2805
|
return require_errors.ok(oriented.value);
|
|
2831
2806
|
}
|
|
2832
|
-
|
|
2833
|
-
//#region src/csg/evaluators/extrude.ts
|
|
2807
|
+
// src/csg/evaluators/extrude.ts
|
|
2834
2808
|
function evalExtrude(node, ctx) {
|
|
2835
2809
|
const v = evalVec3(node.vector, ctx.env, "Extrude.vector");
|
|
2836
2810
|
if (!v.ok) return v;
|
|
@@ -2838,8 +2812,7 @@ function evalExtrude(node, ctx) {
|
|
|
2838
2812
|
if (!face.ok) return face;
|
|
2839
2813
|
return require_textBlueprints.extrude(face.value, v.value);
|
|
2840
2814
|
}
|
|
2841
|
-
|
|
2842
|
-
//#region src/csg/evaluators/revolve.ts
|
|
2815
|
+
// src/csg/evaluators/revolve.ts
|
|
2843
2816
|
function evalRevolve(node, ctx) {
|
|
2844
2817
|
const a = evalScalar(node.angle, ctx.env, "Revolve.angle");
|
|
2845
2818
|
if (!a.ok) return a;
|
|
@@ -2861,8 +2834,7 @@ function evalRevolve(node, ctx) {
|
|
|
2861
2834
|
if (!face.ok) return face;
|
|
2862
2835
|
return require_textBlueprints.revolve(face.value, at.value, axis.value, deg * Math.PI / 180);
|
|
2863
2836
|
}
|
|
2864
|
-
|
|
2865
|
-
//#region src/csg/evaluators/loft.ts
|
|
2837
|
+
// src/csg/evaluators/loft.ts
|
|
2866
2838
|
function evalLoft(node, ctx) {
|
|
2867
2839
|
try {
|
|
2868
2840
|
var _usingCtx$8 = require_shapeTypes._usingCtx();
|
|
@@ -2883,8 +2855,7 @@ function evalLoft(node, ctx) {
|
|
|
2883
2855
|
_usingCtx$8.d();
|
|
2884
2856
|
}
|
|
2885
2857
|
}
|
|
2886
|
-
|
|
2887
|
-
//#region src/csg/evaluators/path.ts
|
|
2858
|
+
// src/csg/evaluators/path.ts
|
|
2888
2859
|
var EPS$2 = 1e-9;
|
|
2889
2860
|
function v3(p) {
|
|
2890
2861
|
return [
|
|
@@ -3112,8 +3083,7 @@ function evalPath(node, ctx) {
|
|
|
3112
3083
|
_usingCtx4.d();
|
|
3113
3084
|
}
|
|
3114
3085
|
}
|
|
3115
|
-
|
|
3116
|
-
//#region src/csg/evaluators/sweep.ts
|
|
3086
|
+
// src/csg/evaluators/sweep.ts
|
|
3117
3087
|
function evalSweep(node, ctx) {
|
|
3118
3088
|
try {
|
|
3119
3089
|
var _usingCtx$6 = require_shapeTypes._usingCtx();
|
|
@@ -3145,8 +3115,7 @@ function evalSweep(node, ctx) {
|
|
|
3145
3115
|
_usingCtx$6.d();
|
|
3146
3116
|
}
|
|
3147
3117
|
}
|
|
3148
|
-
|
|
3149
|
-
//#region src/csg/evaluators/profile.ts
|
|
3118
|
+
// src/csg/evaluators/profile.ts
|
|
3150
3119
|
function proveClosedPlanar(w, where) {
|
|
3151
3120
|
const cw = require_validityTypes.closedWire(w);
|
|
3152
3121
|
if (!cw.ok) return require_errors.err(require_errors.validationError("CSG_PROFILE_CONTOUR", `${where}: ${cw.error}`));
|
|
@@ -3178,8 +3147,7 @@ function evalProfile(node, ctx) {
|
|
|
3178
3147
|
_usingCtx$5.d();
|
|
3179
3148
|
}
|
|
3180
3149
|
}
|
|
3181
|
-
|
|
3182
|
-
//#region src/csg/evaluators/color.ts
|
|
3150
|
+
// src/csg/evaluators/color.ts
|
|
3183
3151
|
function evalColor(node, ctx) {
|
|
3184
3152
|
const t = ctx.evalNode(node.target);
|
|
3185
3153
|
if (!t.ok) return t;
|
|
@@ -3199,8 +3167,7 @@ function evalColor(node, ctx) {
|
|
|
3199
3167
|
if (require_solidBuilders.hasAnyMetadata(t.value)) require_solidBuilders.propagateMetadataThroughRelocation(t.value, moved);
|
|
3200
3168
|
return require_errors.ok(require_solidBuilders.colorShape(moved, [...node.color]));
|
|
3201
3169
|
}
|
|
3202
|
-
|
|
3203
|
-
//#region src/csg/evaluators/fillet.ts
|
|
3170
|
+
// src/csg/evaluators/fillet.ts
|
|
3204
3171
|
function evalFillet(node, ctx) {
|
|
3205
3172
|
const radius = evalScalar(node.radius, ctx.env, "Fillet.radius");
|
|
3206
3173
|
if (!radius.ok) return radius;
|
|
@@ -3215,8 +3182,7 @@ function evalFillet(node, ctx) {
|
|
|
3215
3182
|
if (!require_shapeTypes.isEdge(resolved.entity)) return require_errors.err(require_errors.validationError("CSG_FILLET_REF", "Fillet.ref resolved to a non-edge"));
|
|
3216
3183
|
return require_healingFns.fillet(solid.value, [resolved.entity], radius.value);
|
|
3217
3184
|
}
|
|
3218
|
-
|
|
3219
|
-
//#region src/csg/evaluators/chamfer.ts
|
|
3185
|
+
// src/csg/evaluators/chamfer.ts
|
|
3220
3186
|
function evalChamfer(node, ctx) {
|
|
3221
3187
|
const distance = evalScalar(node.distance, ctx.env, "Chamfer.distance");
|
|
3222
3188
|
if (!distance.ok) return distance;
|
|
@@ -3231,8 +3197,7 @@ function evalChamfer(node, ctx) {
|
|
|
3231
3197
|
if (!require_shapeTypes.isEdge(resolved.entity)) return require_errors.err(require_errors.validationError("CSG_CHAMFER_REF", "Chamfer.ref resolved to a non-edge"));
|
|
3232
3198
|
return require_healingFns.chamfer(solid.value, [resolved.entity], distance.value);
|
|
3233
3199
|
}
|
|
3234
|
-
|
|
3235
|
-
//#region src/csg/evaluators/shell.ts
|
|
3200
|
+
// src/csg/evaluators/shell.ts
|
|
3236
3201
|
function evalShell(node, ctx) {
|
|
3237
3202
|
const thickness = evalScalar(node.thickness, ctx.env, "Shell.thickness");
|
|
3238
3203
|
if (!thickness.ok) return thickness;
|
|
@@ -3252,8 +3217,7 @@ function evalShell(node, ctx) {
|
|
|
3252
3217
|
}
|
|
3253
3218
|
return require_healingFns.shell(solid.value, faces, thickness.value);
|
|
3254
3219
|
}
|
|
3255
|
-
|
|
3256
|
-
//#region src/csg/evaluators/extension.ts
|
|
3220
|
+
// src/csg/evaluators/extension.ts
|
|
3257
3221
|
function evalExtension(node, ctx) {
|
|
3258
3222
|
const evaluator = ctx.extensions.get(node.name);
|
|
3259
3223
|
if (evaluator === void 0) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.CSG_EXTENSION_UNKNOWN, `Extension: no evaluator registered for '${node.name}'`, void 0, { name: node.name }, `Register one with new csg.Evaluator({ extensions: { '${node.name}': fn } })`));
|
|
@@ -3275,8 +3239,7 @@ function evalExtension(node, ctx) {
|
|
|
3275
3239
|
children
|
|
3276
3240
|
});
|
|
3277
3241
|
}
|
|
3278
|
-
|
|
3279
|
-
//#region src/csg/evaluate.ts
|
|
3242
|
+
// src/csg/evaluate.ts
|
|
3280
3243
|
function dispatch(node, ctx) {
|
|
3281
3244
|
switch (node.kind) {
|
|
3282
3245
|
case "Box": return evalBox(node, ctx);
|
|
@@ -3759,8 +3722,7 @@ function withEvaluator(options, fn) {
|
|
|
3759
3722
|
_usingCtx$4.d();
|
|
3760
3723
|
}
|
|
3761
3724
|
}
|
|
3762
|
-
|
|
3763
|
-
//#region src/csg/edit.ts
|
|
3725
|
+
// src/csg/edit.ts
|
|
3764
3726
|
function replaceNode(root, pred, replacement) {
|
|
3765
3727
|
return walk(root, pred, replacement, /* @__PURE__ */ new Map());
|
|
3766
3728
|
}
|
|
@@ -4832,8 +4794,7 @@ function readInstance(j, defs) {
|
|
|
4832
4794
|
if (!Array.isArray(placements) || !placements.every(isMatrix4x4)) return bad("Instance.placements must be an array of 4x4 number matrices");
|
|
4833
4795
|
return require_errors.ok(instance$1(source.value, placements, j["fuse"] === true));
|
|
4834
4796
|
}
|
|
4835
|
-
|
|
4836
|
-
//#region src/csg/optimize.ts
|
|
4797
|
+
// src/csg/optimize.ts
|
|
4837
4798
|
function optimize(node) {
|
|
4838
4799
|
return optimizeNode(node);
|
|
4839
4800
|
}
|
|
@@ -5031,8 +4992,7 @@ function optimizeTranslate(target, vector) {
|
|
|
5031
4992
|
}
|
|
5032
4993
|
return translate$1(ot, ov);
|
|
5033
4994
|
}
|
|
5034
|
-
|
|
5035
|
-
//#region src/sketching/blueprintContourFns.ts
|
|
4995
|
+
// src/sketching/blueprintContourFns.ts
|
|
5036
4996
|
var EPS$1 = 1e-6;
|
|
5037
4997
|
function p2(p) {
|
|
5038
4998
|
return [p[0] ?? 0, p[1] ?? 0];
|
|
@@ -5193,8 +5153,7 @@ function consumePiece(piece, cur, segments) {
|
|
|
5193
5153
|
segments.push(seg.value);
|
|
5194
5154
|
return require_errors.ok(to);
|
|
5195
5155
|
}
|
|
5196
|
-
|
|
5197
|
-
//#region src/core/kernelBoundary.ts
|
|
5156
|
+
// src/core/kernelBoundary.ts
|
|
5198
5157
|
/** Convert Vec3 to a kernel 3D vector. Caller must call .delete() when done. */
|
|
5199
5158
|
function toKernelVec(v) {
|
|
5200
5159
|
return require_shapeTypes.getKernel().createVector3d(v[0], v[1], v[2]);
|
|
@@ -5258,8 +5217,7 @@ function withKernelDir(v, fn) {
|
|
|
5258
5217
|
ocDir.delete();
|
|
5259
5218
|
}
|
|
5260
5219
|
}
|
|
5261
|
-
|
|
5262
|
-
//#region src/topology/surfaceFns.ts
|
|
5220
|
+
// src/topology/surfaceFns.ts
|
|
5263
5221
|
/**
|
|
5264
5222
|
* Surface creation functions — generate faces from height-map grids.
|
|
5265
5223
|
*/
|
|
@@ -5404,8 +5362,7 @@ async function surfaceFromImage(blob, options = {}) {
|
|
|
5404
5362
|
if (options.scaleZ !== void 0) gridOpts.scaleZ = options.scaleZ;
|
|
5405
5363
|
return surfaceFromGrid(rows, gridOpts);
|
|
5406
5364
|
}
|
|
5407
|
-
|
|
5408
|
-
//#region src/topology/hullFns.ts
|
|
5365
|
+
// src/topology/hullFns.ts
|
|
5409
5366
|
/**
|
|
5410
5367
|
* Functional convex hull operation.
|
|
5411
5368
|
*
|
|
@@ -5446,8 +5403,7 @@ function hull(shapes, options = {}) {
|
|
|
5446
5403
|
return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_FAILED, `Hull operation failed: ${raw}`, e));
|
|
5447
5404
|
}
|
|
5448
5405
|
}
|
|
5449
|
-
|
|
5450
|
-
//#region src/operations/convexHullFns.ts
|
|
5406
|
+
// src/operations/convexHullFns.ts
|
|
5451
5407
|
/**
|
|
5452
5408
|
* Compute the 3D convex hull of a point cloud.
|
|
5453
5409
|
*
|
|
@@ -5486,8 +5442,7 @@ function convexHull(points) {
|
|
|
5486
5442
|
return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_FAILED, `convexHull failed: ${raw}`, e));
|
|
5487
5443
|
}
|
|
5488
5444
|
}
|
|
5489
|
-
|
|
5490
|
-
//#region src/topology/minkowskiFns.ts
|
|
5445
|
+
// src/topology/minkowskiFns.ts
|
|
5491
5446
|
/**
|
|
5492
5447
|
* Minkowski sum operation — approximates the Minkowski sum of two 3D shapes.
|
|
5493
5448
|
*
|
|
@@ -5581,8 +5536,7 @@ function minkowski(shape, tool, options = {}) {
|
|
|
5581
5536
|
if (sphereRadius !== null) return minkowskiSphere(shape, sphereRadius, tolerance);
|
|
5582
5537
|
return minkowskiGeneral(shape, tool, tolerance);
|
|
5583
5538
|
}
|
|
5584
|
-
|
|
5585
|
-
//#region src/topology/polyhedronFns.ts
|
|
5539
|
+
// src/topology/polyhedronFns.ts
|
|
5586
5540
|
/**
|
|
5587
5541
|
* Create a solid from vertices and face indices.
|
|
5588
5542
|
*/
|
|
@@ -5620,8 +5574,7 @@ function polyhedron(points, faces, options = {}) {
|
|
|
5620
5574
|
return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.POLYHEDRON_FAILED, `Polyhedron failed: ${raw}`, e));
|
|
5621
5575
|
}
|
|
5622
5576
|
}
|
|
5623
|
-
|
|
5624
|
-
//#region src/operations/straightSkeleton.ts
|
|
5577
|
+
// src/operations/straightSkeleton.ts
|
|
5625
5578
|
var EPS = 1e-10;
|
|
5626
5579
|
function cross2(ax, ay, bx, by) {
|
|
5627
5580
|
return ax * by - ay * bx;
|
|
@@ -6019,8 +5972,7 @@ function computeStraightSkeletonImpl(polygon) {
|
|
|
6019
5972
|
faces
|
|
6020
5973
|
};
|
|
6021
5974
|
}
|
|
6022
|
-
|
|
6023
|
-
//#region src/operations/roofFns.ts
|
|
5975
|
+
// src/operations/roofFns.ts
|
|
6024
5976
|
/**
|
|
6025
5977
|
* Roof generation from a wire using straight skeleton extrusion.
|
|
6026
5978
|
* Produces a solid roof shape where each edge slopes inward at a given angle.
|
|
@@ -6230,8 +6182,7 @@ function roof(w, options) {
|
|
|
6230
6182
|
return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ROOF_FAILED, `Roof generation failed: ${msg}`, e));
|
|
6231
6183
|
}
|
|
6232
6184
|
}
|
|
6233
|
-
|
|
6234
|
-
//#region src/kernel/solverAdapter.ts
|
|
6185
|
+
// src/kernel/solverAdapter.ts
|
|
6235
6186
|
/**
|
|
6236
6187
|
* Constraint solver adapter — analytical solver for simple assembly mates.
|
|
6237
6188
|
*/
|
|
@@ -6630,8 +6581,7 @@ function solveConstraints(nodes, constraints) {
|
|
|
6630
6581
|
unsupported
|
|
6631
6582
|
};
|
|
6632
6583
|
}
|
|
6633
|
-
|
|
6634
|
-
//#region src/operations/mateFns.ts
|
|
6584
|
+
// src/operations/mateFns.ts
|
|
6635
6585
|
function extractEntity(mate) {
|
|
6636
6586
|
if (mate.face) {
|
|
6637
6587
|
const axis = require_faceFns.faceAxis(mate.face);
|
|
@@ -6778,8 +6728,7 @@ function solveAssembly(assembly) {
|
|
|
6778
6728
|
return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ASSEMBLY_SOLVE_FAILED, `Assembly solve failed: ${raw}`, e));
|
|
6779
6729
|
}
|
|
6780
6730
|
}
|
|
6781
|
-
|
|
6782
|
-
//#region src/measurement/interferenceFns.ts
|
|
6731
|
+
// src/measurement/interferenceFns.ts
|
|
6783
6732
|
/**
|
|
6784
6733
|
* Interference detection between shapes.
|
|
6785
6734
|
*
|
|
@@ -6855,8 +6804,7 @@ function checkAllInterferences(shapes, tolerance = 1e-6) {
|
|
|
6855
6804
|
function aabbDisjoint(a, b, tolerance) {
|
|
6856
6805
|
return a.xMax + tolerance < b.xMin || b.xMax + tolerance < a.xMin || a.yMax + tolerance < b.yMin || b.yMax + tolerance < a.yMin || a.zMax + tolerance < b.zMin || b.zMax + tolerance < a.zMin;
|
|
6857
6806
|
}
|
|
6858
|
-
|
|
6859
|
-
//#region src/io/dxfImportFns.ts
|
|
6807
|
+
// src/io/dxfImportFns.ts
|
|
6860
6808
|
/**
|
|
6861
6809
|
* DXF file import -- parse ASCII DXF entities into kernel wires.
|
|
6862
6810
|
*/
|
|
@@ -6973,8 +6921,7 @@ async function importDXF(blob, options) {
|
|
|
6973
6921
|
for (const edge of edges) edge.delete();
|
|
6974
6922
|
}
|
|
6975
6923
|
}
|
|
6976
|
-
|
|
6977
|
-
//#region src/io/ioUtils.ts
|
|
6924
|
+
// src/io/ioUtils.ts
|
|
6978
6925
|
/**
|
|
6979
6926
|
* Shared mesh-to-solid sewing utilities for mesh importers.
|
|
6980
6927
|
*
|
|
@@ -7014,8 +6961,7 @@ function sewMeshToSolid(triangles, errorCode, tolerance = 1e-6) {
|
|
|
7014
6961
|
}
|
|
7015
6962
|
}
|
|
7016
6963
|
}
|
|
7017
|
-
|
|
7018
|
-
//#region src/io/objImportFns.ts
|
|
6964
|
+
// src/io/objImportFns.ts
|
|
7019
6965
|
function parseVertexLine(line) {
|
|
7020
6966
|
const parts = line.split(/\s+/);
|
|
7021
6967
|
const x = parseFloat(parts[1] ?? "");
|
|
@@ -7089,8 +7035,7 @@ function buildSolidFromMesh$1(vertices, faces) {
|
|
|
7089
7035
|
}
|
|
7090
7036
|
return sewMeshToSolid(triangles, require_errors.BrepErrorCode.OBJ_IMPORT_FAILED);
|
|
7091
7037
|
}
|
|
7092
|
-
|
|
7093
|
-
//#region src/io/threemfImportFns.ts
|
|
7038
|
+
// src/io/threemfImportFns.ts
|
|
7094
7039
|
/**
|
|
7095
7040
|
* 3MF import — parses a 3MF ZIP archive and builds a solid via sewing.
|
|
7096
7041
|
*/
|
|
@@ -7367,8 +7312,7 @@ async function importThreeMF(blob) {
|
|
|
7367
7312
|
return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.THREEMF_IMPORT_FAILED, `3MF import failed: ${msg}`, e));
|
|
7368
7313
|
}
|
|
7369
7314
|
}
|
|
7370
|
-
|
|
7371
|
-
//#region src/io/gltfImportFns.ts
|
|
7315
|
+
// src/io/gltfImportFns.ts
|
|
7372
7316
|
/**
|
|
7373
7317
|
* Functional GLB/glTF import operations using branded shape types.
|
|
7374
7318
|
*/
|
|
@@ -7396,8 +7340,7 @@ async function importGLB(blob) {
|
|
|
7396
7340
|
return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.GLB_IMPORT_FAILED, `Failed to import GLB: ${msg}`, e));
|
|
7397
7341
|
}
|
|
7398
7342
|
}
|
|
7399
|
-
|
|
7400
|
-
//#region src/topology/apiTypes.ts
|
|
7343
|
+
// src/topology/apiTypes.ts
|
|
7401
7344
|
/** Extract the raw branded shape from a Shapeable value. */
|
|
7402
7345
|
function resolve(s) {
|
|
7403
7346
|
if ("__wrapped" in s) return s.val;
|
|
@@ -7407,8 +7350,7 @@ function resolve(s) {
|
|
|
7407
7350
|
function resolve3D(s) {
|
|
7408
7351
|
return resolve(s);
|
|
7409
7352
|
}
|
|
7410
|
-
|
|
7411
|
-
//#region src/topology/api.ts
|
|
7353
|
+
// src/topology/api.ts
|
|
7412
7354
|
/** Translate a shape by a vector. Returns a new shape. */
|
|
7413
7355
|
function translate(shape, v) {
|
|
7414
7356
|
return require_primitiveFns.translate(resolve(shape), v);
|
|
@@ -7649,8 +7591,7 @@ function isValid(shape) {
|
|
|
7649
7591
|
function isEmpty(shape) {
|
|
7650
7592
|
return require_shapeFns.isEmpty(resolve(shape));
|
|
7651
7593
|
}
|
|
7652
|
-
|
|
7653
|
-
//#region src/operations/api.ts
|
|
7594
|
+
// src/operations/api.ts
|
|
7654
7595
|
/**
|
|
7655
7596
|
* Extrude a face to produce a solid.
|
|
7656
7597
|
*
|
|
@@ -7689,8 +7630,7 @@ function loft(wires, options) {
|
|
|
7689
7630
|
const resolvedWires = wires.map((w) => resolve(w));
|
|
7690
7631
|
return require_loftFns.loft(resolvedWires, options);
|
|
7691
7632
|
}
|
|
7692
|
-
|
|
7693
|
-
//#region src/operations/compoundOpsFns.ts
|
|
7633
|
+
// src/operations/compoundOpsFns.ts
|
|
7694
7634
|
/** Resolve a face selection: Face, FinderFn, or default (top Z-facing face). */
|
|
7695
7635
|
function resolveTargetFace(shape, faceSpec) {
|
|
7696
7636
|
if (faceSpec === void 0) {
|
|
@@ -7954,8 +7894,7 @@ function rectangularPattern(shape, options) {
|
|
|
7954
7894
|
for (const c of owned) c[Symbol.dispose]();
|
|
7955
7895
|
}
|
|
7956
7896
|
}
|
|
7957
|
-
|
|
7958
|
-
//#region src/topology/wrapperFns.ts
|
|
7897
|
+
// src/topology/wrapperFns.ts
|
|
7959
7898
|
/**
|
|
7960
7899
|
* Error class thrown by the shape() wrapper when a Result<T> contains an Err.
|
|
7961
7900
|
* Wraps the structured BrepError for catch-based handling.
|
|
@@ -8366,8 +8305,7 @@ function planetPlacements(params = {}) {
|
|
|
8366
8305
|
}
|
|
8367
8306
|
return require_errors.ok(placements);
|
|
8368
8307
|
}
|
|
8369
|
-
|
|
8370
|
-
//#region src/gear/gearProfile.ts
|
|
8308
|
+
// src/gear/gearProfile.ts
|
|
8371
8309
|
function buildToothPeriodEdges(tm, toothIndex, totalTeeth, samples, scope) {
|
|
8372
8310
|
const center = toothIndex * tm.toothPitch;
|
|
8373
8311
|
const nextCenter = (toothIndex + 1) % totalTeeth * tm.toothPitch;
|
|
@@ -8469,8 +8407,7 @@ function makeProfileWire(params, isInternal) {
|
|
|
8469
8407
|
_usingCtx$2.d();
|
|
8470
8408
|
}
|
|
8471
8409
|
}
|
|
8472
|
-
|
|
8473
|
-
//#region src/gear/gearFns.ts
|
|
8410
|
+
// src/gear/gearFns.ts
|
|
8474
8411
|
function makeExternalGear(params) {
|
|
8475
8412
|
const { teeth, moduleSize, thickness, pressureAngleDeg = 20, shift = 0, clearance = DEFAULT_CLEARANCE, flankThinning = 0, bore = 0, samples } = params;
|
|
8476
8413
|
if (thickness <= 0) return require_errors.err(require_errors.validationError("GEAR_THICKNESS_NONPOSITIVE", "thickness must be > 0"));
|
|
@@ -8838,8 +8775,7 @@ function collectDiagnostics(cfg, metrics) {
|
|
|
8838
8775
|
});
|
|
8839
8776
|
return diagnostics;
|
|
8840
8777
|
}
|
|
8841
|
-
|
|
8842
|
-
//#region src/ns/primitives.ts
|
|
8778
|
+
// src/ns/primitives.ts
|
|
8843
8779
|
var primitives_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8844
8780
|
addHoles: () => require_primitiveFns.addHoles,
|
|
8845
8781
|
bezier: () => require_primitiveFns.bezier,
|
|
@@ -8871,8 +8807,7 @@ var primitives_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8871
8807
|
wire: () => require_primitiveFns.wire,
|
|
8872
8808
|
wireLoop: () => require_primitiveFns.wireLoop
|
|
8873
8809
|
});
|
|
8874
|
-
|
|
8875
|
-
//#region src/ns/booleans.ts
|
|
8810
|
+
// src/ns/booleans.ts
|
|
8876
8811
|
var booleans_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8877
8812
|
checkBoolean: () => require_healingFns.checkBoolean,
|
|
8878
8813
|
convexHull: () => convexHull,
|
|
@@ -8890,8 +8825,7 @@ var booleans_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8890
8825
|
slice: () => slice,
|
|
8891
8826
|
split: () => split
|
|
8892
8827
|
});
|
|
8893
|
-
|
|
8894
|
-
//#region src/ns/modifiers.ts
|
|
8828
|
+
// src/ns/modifiers.ts
|
|
8895
8829
|
var modifiers_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8896
8830
|
chamfer: () => chamfer,
|
|
8897
8831
|
draft: () => draft,
|
|
@@ -8903,8 +8837,7 @@ var modifiers_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8903
8837
|
thicken: () => thicken,
|
|
8904
8838
|
variableFillet: () => require_healingFns.variableFillet
|
|
8905
8839
|
});
|
|
8906
|
-
|
|
8907
|
-
//#region src/ns/transforms.ts
|
|
8840
|
+
// src/ns/transforms.ts
|
|
8908
8841
|
var transforms_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8909
8842
|
applyMatrix: () => applyMatrix,
|
|
8910
8843
|
clone: () => clone,
|
|
@@ -8915,8 +8848,7 @@ var transforms_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8915
8848
|
transformCopy: () => transformCopy,
|
|
8916
8849
|
translate: () => translate
|
|
8917
8850
|
});
|
|
8918
|
-
|
|
8919
|
-
//#region src/ns/measurement.ts
|
|
8851
|
+
// src/ns/measurement.ts
|
|
8920
8852
|
var measurement_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8921
8853
|
checkAllInterferences: () => checkAllInterferences,
|
|
8922
8854
|
checkInterference: () => checkInterference,
|
|
@@ -8933,8 +8865,7 @@ var measurement_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8933
8865
|
measureVolumeProps: () => require_measureFns.measureVolumeProps,
|
|
8934
8866
|
principalBoundingBox: () => require_principalBoxFns.principalBoundingBox
|
|
8935
8867
|
});
|
|
8936
|
-
|
|
8937
|
-
//#region src/ns/ioNs.ts
|
|
8868
|
+
// src/ns/ioNs.ts
|
|
8938
8869
|
var ioNs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8939
8870
|
blueprintToDXF: () => require_importFns.blueprintToDXF,
|
|
8940
8871
|
exportAssemblySTEP: () => require_threadFns.exportAssemblySTEP,
|
|
@@ -8957,8 +8888,7 @@ var ioNs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8957
8888
|
importSVGPathD: () => require_importFns.importSVGPathD,
|
|
8958
8889
|
importThreeMF: () => importThreeMF
|
|
8959
8890
|
});
|
|
8960
|
-
|
|
8961
|
-
//#region src/ns/query.ts
|
|
8891
|
+
// src/ns/query.ts
|
|
8962
8892
|
var query_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8963
8893
|
cornerFinder: () => require_cornerFinder.cornerFinder,
|
|
8964
8894
|
edgeFinder: () => require_helpers.edgeFinder,
|
|
@@ -8967,8 +8897,7 @@ var query_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
8967
8897
|
vertexFinder: () => vertexFinder,
|
|
8968
8898
|
wireFinder: () => require_helpers.wireFinder
|
|
8969
8899
|
});
|
|
8970
|
-
|
|
8971
|
-
//#region src/ns/construction.ts
|
|
8900
|
+
// src/ns/construction.ts
|
|
8972
8901
|
var construction_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8973
8902
|
complexExtrude: () => require_loftFns.complexExtrude,
|
|
8974
8903
|
extrude: () => extrude,
|
|
@@ -8983,14 +8912,12 @@ var construction_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll(
|
|
|
8983
8912
|
sweep: () => require_loftFns.sweep,
|
|
8984
8913
|
twistExtrude: () => require_loftFns.twistExtrude
|
|
8985
8914
|
});
|
|
8986
|
-
|
|
8987
|
-
//#region src/ns/patterns.ts
|
|
8915
|
+
// src/ns/patterns.ts
|
|
8988
8916
|
var patterns_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8989
8917
|
circularPattern: () => require_threadFns.circularPattern,
|
|
8990
8918
|
linearPattern: () => require_threadFns.linearPattern
|
|
8991
8919
|
});
|
|
8992
|
-
|
|
8993
|
-
//#region src/ns/csg.ts
|
|
8920
|
+
// src/ns/csg.ts
|
|
8994
8921
|
var csg_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
8995
8922
|
CSG_VERSION: () => 9,
|
|
8996
8923
|
Evaluator: () => Evaluator,
|
|
@@ -9072,7 +8999,6 @@ var csg_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
|
9072
8999
|
zShapeProfile: () => zShapeProfile
|
|
9073
9000
|
});
|
|
9074
9001
|
/* v8 ignore file */
|
|
9075
|
-
//#endregion
|
|
9076
9002
|
exports.BaseSketcher2d = require_blueprintSketcher.BaseSketcher2d;
|
|
9077
9003
|
exports.BlueprintSketcher = require_blueprintSketcher.BlueprintSketcher;
|
|
9078
9004
|
exports.BrepBugError = require_bug.BrepBugError;
|