brepjs 18.118.13 → 18.118.14
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.cjs +4 -4
- package/dist/2d.js +4 -4
- package/dist/{blueprint-DF-Ig1SW.cjs → blueprint-CN536u9V.cjs} +8 -3
- package/dist/{blueprint-CJ7k25eW.js → blueprint-dqI319c7.js} +8 -3
- package/dist/{blueprintFns-CjvHOuIy.cjs → blueprintFns-CF-6WzuR.cjs} +2 -2
- package/dist/{blueprintFns-BKtVfo16.js → blueprintFns-Ci1QVESM.js} +2 -2
- package/dist/{blueprintSketcher-DRGumaWR.cjs → blueprintSketcher-CGnohIOe.cjs} +1 -1
- package/dist/{blueprintSketcher-BIUHqWo9.js → blueprintSketcher-CY9DgQqk.js} +1 -1
- package/dist/{boolean2D-Buf04D7l.js → boolean2D-CaAwVwCR.js} +2 -2
- package/dist/{boolean2D-5WdQm5Kb.cjs → boolean2D-DnBT9gQ5.cjs} +2 -2
- package/dist/brepjs.cjs +105 -64
- package/dist/brepjs.js +105 -64
- package/dist/{cameraFns-CiGOarQ4.cjs → cameraFns-Ckw5prda.cjs} +28 -12
- package/dist/{cameraFns-MViqtlSh.js → cameraFns-CythF7Ob.js} +30 -14
- package/dist/{drawFns-DZHPT-nb.cjs → drawFns-CMyY6ED-.cjs} +15 -9
- package/dist/{drawFns-CWfBvGiY.js → drawFns-hOQecCHR.js} +15 -9
- package/dist/{importFns-Tgnymh7F.cjs → importFns-CvlUuJ59.cjs} +1 -1
- package/dist/{importFns-CzBtuX0j.js → importFns-TbwuxynG.js} +1 -1
- package/dist/io.cjs +1 -1
- package/dist/io.js +1 -1
- package/dist/{loftFns-Be0OZxYM.cjs → loftFns-BTWRncKQ.cjs} +44 -25
- package/dist/{loftFns-DxJAP4Qv.js → loftFns-CUg8_4_X.js} +45 -26
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +2 -2
- package/dist/projection.cjs +1 -1
- package/dist/projection.js +1 -1
- package/dist/sketching.cjs +3 -3
- package/dist/sketching.js +3 -3
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/{textBlueprints-DgTBXc6O.cjs → textBlueprints-D5mNvqKF.cjs} +2 -2
- package/dist/{textBlueprints-CFPE5_QI.js → textBlueprints-DBjpb8G_.js} +2 -2
- package/dist/{textMetrics-C2cwK7wU.js → textMetrics-C7pEipGp.js} +1 -1
- package/dist/{textMetrics-BH-izd6N.cjs → textMetrics-CgyvE6u0.cjs} +1 -1
- package/dist/{threadFns-B6SQd48K.cjs → threadFns-DDcOeRGs.cjs} +1 -1
- package/dist/{threadFns-G71HVwW7.js → threadFns-Dsn9lSDD.js} +1 -1
- package/package.json +1 -1
package/dist/2d.cjs
CHANGED
|
@@ -2,10 +2,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
|
|
3
3
|
const require_errors = require("./errors-CXJtc4I7.cjs");
|
|
4
4
|
const require_topologyQueryFns = require("./topologyQueryFns-BzIV1jHw.cjs");
|
|
5
|
-
const require_blueprintSketcher = require("./blueprintSketcher-
|
|
6
|
-
const require_blueprint = require("./blueprint-
|
|
7
|
-
const require_boolean2D = require("./boolean2D-
|
|
8
|
-
const require_blueprintFns = require("./blueprintFns-
|
|
5
|
+
const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
|
|
6
|
+
const require_blueprint = require("./blueprint-CN536u9V.cjs");
|
|
7
|
+
const require_boolean2D = require("./boolean2D-DnBT9gQ5.cjs");
|
|
8
|
+
const require_blueprintFns = require("./blueprintFns-CF-6WzuR.cjs");
|
|
9
9
|
//#region src/core/curve2dHandle.ts
|
|
10
10
|
/**
|
|
11
11
|
* Wrap a raw kernel 2D curve handle with brand + disposal tracking.
|
package/dist/2d.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { G as createKernelHandle, rt as getKernel2D, s as createEdge } from "./shapeTypes-BalkiKtK.js";
|
|
2
2
|
import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
|
|
3
3
|
import { w as kernelCallRaw } from "./topologyQueryFns-vDjZw1k2.js";
|
|
4
|
-
import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-
|
|
5
|
-
import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-
|
|
6
|
-
import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-
|
|
7
|
-
import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-
|
|
4
|
+
import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-CY9DgQqk.js";
|
|
5
|
+
import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-dqI319c7.js";
|
|
6
|
+
import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-CaAwVwCR.js";
|
|
7
|
+
import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Ci1QVESM.js";
|
|
8
8
|
//#region src/core/curve2dHandle.ts
|
|
9
9
|
/**
|
|
10
10
|
* Wrap a raw kernel 2D curve handle with brand + disposal tracking.
|
|
@@ -853,8 +853,11 @@ var Blueprint = class Blueprint {
|
|
|
853
853
|
*/
|
|
854
854
|
sketchOnPlane(inputPlane, origin) {
|
|
855
855
|
const plane = inputPlane && typeof inputPlane !== "string" ? { ...inputPlane } : require_planeOps.makePlane(inputPlane, origin);
|
|
856
|
+
const edges = curvesAsEdgesOnPlane(this.curves, plane);
|
|
857
|
+
const wire = assembleWire(edges);
|
|
858
|
+
for (const e of edges) e[Symbol.dispose]();
|
|
856
859
|
return {
|
|
857
|
-
wire
|
|
860
|
+
wire,
|
|
858
861
|
defaultOrigin: plane.origin,
|
|
859
862
|
defaultDirection: plane.zDir
|
|
860
863
|
};
|
|
@@ -868,10 +871,12 @@ var Blueprint = class Blueprint {
|
|
|
868
871
|
*/
|
|
869
872
|
sketchOnFace(face, scaleMode) {
|
|
870
873
|
const kernel = require_shapeTypes.getKernel();
|
|
871
|
-
const
|
|
874
|
+
const edges = require_errors.unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode));
|
|
875
|
+
const wire = assembleWire(edges);
|
|
876
|
+
for (const e of edges) e[Symbol.dispose]();
|
|
872
877
|
kernel.buildCurves3d(wire.wrapped);
|
|
873
878
|
const fixedWire = kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
|
|
874
|
-
wire.
|
|
879
|
+
wire[Symbol.dispose]();
|
|
875
880
|
return {
|
|
876
881
|
wire: require_shapeTypes.createWire(fixedWire),
|
|
877
882
|
baseFace: face
|
|
@@ -852,8 +852,11 @@ var Blueprint = class Blueprint {
|
|
|
852
852
|
*/
|
|
853
853
|
sketchOnPlane(inputPlane, origin) {
|
|
854
854
|
const plane = inputPlane && typeof inputPlane !== "string" ? { ...inputPlane } : makePlane(inputPlane, origin);
|
|
855
|
+
const edges = curvesAsEdgesOnPlane(this.curves, plane);
|
|
856
|
+
const wire = assembleWire(edges);
|
|
857
|
+
for (const e of edges) e[Symbol.dispose]();
|
|
855
858
|
return {
|
|
856
|
-
wire
|
|
859
|
+
wire,
|
|
857
860
|
defaultOrigin: plane.origin,
|
|
858
861
|
defaultDirection: plane.zDir
|
|
859
862
|
};
|
|
@@ -867,10 +870,12 @@ var Blueprint = class Blueprint {
|
|
|
867
870
|
*/
|
|
868
871
|
sketchOnFace(face, scaleMode) {
|
|
869
872
|
const kernel = getKernel();
|
|
870
|
-
const
|
|
873
|
+
const edges = unwrap(curvesAsEdgesOnFace(this.curves, face, scaleMode));
|
|
874
|
+
const wire = assembleWire(edges);
|
|
875
|
+
for (const e of edges) e[Symbol.dispose]();
|
|
871
876
|
kernel.buildCurves3d(wire.wrapped);
|
|
872
877
|
const fixedWire = kernel.fixWireOnFace(wire.wrapped, face.wrapped, 1e-9);
|
|
873
|
-
wire.
|
|
878
|
+
wire[Symbol.dispose]();
|
|
874
879
|
return {
|
|
875
880
|
wire: createWire(fixedWire),
|
|
876
881
|
baseFace: face
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_errors = require("./errors-CXJtc4I7.cjs");
|
|
2
|
-
const require_blueprintSketcher = require("./blueprintSketcher-
|
|
3
|
-
const require_blueprint = require("./blueprint-
|
|
2
|
+
const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
|
|
3
|
+
const require_blueprint = require("./blueprint-CN536u9V.cjs");
|
|
4
4
|
//#region src/2d/lib/curve2dFns.ts
|
|
5
5
|
/**
|
|
6
6
|
* Return a reversed copy of the curve (non-mutating).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
|
|
2
|
-
import { i as CompoundBlueprint } from "./blueprintSketcher-
|
|
3
|
-
import { t as Blueprint } from "./blueprint-
|
|
2
|
+
import { i as CompoundBlueprint } from "./blueprintSketcher-CY9DgQqk.js";
|
|
3
|
+
import { t as Blueprint } from "./blueprint-dqI319c7.js";
|
|
4
4
|
//#region src/2d/lib/curve2dFns.ts
|
|
5
5
|
/**
|
|
6
6
|
* Return a reversed copy of the curve (non-mutating).
|
|
@@ -4,7 +4,7 @@ const require_errors = require("./errors-CXJtc4I7.cjs");
|
|
|
4
4
|
const require_constants = require("./constants-BOVyEYGH.cjs");
|
|
5
5
|
const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
|
|
6
6
|
const require_helpers = require("./helpers-D0be4TzF.cjs");
|
|
7
|
-
const require_blueprint = require("./blueprint-
|
|
7
|
+
const require_blueprint = require("./blueprint-CN536u9V.cjs");
|
|
8
8
|
//#region node_modules/flatqueue/index.js
|
|
9
9
|
/**
|
|
10
10
|
* @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
|
|
@@ -4,7 +4,7 @@ import { A as ok, R as unwrap, T as isOk, b as err, h as bug, n as computationEr
|
|
|
4
4
|
import { r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
|
|
5
5
|
import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
|
|
6
6
|
import { _ as samePoint, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, v as scalarMultiply2d } from "./helpers-zVYq0h_A.js";
|
|
7
|
-
import { _ as Curve2D, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-
|
|
7
|
+
import { _ as Curve2D, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-dqI319c7.js";
|
|
8
8
|
//#region node_modules/flatqueue/index.js
|
|
9
9
|
/**
|
|
10
10
|
* @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
|
|
@@ -2,9 +2,9 @@ import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
|
|
|
2
2
|
import { R as unwrap, h as bug, s as safeIndex } from "./errors-DNWJsfVU.js";
|
|
3
3
|
import { r as lastOrThrow } from "./arrayAccess-DrUGPADn.js";
|
|
4
4
|
import { v as zip } from "./surfaceBuilders-HAF4Xtow.js";
|
|
5
|
-
import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-
|
|
5
|
+
import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-CY9DgQqk.js";
|
|
6
6
|
import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-zVYq0h_A.js";
|
|
7
|
-
import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-
|
|
7
|
+
import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-dqI319c7.js";
|
|
8
8
|
//#region src/2d/blueprints/cannedBlueprints.ts
|
|
9
9
|
/**
|
|
10
10
|
* Create a regular polygon blueprint inscribed in a circle of the given radius.
|
|
@@ -2,9 +2,9 @@ const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
|
|
|
2
2
|
const require_errors = require("./errors-CXJtc4I7.cjs");
|
|
3
3
|
const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
|
|
4
4
|
const require_surfaceBuilders = require("./surfaceBuilders-DWHDogVL.cjs");
|
|
5
|
-
const require_blueprintSketcher = require("./blueprintSketcher-
|
|
5
|
+
const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
|
|
6
6
|
const require_helpers = require("./helpers-D0be4TzF.cjs");
|
|
7
|
-
const require_blueprint = require("./blueprint-
|
|
7
|
+
const require_blueprint = require("./blueprint-CN536u9V.cjs");
|
|
8
8
|
//#region src/2d/blueprints/cannedBlueprints.ts
|
|
9
9
|
/**
|
|
10
10
|
* Create a regular polygon blueprint inscribed in a circle of the given radius.
|
package/dist/brepjs.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_textBlueprints = require("./textBlueprints-
|
|
2
|
+
const require_textBlueprints = require("./textBlueprints-D5mNvqKF.cjs");
|
|
3
3
|
const require_shapeTypes = require("./shapeTypes-C4gRoPYX.cjs");
|
|
4
4
|
const require_occtWasmAdapter = require("./occtWasmAdapter-CWX5KCl8.cjs");
|
|
5
5
|
const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
|
|
@@ -17,18 +17,18 @@ const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
|
|
|
17
17
|
const require_surfaceBuilders = require("./surfaceBuilders-DWHDogVL.cjs");
|
|
18
18
|
const require_solidBuilders = require("./solidBuilders-CHzmSo67.cjs");
|
|
19
19
|
const require_healingFns = require("./healingFns-BZ-TOacm.cjs");
|
|
20
|
-
const require_threadFns = require("./threadFns-
|
|
21
|
-
const require_blueprintSketcher = require("./blueprintSketcher-
|
|
20
|
+
const require_threadFns = require("./threadFns-DDcOeRGs.cjs");
|
|
21
|
+
const require_blueprintSketcher = require("./blueprintSketcher-CGnohIOe.cjs");
|
|
22
22
|
const require_helpers = require("./helpers-D0be4TzF.cjs");
|
|
23
|
-
const require_drawFns = require("./drawFns-
|
|
23
|
+
const require_drawFns = require("./drawFns-CMyY6ED-.cjs");
|
|
24
24
|
const require_measureFns = require("./measureFns-cK6MSs6B.cjs");
|
|
25
25
|
const require_cornerFinder = require("./cornerFinder-Bss_mZV9.cjs");
|
|
26
|
-
const require_boolean2D = require("./boolean2D-
|
|
27
|
-
const require_blueprintFns = require("./blueprintFns-
|
|
28
|
-
const require_importFns = require("./importFns-
|
|
29
|
-
const require_loftFns = require("./loftFns-
|
|
30
|
-
const require_cameraFns = require("./cameraFns-
|
|
31
|
-
const require_textMetrics = require("./textMetrics-
|
|
26
|
+
const require_boolean2D = require("./boolean2D-DnBT9gQ5.cjs");
|
|
27
|
+
const require_blueprintFns = require("./blueprintFns-CF-6WzuR.cjs");
|
|
28
|
+
const require_importFns = require("./importFns-CvlUuJ59.cjs");
|
|
29
|
+
const require_loftFns = require("./loftFns-BTWRncKQ.cjs");
|
|
30
|
+
const require_cameraFns = require("./cameraFns-Ckw5prda.cjs");
|
|
31
|
+
const require_textMetrics = require("./textMetrics-CgyvE6u0.cjs");
|
|
32
32
|
const require_adjacencyFns = require("./adjacencyFns-BdxIbZtR.cjs");
|
|
33
33
|
const require_refResolveFns = require("./refResolveFns-BLM5XlZR.cjs");
|
|
34
34
|
const require_workerPool = require("./workerPool-D30NsiIW.cjs");
|
|
@@ -241,8 +241,8 @@ function repairMesh(mesh, opts, id) {
|
|
|
241
241
|
if (require_errors.isErr(engine)) return engine;
|
|
242
242
|
try {
|
|
243
243
|
try {
|
|
244
|
-
var _usingCtx$
|
|
245
|
-
const repaired = _usingCtx$
|
|
244
|
+
var _usingCtx$8 = require_shapeTypes._usingCtx();
|
|
245
|
+
const repaired = _usingCtx$8.u(engine.value.repair_mesh(mesh.vertices, mesh.triangles, resolution, padding));
|
|
246
246
|
const vertexCount = repaired.positions.length / 3;
|
|
247
247
|
return require_errors.ok({
|
|
248
248
|
vertices: repaired.positions,
|
|
@@ -256,9 +256,9 @@ function repairMesh(mesh, opts, id) {
|
|
|
256
256
|
}]
|
|
257
257
|
});
|
|
258
258
|
} catch (_) {
|
|
259
|
-
_usingCtx$
|
|
259
|
+
_usingCtx$8.e = _;
|
|
260
260
|
} finally {
|
|
261
|
-
_usingCtx$
|
|
261
|
+
_usingCtx$8.d();
|
|
262
262
|
}
|
|
263
263
|
} catch (cause) {
|
|
264
264
|
return require_errors.err(require_errors.computationError("VOXEL_REPAIR_FAILED", cause instanceof Error ? cause.message : "voxel repair failed (grid too large?).", cause));
|
|
@@ -337,12 +337,12 @@ function offsetMesh(mesh, distance, opts, id) {
|
|
|
337
337
|
if (require_errors.isErr(engine)) return engine;
|
|
338
338
|
try {
|
|
339
339
|
try {
|
|
340
|
-
var _usingCtx$
|
|
341
|
-
return meshFromResult(_usingCtx$
|
|
340
|
+
var _usingCtx$7 = require_shapeTypes._usingCtx();
|
|
341
|
+
return meshFromResult(_usingCtx$7.u(engine.value.offset_mesh(mesh.vertices, mesh.triangles, distance, params.value.resolution, params.value.padding)));
|
|
342
342
|
} catch (_) {
|
|
343
|
-
_usingCtx$
|
|
343
|
+
_usingCtx$7.e = _;
|
|
344
344
|
} finally {
|
|
345
|
-
_usingCtx$
|
|
345
|
+
_usingCtx$7.d();
|
|
346
346
|
}
|
|
347
347
|
} catch (cause) {
|
|
348
348
|
return require_errors.err(require_errors.computationError("VOXEL_OFFSET_FAILED", cause instanceof Error ? cause.message : "voxel offset failed (grid too large?).", cause));
|
|
@@ -467,9 +467,9 @@ function resolveGridParams$1(opts) {
|
|
|
467
467
|
*/
|
|
468
468
|
function meshFromField(field) {
|
|
469
469
|
try {
|
|
470
|
-
var _usingCtx$
|
|
470
|
+
var _usingCtx$6 = require_shapeTypes._usingCtx();
|
|
471
471
|
const rawResult = field.contour();
|
|
472
|
-
const { positions, normals, indices } = _usingCtx$
|
|
472
|
+
const { positions, normals, indices } = _usingCtx$6.u({
|
|
473
473
|
value: rawResult,
|
|
474
474
|
[Symbol.dispose]() {
|
|
475
475
|
rawResult.free();
|
|
@@ -489,9 +489,9 @@ function meshFromField(field) {
|
|
|
489
489
|
}]
|
|
490
490
|
});
|
|
491
491
|
} catch (_) {
|
|
492
|
-
_usingCtx$
|
|
492
|
+
_usingCtx$6.e = _;
|
|
493
493
|
} finally {
|
|
494
|
-
_usingCtx$
|
|
494
|
+
_usingCtx$6.d();
|
|
495
495
|
}
|
|
496
496
|
}
|
|
497
497
|
function fieldDeletable(raw) {
|
|
@@ -1056,12 +1056,12 @@ function latticeInfill(mesh, opts, id) {
|
|
|
1056
1056
|
const { tag, period, thickness, resolution, padding } = resolved.value;
|
|
1057
1057
|
try {
|
|
1058
1058
|
try {
|
|
1059
|
-
var _usingCtx$
|
|
1060
|
-
return require_errors.ok(toMesh(_usingCtx$
|
|
1059
|
+
var _usingCtx$5 = require_shapeTypes._usingCtx();
|
|
1060
|
+
return require_errors.ok(toMesh(_usingCtx$5.u(engine.value.lattice_infill(mesh.vertices, mesh.triangles, resolution, padding, tag, period, thickness))));
|
|
1061
1061
|
} catch (_) {
|
|
1062
|
-
_usingCtx$
|
|
1062
|
+
_usingCtx$5.e = _;
|
|
1063
1063
|
} finally {
|
|
1064
|
-
_usingCtx$
|
|
1064
|
+
_usingCtx$5.d();
|
|
1065
1065
|
}
|
|
1066
1066
|
} catch (cause) {
|
|
1067
1067
|
return require_errors.err(require_errors.computationError("LATTICE_INFILL_FAILED", cause instanceof Error ? cause.message : "lattice infill failed (grid too large?).", cause));
|
|
@@ -3741,10 +3741,20 @@ function resolveTargetFace(shape, faceSpec) {
|
|
|
3741
3741
|
}
|
|
3742
3742
|
return require_errors.ok(faceSpec);
|
|
3743
3743
|
}
|
|
3744
|
-
/**
|
|
3744
|
+
/**
|
|
3745
|
+
* Convert a DrawingLike or Wire to a ClosedWire & PlanarWire (profiles are always
|
|
3746
|
+
* closed and planar). `owned` is true when we materialised a fresh sketch wire
|
|
3747
|
+
* (the caller must dispose it); false when the caller's own Wire is passed through.
|
|
3748
|
+
*/
|
|
3745
3749
|
function toWire(profile) {
|
|
3746
|
-
if ("sketchOnPlane" in profile && typeof profile.sketchOnPlane === "function") return
|
|
3747
|
-
|
|
3750
|
+
if ("sketchOnPlane" in profile && typeof profile.sketchOnPlane === "function") return {
|
|
3751
|
+
wire: profile.sketchOnPlane("XY").wire,
|
|
3752
|
+
owned: true
|
|
3753
|
+
};
|
|
3754
|
+
return {
|
|
3755
|
+
wire: profile,
|
|
3756
|
+
owned: false
|
|
3757
|
+
};
|
|
3748
3758
|
}
|
|
3749
3759
|
/**
|
|
3750
3760
|
* Drill a hole through a 3D shape.
|
|
@@ -3847,19 +3857,31 @@ function drill(shape, options) {
|
|
|
3847
3857
|
* inward by the specified depth, then subtracted from the shape.
|
|
3848
3858
|
*/
|
|
3849
3859
|
function pocket(shape, options) {
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
|
|
3859
|
-
|
|
3860
|
-
|
|
3861
|
-
|
|
3862
|
-
|
|
3860
|
+
try {
|
|
3861
|
+
var _usingCtx$4 = require_shapeTypes._usingCtx();
|
|
3862
|
+
const s = resolve(shape);
|
|
3863
|
+
const { profile, depth } = options;
|
|
3864
|
+
if (depth <= 0) return require_errors.err(require_errors.validationError("POCKET_INVALID_DEPTH", "Pocket depth must be positive"));
|
|
3865
|
+
const targetResult = resolveTargetFace(s, options.face);
|
|
3866
|
+
if (require_errors.isErr(targetResult)) return targetResult;
|
|
3867
|
+
const targetFace = targetResult.value;
|
|
3868
|
+
const normal = require_faceFns.normalAt(targetFace);
|
|
3869
|
+
const center = require_faceFns.faceCenter(targetFace);
|
|
3870
|
+
const scope = _usingCtx$4.u(new require_shapeTypes.DisposalScope());
|
|
3871
|
+
const { wire: w, owned } = toWire(profile);
|
|
3872
|
+
if (owned) scope.register(w);
|
|
3873
|
+
const faceResult = require_surfaceBuilders.makeFace(w);
|
|
3874
|
+
if (require_errors.isErr(faceResult)) return faceResult;
|
|
3875
|
+
scope.register(faceResult.value);
|
|
3876
|
+
const toolResult = require_loftFns.extrude(scope.register(require_shapeFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
|
|
3877
|
+
if (require_errors.isErr(toolResult)) return toolResult;
|
|
3878
|
+
scope.register(toolResult.value);
|
|
3879
|
+
return require_solidBuilders.cut(s, toolResult.value, { unsafe: true });
|
|
3880
|
+
} catch (_) {
|
|
3881
|
+
_usingCtx$4.e = _;
|
|
3882
|
+
} finally {
|
|
3883
|
+
_usingCtx$4.d();
|
|
3884
|
+
}
|
|
3863
3885
|
}
|
|
3864
3886
|
/**
|
|
3865
3887
|
* Add a boss (2D profile extruded outward) onto a shape.
|
|
@@ -3868,19 +3890,31 @@ function pocket(shape, options) {
|
|
|
3868
3890
|
* outward by the specified height, then fused with the shape.
|
|
3869
3891
|
*/
|
|
3870
3892
|
function boss(shape, options) {
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3893
|
+
try {
|
|
3894
|
+
var _usingCtx3 = require_shapeTypes._usingCtx();
|
|
3895
|
+
const s = resolve(shape);
|
|
3896
|
+
const { profile, height } = options;
|
|
3897
|
+
if (height <= 0) return require_errors.err(require_errors.validationError("BOSS_INVALID_HEIGHT", "Boss height must be positive"));
|
|
3898
|
+
const targetResult = resolveTargetFace(s, options.face);
|
|
3899
|
+
if (require_errors.isErr(targetResult)) return targetResult;
|
|
3900
|
+
const targetFace = targetResult.value;
|
|
3901
|
+
const normal = require_faceFns.normalAt(targetFace);
|
|
3902
|
+
const center = require_faceFns.faceCenter(targetFace);
|
|
3903
|
+
const scope = _usingCtx3.u(new require_shapeTypes.DisposalScope());
|
|
3904
|
+
const { wire: w, owned } = toWire(profile);
|
|
3905
|
+
if (owned) scope.register(w);
|
|
3906
|
+
const faceResult = require_surfaceBuilders.makeFace(w);
|
|
3907
|
+
if (require_errors.isErr(faceResult)) return faceResult;
|
|
3908
|
+
scope.register(faceResult.value);
|
|
3909
|
+
const toolResult = require_loftFns.extrude(scope.register(require_shapeFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
|
|
3910
|
+
if (require_errors.isErr(toolResult)) return toolResult;
|
|
3911
|
+
scope.register(toolResult.value);
|
|
3912
|
+
return require_solidBuilders.fuse(s, toolResult.value, { unsafe: true });
|
|
3913
|
+
} catch (_) {
|
|
3914
|
+
_usingCtx3.e = _;
|
|
3915
|
+
} finally {
|
|
3916
|
+
_usingCtx3.d();
|
|
3917
|
+
}
|
|
3884
3918
|
}
|
|
3885
3919
|
/**
|
|
3886
3920
|
* Mirror a shape and fuse it with the original.
|
|
@@ -3888,15 +3922,22 @@ function boss(shape, options) {
|
|
|
3888
3922
|
* Common pattern: model half a part, then mirror-join for symmetry.
|
|
3889
3923
|
*/
|
|
3890
3924
|
function mirrorJoin(shape, options) {
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3925
|
+
try {
|
|
3926
|
+
var _usingCtx4 = require_shapeTypes._usingCtx();
|
|
3927
|
+
const s = resolve(shape);
|
|
3928
|
+
const normal = options?.normal ?? [
|
|
3929
|
+
1,
|
|
3930
|
+
0,
|
|
3931
|
+
0
|
|
3932
|
+
];
|
|
3933
|
+
const planeOrigin = options?.at;
|
|
3934
|
+
if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
|
|
3935
|
+
return require_solidBuilders.fuse(s, _usingCtx4.u(require_shapeFns.mirror(s, normal, planeOrigin)), { unsafe: true });
|
|
3936
|
+
} catch (_) {
|
|
3937
|
+
_usingCtx4.e = _;
|
|
3938
|
+
} finally {
|
|
3939
|
+
_usingCtx4.d();
|
|
3940
|
+
}
|
|
3900
3941
|
}
|
|
3901
3942
|
/**
|
|
3902
3943
|
* Create a rectangular (2D grid) pattern of a shape.
|