@mlightcad/geometry-engine 3.3.4 → 3.4.0

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 (34) hide show
  1. package/dist/geometry-engine.umd.cjs +1 -1
  2. package/lib/geometry/AcGeArea2d.d.ts +0 -4
  3. package/lib/geometry/AcGeArea2d.d.ts.map +1 -1
  4. package/lib/geometry/AcGeArea2d.js +2 -16
  5. package/lib/geometry/AcGeArea2d.js.map +1 -1
  6. package/lib/geometry/AcGeCircArc3d.d.ts +1 -1
  7. package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -1
  8. package/lib/geometry/AcGeCircArc3d.js +4 -4
  9. package/lib/geometry/AcGeCircArc3d.js.map +1 -1
  10. package/lib/geometry/AcGeEllipseArc3d.d.ts +1 -3
  11. package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
  12. package/lib/geometry/AcGeEllipseArc3d.js +4 -15
  13. package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
  14. package/lib/geometry/AcGePolyline2d.d.ts +4 -0
  15. package/lib/geometry/AcGePolyline2d.d.ts.map +1 -1
  16. package/lib/geometry/AcGePolyline2d.js +14 -0
  17. package/lib/geometry/AcGePolyline2d.js.map +1 -1
  18. package/lib/geometry/AcGeSpline3d.d.ts +4 -0
  19. package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
  20. package/lib/geometry/AcGeSpline3d.js +14 -0
  21. package/lib/geometry/AcGeSpline3d.js.map +1 -1
  22. package/lib/index.d.ts +1 -1
  23. package/lib/index.d.ts.map +1 -1
  24. package/lib/index.js +1 -1
  25. package/lib/index.js.map +1 -1
  26. package/lib/util/AcGePolygonAreaUtil.d.ts +25 -0
  27. package/lib/util/AcGePolygonAreaUtil.d.ts.map +1 -0
  28. package/lib/util/AcGePolygonAreaUtil.js +66 -0
  29. package/lib/util/AcGePolygonAreaUtil.js.map +1 -0
  30. package/lib/util/index.d.ts +1 -0
  31. package/lib/util/index.d.ts.map +1 -1
  32. package/lib/util/index.js +1 -0
  33. package/lib/util/index.js.map +1 -1
  34. package/package.json +2 -2
@@ -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.0",
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.0"
37
37
  },
38
38
  "scripts": {
39
39
  "clean": "rimraf dist lib tsconfig.tsbuildinfo",