@mlightcad/geometry-engine 3.13.0 → 3.14.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 (38) hide show
  1. package/dist/geometry-engine.umd.cjs +1 -1
  2. package/lib/geometry/AcGeCircArc2d.d.ts +103 -0
  3. package/lib/geometry/AcGeCircArc2d.d.ts.map +1 -1
  4. package/lib/geometry/AcGeCircArc2d.js +174 -38
  5. package/lib/geometry/AcGeCircArc2d.js.map +1 -1
  6. package/lib/geometry/AcGeCircArc2dFactory.d.ts +57 -0
  7. package/lib/geometry/AcGeCircArc2dFactory.d.ts.map +1 -0
  8. package/lib/geometry/AcGeCircArc2dFactory.js +209 -0
  9. package/lib/geometry/AcGeCircArc2dFactory.js.map +1 -0
  10. package/lib/geometry/AcGeCircArc3d.d.ts +10 -1
  11. package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -1
  12. package/lib/geometry/AcGeCircArc3d.js +45 -50
  13. package/lib/geometry/AcGeCircArc3d.js.map +1 -1
  14. package/lib/geometry/AcGeCircArcUtil.d.ts +55 -0
  15. package/lib/geometry/AcGeCircArcUtil.d.ts.map +1 -0
  16. package/lib/geometry/AcGeCircArcUtil.js +120 -0
  17. package/lib/geometry/AcGeCircArcUtil.js.map +1 -0
  18. package/lib/geometry/AcGeCurveIntersect.d.ts +64 -0
  19. package/lib/geometry/AcGeCurveIntersect.d.ts.map +1 -0
  20. package/lib/geometry/AcGeCurveIntersect.js +941 -0
  21. package/lib/geometry/AcGeCurveIntersect.js.map +1 -0
  22. package/lib/geometry/index.d.ts +4 -0
  23. package/lib/geometry/index.d.ts.map +1 -1
  24. package/lib/geometry/index.js +2 -0
  25. package/lib/geometry/index.js.map +1 -1
  26. package/lib/index.d.ts +3 -3
  27. package/lib/index.d.ts.map +1 -1
  28. package/lib/index.js +2 -2
  29. package/lib/index.js.map +1 -1
  30. package/lib/util/AcGeMathUtil.d.ts +7 -1
  31. package/lib/util/AcGeMathUtil.d.ts.map +1 -1
  32. package/lib/util/AcGeMathUtil.js +11 -1
  33. package/lib/util/AcGeMathUtil.js.map +1 -1
  34. package/lib/util/index.d.ts +1 -1
  35. package/lib/util/index.d.ts.map +1 -1
  36. package/lib/util/index.js +1 -1
  37. package/lib/util/index.js.map +1 -1
  38. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGeCircArcUtil.js","sourceRoot":"","sources":["../../src/geometry/AcGeCircArcUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,WAAW,EAEX,YAAY,EACb,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAkB5C;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAmB,EACnB,EAAmB,EACnB,EAAmB;IAEnB,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACf,IAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACf,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAChE,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEvC,IAAM,EAAE,GACN,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QAC9B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QAC/B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,CAAC,CAAA;IACH,IAAM,EAAE,GACN,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QAC9B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;QAC/B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,CAAC,CAAA;IACH,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1E,OAAO,EAAE,MAAM,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,CAAkB,EAClB,CAAkB,EAClB,CAAkB;;IAElB,IAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACd,IAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACd,IAAM,EAAE,GAAG,MAAA,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAA;IACnB,IAAM,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAA,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAChE,IAAM,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAA,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAChE,IAAM,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,IAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IACvB,IAAI,EAAE,GAAG,SAAS,GAAG,SAAS;QAAE,OAAO,IAAI,CAAA;IAE3C,IAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IACzB,IAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IACzB,IAAM,MAAM,GAAG,IAAI,YAAY,EAAE;SAC9B,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC;SACnB,cAAc,CAAC,GAAG,CAAC;SACnB,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SAC/D,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC/B,IAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3E,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1E,OAAO,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAuB,EACvB,KAAsB;IAEtB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,EAAmB,EACnB,EAAmB;IAEnB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,MAAuB,EACvB,MAAc,EACd,KAAsB;IAEtB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9C,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IAC7B,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IAC7B,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACnC,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IAChD,IAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC/B,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;AACtE,CAAC;AAED;;GAEG;AACH,IAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAuB,EACvB,MAAc,EACd,GAAY;IAEZ,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;IAC/D,OAAO,MAAM,IAAI,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAwB,EACxB,OAAe,EACf,OAAwB,EACxB,OAAe,EACf,GAAkC;IAAlC,oBAAA,EAAA,0BAAkC;IAElC,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG;QACtC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,CACnC,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,KAAa,EACb,UAAkB,EAClB,SAAiB;IAEjB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAA;IACxD,IAAI,MAAM,GAAG,UAAU,GAAG,GAAG;QAAE,OAAO,IAAI,CAAA;IAC1C,IAAI,MAAM,GAAG,UAAU,GAAG,GAAG;QAAE,OAAO,KAAK,CAAA;IAC3C,OAAO,KAAK,GAAG,SAAS,CAAA;AAC1B,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { AcGeMatrix3d, AcGePlane, AcGePoint3d } from '../math';
2
+ import { AcGeCircArc3d } from './AcGeCircArc3d';
3
+ import { AcGeEllipseArc3d } from './AcGeEllipseArc3d';
4
+ import { AcGeLine3d } from './AcGeLine3d';
5
+ import { AcGeSpline3d } from './AcGeSpline3d';
6
+ /** Natural parameter interval of a linear primitive. */
7
+ export type AcGeCurveExtent = 'bounded' | 'ray' | 'unbounded';
8
+ type AcGeIntersectPrimitiveBase = {
9
+ /**
10
+ * When false, `extend` flags passed to {@link acgeIntersectCurves} do not
11
+ * change this primitive. Open polyline interior segments and closed-loop
12
+ * edges set this false. Default true.
13
+ */
14
+ extendable?: boolean;
15
+ };
16
+ /**
17
+ * A WCS curve primitive used by {@link acgeIntersectCurves}.
18
+ *
19
+ * Linear primitives carry an {@link AcGeCurveExtent}. Arcs and ellipses use
20
+ * their stored start/end angles; when extended they are treated as the full
21
+ * circle or ellipse.
22
+ */
23
+ export type AcGeIntersectPrimitive = (AcGeIntersectPrimitiveBase & {
24
+ kind: 'line';
25
+ line: AcGeLine3d;
26
+ extent: AcGeCurveExtent;
27
+ }) | (AcGeIntersectPrimitiveBase & {
28
+ kind: 'circArc';
29
+ arc: AcGeCircArc3d;
30
+ }) | (AcGeIntersectPrimitiveBase & {
31
+ kind: 'ellipseArc';
32
+ arc: AcGeEllipseArc3d;
33
+ }) | (AcGeIntersectPrimitiveBase & {
34
+ kind: 'spline';
35
+ spline: AcGeSpline3d;
36
+ });
37
+ /**
38
+ * Finds intersection points between two sets of curve primitives.
39
+ *
40
+ * `extendA` / `extendB` correspond to ObjectARX `AcDb::Intersect` flags for
41
+ * the two operands. A primitive is only extended when `extendable` is not
42
+ * `false`. Overlapping coincident curves do not produce a continuum of points.
43
+ *
44
+ * When `projPlane` is provided, both operands are projected onto that plane
45
+ * first (apparent intersection). Result points lie on the plane.
46
+ *
47
+ * @param a - Primitives from the first operand
48
+ * @param b - Primitives from the second operand
49
+ * @param extendA - Extend the first operand when its primitives allow it
50
+ * @param extendB - Extend the second operand when its primitives allow it
51
+ * @param projPlane - Optional projection plane for apparent intersection
52
+ * @returns Intersection points in WCS, de-duplicated by the equal-point tolerance
53
+ */
54
+ export declare function acgeIntersectCurves(a: readonly AcGeIntersectPrimitive[], b: readonly AcGeIntersectPrimitive[], extendA?: boolean, extendB?: boolean, projPlane?: AcGePlane): AcGePoint3d[];
55
+ /**
56
+ * Returns a transformed copy of a curve primitive.
57
+ */
58
+ export declare function acgeTransformIntersectPrimitive(primitive: AcGeIntersectPrimitive, matrix: AcGeMatrix3d): AcGeIntersectPrimitive;
59
+ /**
60
+ * Returns a deep-cloned curve primitive.
61
+ */
62
+ export declare function acgeCloneIntersectPrimitive(primitive: AcGeIntersectPrimitive): AcGeIntersectPrimitive;
63
+ export {};
64
+ //# sourceMappingURL=AcGeCurveIntersect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGeCurveIntersect.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeCurveIntersect.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,WAAW,EAEZ,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,CAAA;AAE7D,KAAK,0BAA0B,GAAG;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAC9B,CAAC,0BAA0B,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,eAAe,CAAA;CACxB,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,GAAG,EAAE,aAAa,CAAA;CACnB,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;CACrB,CAAC,CAAA;AAON;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,SAAS,sBAAsB,EAAE,EACpC,CAAC,EAAE,SAAS,sBAAsB,EAAE,EACpC,OAAO,UAAQ,EACf,OAAO,UAAQ,EACf,SAAS,CAAC,EAAE,SAAS,GACpB,WAAW,EAAE,CAWf;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,YAAY,GACnB,sBAAsB,CAgBxB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,sBAAsB,GAChC,sBAAsB,CA4BxB"}