brepjs 18.124.1 → 18.124.2
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 +6 -6
- package/dist/2d.js +6 -6
- package/dist/{adjacencyFns-Dxx7ftVV.cjs → adjacencyFns-CpKlADYt.cjs} +2 -2
- package/dist/{adjacencyFns-Syimhi5A.js → adjacencyFns-DECdcer5.js} +2 -2
- package/dist/{blueprint-DvJhiSQF.js → blueprint-CaY00-X2.js} +5 -5
- package/dist/{blueprint-BxwG1Gza.cjs → blueprint-CpJLcUJV.cjs} +5 -5
- package/dist/{blueprintFns-CURJa6gK.cjs → blueprintFns-B5nFaJI0.cjs} +2 -2
- package/dist/{blueprintFns-CiOJiPIw.js → blueprintFns-vgwEIgI0.js} +2 -2
- package/dist/{blueprintSketcher-COLNJfbg.cjs → blueprintSketcher-4e0yYtCY.cjs} +3 -3
- package/dist/{blueprintSketcher-CfgOzgxc.js → blueprintSketcher-BjBjj2cK.js} +3 -3
- package/dist/{boolean2D-BQqC_nps.cjs → boolean2D-7heWA1co.cjs} +4 -4
- package/dist/{boolean2D-Cdh2qVf6.js → boolean2D-Bk-VrRyQ.js} +4 -4
- package/dist/brepjs.cjs +27 -27
- package/dist/brepjs.js +27 -27
- package/dist/{cameraFns-CFVDwvGj.cjs → cameraFns-CGwrxgqB.cjs} +3 -3
- package/dist/{cameraFns-USpwGr6_.js → cameraFns-DKEilV2v.js} +3 -3
- package/dist/core.cjs +2 -2
- package/dist/core.js +2 -2
- package/dist/{cornerFinder-CIiXl5Kq.js → cornerFinder-C4s6pVZ-.js} +1 -1
- package/dist/{cornerFinder-DyWf9i1I.cjs → cornerFinder-zEgIFMnk.cjs} +1 -1
- package/dist/{curveFns-CSY23hP9.cjs → curveFns-BZZYHVow.cjs} +1 -1
- package/dist/{curveFns-F4E56Inv.js → curveFns-RczIU30U.js} +1 -1
- package/dist/{drawFns-r8PNRpEn.cjs → drawFns-BcXzWFfn.cjs} +12 -12
- package/dist/{drawFns-BiTlyKMy.js → drawFns-BjT3RaeQ.js} +12 -12
- package/dist/{faceFns-D9LdZArB.cjs → faceFns-C4xNv2zn.cjs} +2 -2
- package/dist/{faceFns-Dy4lA0f_.js → faceFns-fvp_zfuI.js} +2 -2
- package/dist/{healingFns-B6tDq40C.js → healingFns-AE5182Ds.js} +4 -4
- package/dist/{healingFns-jxoJQApv.cjs → healingFns-SxSiVPQa.cjs} +4 -4
- package/dist/{helpers-CeX5zwCS.cjs → helpers-CHYzwQMk.cjs} +6 -6
- package/dist/{helpers-ClZ_C5nP.js → helpers-CyLQ07aD.js} +6 -6
- package/dist/{importFns-CR3k4ct3.cjs → importFns-90S7P_7P.cjs} +2 -2
- package/dist/{importFns-DpbQ02xU.js → importFns-DdXOAX6k.js} +2 -2
- package/dist/io.cjs +2 -2
- package/dist/io.js +2 -2
- package/dist/{loftFns-Bd6Qs7uB.cjs → loftFns-B3mbh5RA.cjs} +1 -1
- package/dist/{loftFns-sILTLlrA.js → loftFns-CyY4qfvC.js} +1 -1
- package/dist/{measureFns-B9CjOY97.js → measureFns-B1uLQugf.js} +3 -3
- package/dist/{measureFns-D3wAgSGr.cjs → measureFns-Cx2XJVVC.cjs} +3 -3
- package/dist/measurement.cjs +1 -1
- package/dist/measurement.js +1 -1
- package/dist/{meshFns-C5Mni6NE.cjs → meshFns-2ZxW-X9I.cjs} +3 -3
- package/dist/{meshFns-BWgXP2-7.js → meshFns-DrO3d03M.js} +3 -3
- package/dist/operations.cjs +2 -2
- package/dist/operations.js +2 -2
- package/dist/{originTrackingFns-BVmoGfxj.cjs → originTrackingFns-D3rUK08B.cjs} +2 -2
- package/dist/{originTrackingFns-CgXHRXve.js → originTrackingFns-DIAwMSih.js} +2 -2
- package/dist/{primitiveFns-CSOkiKA7.js → primitiveFns-CDPqVTcc.js} +4 -4
- package/dist/{primitiveFns-BI3xR_wX.cjs → primitiveFns-c7wqS-K2.cjs} +4 -4
- package/dist/projection.cjs +1 -1
- package/dist/projection.js +1 -1
- package/dist/query.cjs +2 -2
- package/dist/query.js +2 -2
- package/dist/{refResolveFns-D_RnidoD.cjs → refResolveFns-Cm8ZHPl5.cjs} +6 -6
- package/dist/{refResolveFns-DxjdVw1p.js → refResolveFns-o3-Gdnjn.js} +6 -6
- package/dist/{shapeFns-XPAVA2ZZ.cjs → shapeFns-CJ6mph9b.cjs} +2 -2
- package/dist/{shapeFns-lw5Mzj__.js → shapeFns-DEpbxB9Z.js} +2 -2
- package/dist/shapeRef.cjs +1 -1
- package/dist/shapeRef.js +1 -1
- package/dist/{shapeTypes-7_c5mEYb.js → shapeTypes-BHRboc_x.js} +210 -3
- package/dist/{shapeTypes-Dm6f4xsN.cjs → shapeTypes-D5Y41q7x.cjs} +210 -3
- package/dist/sketching.cjs +3 -3
- package/dist/sketching.js +3 -3
- package/dist/{solidBuilders-D0dqmSE6.cjs → solidBuilders-CsUkRC69.cjs} +5 -5
- package/dist/{solidBuilders-Cyfx4vIB.js → solidBuilders-DQQ0re9T.js} +5 -5
- package/dist/{surfaceBuilders-DEMrBvXW.cjs → surfaceBuilders-BXNZydNl.cjs} +3 -3
- package/dist/{surfaceBuilders-BCDBd5Ii.js → surfaceBuilders-C8k0K7DR.js} +3 -3
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/{textBlueprints-DnCz3w4s.js → textBlueprints-BAyLXffK.js} +7 -7
- package/dist/{textBlueprints-B-7POKfB.cjs → textBlueprints-t8MdWfki.cjs} +7 -7
- package/dist/{textMetrics-m_H1URz5.js → textMetrics-CefI-bMN.js} +1 -1
- package/dist/{textMetrics-4a8KfRbQ.cjs → textMetrics-DUEI9s5M.cjs} +1 -1
- package/dist/{threadFns-CJDOHziO.js → threadFns-Bau5Sqad.js} +7 -7
- package/dist/{threadFns-ZrJsQtPC.cjs → threadFns-OVYAleOH.cjs} +7 -7
- package/dist/topology.cjs +9 -9
- package/dist/topology.js +9 -9
- package/dist/{topologyQueryFns-Bihcwoz0.js → topologyQueryFns-QvPyCF-7.js} +1 -1
- package/dist/{topologyQueryFns-RjAzu76K.cjs → topologyQueryFns-gah07J7-.cjs} +1 -1
- package/dist/{validityTypes-C1GMwI9t.js → validityTypes-DokbYKzd.js} +1 -1
- package/dist/{validityTypes-DeiK-KFO.cjs → validityTypes-Dx-04qO0.cjs} +1 -1
- package/package.json +3 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
3
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
3
|
+
const require_topologyQueryFns = require("./topologyQueryFns-gah07J7-.cjs");
|
|
4
4
|
const require_constants = require("./constants-BOVyEYGH.cjs");
|
|
5
5
|
const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
|
|
6
|
-
const require_faceFns = require("./faceFns-
|
|
7
|
-
const require_shapeFns = require("./shapeFns-
|
|
8
|
-
const require_curveFns = require("./curveFns-
|
|
9
|
-
const require_measureFns = require("./measureFns-
|
|
6
|
+
const require_faceFns = require("./faceFns-C4xNv2zn.cjs");
|
|
7
|
+
const require_shapeFns = require("./shapeFns-CJ6mph9b.cjs");
|
|
8
|
+
const require_curveFns = require("./curveFns-BZZYHVow.cjs");
|
|
9
|
+
const require_measureFns = require("./measureFns-Cx2XJVVC.cjs");
|
|
10
10
|
//#region src/utils/vec2d.ts
|
|
11
11
|
/** Precision for curve intersection and parameter operations. */
|
|
12
12
|
var PRECISION_INTERSECTION = 1e-9;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { K as getKernel, y as isFace } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel, y as isFace } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { E as ok, g as err, o as queryError, x as isOk } from "./errors-MHLiNE-C.js";
|
|
3
|
-
import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-
|
|
3
|
+
import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-QvPyCF-7.js";
|
|
4
4
|
import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
|
|
5
5
|
import { a as vecDot, d as vecNormalize } from "./vecOps-SKPRvPH-.js";
|
|
6
|
-
import { l as normalAt, s as getSurfaceType } from "./faceFns-
|
|
7
|
-
import { a as isSameShape, n as getHashCode } from "./shapeFns-
|
|
8
|
-
import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-
|
|
9
|
-
import { n as measureArea } from "./measureFns-
|
|
6
|
+
import { l as normalAt, s as getSurfaceType } from "./faceFns-fvp_zfuI.js";
|
|
7
|
+
import { a as isSameShape, n as getHashCode } from "./shapeFns-DEpbxB9Z.js";
|
|
8
|
+
import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-RczIU30U.js";
|
|
9
|
+
import { n as measureArea } from "./measureFns-B1uLQugf.js";
|
|
10
10
|
//#region src/utils/vec2d.ts
|
|
11
11
|
/** Precision for curve intersection and parameter operations. */
|
|
12
12
|
var PRECISION_INTERSECTION = 1e-9;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_bug = require("./bug-O02CsAmt.cjs");
|
|
3
3
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
4
4
|
const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
|
|
5
|
-
const require_blueprint = require("./blueprint-
|
|
5
|
+
const require_blueprint = require("./blueprint-CpJLcUJV.cjs");
|
|
6
6
|
//#region src/io/objExportFns.ts
|
|
7
7
|
/** Read a vec3 from a typed array at the given vertex index. */
|
|
8
8
|
function vec3At(arr, i) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { K as getKernel, n as castResultShape } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel, n as castResultShape } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { i as wasmIndex, r as vec3At$1 } from "./bug-BdOHwn_e.js";
|
|
3
3
|
import { E as ok, g as err, r as ioError, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
|
|
4
4
|
import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
|
|
5
|
-
import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-
|
|
5
|
+
import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-CaY00-X2.js";
|
|
6
6
|
//#region src/io/objExportFns.ts
|
|
7
7
|
/** Read a vec3 from a typed array at the given vertex index. */
|
|
8
8
|
function vec3At(arr, i) {
|
package/dist/io.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_meshFns = require("./meshFns-
|
|
3
|
-
const require_importFns = require("./importFns-
|
|
2
|
+
const require_meshFns = require("./meshFns-2ZxW-X9I.cjs");
|
|
3
|
+
const require_importFns = require("./importFns-90S7P_7P.cjs");
|
|
4
4
|
exports.blueprintToDXF = require_importFns.blueprintToDXF;
|
|
5
5
|
exports.exportDXF = require_importFns.exportDXF;
|
|
6
6
|
exports.exportGlb = require_importFns.exportGlb;
|
package/dist/io.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-
|
|
2
|
-
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-
|
|
1
|
+
import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-DrO3d03M.js";
|
|
2
|
+
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-DdXOAX6k.js";
|
|
3
3
|
export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
3
3
|
const require_types = require("./types-KjA8tY4Y.cjs");
|
|
4
4
|
const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { K as getKernel, T as isWire, W as _usingCtx, h as disposeResultShape, n as castResultShape, x as isShape3D } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel, T as isWire, W as _usingCtx, h as disposeResultShape, n as castResultShape, x as isShape3D } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { E as ok, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
|
|
3
3
|
import { r as toVec3 } from "./types-D24Y27N0.js";
|
|
4
4
|
import { c as vecLength, t as vecAdd } from "./vecOps-SKPRvPH-.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { K as getKernel } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { E as ok, d as validationError, g as err, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
|
|
3
|
-
import { T as kernelCallRaw } from "./topologyQueryFns-
|
|
4
|
-
import { m as uvBounds } from "./faceFns-
|
|
3
|
+
import { T as kernelCallRaw } from "./topologyQueryFns-QvPyCF-7.js";
|
|
4
|
+
import { m as uvBounds } from "./faceFns-fvp_zfuI.js";
|
|
5
5
|
//#region src/measurement/measureCache.ts
|
|
6
6
|
var cache = /* @__PURE__ */ new WeakMap();
|
|
7
7
|
function getCachedMeasurement(shape, key) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
3
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
4
|
-
const require_faceFns = require("./faceFns-
|
|
3
|
+
const require_topologyQueryFns = require("./topologyQueryFns-gah07J7-.cjs");
|
|
4
|
+
const require_faceFns = require("./faceFns-C4xNv2zn.cjs");
|
|
5
5
|
//#region src/measurement/measureCache.ts
|
|
6
6
|
var cache = /* @__PURE__ */ new WeakMap();
|
|
7
7
|
function getCachedMeasurement(shape, key) {
|
package/dist/measurement.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_measureFns = require("./measureFns-
|
|
2
|
+
const require_measureFns = require("./measureFns-Cx2XJVVC.cjs");
|
|
3
3
|
exports.createDistanceQuery = require_measureFns.createDistanceQuery;
|
|
4
4
|
exports.measureArea = require_measureFns.measureArea;
|
|
5
5
|
exports.measureDistance = require_measureFns.measureDistance;
|
package/dist/measurement.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-
|
|
1
|
+
import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-B1uLQugf.js";
|
|
2
2
|
export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
3
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
4
|
-
const require_originTrackingFns = require("./originTrackingFns-
|
|
3
|
+
const require_topologyQueryFns = require("./topologyQueryFns-gah07J7-.cjs");
|
|
4
|
+
const require_originTrackingFns = require("./originTrackingFns-D3rUK08B.cjs");
|
|
5
5
|
//#region src/topology/meshCache.ts
|
|
6
6
|
/**
|
|
7
7
|
* Build a parameter key for the inner cache map (excludes shape identity).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { K as getKernel, lt as qualityDeflection } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel, lt as qualityDeflection } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { E as ok, g as err, r as ioError } from "./errors-MHLiNE-C.js";
|
|
3
|
-
import { d as getSolids, n as getBounds } from "./topologyQueryFns-
|
|
4
|
-
import { t as getFaceOrigins } from "./originTrackingFns-
|
|
3
|
+
import { d as getSolids, n as getBounds } from "./topologyQueryFns-QvPyCF-7.js";
|
|
4
|
+
import { t as getFaceOrigins } from "./originTrackingFns-DIAwMSih.js";
|
|
5
5
|
//#region src/topology/meshCache.ts
|
|
6
6
|
/**
|
|
7
7
|
* Build a parameter key for the inner cache map (excludes shape identity).
|
package/dist/operations.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_threadFns = require("./threadFns-
|
|
3
|
-
const require_loftFns = require("./loftFns-
|
|
2
|
+
const require_threadFns = require("./threadFns-OVYAleOH.cjs");
|
|
3
|
+
const require_loftFns = require("./loftFns-B3mbh5RA.cjs");
|
|
4
4
|
exports.addChild = require_threadFns.addChild;
|
|
5
5
|
exports.addJoint = require_threadFns.addJoint;
|
|
6
6
|
exports.addStep = require_threadFns.addStep;
|
package/dist/operations.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as circularPattern, H as removeChild, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, O as prismaticJoint, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, q as linearPattern, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as countNodes } from "./threadFns-
|
|
2
|
-
import { c as twistExtrude, o as supportExtrude, r as complexExtrude, s as sweep } from "./loftFns-
|
|
1
|
+
import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as circularPattern, H as removeChild, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, O as prismaticJoint, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, q as linearPattern, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as countNodes } from "./threadFns-Bau5Sqad.js";
|
|
2
|
+
import { c as twistExtrude, o as supportExtrude, r as complexExtrude, s as sweep } from "./loftFns-CyY4qfvC.js";
|
|
3
3
|
export { addChild, addJoint, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, cylindricalJoint, exportAssemblySTEP, exportURDF, findNode, findStep, forwardKinematics, getShape as getHistoryShape, gridPattern, importURDF, inverseKinematics, jointTrajectory, jointTransform, jointsFromDH, linearPattern, mechanismDOF, modifyStep, planarJoint, prismaticJoint, registerOperation, registerShape, removeChild, replayFrom, replayHistory, revoluteJoint, setJointValue, setJointValues, sphericalJoint, stepCount, stepsFrom, supportExtrude, sweep, thread, twistExtrude, undoLast, updateNode, walkAssembly };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
2
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
|
+
const require_topologyQueryFns = require("./topologyQueryFns-gah07J7-.cjs");
|
|
3
3
|
const require_constants = require("./constants-BOVyEYGH.cjs");
|
|
4
4
|
//#region src/topology/metadata/originTrackingFns.ts
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { K as getKernel } from "./shapeTypes-
|
|
2
|
-
import { S as subShapeHashes, c as getFaces, l as getOrCreateCache, r as getCacheEntry } from "./topologyQueryFns-
|
|
1
|
+
import { K as getKernel } from "./shapeTypes-BHRboc_x.js";
|
|
2
|
+
import { S as subShapeHashes, c as getFaces, l as getOrCreateCache, r as getCacheEntry } from "./topologyQueryFns-QvPyCF-7.js";
|
|
3
3
|
import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
|
|
4
4
|
//#region src/topology/metadata/originTrackingFns.ts
|
|
5
5
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { K as getKernel, W as _usingCtx, d as createSolid, n as castResultShape } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel, W as _usingCtx, d as createSolid, n as castResultShape } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { E as ok, d as validationError, g as err, m as andThen, t as BrepErrorCode } from "./errors-MHLiNE-C.js";
|
|
3
|
-
import { n as isClosedWire } from "./validityTypes-
|
|
3
|
+
import { n as isClosedWire } from "./validityTypes-DokbYKzd.js";
|
|
4
4
|
import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
|
|
5
|
-
import { C as propagateAllMetadata, S as hasAnyMetadata, T as propagateMetadataThroughRelocation, a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces, w as propagateMetadataByHash, x as collectInputFaceHashes } from "./solidBuilders-
|
|
6
|
-
import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-
|
|
5
|
+
import { C as propagateAllMetadata, S as hasAnyMetadata, T as propagateMetadataThroughRelocation, a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces, w as propagateMetadataByHash, x as collectInputFaceHashes } from "./solidBuilders-DQQ0re9T.js";
|
|
6
|
+
import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-C8k0K7DR.js";
|
|
7
7
|
//#region src/topology/transformFns.ts
|
|
8
8
|
/**
|
|
9
9
|
* Immutable shape transforms — translate, rotate, scale, mirror, applyMatrix.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
3
|
-
const require_validityTypes = require("./validityTypes-
|
|
3
|
+
const require_validityTypes = require("./validityTypes-Dx-04qO0.cjs");
|
|
4
4
|
const require_constants = require("./constants-BOVyEYGH.cjs");
|
|
5
|
-
const require_solidBuilders = require("./solidBuilders-
|
|
6
|
-
const require_surfaceBuilders = require("./surfaceBuilders-
|
|
5
|
+
const require_solidBuilders = require("./solidBuilders-CsUkRC69.cjs");
|
|
6
|
+
const require_surfaceBuilders = require("./surfaceBuilders-BXNZydNl.cjs");
|
|
7
7
|
//#region src/topology/transformFns.ts
|
|
8
8
|
/**
|
|
9
9
|
* Immutable shape transforms — translate, rotate, scale, mirror, applyMatrix.
|
package/dist/projection.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_cameraFns = require("./cameraFns-
|
|
2
|
+
const require_cameraFns = require("./cameraFns-CGwrxgqB.cjs");
|
|
3
3
|
exports.PROJECTION_PLANES = require_cameraFns.PROJECTION_PLANES;
|
|
4
4
|
exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
|
|
5
5
|
exports.cameraLookAt = require_cameraFns.cameraLookAt;
|
package/dist/projection.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-
|
|
1
|
+
import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-DKEilV2v.js";
|
|
2
2
|
export { PROJECTION_PLANES, cameraFromPlane, cameraLookAt, createCamera, isProjectionPlane, makeProjectedEdges, projectEdges };
|
package/dist/query.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_helpers = require("./helpers-
|
|
3
|
-
const require_cornerFinder = require("./cornerFinder-
|
|
2
|
+
const require_helpers = require("./helpers-CHYzwQMk.cjs");
|
|
3
|
+
const require_cornerFinder = require("./cornerFinder-zEgIFMnk.cjs");
|
|
4
4
|
exports.cornerFinder = require_cornerFinder.cornerFinder;
|
|
5
5
|
exports.edgeFinder = require_helpers.edgeFinder;
|
|
6
6
|
exports.faceFinder = require_helpers.faceFinder;
|
package/dist/query.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-
|
|
2
|
-
import { t as cornerFinder } from "./cornerFinder-
|
|
1
|
+
import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-CyLQ07aD.js";
|
|
2
|
+
import { t as cornerFinder } from "./cornerFinder-C4s6pVZ-.js";
|
|
3
3
|
export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
2
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
3
|
-
const require_faceFns = require("./faceFns-
|
|
4
|
-
const require_shapeFns = require("./shapeFns-
|
|
5
|
-
const require_measureFns = require("./measureFns-
|
|
6
|
-
const require_adjacencyFns = require("./adjacencyFns-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
|
+
const require_topologyQueryFns = require("./topologyQueryFns-gah07J7-.cjs");
|
|
3
|
+
const require_faceFns = require("./faceFns-C4xNv2zn.cjs");
|
|
4
|
+
const require_shapeFns = require("./shapeFns-CJ6mph9b.cjs");
|
|
5
|
+
const require_measureFns = require("./measureFns-Cx2XJVVC.cjs");
|
|
6
|
+
const require_adjacencyFns = require("./adjacencyFns-CpKlADYt.cjs");
|
|
7
7
|
//#region src/topology/shapeRef/scoring.ts
|
|
8
8
|
/**
|
|
9
9
|
* Default face scorer combining surface type, normal alignment, centroid proximity,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { K as getKernel, g as disposeTransientSubShape, o as castShapeWithKnownType } from "./shapeTypes-
|
|
2
|
-
import { C as vertexPosition, c as getFaces } from "./topologyQueryFns-
|
|
3
|
-
import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-
|
|
4
|
-
import { n as getHashCode } from "./shapeFns-
|
|
5
|
-
import { n as measureArea, s as measureLength } from "./measureFns-
|
|
6
|
-
import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, o as sharedEdges, s as verticesOfEdge, t as adjacentFaceHashes } from "./adjacencyFns-
|
|
1
|
+
import { K as getKernel, g as disposeTransientSubShape, o as castShapeWithKnownType } from "./shapeTypes-BHRboc_x.js";
|
|
2
|
+
import { C as vertexPosition, c as getFaces } from "./topologyQueryFns-QvPyCF-7.js";
|
|
3
|
+
import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-fvp_zfuI.js";
|
|
4
|
+
import { n as getHashCode } from "./shapeFns-DEpbxB9Z.js";
|
|
5
|
+
import { n as measureArea, s as measureLength } from "./measureFns-B1uLQugf.js";
|
|
6
|
+
import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, o as sharedEdges, s as verticesOfEdge, t as adjacentFaceHashes } from "./adjacencyFns-DECdcer5.js";
|
|
7
7
|
//#region src/topology/shapeRef/scoring.ts
|
|
8
8
|
/**
|
|
9
9
|
* Default face scorer combining surface type, normal alignment, centroid proximity,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const require_shapeTypes = require("./shapeTypes-
|
|
1
|
+
const require_shapeTypes = require("./shapeTypes-D5Y41q7x.cjs");
|
|
2
2
|
const require_errors = require("./errors-RHkKO5bZ.cjs");
|
|
3
|
-
const require_topologyQueryFns = require("./topologyQueryFns-
|
|
3
|
+
const require_topologyQueryFns = require("./topologyQueryFns-gah07J7-.cjs");
|
|
4
4
|
const require_constants = require("./constants-BOVyEYGH.cjs");
|
|
5
5
|
//#region src/topology/shapeFns.ts
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { K as getKernel } from "./shapeTypes-
|
|
1
|
+
import { K as getKernel } from "./shapeTypes-BHRboc_x.js";
|
|
2
2
|
import { t as BrepErrorCode } from "./errors-MHLiNE-C.js";
|
|
3
|
-
import { T as kernelCallRaw, w as kernelCall } from "./topologyQueryFns-
|
|
3
|
+
import { T as kernelCallRaw, w as kernelCall } from "./topologyQueryFns-QvPyCF-7.js";
|
|
4
4
|
import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
|
|
5
5
|
//#region src/topology/shapeFns.ts
|
|
6
6
|
/**
|
package/dist/shapeRef.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_refResolveFns = require("./refResolveFns-
|
|
2
|
+
const require_refResolveFns = require("./refResolveFns-Cm8ZHPl5.cjs");
|
|
3
3
|
exports.assignRoles = require_refResolveFns.assignRoles;
|
|
4
4
|
exports.captureHint = require_refResolveFns.captureHint;
|
|
5
5
|
exports.createDerivedFaceRef = require_refResolveFns.createDerivedFaceRef;
|
package/dist/shapeRef.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-
|
|
1
|
+
import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-o3-Gdnjn.js";
|
|
2
2
|
export { assignRoles, captureHint, createDerivedFaceRef, createEdgeRef, createRef, createVertexRef, defaultScorer, isDerivedFaceRef, isEdgeRef, isFaceRef, isLineageRef, isVertexRef, resolveDerivedFaceRef, resolveEdgeRef, resolveLineageRef, resolveRef, resolveRefIn, resolveRefParams, resolveVertexRef, updateRoles };
|
|
@@ -6689,8 +6689,6 @@ function fuseAll(bk, shapes, options) {
|
|
|
6689
6689
|
}
|
|
6690
6690
|
function cutAll(bk, shape, tools, options) {
|
|
6691
6691
|
if (tools.length === 0) return shape;
|
|
6692
|
-
if (tools.length === 1) return cut(bk, shape, tools[0], options);
|
|
6693
|
-
const baseId = unwrapSolidOrThrow(shape, "cutAll");
|
|
6694
6692
|
const toolIds = [];
|
|
6695
6693
|
for (const tool of tools) {
|
|
6696
6694
|
const h = tool;
|
|
@@ -6698,7 +6696,24 @@ function cutAll(bk, shape, tools, options) {
|
|
|
6698
6696
|
else toolIds.push(unwrapSolidOrThrow(tool, "cutAll"));
|
|
6699
6697
|
}
|
|
6700
6698
|
if (toolIds.length === 0) return shape;
|
|
6701
|
-
|
|
6699
|
+
const baseHandle = shape;
|
|
6700
|
+
if (isBrepkitHandle(shape) && baseHandle.type === "compound") {
|
|
6701
|
+
const survivors = [];
|
|
6702
|
+
for (const childId of toArray(bk.getCompoundSolids(baseHandle.id))) try {
|
|
6703
|
+
survivors.push(bk.compoundCut(childId, toolIds));
|
|
6704
|
+
} catch (e) {
|
|
6705
|
+
if (!isEmptyBooleanError(e)) throw e;
|
|
6706
|
+
}
|
|
6707
|
+
return compoundHandle(bk.makeCompound(survivors));
|
|
6708
|
+
}
|
|
6709
|
+
if (tools.length === 1) return cut(bk, shape, tools[0], options);
|
|
6710
|
+
const baseId = unwrapSolidOrThrow(shape, "cutAll");
|
|
6711
|
+
try {
|
|
6712
|
+
return solidHandle(bk.compoundCut(baseId, new Uint32Array(toolIds)));
|
|
6713
|
+
} catch (e) {
|
|
6714
|
+
if (isEmptyBooleanError(e)) return emptyCompound(bk);
|
|
6715
|
+
throw e;
|
|
6716
|
+
}
|
|
6702
6717
|
}
|
|
6703
6718
|
function split(bk, shape, tools) {
|
|
6704
6719
|
if (tools.length === 0) throw new Error("brepkit: split requires at least one tool");
|
|
@@ -10474,7 +10489,181 @@ function affineMatrix(linear, translation) {
|
|
|
10474
10489
|
m[14] = translation[2];
|
|
10475
10490
|
return m;
|
|
10476
10491
|
}
|
|
10492
|
+
/**
|
|
10493
|
+
* Profile shapes — edges, wires and faces — have no Manifold counterpart, so
|
|
10494
|
+
* they carry a placeholder value and live purely as op-graph nodes holding
|
|
10495
|
+
* their points. Calling Manifold's solid transform on one throws
|
|
10496
|
+
* `solid.transform is not a function`.
|
|
10497
|
+
*
|
|
10498
|
+
* Transform them by baking the matrix into the recorded points and emitting a
|
|
10499
|
+
* node of the same kind. `ringOrPts` reads points off the node and does not
|
|
10500
|
+
* walk inputs, so a transform-shaped node would read as an empty profile;
|
|
10501
|
+
* replay rebuilds profile nodes from those same points, so a baked transform
|
|
10502
|
+
* applies exactly once.
|
|
10503
|
+
*/
|
|
10504
|
+
var PROFILE_POINT_KEYS = [
|
|
10505
|
+
"pts",
|
|
10506
|
+
"ring",
|
|
10507
|
+
"outline"
|
|
10508
|
+
];
|
|
10509
|
+
function isVec3(v) {
|
|
10510
|
+
return Array.isArray(v) && v.length === 3 && v.every((n) => typeof n === "number");
|
|
10511
|
+
}
|
|
10512
|
+
function applyMat4(m, v) {
|
|
10513
|
+
const g = (i) => m[i] ?? 0;
|
|
10514
|
+
return [
|
|
10515
|
+
g(0) * v[0] + g(4) * v[1] + g(8) * v[2] + g(12),
|
|
10516
|
+
g(1) * v[0] + g(5) * v[1] + g(9) * v[2] + g(13),
|
|
10517
|
+
g(2) * v[0] + g(6) * v[1] + g(10) * v[2] + g(14)
|
|
10518
|
+
];
|
|
10519
|
+
}
|
|
10520
|
+
function numOf(v, fallback = 0) {
|
|
10521
|
+
return typeof v === "number" ? v : fallback;
|
|
10522
|
+
}
|
|
10523
|
+
function transformDir(matrix, v) {
|
|
10524
|
+
const o = applyMat4(matrix, [
|
|
10525
|
+
0,
|
|
10526
|
+
0,
|
|
10527
|
+
0
|
|
10528
|
+
]);
|
|
10529
|
+
const p = applyMat4(matrix, v);
|
|
10530
|
+
return [
|
|
10531
|
+
p[0] - o[0],
|
|
10532
|
+
p[1] - o[1],
|
|
10533
|
+
p[2] - o[2]
|
|
10534
|
+
];
|
|
10535
|
+
}
|
|
10536
|
+
function unit3(v) {
|
|
10537
|
+
const n = Math.hypot(v[0], v[1], v[2]);
|
|
10538
|
+
return n < 1e-12 ? v : [
|
|
10539
|
+
v[0] / n,
|
|
10540
|
+
v[1] / n,
|
|
10541
|
+
v[2] / n
|
|
10542
|
+
];
|
|
10543
|
+
}
|
|
10544
|
+
function similarityScale(m) {
|
|
10545
|
+
const g = (i) => m[i] ?? 0;
|
|
10546
|
+
const cx = [
|
|
10547
|
+
g(0),
|
|
10548
|
+
g(1),
|
|
10549
|
+
g(2)
|
|
10550
|
+
];
|
|
10551
|
+
const cy = [
|
|
10552
|
+
g(4),
|
|
10553
|
+
g(5),
|
|
10554
|
+
g(6)
|
|
10555
|
+
];
|
|
10556
|
+
const cz = [
|
|
10557
|
+
g(8),
|
|
10558
|
+
g(9),
|
|
10559
|
+
g(10)
|
|
10560
|
+
];
|
|
10561
|
+
const len = (v) => Math.hypot(v[0], v[1], v[2]);
|
|
10562
|
+
const dot = (a, b) => a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
|
|
10563
|
+
const nx = len(cx);
|
|
10564
|
+
const ny = len(cy);
|
|
10565
|
+
const nz = len(cz);
|
|
10566
|
+
if (nx < 1e-12 || ny < 1e-12 || nz < 1e-12) return void 0;
|
|
10567
|
+
const tol = 1e-9 * nx;
|
|
10568
|
+
if (Math.abs(nx - ny) > tol || Math.abs(nx - nz) > tol) return void 0;
|
|
10569
|
+
if (Math.abs(dot(cx, cy)) > tol * ny) return void 0;
|
|
10570
|
+
if (Math.abs(dot(cx, cz)) > tol * nz) return void 0;
|
|
10571
|
+
if (Math.abs(dot(cy, cz)) > tol * nz) return void 0;
|
|
10572
|
+
return nx;
|
|
10573
|
+
}
|
|
10574
|
+
function transformCurveDesc(desc, matrix) {
|
|
10575
|
+
const kind = desc["k"];
|
|
10576
|
+
if (kind === "line") {
|
|
10577
|
+
const p1 = desc["p1"];
|
|
10578
|
+
const p2 = desc["p2"];
|
|
10579
|
+
if (!isVec3(p1) || !isVec3(p2)) return void 0;
|
|
10580
|
+
return {
|
|
10581
|
+
...desc,
|
|
10582
|
+
p1: applyMat4(matrix, p1),
|
|
10583
|
+
p2: applyMat4(matrix, p2)
|
|
10584
|
+
};
|
|
10585
|
+
}
|
|
10586
|
+
if (kind === "bezier") {
|
|
10587
|
+
const pts = desc["points"];
|
|
10588
|
+
if (!Array.isArray(pts)) return void 0;
|
|
10589
|
+
return {
|
|
10590
|
+
...desc,
|
|
10591
|
+
points: pts.map((p) => isVec3(p) ? applyMat4(matrix, p) : p)
|
|
10592
|
+
};
|
|
10593
|
+
}
|
|
10594
|
+
const s = similarityScale(matrix);
|
|
10595
|
+
if (s === void 0) return void 0;
|
|
10596
|
+
if (kind === "conic") {
|
|
10597
|
+
const c = desc["center"];
|
|
10598
|
+
const x = desc["x"];
|
|
10599
|
+
const y = desc["y"];
|
|
10600
|
+
if (!isVec3(c) || !isVec3(x) || !isVec3(y)) return void 0;
|
|
10601
|
+
return {
|
|
10602
|
+
...desc,
|
|
10603
|
+
center: applyMat4(matrix, c),
|
|
10604
|
+
x: unit3(transformDir(matrix, x)),
|
|
10605
|
+
y: unit3(transformDir(matrix, y)),
|
|
10606
|
+
rx: numOf(desc["rx"]) * s,
|
|
10607
|
+
ry: numOf(desc["ry"]) * s
|
|
10608
|
+
};
|
|
10609
|
+
}
|
|
10610
|
+
if (kind === "helix") {
|
|
10611
|
+
const c = desc["center"];
|
|
10612
|
+
const ax = desc["axis"];
|
|
10613
|
+
const x = desc["x"];
|
|
10614
|
+
const y = desc["y"];
|
|
10615
|
+
if (!isVec3(c) || !isVec3(ax) || !isVec3(x) || !isVec3(y)) return void 0;
|
|
10616
|
+
return {
|
|
10617
|
+
...desc,
|
|
10618
|
+
center: applyMat4(matrix, c),
|
|
10619
|
+
axis: unit3(transformDir(matrix, ax)),
|
|
10620
|
+
x: unit3(transformDir(matrix, x)),
|
|
10621
|
+
y: unit3(transformDir(matrix, y)),
|
|
10622
|
+
radius: numOf(desc["radius"]) * s,
|
|
10623
|
+
pitch: numOf(desc["pitch"]) * s
|
|
10624
|
+
};
|
|
10625
|
+
}
|
|
10626
|
+
}
|
|
10627
|
+
function transformProfileNode(node, matrix, input) {
|
|
10628
|
+
const src = node.params ?? {};
|
|
10629
|
+
const params = { ...src };
|
|
10630
|
+
for (const k of PROFILE_POINT_KEYS) {
|
|
10631
|
+
const pts = src[k];
|
|
10632
|
+
if (!Array.isArray(pts)) continue;
|
|
10633
|
+
params[k] = pts.map((v) => isVec3(v) ? applyMat4(matrix, v) : v);
|
|
10634
|
+
}
|
|
10635
|
+
for (const k of ["origin"]) {
|
|
10636
|
+
const v = src[k];
|
|
10637
|
+
if (isVec3(v)) params[k] = applyMat4(matrix, v);
|
|
10638
|
+
}
|
|
10639
|
+
for (const k of ["xAxis", "yAxis"]) {
|
|
10640
|
+
const v = src[k];
|
|
10641
|
+
if (!isVec3(v)) continue;
|
|
10642
|
+
const a = applyMat4(matrix, [
|
|
10643
|
+
0,
|
|
10644
|
+
0,
|
|
10645
|
+
0
|
|
10646
|
+
]);
|
|
10647
|
+
const b = applyMat4(matrix, v);
|
|
10648
|
+
params[k] = [
|
|
10649
|
+
b[0] - a[0],
|
|
10650
|
+
b[1] - a[1],
|
|
10651
|
+
b[2] - a[2]
|
|
10652
|
+
];
|
|
10653
|
+
}
|
|
10654
|
+
const curve = src["curve"];
|
|
10655
|
+
if (curve !== null && typeof curve === "object") {
|
|
10656
|
+
const moved = transformCurveDesc(curve, matrix);
|
|
10657
|
+
if (moved === void 0) delete params["curve"];
|
|
10658
|
+
else params["curve"] = moved;
|
|
10659
|
+
}
|
|
10660
|
+
return wrap({
|
|
10661
|
+
delete: () => {},
|
|
10662
|
+
isEmpty: () => false
|
|
10663
|
+
}, makeNode(node.op ?? "profileWire", params, [input]));
|
|
10664
|
+
}
|
|
10477
10665
|
function applyMatrix(solid, matrix, op, params, input) {
|
|
10666
|
+
if (typeof solid.transform !== "function") return transformProfileNode(input, matrix, input);
|
|
10478
10667
|
return wrap(solid.transform(matrix), makeNode(op, params, [input]));
|
|
10479
10668
|
}
|
|
10480
10669
|
function translate(shape, x, y, z) {
|
|
@@ -12762,6 +12951,14 @@ var HANDLERS = {
|
|
|
12762
12951
|
0,
|
|
12763
12952
|
0
|
|
12764
12953
|
];
|
|
12954
|
+
if (pts.length > 2) {
|
|
12955
|
+
const through = pts.map((q) => [
|
|
12956
|
+
q[0],
|
|
12957
|
+
q[1],
|
|
12958
|
+
q[2]
|
|
12959
|
+
]);
|
|
12960
|
+
return t.interpolatePoints(through);
|
|
12961
|
+
}
|
|
12765
12962
|
const b = pts.length > 1 ? pts[pts.length - 1] ?? a : [
|
|
12766
12963
|
a[0] + .001,
|
|
12767
12964
|
a[1],
|
|
@@ -13261,6 +13458,16 @@ function makeMeasureOps(_module) {
|
|
|
13261
13458
|
if (e && e.__nativeEdge && typeof e.length === "number") return e.length;
|
|
13262
13459
|
const node = asManifoldShape(shape)?.node;
|
|
13263
13460
|
if (node?.op === "profileEdge" && node.params?.curve) return descLength(node.params.curve);
|
|
13461
|
+
const pts = node?.op === "profileEdge" ? node.params?.pts : void 0;
|
|
13462
|
+
if (pts && pts.length > 1) {
|
|
13463
|
+
let total = 0;
|
|
13464
|
+
for (let i = 1; i < pts.length; i++) {
|
|
13465
|
+
const a = pts[i - 1] ?? [];
|
|
13466
|
+
const b = pts[i] ?? [];
|
|
13467
|
+
total += Math.hypot((b[0] ?? 0) - (a[0] ?? 0), (b[1] ?? 0) - (a[1] ?? 0), (b[2] ?? 0) - (a[2] ?? 0));
|
|
13468
|
+
}
|
|
13469
|
+
return total;
|
|
13470
|
+
}
|
|
13264
13471
|
return notImplemented("length");
|
|
13265
13472
|
},
|
|
13266
13473
|
centerOfMass: (shape) => centerOfMass(shape),
|