@mlightcad/geometry-engine 3.2.38 → 3.2.40
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/geometry-engine.umd.cjs +1 -1
- package/lib/geometry/AcGeCircArc3d.d.ts +7 -0
- package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeCircArc3d.js +12 -0
- package/lib/geometry/AcGeCircArc3d.js.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.d.ts +7 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.js +13 -0
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
- package/lib/geometry/AcGeLine3d.d.ts +7 -0
- package/lib/geometry/AcGeLine3d.d.ts.map +1 -1
- package/lib/geometry/AcGeLine3d.js +16 -0
- package/lib/geometry/AcGeLine3d.js.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts +55 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.js +146 -4
- package/lib/geometry/AcGeNurbsCurve.js.map +1 -1
- package/lib/geometry/AcGePolyline2d.d.ts +7 -0
- package/lib/geometry/AcGePolyline2d.d.ts.map +1 -1
- package/lib/geometry/AcGePolyline2d.js +10 -0
- package/lib/geometry/AcGePolyline2d.js.map +1 -1
- package/lib/geometry/AcGePolyline2dOffset.d.ts +28 -0
- package/lib/geometry/AcGePolyline2dOffset.d.ts.map +1 -0
- package/lib/geometry/AcGePolyline2dOffset.js +886 -0
- package/lib/geometry/AcGePolyline2dOffset.js.map +1 -0
- package/lib/geometry/AcGeSpline3d.d.ts +9 -1
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +7 -0
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/util/AcGeCurveOffsetUtil.d.ts +22 -0
- package/lib/util/AcGeCurveOffsetUtil.d.ts.map +1 -0
- package/lib/util/AcGeCurveOffsetUtil.js +37 -0
- package/lib/util/AcGeCurveOffsetUtil.js.map +1 -0
- package/lib/util/AcGeNurbsUtil.d.ts +13 -0
- package/lib/util/AcGeNurbsUtil.d.ts.map +1 -1
- package/lib/util/AcGeNurbsUtil.js +105 -0
- package/lib/util/AcGeNurbsUtil.js.map +1 -1
- package/lib/util/AcGeSampledCurveOffsetUtil.d.ts +21 -0
- package/lib/util/AcGeSampledCurveOffsetUtil.d.ts.map +1 -0
- package/lib/util/AcGeSampledCurveOffsetUtil.js +302 -0
- package/lib/util/AcGeSampledCurveOffsetUtil.js.map +1 -0
- package/lib/util/AcGeTol.d.ts +8 -0
- package/lib/util/AcGeTol.d.ts.map +1 -1
- package/lib/util/AcGeTol.js +14 -0
- package/lib/util/AcGeTol.js.map +1 -1
- package/lib/util/index.d.ts +3 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +3 -1
- package/lib/util/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -27,6 +27,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
27
27
|
import { AcGeBox2d, AcGePoint2d, AcGePoint3d } from '../math';
|
|
28
28
|
import { AcGeCircArc2d } from './AcGeCircArc2d';
|
|
29
29
|
import { AcGeCurve2d } from './AcGeCurve2d';
|
|
30
|
+
import { offsetAcGePolyline2d } from './AcGePolyline2dOffset';
|
|
30
31
|
/**
|
|
31
32
|
* The class represents the polyline geometry.
|
|
32
33
|
*/
|
|
@@ -297,6 +298,15 @@ var AcGePolyline2d = /** @class */ (function (_super) {
|
|
|
297
298
|
}
|
|
298
299
|
return points;
|
|
299
300
|
};
|
|
301
|
+
/**
|
|
302
|
+
* Creates offset curves for this polyline in the XY plane.
|
|
303
|
+
*
|
|
304
|
+
* @param offsetDist - Signed offset distance in drawing units
|
|
305
|
+
* @returns Offset polylines; empty when offsetting fails
|
|
306
|
+
*/
|
|
307
|
+
AcGePolyline2d.prototype.offset = function (offsetDist) {
|
|
308
|
+
return offsetAcGePolyline2d(this, offsetDist);
|
|
309
|
+
};
|
|
300
310
|
return AcGePolyline2d;
|
|
301
311
|
}(AcGeCurve2d));
|
|
302
312
|
export { AcGePolyline2d };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGePolyline2d.js","sourceRoot":"","sources":["../../src/geometry/AcGePolyline2d.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAgB,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"AcGePolyline2d.js","sourceRoot":"","sources":["../../src/geometry/AcGePolyline2d.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AcGePolyline2d } from './AcGePolyline2d';
|
|
2
|
+
/**
|
|
3
|
+
* Creates offset curves for a 2D polyline in the XY plane.
|
|
4
|
+
*
|
|
5
|
+
* Routing depends on polyline content:
|
|
6
|
+
* - Polylines with bulge (arc) segments use analytic line/arc offset and custom joins.
|
|
7
|
+
* - Vertex-only polylines (open or closed) use parallel edge offset with miter intersections.
|
|
8
|
+
*
|
|
9
|
+
* Sign convention: positive `offsetDist` offsets to the left of the travel direction
|
|
10
|
+
* along each segment (consistent with AutoCAD-style polyline offset).
|
|
11
|
+
*
|
|
12
|
+
* @param polyline - Source polyline; may be open or closed, with or without bulge arcs
|
|
13
|
+
* @param offsetDist - Signed offset distance in drawing units (left = positive)
|
|
14
|
+
* @returns One or more offset polylines; empty array when offsetting fails or input is degenerate
|
|
15
|
+
*/
|
|
16
|
+
export declare function offsetAcGePolyline2d(polyline: AcGePolyline2d, offsetDist: number): AcGePolyline2d[];
|
|
17
|
+
/**
|
|
18
|
+
* Normalizes a vertex-only polyline before offset or other geometric processing.
|
|
19
|
+
*
|
|
20
|
+
* Removes consecutive duplicate vertices and, for closed paths, drops a closing
|
|
21
|
+
* vertex that coincides with the first vertex so downstream algorithms see a
|
|
22
|
+
* minimal vertex ring.
|
|
23
|
+
*
|
|
24
|
+
* @param polyline - Input polyline (typically straight segments only)
|
|
25
|
+
* @returns The same instance if already normalized, otherwise a new polyline with cleaned vertices
|
|
26
|
+
*/
|
|
27
|
+
export declare function preparePolylineForOffset(polyline: AcGePolyline2d): AcGePolyline2d;
|
|
28
|
+
//# sourceMappingURL=AcGePolyline2dOffset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcGePolyline2dOffset.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGePolyline2dOffset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAuCjD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,MAAM,GACjB,cAAc,EAAE,CAYlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,cAAc,GACvB,cAAc,CAEhB"}
|