@mlightcad/geometry-engine 3.14.11 → 3.14.13

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/lib/index.d.ts CHANGED
@@ -2,5 +2,5 @@ export { AcGeArea2d, AcGeCatmullRomCurve3d, AcGeCircArc2d, AcGeCircArc3d, AcGeCu
2
2
  export type { AcGeBoundaryEdgeType, AcGeCircumcircle2d, AcGeCircumcircle3d, AcGeCurveExtent, AcGeIndexNode, AcGeIntersectPrimitive, AcGeKnotParameterizationType, AcGeLoop2dType, AcGePolyline2dVertex, AcGeResolvedTessellateOptions, AcGeTessellateOptions, CatmullRomCurveType } from './geometry';
3
3
  export { AcGeBox2d, AcGeBox3d, AcGeEuler, AcGeMatrix2d, AcGeMatrix3d, AcGePlane, AcGePoint2d, AcGePoint3d, AcGeQuaternion, AcGeVector2d, AcGeVector3d } from './math';
4
4
  export type { AcGePoint, AcGePoint2dLike, AcGePoint3dLike, AcGePointLike, AcGeVector, AcGeVector2dLike, AcGeVector3dLike, AcGeVectorLike } from './math';
5
- export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, acgeBasisFunction, acgeCalculateCurveLength, acgeCeilPowerOfTwo, acgeClamp, acgeComputeParameterValues, acgeDamp, acgeDegToRad, acgeEuclideanModulo, acgeEvaluateNurbsPoint, acgeEvaluateNurbsDerivatives, acgeSignedPlanarCurvature, acgeFloorPowerOfTwo, acgeGenerateAveragedKnots, acgeGenerateChordKnots, acgeGenerateSqrtChordKnots, acgeGenerateUUID, acgeGenerateUniformKnots, acgeGetOcsAngle, acgeGetOcsReferenceVector, acgeIntPartLength, acgeInterpolateControlPoints, acgeInterpolateNurbsCurve, acgeInverseLerp, acgeIsBetween, acgeIsBetweenAngle, acgeIsAngleOnCcwSweep, acgeIsPowerOfTwo, acgeLerp, acgeMapLinear, acgeNormalizeAngle, acgePingpong, acgeRadToDeg, acgeRandFloat, acgeRandFloatSpread, acgeRandInt, acgeRelativeEps, acgeSeededRandom, acgeSmootherstep, acgeSmoothstep, acgeTransformOcsPointToWcs, acgeTransformWcsPointToOcs, acgeOffsetPointByDirectionInXY, acgeOffsetSmoothedSampledPath, acgeOffsetVertexPath, acgeClosedPolygonArea2d, acgeClosedPolygonArea3d, acgePolygonArea2d, acgePolygonArea3d, acgeSignedPolygonArea2d } from './util';
5
+ export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, acgeBasisFunction, acgeCalculateCurveLength, acgeCeilPowerOfTwo, acgeClamp, acgeComputeParameterValues, acgeDamp, acgeDegToRad, acgeEuclideanModulo, acgeEvaluateNurbsPoint, acgeEvaluateNurbsDerivatives, acgeSignedPlanarCurvature, acgeFloorPowerOfTwo, acgeGenerateAveragedKnots, acgeGenerateChordKnots, acgeGenerateSqrtChordKnots, acgeGenerateUUID, acgeGenerateUniformKnots, acgeGetOcsAngle, acgeGetOcsReferenceVector, acgeGetOcsReferenceVectorInto, acgeIntPartLength, acgeInterpolateControlPoints, acgeInterpolateNurbsCurve, acgeInverseLerp, acgeIsBetween, acgeIsBetweenAngle, acgeIsAngleOnCcwSweep, acgeIsPowerOfTwo, acgeLerp, acgeMapLinear, acgeNormalizeAngle, acgePingpong, acgeRadToDeg, acgeRandFloat, acgeRandFloatSpread, acgeRandInt, acgeRelativeEps, acgeSeededRandom, acgeSmootherstep, acgeSmoothstep, acgeTransformOcsPointToWcs, acgeTransformOcsPointToWcsInto, acgeTransformWcsPointToOcs, acgeOffsetPointByDirectionInXY, acgeOffsetSmoothedSampledPath, acgeOffsetVertexPath, acgeClosedPolygonArea2d, acgeClosedPolygonArea3d, acgePolygonArea2d, acgePolygonArea3d, acgeSignedPolygonArea2d } from './util';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACnB,+BAA+B,EAChC,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AACf,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACnB,+BAA+B,EAChC,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AACf,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,QAAQ,CAAA"}
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { AcGeArea2d, AcGeCatmullRomCurve3d, AcGeCircArc2d, AcGeCircArc3d, AcGeCurve2d, AcGeEllipseArc2d, AcGeEllipseArc3d, AcGeLine2d, AcGeLine3d, AcGeLoop2d, AcGeNurbsCurve, AcGePolyline2d, AcGeShape2d, AcGeSpline3d, acgeIsBetterDistanceAlign, acgePointLiesOnCircle2d, acgeSameCircle2d, acgeCloneIntersectPrimitive, acgeIntersectCurves, acgeTransformIntersectPrimitive } from './geometry';
2
2
  export { AcGeBox2d, AcGeBox3d, AcGeEuler, AcGeMatrix2d, AcGeMatrix3d, AcGePlane, AcGePoint2d, AcGePoint3d, AcGeQuaternion, AcGeVector2d, AcGeVector3d } from './math';
3
- export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, acgeBasisFunction, acgeCalculateCurveLength, acgeCeilPowerOfTwo, acgeClamp, acgeComputeParameterValues, acgeDamp, acgeDegToRad, acgeEuclideanModulo, acgeEvaluateNurbsPoint, acgeEvaluateNurbsDerivatives, acgeSignedPlanarCurvature, acgeFloorPowerOfTwo, acgeGenerateAveragedKnots, acgeGenerateChordKnots, acgeGenerateSqrtChordKnots, acgeGenerateUUID, acgeGenerateUniformKnots, acgeGetOcsAngle, acgeGetOcsReferenceVector, acgeIntPartLength, acgeInterpolateControlPoints, acgeInterpolateNurbsCurve, acgeInverseLerp, acgeIsBetween, acgeIsBetweenAngle, acgeIsAngleOnCcwSweep, acgeIsPowerOfTwo, acgeLerp, acgeMapLinear, acgeNormalizeAngle, acgePingpong, acgeRadToDeg, acgeRandFloat, acgeRandFloatSpread, acgeRandInt, acgeRelativeEps, acgeSeededRandom, acgeSmootherstep, acgeSmoothstep, acgeTransformOcsPointToWcs, acgeTransformWcsPointToOcs, acgeOffsetPointByDirectionInXY, acgeOffsetSmoothedSampledPath, acgeOffsetVertexPath, acgeClosedPolygonArea2d, acgeClosedPolygonArea3d, acgePolygonArea2d, acgePolygonArea3d, acgeSignedPolygonArea2d } from './util';
3
+ export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, acgeBasisFunction, acgeCalculateCurveLength, acgeCeilPowerOfTwo, acgeClamp, acgeComputeParameterValues, acgeDamp, acgeDegToRad, acgeEuclideanModulo, acgeEvaluateNurbsPoint, acgeEvaluateNurbsDerivatives, acgeSignedPlanarCurvature, acgeFloorPowerOfTwo, acgeGenerateAveragedKnots, acgeGenerateChordKnots, acgeGenerateSqrtChordKnots, acgeGenerateUUID, acgeGenerateUniformKnots, acgeGetOcsAngle, acgeGetOcsReferenceVector, acgeGetOcsReferenceVectorInto, acgeIntPartLength, acgeInterpolateControlPoints, acgeInterpolateNurbsCurve, acgeInverseLerp, acgeIsBetween, acgeIsBetweenAngle, acgeIsAngleOnCcwSweep, acgeIsPowerOfTwo, acgeLerp, acgeMapLinear, acgeNormalizeAngle, acgePingpong, acgeRadToDeg, acgeRandFloat, acgeRandFloatSpread, acgeRandInt, acgeRelativeEps, acgeSeededRandom, acgeSmootherstep, acgeSmoothstep, acgeTransformOcsPointToWcs, acgeTransformOcsPointToWcsInto, acgeTransformWcsPointToOcs, acgeOffsetPointByDirectionInXY, acgeOffsetSmoothedSampledPath, acgeOffsetVertexPath, acgeClosedPolygonArea2d, acgeClosedPolygonArea3d, acgePolygonArea2d, acgePolygonArea3d, acgeSignedPolygonArea2d } from './util';
4
4
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACnB,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAenB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AAWf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACnB,+BAA+B,EAChC,MAAM,YAAY,CAAA;AAenB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AAWf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,QAAQ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AcGeNurbsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,wBAAwB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAEjE;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAqCV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,gBAAgB,GAAE,wBAAoC,GACrD,MAAM,EAAE,CAgCV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAsCV;AAwDD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,wBAAoC,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB;IAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAmGnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,EAAE,CAmDV;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAoDD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,mBAAmB,CA4DrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CA2CR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,GAAE,MAAU,EAClB,gBAAgB,GAAE,wBAAoC,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,EAAE,CAYZ"}
1
+ {"version":3,"file":"AcGeNurbsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,wBAAwB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAEjE;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAqCV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,gBAAgB,GAAE,wBAAoC,GACrD,MAAM,EAAE,CAgCV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAsCV;AA4KD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,wBAAoC,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB;IAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA0GnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,EAAE,CAmDV;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAoDD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,mBAAmB,CA4DrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CA2CR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,GAAE,MAAU,EAClB,gBAAgB,GAAE,wBAAoC,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,EAAE,CAYZ"}
@@ -1,6 +1,17 @@
1
1
  /**
2
2
  * NURBS utility functions for spline calculations
3
3
  */
4
+ var __values = (this && this.__values) || function(o) {
5
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
6
+ if (m) return m.call(o);
7
+ if (o && typeof o.length === "number") return {
8
+ next: function () {
9
+ if (o && i >= o.length) o = void 0;
10
+ return { value: o && o[i++], done: !o };
11
+ }
12
+ };
13
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14
+ };
4
15
  var __read = (this && this.__read) || function (o, n) {
5
16
  var m = typeof Symbol === "function" && o[Symbol.iterator];
6
17
  if (!m) return o;
@@ -169,51 +180,221 @@ export function acgeGenerateSqrtChordKnots(degree, points) {
169
180
  }
170
181
  return knots;
171
182
  }
172
- function solveLinearSystem(matrix, rhs) {
173
- var n = matrix.length;
174
- var a = matrix.map(function (row) { return row.slice(); });
175
- var b = rhs.slice();
183
+ /**
184
+ * Returns the value of the entry in `row` for `col`, or `0` when absent.
185
+ *
186
+ * Rows are short (bounded by the system bandwidth), so a linear scan is
187
+ * cheaper than binary search.
188
+ */
189
+ function findRowEntry(row, col) {
190
+ var e_1, _a;
191
+ try {
192
+ for (var row_1 = __values(row), row_1_1 = row_1.next(); !row_1_1.done; row_1_1 = row_1.next()) {
193
+ var entry = row_1_1.value;
194
+ if (entry.col === col) {
195
+ return entry.value;
196
+ }
197
+ }
198
+ }
199
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
200
+ finally {
201
+ try {
202
+ if (row_1_1 && !row_1_1.done && (_a = row_1.return)) _a.call(row_1);
203
+ }
204
+ finally { if (e_1) throw e_1.error; }
205
+ }
206
+ return 0;
207
+ }
208
+ /**
209
+ * Returns the index of the entry in `row` for `col`, or `-1` when absent.
210
+ */
211
+ function findRowEntryIndex(row, col) {
212
+ for (var i = 0; i < row.length; i++) {
213
+ if (row[i].col === col) {
214
+ return i;
215
+ }
216
+ }
217
+ return -1;
218
+ }
219
+ /**
220
+ * Solves one banded linear system with multiple right-hand sides.
221
+ *
222
+ * Gaussian elimination with partial pivoting over the sparse rows. Only rows
223
+ * whose band window contains column `k` carry a `k` entry, so both the pivot
224
+ * search and the elimination step touch at most `band + 1` non-empty rows per
225
+ * column — the full-row loops below degrade to O(n² · band) instead of the
226
+ * dense solver's O(n³). A single factorization serves every RHS, so the X/Y/Z
227
+ * coordinate systems share one elimination pass.
228
+ *
229
+ * Note the pivot search scans every remaining row rather than a window of
230
+ * `band`: row swaps displace band rows downward, so a column's live entries
231
+ * can end up arbitrarily far below the diagonal.
232
+ *
233
+ * @param rows - Sparse matrix rows; every non-zero entry must satisfy
234
+ * `|col - rowIndex| <= band` before pivoting.
235
+ * @param rhsList - One right-hand-side vector per output solution.
236
+ * @returns One solution vector per RHS.
237
+ * @throws {Error} When a pivot falls below `1e-12` (singular).
238
+ */
239
+ function solveBandedLinearSystem(rows, rhsList) {
240
+ var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e;
241
+ var n = rows.length;
242
+ var a = rows.map(function (row) { return row.map(function (entry) { return ({ col: entry.col, value: entry.value }); }); });
243
+ var bList = rhsList.map(function (rhs) { return rhs.slice(); });
176
244
  for (var k = 0; k < n; k++) {
177
- var pivotRow = k;
178
- var pivotValue = Math.abs(a[k][k]);
179
- for (var i = k + 1; i < n; i++) {
180
- var value = Math.abs(a[i][k]);
181
- if (value > pivotValue) {
182
- pivotValue = value;
245
+ // Partial pivot over all remaining rows that carry a `k` entry.
246
+ var pivotRow = -1;
247
+ var pivotAbs = 1e-12;
248
+ for (var i = k; i < n; i++) {
249
+ var abs = Math.abs(findRowEntry(a[i], k));
250
+ if (abs > pivotAbs) {
251
+ pivotAbs = abs;
183
252
  pivotRow = i;
184
253
  }
185
254
  }
186
- if (pivotValue < 1e-12) {
255
+ if (pivotRow < 0) {
187
256
  throw new Error('Interpolation matrix is singular.');
188
257
  }
189
258
  if (pivotRow !== k) {
190
259
  var tmpRow = a[k];
191
260
  a[k] = a[pivotRow];
192
261
  a[pivotRow] = tmpRow;
193
- var tmpValue = b[k];
194
- b[k] = b[pivotRow];
195
- b[pivotRow] = tmpValue;
262
+ try {
263
+ for (var bList_1 = (e_2 = void 0, __values(bList)), bList_1_1 = bList_1.next(); !bList_1_1.done; bList_1_1 = bList_1.next()) {
264
+ var b = bList_1_1.value;
265
+ var tmpValue = b[k];
266
+ b[k] = b[pivotRow];
267
+ b[pivotRow] = tmpValue;
268
+ }
269
+ }
270
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
271
+ finally {
272
+ try {
273
+ if (bList_1_1 && !bList_1_1.done && (_a = bList_1.return)) _a.call(bList_1);
274
+ }
275
+ finally { if (e_2) throw e_2.error; }
276
+ }
196
277
  }
278
+ var pivotValue = findRowEntry(a[k], k);
197
279
  for (var i = k + 1; i < n; i++) {
198
- var factor = a[i][k] / a[k][k];
280
+ var entryIndex = findRowEntryIndex(a[i], k);
281
+ if (entryIndex < 0) {
282
+ continue;
283
+ }
284
+ var factor = a[i][entryIndex].value / pivotValue;
199
285
  if (Math.abs(factor) < 1e-14) {
200
286
  continue;
201
287
  }
202
- for (var j = k; j < n; j++) {
203
- a[i][j] -= factor * a[k][j];
288
+ try {
289
+ for (var _f = (e_3 = void 0, __values(a[i])), _g = _f.next(); !_g.done; _g = _f.next()) {
290
+ var entry = _g.value;
291
+ if (entry.col > k) {
292
+ entry.value -= factor * findRowEntry(a[k], entry.col);
293
+ }
294
+ }
295
+ }
296
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
297
+ finally {
298
+ try {
299
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
300
+ }
301
+ finally { if (e_3) throw e_3.error; }
302
+ }
303
+ try {
304
+ // Fill-in: the dense elimination subtracts the scaled pivot row from
305
+ // every column, so row `i` gains entries wherever the pivot row has a
306
+ // non-zero beyond the diagonal and row `i` has none. Missing these
307
+ // entries drops columns from later pivots and can make a well-posed
308
+ // system look singular.
309
+ for (var _h = (e_4 = void 0, __values(a[k])), _j = _h.next(); !_j.done; _j = _h.next()) {
310
+ var pivotEntry = _j.value;
311
+ if (pivotEntry.col <= k || pivotEntry.value === 0) {
312
+ continue;
313
+ }
314
+ if (findRowEntryIndex(a[i], pivotEntry.col) < 0) {
315
+ a[i].push({
316
+ col: pivotEntry.col,
317
+ value: -factor * pivotEntry.value
318
+ });
319
+ }
320
+ }
321
+ }
322
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
323
+ finally {
324
+ try {
325
+ if (_j && !_j.done && (_c = _h.return)) _c.call(_h);
326
+ }
327
+ finally { if (e_4) throw e_4.error; }
328
+ }
329
+ a[i][entryIndex].value = 0;
330
+ try {
331
+ for (var bList_2 = (e_5 = void 0, __values(bList)), bList_2_1 = bList_2.next(); !bList_2_1.done; bList_2_1 = bList_2.next()) {
332
+ var b = bList_2_1.value;
333
+ b[i] -= factor * b[k];
334
+ }
335
+ }
336
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
337
+ finally {
338
+ try {
339
+ if (bList_2_1 && !bList_2_1.done && (_d = bList_2.return)) _d.call(bList_2);
340
+ }
341
+ finally { if (e_5) throw e_5.error; }
204
342
  }
205
- b[i] -= factor * b[k];
206
343
  }
207
344
  }
208
- var x = new Array(n).fill(0);
345
+ var solutions = bList.map(function () { return new Array(n).fill(0); });
209
346
  for (var i = n - 1; i >= 0; i--) {
210
- var sum = b[i];
211
- for (var j = i + 1; j < n; j++) {
212
- sum -= a[i][j] * x[j];
347
+ var diagonal = findRowEntry(a[i], i);
348
+ for (var s = 0; s < bList.length; s++) {
349
+ var sum = bList[s][i];
350
+ try {
351
+ for (var _k = (e_6 = void 0, __values(a[i])), _l = _k.next(); !_l.done; _l = _k.next()) {
352
+ var entry = _l.value;
353
+ if (entry.col > i) {
354
+ sum -= entry.value * solutions[s][entry.col];
355
+ }
356
+ }
357
+ }
358
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
359
+ finally {
360
+ try {
361
+ if (_l && !_l.done && (_e = _k.return)) _e.call(_k);
362
+ }
363
+ finally { if (e_6) throw e_6.error; }
364
+ }
365
+ solutions[s][i] = sum / diagonal;
213
366
  }
214
- x[i] = sum / a[i][i];
215
367
  }
216
- return x;
368
+ return solutions;
369
+ }
370
+ /**
371
+ * Finds the knot span index such that `knots[span] <= u < knots[span + 1]`.
372
+ *
373
+ * @param u - Parameter value inside the valid knot domain.
374
+ * @param degree - Curve degree.
375
+ * @param knots - Clamped knot vector.
376
+ * @returns The span index in `[degree, knots.length - degree - 2]`.
377
+ */
378
+ function findKnotSpan(u, degree, knots) {
379
+ var lastIndex = knots.length - degree - 2;
380
+ if (u >= knots[lastIndex + 1]) {
381
+ return lastIndex;
382
+ }
383
+ var lo = degree;
384
+ var hi = knots.length - degree - 2;
385
+ while (lo <= hi) {
386
+ var mid = (lo + hi) >> 1;
387
+ if (u < knots[mid]) {
388
+ hi = mid - 1;
389
+ }
390
+ else if (u >= knots[mid + 1]) {
391
+ lo = mid + 1;
392
+ }
393
+ else {
394
+ return mid;
395
+ }
396
+ }
397
+ return degree;
217
398
  }
218
399
  /**
219
400
  * Interpolate a NURBS curve from fit points with optional end tangents
@@ -244,59 +425,66 @@ export function acgeInterpolateNurbsCurve(fitPoints, degree, parameterization, s
244
425
  }
245
426
  var knots = acgeGenerateAveragedKnots(degree, extendedParams);
246
427
  var size = n + 1;
247
- var matrix = new Array(size);
248
- var rhsX = new Array(size);
249
- var rhsY = new Array(size);
250
- var rhsZ = new Array(size);
251
- var row = 0;
252
- matrix[row] = new Array(size).fill(0);
253
- matrix[row][0] = 1;
254
- rhsX[row] = safePoints[0][0];
255
- rhsY[row] = safePoints[0][1];
256
- rhsZ[row] = safePoints[0][2];
257
- row++;
258
- for (var i = 1; i <= m - 1; i++) {
259
- var u = params[i];
260
- matrix[row] = new Array(size).fill(0);
261
- for (var j = 0; j <= n; j++) {
262
- matrix[row][j] = acgeBasisFunction(j, degree, u, knots);
263
- }
264
- rhsX[row] = safePoints[i][0];
265
- rhsY[row] = safePoints[i][1];
266
- rhsZ[row] = safePoints[i][2];
267
- row++;
268
- }
269
- matrix[row] = new Array(size).fill(0);
270
- matrix[row][n] = 1;
271
- rhsX[row] = safePoints[m][0];
272
- rhsY[row] = safePoints[m][1];
273
- rhsZ[row] = safePoints[m][2];
274
- row++;
428
+ // The collocation matrix is banded (B-spline support is local). Rows are
429
+ // ordered so every non-zero entry stays within `degree + 1` of the diagonal:
430
+ // start tangent first (columns 0/1), then the interpolation rows in
431
+ // parameter order, then the end tangent (columns n-1/n).
432
+ var rows = [];
433
+ var rhsX = [];
434
+ var rhsY = [];
435
+ var rhsZ = [];
275
436
  if (hasStartTangent) {
276
437
  var denom = knots[degree + 1] - knots[0];
277
438
  var coeff = denom !== 0 ? degree / denom : 0;
278
- matrix[row] = new Array(size).fill(0);
279
- matrix[row][0] = -coeff;
280
- matrix[row][1] = coeff;
281
- rhsX[row] = (_a = startTangent === null || startTangent === void 0 ? void 0 : startTangent[0]) !== null && _a !== void 0 ? _a : 0;
282
- rhsY[row] = (_b = startTangent === null || startTangent === void 0 ? void 0 : startTangent[1]) !== null && _b !== void 0 ? _b : 0;
283
- rhsZ[row] = (_c = startTangent === null || startTangent === void 0 ? void 0 : startTangent[2]) !== null && _c !== void 0 ? _c : 0;
284
- row++;
285
- }
439
+ rows.push([
440
+ { col: 0, value: -coeff },
441
+ { col: 1, value: coeff }
442
+ ]);
443
+ rhsX.push((_a = startTangent === null || startTangent === void 0 ? void 0 : startTangent[0]) !== null && _a !== void 0 ? _a : 0);
444
+ rhsY.push((_b = startTangent === null || startTangent === void 0 ? void 0 : startTangent[1]) !== null && _b !== void 0 ? _b : 0);
445
+ rhsZ.push((_c = startTangent === null || startTangent === void 0 ? void 0 : startTangent[2]) !== null && _c !== void 0 ? _c : 0);
446
+ }
447
+ rows.push([{ col: 0, value: 1 }]);
448
+ rhsX.push(safePoints[0][0]);
449
+ rhsY.push(safePoints[0][1]);
450
+ rhsZ.push(safePoints[0][2]);
451
+ for (var i = 1; i <= m - 1; i++) {
452
+ var u = params[i];
453
+ var row = [];
454
+ var span = findKnotSpan(u, degree, knots);
455
+ var first = Math.max(0, span - degree);
456
+ var last = Math.min(n, span);
457
+ for (var j = first; j <= last; j++) {
458
+ var value = acgeBasisFunction(j, degree, u, knots);
459
+ if (value !== 0) {
460
+ row.push({ col: j, value: value });
461
+ }
462
+ }
463
+ rows.push(row);
464
+ rhsX.push(safePoints[i][0]);
465
+ rhsY.push(safePoints[i][1]);
466
+ rhsZ.push(safePoints[i][2]);
467
+ }
468
+ rows.push([{ col: n, value: 1 }]);
469
+ rhsX.push(safePoints[m][0]);
470
+ rhsY.push(safePoints[m][1]);
471
+ rhsZ.push(safePoints[m][2]);
286
472
  if (hasEndTangent) {
287
473
  var denom = knots[n + degree + 1] - knots[n];
288
474
  var coeff = denom !== 0 ? degree / denom : 0;
289
- matrix[row] = new Array(size).fill(0);
290
- matrix[row][n - 1] = -coeff;
291
- matrix[row][n] = coeff;
292
- rhsX[row] = (_d = endTangent === null || endTangent === void 0 ? void 0 : endTangent[0]) !== null && _d !== void 0 ? _d : 0;
293
- rhsY[row] = (_e = endTangent === null || endTangent === void 0 ? void 0 : endTangent[1]) !== null && _e !== void 0 ? _e : 0;
294
- rhsZ[row] = (_f = endTangent === null || endTangent === void 0 ? void 0 : endTangent[2]) !== null && _f !== void 0 ? _f : 0;
295
- row++;
296
- }
297
- var solutionX = solveLinearSystem(matrix, rhsX);
298
- var solutionY = solveLinearSystem(matrix, rhsY);
299
- var solutionZ = solveLinearSystem(matrix, rhsZ);
475
+ rows.push([
476
+ { col: n - 1, value: -coeff },
477
+ { col: n, value: coeff }
478
+ ]);
479
+ rhsX.push((_d = endTangent === null || endTangent === void 0 ? void 0 : endTangent[0]) !== null && _d !== void 0 ? _d : 0);
480
+ rhsY.push((_e = endTangent === null || endTangent === void 0 ? void 0 : endTangent[1]) !== null && _e !== void 0 ? _e : 0);
481
+ rhsZ.push((_f = endTangent === null || endTangent === void 0 ? void 0 : endTangent[2]) !== null && _f !== void 0 ? _f : 0);
482
+ }
483
+ var _g = __read(solveBandedLinearSystem(rows, [
484
+ rhsX,
485
+ rhsY,
486
+ rhsZ
487
+ ]), 3), solutionX = _g[0], solutionY = _g[1], solutionZ = _g[2];
300
488
  var controlPoints = new Array(size);
301
489
  for (var i = 0; i < size; i++) {
302
490
  controlPoints[i] = [solutionX[i], solutionY[i], solutionZ[i]];
@@ -1 +1 @@
1
- {"version":3,"file":"AcGeNurbsUtil.js","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcGeNurbsUtil.js","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,20 @@
1
1
  import { AcGePoint3d, AcGePoint3dLike } from '../math/AcGePoint3d';
2
2
  import { AcGeVector3d, AcGeVector3dLike } from '../math/AcGeVector3d';
3
3
  export declare function acgeGetOcsReferenceVector(normal: AcGeVector3dLike): AcGeVector3d;
4
+ /**
5
+ * Writes the OCS reference vector for `normal` into `out` without allocating.
6
+ * Uses the module-level matrix/axis scratch, so like
7
+ * {@link acgeGetOcsReferenceVector} it is single-threaded sequential.
8
+ */
9
+ export declare function acgeGetOcsReferenceVectorInto(out: AcGeVector3d, normal: AcGeVector3dLike): AcGeVector3d;
4
10
  export declare function acgeTransformOcsPointToWcs(point: AcGePoint3dLike, normal: AcGeVector3dLike): AcGePoint3d;
11
+ /**
12
+ * Transforms an OCS point into WCS, writing into `out` without allocating.
13
+ * The +Z extrusion shortcut skips the matrix entirely (the extrusion matrix
14
+ * is identity there, see {@link AcGeMatrix3d.setFromExtrusionDirection}),
15
+ * which is the dominant case for DXF entities.
16
+ */
17
+ export declare function acgeTransformOcsPointToWcsInto(out: AcGePoint3d, point: AcGePoint3dLike, normal: AcGeVector3dLike): AcGePoint3d;
5
18
  export declare function acgeTransformWcsPointToOcs(point: AcGePoint3dLike, normal: AcGeVector3dLike): AcGePoint3d;
6
19
  export declare function acgeGetOcsAngle(center: AcGePoint3dLike, point: AcGePoint3dLike, normal: AcGeVector3dLike): number;
7
20
  //# sourceMappingURL=AcGeOcsUtil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcGeOcsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeOcsUtil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAerE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,gBAMjE;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,eAKzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,eAKzB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,UAUzB"}
1
+ {"version":3,"file":"AcGeOcsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeOcsUtil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAgBrE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,gBAEjE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,gBAAgB,gBAQzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,eAGzB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,eAYzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,eAKzB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,gBAAgB,UAUzB"}
@@ -7,17 +7,43 @@ var _ocsXAxis = /*@__PURE__*/ new AcGeVector3d();
7
7
  var _ocsYAxis = /*@__PURE__*/ new AcGeVector3d();
8
8
  var _ocsZAxis = /*@__PURE__*/ new AcGeVector3d();
9
9
  var _ocsPoint = /*@__PURE__*/ new AcGePoint3d();
10
+ var _ocsNormal = /*@__PURE__*/ new AcGeVector3d();
10
11
  function createExtrusionMatrix(normal) {
11
12
  return new AcGeMatrix3d().setFromExtrusionDirection(new AcGeVector3d(normal.x, normal.y, normal.z));
12
13
  }
13
14
  export function acgeGetOcsReferenceVector(normal) {
14
- _ocsMatrix.setFromExtrusionDirection(new AcGeVector3d(normal.x, normal.y, normal.z));
15
+ return acgeGetOcsReferenceVectorInto(new AcGeVector3d(), normal);
16
+ }
17
+ /**
18
+ * Writes the OCS reference vector for `normal` into `out` without allocating.
19
+ * Uses the module-level matrix/axis scratch, so like
20
+ * {@link acgeGetOcsReferenceVector} it is single-threaded sequential.
21
+ */
22
+ export function acgeGetOcsReferenceVectorInto(out, normal) {
23
+ _ocsMatrix.setFromExtrusionDirection(_ocsNormal.set(normal.x, normal.y, normal.z));
15
24
  _ocsMatrix.extractBasis(_ocsXAxis, _ocsYAxis, _ocsZAxis);
16
- return _ocsXAxis.clone();
25
+ out.copy(_ocsXAxis);
26
+ return out;
17
27
  }
18
28
  export function acgeTransformOcsPointToWcs(point, normal) {
19
- var _a;
20
- return new AcGePoint3d(point.x, point.y, (_a = point.z) !== null && _a !== void 0 ? _a : 0).applyMatrix4(createExtrusionMatrix(normal));
29
+ return acgeTransformOcsPointToWcsInto(new AcGePoint3d(), point, normal);
30
+ }
31
+ /**
32
+ * Transforms an OCS point into WCS, writing into `out` without allocating.
33
+ * The +Z extrusion shortcut skips the matrix entirely (the extrusion matrix
34
+ * is identity there, see {@link AcGeMatrix3d.setFromExtrusionDirection}),
35
+ * which is the dominant case for DXF entities.
36
+ */
37
+ export function acgeTransformOcsPointToWcsInto(out, point, normal) {
38
+ var _a, _b;
39
+ if (normal.x === 0 && normal.y === 0 && normal.z === 1) {
40
+ out.set(point.x, point.y, (_a = point.z) !== null && _a !== void 0 ? _a : 0);
41
+ return out;
42
+ }
43
+ _ocsMatrix.setFromExtrusionDirection(_ocsNormal.set(normal.x, normal.y, normal.z));
44
+ out.set(point.x, point.y, (_b = point.z) !== null && _b !== void 0 ? _b : 0);
45
+ out.applyMatrix4(_ocsMatrix);
46
+ return out;
21
47
  }
22
48
  export function acgeTransformWcsPointToOcs(point, normal) {
23
49
  var _a;