@mlightcad/geometry-engine 3.3.4 → 3.4.1

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.
Files changed (35) hide show
  1. package/README.md +3 -0
  2. package/dist/geometry-engine.umd.cjs +1 -1
  3. package/lib/geometry/AcGeArea2d.d.ts +0 -4
  4. package/lib/geometry/AcGeArea2d.d.ts.map +1 -1
  5. package/lib/geometry/AcGeArea2d.js +2 -16
  6. package/lib/geometry/AcGeArea2d.js.map +1 -1
  7. package/lib/geometry/AcGeCircArc3d.d.ts +1 -1
  8. package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -1
  9. package/lib/geometry/AcGeCircArc3d.js +4 -4
  10. package/lib/geometry/AcGeCircArc3d.js.map +1 -1
  11. package/lib/geometry/AcGeEllipseArc3d.d.ts +1 -3
  12. package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
  13. package/lib/geometry/AcGeEllipseArc3d.js +4 -15
  14. package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
  15. package/lib/geometry/AcGePolyline2d.d.ts +4 -0
  16. package/lib/geometry/AcGePolyline2d.d.ts.map +1 -1
  17. package/lib/geometry/AcGePolyline2d.js +14 -0
  18. package/lib/geometry/AcGePolyline2d.js.map +1 -1
  19. package/lib/geometry/AcGeSpline3d.d.ts +4 -0
  20. package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
  21. package/lib/geometry/AcGeSpline3d.js +14 -0
  22. package/lib/geometry/AcGeSpline3d.js.map +1 -1
  23. package/lib/index.d.ts +1 -1
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/index.js +1 -1
  26. package/lib/index.js.map +1 -1
  27. package/lib/util/AcGePolygonAreaUtil.d.ts +25 -0
  28. package/lib/util/AcGePolygonAreaUtil.d.ts.map +1 -0
  29. package/lib/util/AcGePolygonAreaUtil.js +66 -0
  30. package/lib/util/AcGePolygonAreaUtil.js.map +1 -0
  31. package/lib/util/index.d.ts +1 -0
  32. package/lib/util/index.d.ts.map +1 -1
  33. package/lib/util/index.js +1 -0
  34. package/lib/util/index.js.map +1 -1
  35. package/package.json +2 -2
@@ -0,0 +1,25 @@
1
+ import { AcGePoint2dLike } from '../math/AcGePoint2d';
2
+ import { AcGePoint3dLike } from '../math/AcGePoint3d';
3
+ /**
4
+ * Computes the signed area of a 2D polygon using the shoelace formula.
5
+ */
6
+ export declare function acGeSignedPolygonArea2d(points: AcGePoint2dLike[]): number;
7
+ /**
8
+ * Computes the absolute area of a 2D polygon using the shoelace formula.
9
+ */
10
+ export declare function acGePolygonArea2d(points: AcGePoint2dLike[]): number;
11
+ /**
12
+ * Computes the area of a planar 3D polygon using Newell's method.
13
+ */
14
+ export declare function acGePolygonArea3d(points: AcGePoint3dLike[]): number;
15
+ /**
16
+ * Returns the absolute polygon area for a closed loop, or `0` when the loop is
17
+ * open or degenerate.
18
+ */
19
+ export declare function acGeClosedPolygonArea2d(points: AcGePoint2dLike[]): number;
20
+ /**
21
+ * Returns the absolute polygon area for a closed loop, or `0` when the loop is
22
+ * open or degenerate.
23
+ */
24
+ export declare function acGeClosedPolygonArea3d(points: AcGePoint3dLike[]): number;
25
+ //# sourceMappingURL=AcGePolygonAreaUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGePolygonAreaUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGePolygonAreaUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAYzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAsBnE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAGzE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAGzE"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Computes the signed area of a 2D polygon using the shoelace formula.
3
+ */
4
+ export function acGeSignedPolygonArea2d(points) {
5
+ var count = points.length;
6
+ if (count < 3)
7
+ return 0;
8
+ var area = 0;
9
+ for (var i = 0, j = count - 1; i < count; j = i++) {
10
+ var p1 = points[j];
11
+ var p2 = points[i];
12
+ area += p1.x * p2.y - p2.x * p1.y;
13
+ }
14
+ return area * 0.5;
15
+ }
16
+ /**
17
+ * Computes the absolute area of a 2D polygon using the shoelace formula.
18
+ */
19
+ export function acGePolygonArea2d(points) {
20
+ return Math.abs(acGeSignedPolygonArea2d(points));
21
+ }
22
+ /**
23
+ * Computes the area of a planar 3D polygon using Newell's method.
24
+ */
25
+ export function acGePolygonArea3d(points) {
26
+ var _a, _b;
27
+ var count = points.length;
28
+ if (count < 3)
29
+ return 0;
30
+ var nx = 0;
31
+ var ny = 0;
32
+ var nz = 0;
33
+ for (var i = 0, j = count - 1; i < count; j = i++) {
34
+ var p1 = points[j];
35
+ var p2 = points[i];
36
+ var x1 = p1.x;
37
+ var y1 = p1.y;
38
+ var z1 = (_a = p1.z) !== null && _a !== void 0 ? _a : 0;
39
+ var x2 = p2.x;
40
+ var y2 = p2.y;
41
+ var z2 = (_b = p2.z) !== null && _b !== void 0 ? _b : 0;
42
+ nx += (z1 + z2) * (y1 - y2);
43
+ ny += (x1 + x2) * (z1 - z2);
44
+ nz += (y1 + y2) * (x1 - x2);
45
+ }
46
+ return 0.5 * Math.hypot(nx, ny, nz);
47
+ }
48
+ /**
49
+ * Returns the absolute polygon area for a closed loop, or `0` when the loop is
50
+ * open or degenerate.
51
+ */
52
+ export function acGeClosedPolygonArea2d(points) {
53
+ if (points.length < 3)
54
+ return 0;
55
+ return acGePolygonArea2d(points);
56
+ }
57
+ /**
58
+ * Returns the absolute polygon area for a closed loop, or `0` when the loop is
59
+ * open or degenerate.
60
+ */
61
+ export function acGeClosedPolygonArea3d(points) {
62
+ if (points.length < 3)
63
+ return 0;
64
+ return acGePolygonArea3d(points);
65
+ }
66
+ //# sourceMappingURL=AcGePolygonAreaUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGePolygonAreaUtil.js","sourceRoot":"","sources":["../../src/util/AcGePolygonAreaUtil.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAA;IAC3B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IAEvB,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QAClD,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,IAAI,GAAG,GAAG,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAyB;;IACzD,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAA;IAC3B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IAEvB,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QAClD,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACf,IAAM,EAAE,GAAG,MAAA,EAAE,CAAC,CAAC,mCAAI,CAAC,CAAA;QACpB,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACf,IAAM,EAAE,GAAG,MAAA,EAAE,CAAC,CAAC,mCAAI,CAAC,CAAA;QACpB,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QAC3B,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QAC3B,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAyB;IAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC"}
@@ -6,4 +6,5 @@ export { getOcsAngle, getOcsReferenceVector, transformOcsPointToWcs, transformWc
6
6
  export { AcGeTol, DEFAULT_TOL } from './AcGeTol';
7
7
  export { offsetPointByDirectionInXY, offsetVertexPath } from './AcGeCurveOffsetUtil';
8
8
  export { offsetSmoothedSampledPath } from './AcGeSampledCurveOffsetUtil';
9
+ export { acGeClosedPolygonArea2d, acGeClosedPolygonArea3d, acGePolygonArea2d, acGePolygonArea3d, acGeSignedPolygonArea2d } from './AcGePolygonAreaUtil';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,uBAAuB,CAAA"}
package/lib/util/index.js CHANGED
@@ -6,4 +6,5 @@ export { getOcsAngle, getOcsReferenceVector, transformOcsPointToWcs, transformWc
6
6
  export { AcGeTol, DEFAULT_TOL } from './AcGeTol';
7
7
  export { offsetPointByDirectionInXY, offsetVertexPath } from './AcGeCurveOffsetUtil';
8
8
  export { offsetSmoothedSampledPath } from './AcGeSampledCurveOffsetUtil';
9
+ export { acGeClosedPolygonArea2d, acGeClosedPolygonArea3d, acGePolygonArea2d, acGePolygonArea3d, acGeSignedPolygonArea2d } from './AcGePolygonAreaUtil';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,uBAAuB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlightcad/geometry-engine",
3
- "version": "3.3.4",
3
+ "version": "3.4.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "require": "./dist/geometry-engine.umd.cjs"
34
34
  },
35
35
  "peerDependencies": {
36
- "@mlightcad/common": "1.5.4"
36
+ "@mlightcad/common": "1.6.1"
37
37
  },
38
38
  "scripts": {
39
39
  "clean": "rimraf dist lib tsconfig.tsbuildinfo",