brepjs 15.1.4 → 15.1.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/blueprints/boolean2D.d.ts.map +1 -1
- package/dist/2d/blueprints/booleanHelpers.d.ts +4 -2
- package/dist/2d/blueprints/booleanHelpers.d.ts.map +1 -1
- package/dist/2d/blueprints/intersectionSegments.d.ts.map +1 -1
- package/dist/2d/blueprints/segmentAssembly.d.ts.map +1 -1
- package/dist/2d.cjs +2 -2
- package/dist/2d.js +2 -2
- package/dist/{blueprintFns-C1wvF9Pi.cjs → blueprintFns-BfxfImfI.cjs} +1 -1
- package/dist/{blueprintFns-BkBU8j4C.js → blueprintFns-Dh7aCCTB.js} +1 -1
- package/dist/{boolean2D-Rgf6lvU_.cjs → boolean2D-C-2D1eJM.cjs} +47 -16
- package/dist/{boolean2D-BTWKmz9k.js → boolean2D-dM-8lArM.js} +47 -16
- package/dist/brepjs.cjs +3 -3
- package/dist/brepjs.js +3 -3
- package/dist/{drawFns-XZhAaksh.cjs → drawFns-ByjqoZ3q.cjs} +1 -1
- package/dist/{drawFns-C7_KPDLU.js → drawFns-EKQejy-Y.js} +1 -1
- package/dist/sketching.cjs +2 -2
- package/dist/sketching.js +2 -2
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean2D.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/boolean2D.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAMvD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC;AAyLxE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,GACjB,OAAO,OAAO,EACd,QAAQ,OAAO,KACd,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAmD/C,CAAC;AAaF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,OAAO,EACd,QAAQ,OAAO,KACd,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"boolean2D.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/boolean2D.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAMvD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC;AAyLxE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,GACjB,OAAO,OAAO,EACd,QAAQ,OAAO,KACd,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAmD/C,CAAC;AAaF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,OAAO,EACd,QAAQ,OAAO,KACd,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAiD/C,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,GACd,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAoDnD"}
|
|
@@ -25,8 +25,10 @@ export declare function curveMidPoint(curve: Curve2D): Point2D;
|
|
|
25
25
|
export declare function rotateToStartAt(curves: Curve2D[], point: Point2D): Curve2D[];
|
|
26
26
|
/**
|
|
27
27
|
* Rotate the curves array so that it starts at the curve matching the given
|
|
28
|
-
* segment.
|
|
29
|
-
*
|
|
28
|
+
* segment. Tries both segment orientations (forward and flipped) against both
|
|
29
|
+
* curve orientations (original and reversed chain) to handle cases where
|
|
30
|
+
* `intersectCurves` returns a common segment oriented opposite to the
|
|
31
|
+
* matching curve in the split result.
|
|
30
32
|
*/
|
|
31
33
|
export declare function rotateToStartAtSegment(curves: Curve2D[], segment: Curve2D): Curve2D[];
|
|
32
34
|
//# sourceMappingURL=booleanHelpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booleanHelpers.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/booleanHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OACH,CAAC;AAMjD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIjE;AAMD,MAAM,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;AAChC,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAE9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAMlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAMhD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAE9D;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGrD;AA0ED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAG5E;AAED
|
|
1
|
+
{"version":3,"file":"booleanHelpers.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/booleanHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,OACH,CAAC;AAMjD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAIjE;AAMD,MAAM,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;AAChC,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AAE9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAMlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAMhD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAE9D;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGrD;AA0ED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAG5E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAgDrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intersectionSegments.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/intersectionSegments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAY5C,OAAO,KAAK,EAAW,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"intersectionSegments.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/intersectionSegments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAY5C,OAAO,KAAK,EAAW,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AA2KxE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,oBAAoB,EAAE,OAAO,EAAE,EAAE,EACjC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,GAClB,OAAO,CAQT;AAMD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,mBAAmB,EAAE,GAAG,IAAI,CAwE9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmentAssembly.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/segmentAssembly.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAU9C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CA6BzD;AAMD,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,UAAU,GACV,IAAI,GACJ,eAAe,GACf,oBAAoB,CAAC;AAMzB,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC1C;AAmGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,GAC7B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"segmentAssembly.d.ts","sourceRoot":"","sources":["../../../src/2d/blueprints/segmentAssembly.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAU9C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CA6BzD;AAMD,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,UAAU,GACV,IAAI,GACJ,eAAe,GACf,oBAAoB,CAAC;AAMzB,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC1C;AAmGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,GAC7B,sBAAsB,CAkExB"}
|
package/dist/2d.cjs
CHANGED
|
@@ -2,9 +2,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_shapeTypes = require("./shapeTypes-DoBHuzjo.cjs");
|
|
3
3
|
const require_errors = require("./errors-9zQcQK1H.cjs");
|
|
4
4
|
const require_faceFns = require("./faceFns-Z6uVCQfc.cjs");
|
|
5
|
-
const require_boolean2D = require("./boolean2D-
|
|
5
|
+
const require_boolean2D = require("./boolean2D-C-2D1eJM.cjs");
|
|
6
6
|
const require_blueprint = require("./blueprint-4w3i6ayW.cjs");
|
|
7
|
-
const require_blueprintFns = require("./blueprintFns-
|
|
7
|
+
const require_blueprintFns = require("./blueprintFns-BfxfImfI.cjs");
|
|
8
8
|
//#region src/core/curve2dHandle.ts
|
|
9
9
|
/**
|
|
10
10
|
* Wrap a raw kernel 2D curve handle with brand + disposal tracking.
|
package/dist/2d.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { B as createKernelHandle, Z as getKernel2D, a as createEdge } from "./shapeTypes-D3seZBe7.js";
|
|
2
2
|
import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
|
|
3
3
|
import { B as kernelCallRaw } from "./faceFns-CBdCV-j8.js";
|
|
4
|
-
import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-
|
|
4
|
+
import { _ as Blueprints, a as fuseBlueprints, c as roundedRectangleBlueprint, g as CompoundBlueprint, h as organiseBlueprints, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-dM-8lArM.js";
|
|
5
5
|
import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-xXn5kpyL.js";
|
|
6
|
-
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-
|
|
6
|
+
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-Dh7aCCTB.js";
|
|
7
7
|
//#region src/core/curve2dHandle.ts
|
|
8
8
|
/**
|
|
9
9
|
* Wrap a raw kernel 2D curve handle with brand + disposal tracking.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_errors = require("./errors-9zQcQK1H.cjs");
|
|
2
|
-
const require_boolean2D = require("./boolean2D-
|
|
2
|
+
const require_boolean2D = require("./boolean2D-C-2D1eJM.cjs");
|
|
3
3
|
const require_blueprint = require("./blueprint-4w3i6ayW.cjs");
|
|
4
4
|
//#region src/2d/lib/curve2dFns.ts
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
|
|
2
|
-
import { g as CompoundBlueprint } from "./boolean2D-
|
|
2
|
+
import { g as CompoundBlueprint } from "./boolean2D-dM-8lArM.js";
|
|
3
3
|
import { t as Blueprint } from "./blueprint-xXn5kpyL.js";
|
|
4
4
|
//#region src/2d/lib/curve2dFns.ts
|
|
5
5
|
/**
|
|
@@ -2006,29 +2006,52 @@ function rotateToStartAt(curves, point) {
|
|
|
2006
2006
|
}
|
|
2007
2007
|
/**
|
|
2008
2008
|
* Rotate the curves array so that it starts at the curve matching the given
|
|
2009
|
-
* segment.
|
|
2010
|
-
*
|
|
2009
|
+
* segment. Tries both segment orientations (forward and flipped) against both
|
|
2010
|
+
* curve orientations (original and reversed chain) to handle cases where
|
|
2011
|
+
* `intersectCurves` returns a common segment oriented opposite to the
|
|
2012
|
+
* matching curve in the split result.
|
|
2011
2013
|
*/
|
|
2012
2014
|
function rotateToStartAtSegment(curves, segment) {
|
|
2013
2015
|
const segFirstHash = hashPoint(segment.firstPoint);
|
|
2014
2016
|
const segLastHash = hashPoint(segment.lastPoint);
|
|
2015
|
-
const
|
|
2016
|
-
|
|
2017
|
-
|
|
2017
|
+
const matchesForward = (curve) => samePoint(segment.firstPoint, curve.firstPoint) && samePoint(segment.lastPoint, curve.lastPoint);
|
|
2018
|
+
const matchesFlipped = (curve) => samePoint(segment.lastPoint, curve.firstPoint) && samePoint(segment.firstPoint, curve.lastPoint);
|
|
2019
|
+
function tryRotate(chain, firstHash, lastHash, matchFn) {
|
|
2020
|
+
const idx = findCurveIndexBySegment(chain, firstHash, lastHash, matchFn);
|
|
2021
|
+
return idx !== -1 ? rotateArray(chain, idx) : null;
|
|
2022
|
+
}
|
|
2023
|
+
const fwdFwd = tryRotate(curves, segFirstHash, segLastHash, matchesForward);
|
|
2024
|
+
if (fwdFwd !== null) return fwdFwd;
|
|
2025
|
+
const flipFwd = tryRotate(curves, segLastHash, segFirstHash, matchesFlipped);
|
|
2026
|
+
if (flipFwd !== null) return flipFwd;
|
|
2018
2027
|
const reversed = reverseSegment(curves);
|
|
2019
|
-
|
|
2020
|
-
if (
|
|
2021
|
-
|
|
2028
|
+
const fwdRev = tryRotate(reversed, segFirstHash, segLastHash, matchesForward);
|
|
2029
|
+
if (fwdRev !== null) return fwdRev;
|
|
2030
|
+
const flipRev = tryRotate(reversed, segLastHash, segFirstHash, matchesFlipped);
|
|
2031
|
+
if (flipRev !== null) return flipRev;
|
|
2032
|
+
require_errors.bug("rotateToStartAtSegment", "failed to rotate to segment start");
|
|
2022
2033
|
}
|
|
2023
2034
|
//#endregion
|
|
2024
2035
|
//#region src/2d/blueprints/intersectionSegments.ts
|
|
2025
2036
|
function* createSegmentOnPoints(curves, allIntersections, allCommonSegments) {
|
|
2026
2037
|
const intersectionSet = new Set(allIntersections.map(hashPoint));
|
|
2027
2038
|
const commonSegmentSet = new Set(allCommonSegments.map((seg) => hashSegment(seg.firstPoint, seg.lastPoint)));
|
|
2039
|
+
const matchesIntersection = (point) => {
|
|
2040
|
+
if (intersectionSet.has(hashPoint(point))) return true;
|
|
2041
|
+
return allIntersections.some((p) => samePoint(p, point));
|
|
2042
|
+
};
|
|
2043
|
+
const matchesCommonSegment = (first, last) => {
|
|
2044
|
+
if (commonSegmentSet.has(hashSegment(first, last))) return true;
|
|
2045
|
+
return allCommonSegments.some((seg) => samePoint(seg.firstPoint, first) && samePoint(seg.lastPoint, last) || samePoint(seg.firstPoint, last) && samePoint(seg.lastPoint, first));
|
|
2046
|
+
};
|
|
2028
2047
|
let currentCurves = [];
|
|
2029
2048
|
for (const curve of curves) {
|
|
2030
|
-
|
|
2031
|
-
|
|
2049
|
+
if (samePoint(curve.firstPoint, curve.lastPoint)) {
|
|
2050
|
+
currentCurves.push(curve);
|
|
2051
|
+
continue;
|
|
2052
|
+
}
|
|
2053
|
+
const endsAtIntersection = matchesIntersection(curve.lastPoint);
|
|
2054
|
+
const isCommon = matchesCommonSegment(curve.firstPoint, curve.lastPoint);
|
|
2032
2055
|
if (endsAtIntersection) {
|
|
2033
2056
|
currentCurves.push(curve);
|
|
2034
2057
|
yield currentCurves;
|
|
@@ -2050,8 +2073,9 @@ function* createSegmentOnPoints(curves, allIntersections, allCommonSegments) {
|
|
|
2050
2073
|
function removeNonCrossingPoints(allIntersections, segmentedCurve, blueprintToCheck) {
|
|
2051
2074
|
return allIntersections.filter((intersection) => {
|
|
2052
2075
|
const touching = segmentedCurve.filter((s) => samePoint(s.firstPoint, intersection) || samePoint(s.lastPoint, intersection));
|
|
2053
|
-
|
|
2054
|
-
|
|
2076
|
+
const effectiveTouching = touching.length % 2 ? touching.filter((s) => !(samePoint(s.firstPoint, intersection) && samePoint(s.lastPoint, intersection))) : touching;
|
|
2077
|
+
if (effectiveTouching.length === 0 || effectiveTouching.length % 2) return false;
|
|
2078
|
+
const insideFlags = effectiveTouching.map((segment) => blueprintToCheck.isInside(curveMidPoint(segment)));
|
|
2055
2079
|
return !(insideFlags.every(Boolean) || insideFlags.every((f) => !f));
|
|
2056
2080
|
});
|
|
2057
2081
|
}
|
|
@@ -2239,7 +2263,7 @@ function booleanOperation(first, second, config) {
|
|
|
2239
2263
|
if (segments.every(([, secondSegment]) => secondSegment === "same")) return { identical: true };
|
|
2240
2264
|
let segmentsIn = null;
|
|
2241
2265
|
let lastWasSame = null;
|
|
2242
|
-
|
|
2266
|
+
let assembledCurves = segments.flatMap(([firstSegment, secondSegment]) => {
|
|
2243
2267
|
if (secondSegment === "same") {
|
|
2244
2268
|
const result = handleSameSegment(firstSegment, segmentsIn, lastWasSame);
|
|
2245
2269
|
segmentsIn = result.segmentsIn;
|
|
@@ -2250,7 +2274,10 @@ function booleanOperation(first, second, config) {
|
|
|
2250
2274
|
segmentsIn = result.segmentsIn;
|
|
2251
2275
|
lastWasSame = result.lastWasSame;
|
|
2252
2276
|
return result.curves;
|
|
2253
|
-
})
|
|
2277
|
+
});
|
|
2278
|
+
const finalLastWasSame = lastWasSame;
|
|
2279
|
+
if (finalLastWasSame !== null && segmentsIn === 1) assembledCurves = [...finalLastWasSame, ...assembledCurves];
|
|
2280
|
+
const paths = splitPaths(assembledCurves).filter((b) => b.length > 0).map((b) => new require_blueprint.Blueprint(b));
|
|
2254
2281
|
if (paths.length === 0) return null;
|
|
2255
2282
|
if (paths.length === 1) {
|
|
2256
2283
|
const single = paths[0];
|
|
@@ -2534,7 +2561,7 @@ var cut2D = (first, second) => {
|
|
|
2534
2561
|
if (first instanceof CompoundBlueprint) {
|
|
2535
2562
|
const wrapper = require_errors.safeIndex(first.blueprints, 0, "cut2D");
|
|
2536
2563
|
if (second instanceof require_blueprint.Blueprint && !second.intersects(wrapper)) {
|
|
2537
|
-
if (!wrapper.isInside(second.firstPoint)) return
|
|
2564
|
+
if (!wrapper.isInside(second.firstPoint)) return first.clone();
|
|
2538
2565
|
return organiseBlueprints([wrapper, ...allBlueprints(fuse2D(second, new Blueprints(first.blueprints.slice(1))))]);
|
|
2539
2566
|
} else {
|
|
2540
2567
|
let out = cut2D(wrapper, second);
|
|
@@ -2544,7 +2571,11 @@ var cut2D = (first, second) => {
|
|
|
2544
2571
|
return out;
|
|
2545
2572
|
}
|
|
2546
2573
|
}
|
|
2547
|
-
if (second instanceof Blueprints)
|
|
2574
|
+
if (second instanceof Blueprints) {
|
|
2575
|
+
let out = first;
|
|
2576
|
+
for (const bp of second.blueprints) out = cut2D(out, bp);
|
|
2577
|
+
return out;
|
|
2578
|
+
}
|
|
2548
2579
|
if (second instanceof CompoundBlueprint) {
|
|
2549
2580
|
let out = cutBlueprints(first, require_errors.safeIndex(second.blueprints, 0, "cut2D"));
|
|
2550
2581
|
second.blueprints.slice(1).forEach((bp) => {
|
|
@@ -2006,29 +2006,52 @@ function rotateToStartAt(curves, point) {
|
|
|
2006
2006
|
}
|
|
2007
2007
|
/**
|
|
2008
2008
|
* Rotate the curves array so that it starts at the curve matching the given
|
|
2009
|
-
* segment.
|
|
2010
|
-
*
|
|
2009
|
+
* segment. Tries both segment orientations (forward and flipped) against both
|
|
2010
|
+
* curve orientations (original and reversed chain) to handle cases where
|
|
2011
|
+
* `intersectCurves` returns a common segment oriented opposite to the
|
|
2012
|
+
* matching curve in the split result.
|
|
2011
2013
|
*/
|
|
2012
2014
|
function rotateToStartAtSegment(curves, segment) {
|
|
2013
2015
|
const segFirstHash = hashPoint(segment.firstPoint);
|
|
2014
2016
|
const segLastHash = hashPoint(segment.lastPoint);
|
|
2015
|
-
const
|
|
2016
|
-
|
|
2017
|
-
|
|
2017
|
+
const matchesForward = (curve) => samePoint(segment.firstPoint, curve.firstPoint) && samePoint(segment.lastPoint, curve.lastPoint);
|
|
2018
|
+
const matchesFlipped = (curve) => samePoint(segment.lastPoint, curve.firstPoint) && samePoint(segment.firstPoint, curve.lastPoint);
|
|
2019
|
+
function tryRotate(chain, firstHash, lastHash, matchFn) {
|
|
2020
|
+
const idx = findCurveIndexBySegment(chain, firstHash, lastHash, matchFn);
|
|
2021
|
+
return idx !== -1 ? rotateArray(chain, idx) : null;
|
|
2022
|
+
}
|
|
2023
|
+
const fwdFwd = tryRotate(curves, segFirstHash, segLastHash, matchesForward);
|
|
2024
|
+
if (fwdFwd !== null) return fwdFwd;
|
|
2025
|
+
const flipFwd = tryRotate(curves, segLastHash, segFirstHash, matchesFlipped);
|
|
2026
|
+
if (flipFwd !== null) return flipFwd;
|
|
2018
2027
|
const reversed = reverseSegment(curves);
|
|
2019
|
-
|
|
2020
|
-
if (
|
|
2021
|
-
|
|
2028
|
+
const fwdRev = tryRotate(reversed, segFirstHash, segLastHash, matchesForward);
|
|
2029
|
+
if (fwdRev !== null) return fwdRev;
|
|
2030
|
+
const flipRev = tryRotate(reversed, segLastHash, segFirstHash, matchesFlipped);
|
|
2031
|
+
if (flipRev !== null) return flipRev;
|
|
2032
|
+
bug("rotateToStartAtSegment", "failed to rotate to segment start");
|
|
2022
2033
|
}
|
|
2023
2034
|
//#endregion
|
|
2024
2035
|
//#region src/2d/blueprints/intersectionSegments.ts
|
|
2025
2036
|
function* createSegmentOnPoints(curves, allIntersections, allCommonSegments) {
|
|
2026
2037
|
const intersectionSet = new Set(allIntersections.map(hashPoint));
|
|
2027
2038
|
const commonSegmentSet = new Set(allCommonSegments.map((seg) => hashSegment(seg.firstPoint, seg.lastPoint)));
|
|
2039
|
+
const matchesIntersection = (point) => {
|
|
2040
|
+
if (intersectionSet.has(hashPoint(point))) return true;
|
|
2041
|
+
return allIntersections.some((p) => samePoint(p, point));
|
|
2042
|
+
};
|
|
2043
|
+
const matchesCommonSegment = (first, last) => {
|
|
2044
|
+
if (commonSegmentSet.has(hashSegment(first, last))) return true;
|
|
2045
|
+
return allCommonSegments.some((seg) => samePoint(seg.firstPoint, first) && samePoint(seg.lastPoint, last) || samePoint(seg.firstPoint, last) && samePoint(seg.lastPoint, first));
|
|
2046
|
+
};
|
|
2028
2047
|
let currentCurves = [];
|
|
2029
2048
|
for (const curve of curves) {
|
|
2030
|
-
|
|
2031
|
-
|
|
2049
|
+
if (samePoint(curve.firstPoint, curve.lastPoint)) {
|
|
2050
|
+
currentCurves.push(curve);
|
|
2051
|
+
continue;
|
|
2052
|
+
}
|
|
2053
|
+
const endsAtIntersection = matchesIntersection(curve.lastPoint);
|
|
2054
|
+
const isCommon = matchesCommonSegment(curve.firstPoint, curve.lastPoint);
|
|
2032
2055
|
if (endsAtIntersection) {
|
|
2033
2056
|
currentCurves.push(curve);
|
|
2034
2057
|
yield currentCurves;
|
|
@@ -2050,8 +2073,9 @@ function* createSegmentOnPoints(curves, allIntersections, allCommonSegments) {
|
|
|
2050
2073
|
function removeNonCrossingPoints(allIntersections, segmentedCurve, blueprintToCheck) {
|
|
2051
2074
|
return allIntersections.filter((intersection) => {
|
|
2052
2075
|
const touching = segmentedCurve.filter((s) => samePoint(s.firstPoint, intersection) || samePoint(s.lastPoint, intersection));
|
|
2053
|
-
|
|
2054
|
-
|
|
2076
|
+
const effectiveTouching = touching.length % 2 ? touching.filter((s) => !(samePoint(s.firstPoint, intersection) && samePoint(s.lastPoint, intersection))) : touching;
|
|
2077
|
+
if (effectiveTouching.length === 0 || effectiveTouching.length % 2) return false;
|
|
2078
|
+
const insideFlags = effectiveTouching.map((segment) => blueprintToCheck.isInside(curveMidPoint(segment)));
|
|
2055
2079
|
return !(insideFlags.every(Boolean) || insideFlags.every((f) => !f));
|
|
2056
2080
|
});
|
|
2057
2081
|
}
|
|
@@ -2239,7 +2263,7 @@ function booleanOperation(first, second, config) {
|
|
|
2239
2263
|
if (segments.every(([, secondSegment]) => secondSegment === "same")) return { identical: true };
|
|
2240
2264
|
let segmentsIn = null;
|
|
2241
2265
|
let lastWasSame = null;
|
|
2242
|
-
|
|
2266
|
+
let assembledCurves = segments.flatMap(([firstSegment, secondSegment]) => {
|
|
2243
2267
|
if (secondSegment === "same") {
|
|
2244
2268
|
const result = handleSameSegment(firstSegment, segmentsIn, lastWasSame);
|
|
2245
2269
|
segmentsIn = result.segmentsIn;
|
|
@@ -2250,7 +2274,10 @@ function booleanOperation(first, second, config) {
|
|
|
2250
2274
|
segmentsIn = result.segmentsIn;
|
|
2251
2275
|
lastWasSame = result.lastWasSame;
|
|
2252
2276
|
return result.curves;
|
|
2253
|
-
})
|
|
2277
|
+
});
|
|
2278
|
+
const finalLastWasSame = lastWasSame;
|
|
2279
|
+
if (finalLastWasSame !== null && segmentsIn === 1) assembledCurves = [...finalLastWasSame, ...assembledCurves];
|
|
2280
|
+
const paths = splitPaths(assembledCurves).filter((b) => b.length > 0).map((b) => new Blueprint(b));
|
|
2254
2281
|
if (paths.length === 0) return null;
|
|
2255
2282
|
if (paths.length === 1) {
|
|
2256
2283
|
const single = paths[0];
|
|
@@ -2534,7 +2561,7 @@ var cut2D = (first, second) => {
|
|
|
2534
2561
|
if (first instanceof CompoundBlueprint) {
|
|
2535
2562
|
const wrapper = safeIndex(first.blueprints, 0, "cut2D");
|
|
2536
2563
|
if (second instanceof Blueprint && !second.intersects(wrapper)) {
|
|
2537
|
-
if (!wrapper.isInside(second.firstPoint)) return
|
|
2564
|
+
if (!wrapper.isInside(second.firstPoint)) return first.clone();
|
|
2538
2565
|
return organiseBlueprints([wrapper, ...allBlueprints(fuse2D(second, new Blueprints(first.blueprints.slice(1))))]);
|
|
2539
2566
|
} else {
|
|
2540
2567
|
let out = cut2D(wrapper, second);
|
|
@@ -2544,7 +2571,11 @@ var cut2D = (first, second) => {
|
|
|
2544
2571
|
return out;
|
|
2545
2572
|
}
|
|
2546
2573
|
}
|
|
2547
|
-
if (second instanceof Blueprints)
|
|
2574
|
+
if (second instanceof Blueprints) {
|
|
2575
|
+
let out = first;
|
|
2576
|
+
for (const bp of second.blueprints) out = cut2D(out, bp);
|
|
2577
|
+
return out;
|
|
2578
|
+
}
|
|
2548
2579
|
if (second instanceof CompoundBlueprint) {
|
|
2549
2580
|
let out = cutBlueprints(first, safeIndex(second.blueprints, 0, "cut2D"));
|
|
2550
2581
|
second.blueprints.slice(1).forEach((bp) => {
|
package/dist/brepjs.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_drawFns = require("./drawFns-
|
|
2
|
+
const require_drawFns = require("./drawFns-ByjqoZ3q.cjs");
|
|
3
3
|
const require_shapeTypes = require("./shapeTypes-DoBHuzjo.cjs");
|
|
4
4
|
const require_errors = require("./errors-9zQcQK1H.cjs");
|
|
5
5
|
const require_faceFns = require("./faceFns-Z6uVCQfc.cjs");
|
|
@@ -14,13 +14,13 @@ const require_surfaceBuilders = require("./surfaceBuilders-DpoOuVmz.cjs");
|
|
|
14
14
|
const require_booleanFns = require("./booleanFns-BJtawwA0.cjs");
|
|
15
15
|
const require_primitiveFns = require("./primitiveFns-DIKm4sVE.cjs");
|
|
16
16
|
const require_historyFns = require("./historyFns-CHcfaeHI.cjs");
|
|
17
|
-
const require_boolean2D = require("./boolean2D-
|
|
17
|
+
const require_boolean2D = require("./boolean2D-C-2D1eJM.cjs");
|
|
18
18
|
const require_helpers = require("./helpers-WtVQGyPq.cjs");
|
|
19
19
|
const require_solidBuilders = require("./solidBuilders-CJLijwcy.cjs");
|
|
20
20
|
const require_measureFns = require("./measureFns-Dw3gJxtW.cjs");
|
|
21
21
|
const require_cornerFinder = require("./cornerFinder-D7Q8B0yg.cjs");
|
|
22
22
|
const require_extrudeFns = require("./extrudeFns-Don0l4Wq.cjs");
|
|
23
|
-
const require_blueprintFns = require("./blueprintFns-
|
|
23
|
+
const require_blueprintFns = require("./blueprintFns-BfxfImfI.cjs");
|
|
24
24
|
const require_importFns = require("./importFns-CP0NNYks.cjs");
|
|
25
25
|
const require_shapeRefFns = require("./shapeRefFns-BYkjUjgL.cjs");
|
|
26
26
|
const require_workerHandler = require("./workerHandler-Dl5bx8Qj.cjs");
|
package/dist/brepjs.js
CHANGED
|
@@ -12,14 +12,14 @@ import { n as fill, r as makeFace } from "./surfaceBuilders-DewviEAb.js";
|
|
|
12
12
|
import { a as fuseAll, c as sectionToFace$1, i as fuse$1, l as slice$1, n as cut$1, o as intersect$1, r as cutAll, s as section$1, t as booleanPipeline, u as split$1 } from "./booleanFns-Dekoe2OM.js";
|
|
13
13
|
import { $ as getNurbsSurfaceData, A as fixShape, B as offset$1, C as threePointArc, D as wireLoop, E as wire, F as isValid$1, G as chamferWithEvolution, H as thicken$1, I as solidFromShell, J as fuseWithEvolution, K as cutWithEvolution, L as chamfer$1, M as healFace, N as healSolid, O as autoHeal, P as healWire, Q as getNurbsCurveData, R as draft$1, S as tangentArc, T as vertex, U as variableFillet, V as shell$1, W as positionOnCurve, X as shellWithEvolution, Y as intersectWithEvolution, Z as checkBoolean, _ as polygon, a as circle, at as wiresOfFace, b as sphere, c as cylinder, ct as toGroupedBufferGeometryData, d as ellipsoid, et as adjacentFaces, f as face, g as offsetFace, h as line, i as bsplineApprox, it as verticesOfEdge, j as heal$1, k as fixSelfIntersection, l as ellipse, lt as toLODGeometryData, m as helix, n as bezier, nt as facesOfEdge, o as compound, ot as chamferDistAngle, p as filledFace, q as filletWithEvolution, r as box, rt as sharedEdges, s as cone, st as toBufferGeometryData, t as addHoles, tt as edgesOfFace, u as ellipseArc, ut as toLineGeometryData, v as sewShells, w as torus, x as subFace, y as solid, z as fillet$1 } from "./primitiveFns-C-Z7pzVe.js";
|
|
14
14
|
import { C as walkAssembly, D as exportAssemblySTEP, E as linearPattern, O as createAssembly, S as updateNode, _ as collectShapes, a as findStep, b as findNode, c as registerOperation, d as replayHistory, f as serializeHistory, g as addChild, h as undoLast, i as deserializeHistory, l as registerShape, m as stepsFrom, n as createHistory, o as getShape, p as stepCount, r as createRegistry, s as modifyStep, t as addStep, u as replayFrom, v as countNodes, w as circularPattern, x as removeChild, y as createAssemblyNode } from "./historyFns-DEBKY9ZA.js";
|
|
15
|
-
import { a as fuseBlueprints, c as roundedRectangleBlueprint, f as Sketch, h as organiseBlueprints, i as cutBlueprints, m as loftAll, n as fuse2D, o as intersectBlueprints, p as loft$1, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-
|
|
15
|
+
import { a as fuseBlueprints, c as roundedRectangleBlueprint, f as Sketch, h as organiseBlueprints, i as cutBlueprints, m as loftAll, n as fuse2D, o as intersectBlueprints, p as loft$1, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-dM-8lArM.js";
|
|
16
16
|
import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-Cko_0e9R.js";
|
|
17
|
-
import { $ as sketchFaceOffset, B as drawSingleCircle, C as cameraFromPlane, D as makeProjectedEdges, E as projectEdges, F as drawParametricFunction, G as loadFont, H as drawText, I as drawPointsInterpolation, J as textMetrics, K as sketchText, L as drawPolysides, M as draw, N as drawCircle, O as isProjectionPlane, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, T as createCamera, U as fontMetrics, V as drawSingleEllipse, W as getFont, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, q as textBlueprints, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, w as cameraLookAt, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-
|
|
17
|
+
import { $ as sketchFaceOffset, B as drawSingleCircle, C as cameraFromPlane, D as makeProjectedEdges, E as projectEdges, F as drawParametricFunction, G as loadFont, H as drawText, I as drawPointsInterpolation, J as textMetrics, K as sketchText, L as drawPolysides, M as draw, N as drawCircle, O as isProjectionPlane, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, T as createCamera, U as fontMetrics, V as drawSingleEllipse, W as getFont, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, q as textBlueprints, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, w as cameraLookAt, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-EKQejy-Y.js";
|
|
18
18
|
import { r as makeCylinder } from "./solidBuilders-BIWD6a-a.js";
|
|
19
19
|
import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-Br7xFNAT.js";
|
|
20
20
|
import { t as cornerFinder } from "./cornerFinder-C8VD-Eap.js";
|
|
21
21
|
import { a as guidedSweep, c as sweep, i as complexExtrude, l as twistExtrude, n as extrudeAll, o as multiSectionSweep, r as revolve$1, s as supportExtrude, t as extrude$1 } from "./extrudeFns-xBCFBG7e.js";
|
|
22
|
-
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, n as createCompoundBlueprint, 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-
|
|
22
|
+
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, n as createCompoundBlueprint, 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-Dh7aCCTB.js";
|
|
23
23
|
import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-M40taVnq.js";
|
|
24
24
|
import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-C-h3UVLi.js";
|
|
25
25
|
import { a as createTaskQueue, c as isEmpty$1, d as isDisposeRequest, f as isErrorResponse, h as isSuccessResponse, i as createWorkerClient, l as pendingCount, m as isOperationRequest, n as createWorkerHandler, o as dequeueTask, p as isInitRequest, r as registerHandler, s as enqueueTask, t as createOperationRegistry, u as rejectAll } from "./workerHandler-DHY0IzlP.js";
|
|
@@ -38,7 +38,7 @@ const require_planeOps = require("./planeOps-BXsq07La.cjs");
|
|
|
38
38
|
const require_curveFns = require("./curveFns-6oIwf4om.cjs");
|
|
39
39
|
const require_arrayAccess = require("./arrayAccess-DsvS2R9t.cjs");
|
|
40
40
|
const require_surfaceBuilders = require("./surfaceBuilders-DpoOuVmz.cjs");
|
|
41
|
-
const require_boolean2D = require("./boolean2D-
|
|
41
|
+
const require_boolean2D = require("./boolean2D-C-2D1eJM.cjs");
|
|
42
42
|
const require_helpers = require("./helpers-WtVQGyPq.cjs");
|
|
43
43
|
const require_blueprint = require("./blueprint-4w3i6ayW.cjs");
|
|
44
44
|
const require_solidBuilders = require("./solidBuilders-CJLijwcy.cjs");
|
|
@@ -7,7 +7,7 @@ import { a as planeToWorld, o as resolvePlane } from "./planeOps-De5KoY28.js";
|
|
|
7
7
|
import { m as offsetWire2D } from "./curveFns-JTh5okGu.js";
|
|
8
8
|
import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-E7Lh-LcJ.js";
|
|
9
9
|
import { c as makeBSplineApproximation, d as makeEllipse, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-DewviEAb.js";
|
|
10
|
-
import { S as Flatbush, _ as Blueprints, b as make2dOffset, c as roundedRectangleBlueprint, f as Sketch, g as CompoundBlueprint, h as organiseBlueprints, l as BaseSketcher2d, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D, u as BlueprintSketcher, v as chamferCurves, x as intersectCurves, y as filletCurves } from "./boolean2D-
|
|
10
|
+
import { S as Flatbush, _ as Blueprints, b as make2dOffset, c as roundedRectangleBlueprint, f as Sketch, g as CompoundBlueprint, h as organiseBlueprints, l as BaseSketcher2d, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D, u as BlueprintSketcher, v as chamferCurves, x as intersectCurves, y as filletCurves } from "./boolean2D-dM-8lArM.js";
|
|
11
11
|
import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-Cko_0e9R.js";
|
|
12
12
|
import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-xXn5kpyL.js";
|
|
13
13
|
import { o as makeSolid, t as makeCompound } from "./solidBuilders-BIWD6a-a.js";
|
package/dist/sketching.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_drawFns = require("./drawFns-
|
|
3
|
-
const require_boolean2D = require("./boolean2D-
|
|
2
|
+
const require_drawFns = require("./drawFns-ByjqoZ3q.cjs");
|
|
3
|
+
const require_boolean2D = require("./boolean2D-C-2D1eJM.cjs");
|
|
4
4
|
//#region src/sketching.ts
|
|
5
5
|
/**
|
|
6
6
|
* brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
|
package/dist/sketching.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as FaceSketcher, f as Sketch, l as BaseSketcher2d, u as BlueprintSketcher } from "./boolean2D-
|
|
2
|
-
import { $ as sketchFaceOffset, A as DrawingPen, B as drawSingleCircle, F as drawParametricFunction, H as drawText, I as drawPointsInterpolation, L as drawPolysides, M as draw, N as drawCircle, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, V as drawSingleEllipse, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, at as Sketcher, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, k as Drawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-
|
|
1
|
+
import { d as FaceSketcher, f as Sketch, l as BaseSketcher2d, u as BlueprintSketcher } from "./boolean2D-dM-8lArM.js";
|
|
2
|
+
import { $ as sketchFaceOffset, A as DrawingPen, B as drawSingleCircle, F as drawParametricFunction, H as drawText, I as drawPointsInterpolation, L as drawPolysides, M as draw, N as drawCircle, P as drawEllipse, Q as sketchEllipse, R as drawRectangle, S as drawProjection, V as drawSingleEllipse, X as polysideInnerRadius, Y as makeBaseBox, Z as sketchCircle, _ as sketchLoft, a as drawingIntersect, at as Sketcher, b as sketchWires, c as rotateDrawing, d as compoundSketchExtrude, et as sketchHelix, f as compoundSketchFace, g as sketchFace, h as sketchExtrude, i as drawingFuse, it as sketchRoundedRectangle, j as deserializeDrawing, k as Drawing, l as scaleDrawing, m as compoundSketchRevolve, n as drawingCut, nt as sketchPolysides, o as drawingToSketchOnPlane, ot as Sketches, p as compoundSketchLoft, r as drawingFillet, rt as sketchRectangle, s as mirrorDrawing, st as CompoundSketch, t as drawingChamfer, tt as sketchParametricFunction, u as translateDrawing, v as sketchRevolve, x as drawFaceOutline, y as sketchSweep, z as drawRoundedRectangle } from "./drawFns-EKQejy-Y.js";
|
|
3
3
|
//#region src/sketching.ts
|
|
4
4
|
/**
|
|
5
5
|
* brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brepjs",
|
|
3
|
-
"version": "15.1.
|
|
3
|
+
"version": "15.1.6",
|
|
4
4
|
"description": "Web CAD library with pluggable geometry kernel",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cad",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
"husky": "9.1.7",
|
|
226
226
|
"knip": "6.0.1",
|
|
227
227
|
"lint-staged": "16.4.0",
|
|
228
|
-
"occt-wasm": "
|
|
228
|
+
"occt-wasm": "1.1.0",
|
|
229
229
|
"prettier": "3.8.1",
|
|
230
230
|
"size-limit": "12.0.1",
|
|
231
231
|
"typedoc": "0.28.17",
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
"peerDependencies": {
|
|
239
239
|
"brepjs-opencascade": "^0.5.1 || ^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 || ^0.15.0",
|
|
240
240
|
"brepkit-wasm": "^0.10.1 || ^1.0.0 || ^2.0.0",
|
|
241
|
-
"occt-wasm": "^0.1.0"
|
|
241
|
+
"occt-wasm": "^0.1.0 || ^1.0.0"
|
|
242
242
|
},
|
|
243
243
|
"peerDependenciesMeta": {
|
|
244
244
|
"brepjs-opencascade": {
|