@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
@@ -1,4 +1,5 @@
1
1
  import { AcGeBox2d, AcGeMatrix2d, AcGePoint2d, AcGePoint2dLike } from '../math';
2
+ import { type AcGeCircumcircle2d } from './AcGeCircArcUtil';
2
3
  import { AcGeCurve2d } from './AcGeCurve2d';
3
4
  /**
4
5
  * Represent a circular arc.
@@ -20,6 +21,99 @@ export declare class AcGeCircArc2d extends AcGeCurve2d {
20
21
  constructor(p1: AcGePoint2dLike, p2: AcGePoint2dLike, p3: AcGePoint2dLike);
21
22
  constructor(start: AcGePoint2dLike, end: AcGePoint2dLike, bulge: number);
22
23
  constructor(center: AcGePoint2dLike, radius: number, startAngle: number, endAngle: number, clockwise: boolean);
24
+ /**
25
+ * Create an arc from mathematical (unmirrored) polar angles.
26
+ *
27
+ * `startAngle` / `endAngle` are `atan2` angles in the XY plane (0 = +X,
28
+ * 90° = +Y). This differs from the five-argument constructor, whose angles
29
+ * are mirrored when `clockwise` is true.
30
+ *
31
+ * @param center Input arc center
32
+ * @param radius Input arc radius
33
+ * @param startAngle Input start angle in radians (`atan2`)
34
+ * @param endAngle Input end angle in radians (`atan2`)
35
+ * @param clockwise Input true to sweep clockwise from start to end
36
+ */
37
+ static fromMathAngles(center: AcGePoint2dLike, radius: number, startAngle: number, endAngle: number, clockwise: boolean): AcGeCircArc2d;
38
+ /**
39
+ * Return the circumcircle of three XY points, or `null` when they are collinear.
40
+ */
41
+ static computeCircumcircle(p1: AcGePoint2dLike, p2: AcGePoint2dLike, p3: AcGePoint2dLike): AcGeCircumcircle2d | null;
42
+ /**
43
+ * Project `point` radially onto the circle `(center, radius)`.
44
+ */
45
+ static projectPoint(center: AcGePoint2dLike, radius: number, point: AcGePoint2dLike): AcGePoint2d | null;
46
+ /**
47
+ * True when `point` lies on the circle `(center, radius)` within a radial
48
+ * tolerance (default `max(1e-6, radius * 1e-5)`).
49
+ */
50
+ static pointLiesOnCircle(point: AcGePoint2dLike, center: AcGePoint2dLike, radius: number, eps?: number): boolean;
51
+ /**
52
+ * True when two circles share the same center and radius within `eps`
53
+ * (default `1e-8`).
54
+ */
55
+ static sameCircle(center1: AcGePoint2dLike, radius1: number, center2: AcGePoint2dLike, radius2: number, eps?: number): boolean;
56
+ /**
57
+ * Lexicographic pick among nearest-point candidates: smaller `distSq` wins;
58
+ * on a near-tie, larger `align` wins.
59
+ */
60
+ static isBetterDistanceAlign(distSq: number, align: number, bestDistSq: number, bestAlign: number): boolean;
61
+ /**
62
+ * Create the unique arc from `start` through `through` to `end`.
63
+ *
64
+ * The through point selects the major or minor sweep, including arcs greater
65
+ * than 180°. Return `null` when the points are collinear.
66
+ *
67
+ * @param reverseDirection Input true to take the complementary sweep
68
+ */
69
+ static tryCreateByThreePoints(start: AcGePoint2dLike, through: AcGePoint2dLike, end: AcGePoint2dLike, reverseDirection?: boolean): AcGeCircArc2d | null;
70
+ /**
71
+ * Create a full circle from center and radius.
72
+ */
73
+ static tryCreateCircle(center: AcGePoint2dLike, radius: number): AcGeCircArc2d | null;
74
+ /**
75
+ * Create a full circle whose diameter is the segment `p1`–`p2`.
76
+ */
77
+ static tryCreateCircleByDiameter(p1: AcGePoint2dLike, p2: AcGePoint2dLike): AcGeCircArc2d | null;
78
+ /**
79
+ * Create a full circle through three non-collinear points.
80
+ */
81
+ static tryCreateCircleByThreePoints(p1: AcGePoint2dLike, p2: AcGePoint2dLike, p3: AcGePoint2dLike): AcGeCircArc2d | null;
82
+ /**
83
+ * Create the shorter arc from `start` to `end` on the circle at `center`.
84
+ */
85
+ static tryCreateShorterArc(start: AcGePoint2dLike, end: AcGePoint2dLike, center: AcGePoint2dLike): AcGeCircArc2d | null;
86
+ /**
87
+ * Create an arc from center, start, and end with an explicit orientation.
88
+ */
89
+ static tryCreateByCenterStartEnd(center: AcGePoint2dLike, start: AcGePoint2dLike, end: AcGePoint2dLike, clockwise: boolean): AcGeCircArc2d | null;
90
+ /**
91
+ * Create a center-start arc whose end is the radial projection of `rawEnd`.
92
+ */
93
+ static tryCreateByCenterStartProjectedEnd(center: AcGePoint2dLike, start: AcGePoint2dLike, rawEnd: AcGePoint2dLike, clockwise: boolean): AcGeCircArc2d | null;
94
+ /**
95
+ * Create a center-start arc from a signed included angle.
96
+ * Positive sweep is counterclockwise.
97
+ */
98
+ static tryCreateByCenterStartSweep(center: AcGePoint2dLike, start: AcGePoint2dLike, sweepRad: number): AcGeCircArc2d | null;
99
+ /**
100
+ * Create a center-start arc from a signed chord length.
101
+ */
102
+ static tryCreateByCenterStartChord(center: AcGePoint2dLike, start: AcGePoint2dLike, chordLength: number): AcGeCircArc2d | null;
103
+ /**
104
+ * Create a start-end arc from a signed included angle.
105
+ * Positive sweep is counterclockwise.
106
+ */
107
+ static tryCreateByStartEndAngle(start: AcGePoint2dLike, end: AcGePoint2dLike, sweepRad: number): AcGeCircArc2d | null;
108
+ /**
109
+ * Create a start-end arc from a tangent direction at the start point.
110
+ */
111
+ static tryCreateByStartEndDirection(start: AcGePoint2dLike, end: AcGePoint2dLike, directionRad: number): AcGeCircArc2d | null;
112
+ /**
113
+ * Create a start-end arc from a signed radius.
114
+ * Positive radius is counterclockwise.
115
+ */
116
+ static tryCreateByStartEndRadius(start: AcGePoint2dLike, end: AcGePoint2dLike, radius: number): AcGeCircArc2d | null;
23
117
  /**
24
118
  * Create arc by three points
25
119
  * @param p1 Input the start point
@@ -133,6 +227,15 @@ export declare class AcGeCircArc2d extends AcGeCurve2d {
133
227
  * @param point - Query point in WCS (XY).
134
228
  */
135
229
  nearestPoint(point: AcGePoint2dLike): AcGePoint2d;
230
+ /**
231
+ * How much `query - onCurve` points into this circular arc.
232
+ *
233
+ * Zero when `onCurve` is not an endpoint (within a relative tolerance), or
234
+ * when `query` coincides with `onCurve`. A positive value means `query` lies
235
+ * on this arc's interior side of `onCurve` — useful when two arcs share a
236
+ * vertex and nearest-point distances are equal.
237
+ */
238
+ inwardAlignment(onCurve: AcGePoint2dLike, query: AcGePoint2dLike): number;
136
239
  /**
137
240
  * Returns perpendicular snap point(s) on this arc from the given point.
138
241
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AcGeCircArc2d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc2d.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAU;gBAEhB,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe;gBAC7D,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;gBAErE,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO;IA6CpB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAmE3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,8BAA8B;IAkEtC;;OAEG;IACH,IAAI,MAAM,IAAI,WAAW,CAExB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,eAAe,EAGhC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAGvB;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,MAAM,CAIvB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAK3B;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EASzB;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,IAAI,UAAU,WAMb;IAED;;OAEG;IACH,IAAI,SAAS,IAGQ,OAAO,CAD3B;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAG3B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,WAAW,CAE5B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAS1B;IAED;;OAEG;IACH,IAAI,MAAM,YAIT;IAED;;OAEG;IACH,oBAAoB,IAAI,SAAS;IA2BjC;;OAEG;IACH,IAAI,MAAM,WAET;IAED;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY;IAoD/B;;OAEG;IACH,KAAK;IAUL;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAO3C;;;OAGG;IACH,iBAAiB,IAAI,WAAW,EAAE;IAqBlC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW;IAiCjD;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,EAAE;IAiD1D;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,EAAE;IAmCpD;;;;OAIG;IACH,SAAS,CAAC,SAAS,GAAE,MAAY,GAAG,WAAW,EAAE;CA6BlD"}
1
+ {"version":3,"file":"AcGeCircArc2d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc2d.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
52
52
  import { AcCmErrors } from '@mlightcad/common';
53
53
  import { AcGeBox2d, AcGePoint2d, AcGeVector2d } from '../math';
54
54
  import { AcGeMathUtil, TAU } from '../util';
55
+ import { acgeTryCreateArcByCenterStartChord, acgeTryCreateArcByCenterStartEnd, acgeTryCreateArcByCenterStartProjectedEnd, acgeTryCreateArcByCenterStartSweep, acgeTryCreateArcByStartEndAngle, acgeTryCreateArcByStartEndDirection, acgeTryCreateArcByStartEndRadius, acgeTryCreateArcByThreePoints, acgeTryCreateCircle, acgeTryCreateCircleByDiameter, acgeTryCreateCircleByThreePoints, acgeTryCreateShorterArc } from './AcGeCircArc2dFactory';
56
+ import { acgeComputeCircumcircle2d, acgeIsBetterDistanceAlign, acgePointLiesOnCircle2d, acgeProjectPointOntoCircle2d, acgeSameCircle2d } from './AcGeCircArcUtil';
55
57
  import { AcGeCurve2d } from './AcGeCurve2d';
56
58
  /**
57
59
  * Represent a circular arc.
@@ -101,6 +103,139 @@ var AcGeCircArc2d = /** @class */ (function (_super) {
101
103
  }
102
104
  return _this;
103
105
  }
106
+ /**
107
+ * Create an arc from mathematical (unmirrored) polar angles.
108
+ *
109
+ * `startAngle` / `endAngle` are `atan2` angles in the XY plane (0 = +X,
110
+ * 90° = +Y). This differs from the five-argument constructor, whose angles
111
+ * are mirrored when `clockwise` is true.
112
+ *
113
+ * @param center Input arc center
114
+ * @param radius Input arc radius
115
+ * @param startAngle Input start angle in radians (`atan2`)
116
+ * @param endAngle Input end angle in radians (`atan2`)
117
+ * @param clockwise Input true to sweep clockwise from start to end
118
+ */
119
+ AcGeCircArc2d.fromMathAngles = function (center, radius, startAngle, endAngle, clockwise) {
120
+ var arc = new AcGeCircArc2d(center, radius, AcGeMathUtil.normalizeAngle(startAngle), AcGeMathUtil.normalizeAngle(endAngle), false);
121
+ arc._clockwise = clockwise;
122
+ arc._boundingBoxNeedsUpdate = true;
123
+ return arc;
124
+ };
125
+ /**
126
+ * Return the circumcircle of three XY points, or `null` when they are collinear.
127
+ */
128
+ AcGeCircArc2d.computeCircumcircle = function (p1, p2, p3) {
129
+ return acgeComputeCircumcircle2d(p1, p2, p3);
130
+ };
131
+ /**
132
+ * Project `point` radially onto the circle `(center, radius)`.
133
+ */
134
+ AcGeCircArc2d.projectPoint = function (center, radius, point) {
135
+ return acgeProjectPointOntoCircle2d(center, radius, point);
136
+ };
137
+ /**
138
+ * True when `point` lies on the circle `(center, radius)` within a radial
139
+ * tolerance (default `max(1e-6, radius * 1e-5)`).
140
+ */
141
+ AcGeCircArc2d.pointLiesOnCircle = function (point, center, radius, eps) {
142
+ return acgePointLiesOnCircle2d(point, center, radius, eps);
143
+ };
144
+ /**
145
+ * True when two circles share the same center and radius within `eps`
146
+ * (default `1e-8`).
147
+ */
148
+ AcGeCircArc2d.sameCircle = function (center1, radius1, center2, radius2, eps) {
149
+ return acgeSameCircle2d(center1, radius1, center2, radius2, eps);
150
+ };
151
+ /**
152
+ * Lexicographic pick among nearest-point candidates: smaller `distSq` wins;
153
+ * on a near-tie, larger `align` wins.
154
+ */
155
+ AcGeCircArc2d.isBetterDistanceAlign = function (distSq, align, bestDistSq, bestAlign) {
156
+ return acgeIsBetterDistanceAlign(distSq, align, bestDistSq, bestAlign);
157
+ };
158
+ /**
159
+ * Create the unique arc from `start` through `through` to `end`.
160
+ *
161
+ * The through point selects the major or minor sweep, including arcs greater
162
+ * than 180°. Return `null` when the points are collinear.
163
+ *
164
+ * @param reverseDirection Input true to take the complementary sweep
165
+ */
166
+ AcGeCircArc2d.tryCreateByThreePoints = function (start, through, end, reverseDirection) {
167
+ if (reverseDirection === void 0) { reverseDirection = false; }
168
+ return acgeTryCreateArcByThreePoints(start, through, end, reverseDirection);
169
+ };
170
+ /**
171
+ * Create a full circle from center and radius.
172
+ */
173
+ AcGeCircArc2d.tryCreateCircle = function (center, radius) {
174
+ return acgeTryCreateCircle(center, radius);
175
+ };
176
+ /**
177
+ * Create a full circle whose diameter is the segment `p1`–`p2`.
178
+ */
179
+ AcGeCircArc2d.tryCreateCircleByDiameter = function (p1, p2) {
180
+ return acgeTryCreateCircleByDiameter(p1, p2);
181
+ };
182
+ /**
183
+ * Create a full circle through three non-collinear points.
184
+ */
185
+ AcGeCircArc2d.tryCreateCircleByThreePoints = function (p1, p2, p3) {
186
+ return acgeTryCreateCircleByThreePoints(p1, p2, p3);
187
+ };
188
+ /**
189
+ * Create the shorter arc from `start` to `end` on the circle at `center`.
190
+ */
191
+ AcGeCircArc2d.tryCreateShorterArc = function (start, end, center) {
192
+ return acgeTryCreateShorterArc(start, end, center);
193
+ };
194
+ /**
195
+ * Create an arc from center, start, and end with an explicit orientation.
196
+ */
197
+ AcGeCircArc2d.tryCreateByCenterStartEnd = function (center, start, end, clockwise) {
198
+ return acgeTryCreateArcByCenterStartEnd(center, start, end, clockwise);
199
+ };
200
+ /**
201
+ * Create a center-start arc whose end is the radial projection of `rawEnd`.
202
+ */
203
+ AcGeCircArc2d.tryCreateByCenterStartProjectedEnd = function (center, start, rawEnd, clockwise) {
204
+ return acgeTryCreateArcByCenterStartProjectedEnd(center, start, rawEnd, clockwise);
205
+ };
206
+ /**
207
+ * Create a center-start arc from a signed included angle.
208
+ * Positive sweep is counterclockwise.
209
+ */
210
+ AcGeCircArc2d.tryCreateByCenterStartSweep = function (center, start, sweepRad) {
211
+ return acgeTryCreateArcByCenterStartSweep(center, start, sweepRad);
212
+ };
213
+ /**
214
+ * Create a center-start arc from a signed chord length.
215
+ */
216
+ AcGeCircArc2d.tryCreateByCenterStartChord = function (center, start, chordLength) {
217
+ return acgeTryCreateArcByCenterStartChord(center, start, chordLength);
218
+ };
219
+ /**
220
+ * Create a start-end arc from a signed included angle.
221
+ * Positive sweep is counterclockwise.
222
+ */
223
+ AcGeCircArc2d.tryCreateByStartEndAngle = function (start, end, sweepRad) {
224
+ return acgeTryCreateArcByStartEndAngle(start, end, sweepRad);
225
+ };
226
+ /**
227
+ * Create a start-end arc from a tangent direction at the start point.
228
+ */
229
+ AcGeCircArc2d.tryCreateByStartEndDirection = function (start, end, directionRad) {
230
+ return acgeTryCreateArcByStartEndDirection(start, end, directionRad);
231
+ };
232
+ /**
233
+ * Create a start-end arc from a signed radius.
234
+ * Positive radius is counterclockwise.
235
+ */
236
+ AcGeCircArc2d.tryCreateByStartEndRadius = function (start, end, radius) {
237
+ return acgeTryCreateArcByStartEndRadius(start, end, radius);
238
+ };
104
239
  /**
105
240
  * Create arc by three points
106
241
  * @param p1 Input the start point
@@ -108,44 +243,15 @@ var AcGeCircArc2d = /** @class */ (function (_super) {
108
243
  * @param p3 Input the end point
109
244
  */
110
245
  AcGeCircArc2d.prototype.createByThreePoints = function (p1, p2, p3) {
111
- var midpoint = function (p1, p2) { return ({
112
- x: (p1.x + p2.x) / 2,
113
- y: (p1.y + p2.y) / 2
114
- }); };
115
- var slope = function (p1, p2) {
116
- return (p2.y - p1.y) / (p2.x - p1.x);
117
- };
118
- var perpSlope = function (m) { return -1 / m; };
119
- var midpoint1 = midpoint(p1, p2);
120
- var midpoint2 = midpoint(p2, p3);
121
- var slope1 = slope(p1, p2);
122
- var slope2 = slope(p2, p3);
123
- var perpSlope1 = perpSlope(slope1);
124
- var perpSlope2 = perpSlope(slope2);
125
- var intersect = function (m1, b1, m2, b2) {
126
- var x = (b2 - b1) / (m1 - m2);
127
- var y = m1 * x + b1;
128
- return { x: x, y: y };
129
- };
130
- var b1 = midpoint1.y - perpSlope1 * midpoint1.x;
131
- var b2 = midpoint2.y - perpSlope2 * midpoint2.x;
132
- var center = intersect(perpSlope1, b1, perpSlope2, b2);
133
- var radius = Math.sqrt(Math.pow(p1.x - center.x, 2) + Math.pow(p1.y - center.y, 2));
134
- var angle = function (p, center) {
135
- return Math.atan2(p.y - center.y, p.x - center.x);
136
- };
137
- var startAngle = angle(p1, center);
138
- var midAngle = angle(p2, center);
139
- var endAngle = angle(p3, center);
140
- var isCounterclockwise = (endAngle > startAngle && endAngle < midAngle) ||
141
- (startAngle > endAngle && startAngle < midAngle) ||
142
- (midAngle > endAngle && midAngle < startAngle);
143
- this.center = center;
144
- this.radius = radius;
145
- this._clockwise = !isCounterclockwise;
146
- // Store internal angles (unmirrored)
147
- this._startAngle = startAngle;
148
- this._endAngle = endAngle;
246
+ var arc = acgeTryCreateArcByThreePoints(p1, p2, p3);
247
+ if (!arc)
248
+ throw AcCmErrors.ILLEGAL_PARAMETERS;
249
+ this.center = arc.center;
250
+ this.radius = arc.radius;
251
+ this._clockwise = arc._clockwise;
252
+ this._startAngle = arc._startAngle;
253
+ this._endAngle = arc._endAngle;
254
+ this._boundingBoxNeedsUpdate = true;
149
255
  };
150
256
  /**
151
257
  * Create circular arc by two points and one bugle factor
@@ -524,6 +630,36 @@ var AcGeCircArc2d = /** @class */ (function (_super) {
524
630
  var dEnd = p.distanceToSquared(this.endPoint);
525
631
  return dStart <= dEnd ? this.startPoint.clone() : this.endPoint.clone();
526
632
  };
633
+ /**
634
+ * How much `query - onCurve` points into this circular arc.
635
+ *
636
+ * Zero when `onCurve` is not an endpoint (within a relative tolerance), or
637
+ * when `query` coincides with `onCurve`. A positive value means `query` lies
638
+ * on this arc's interior side of `onCurve` — useful when two arcs share a
639
+ * vertex and nearest-point distances are equal.
640
+ */
641
+ AcGeCircArc2d.prototype.inwardAlignment = function (onCurve, query) {
642
+ var mx = query.x - onCurve.x;
643
+ var my = query.y - onCurve.y;
644
+ if (mx * mx + my * my < 1e-24)
645
+ return 0;
646
+ var r = this.radius > 0 ? this.radius : 1;
647
+ var endTolSq = Math.max(1e-16, 1e-12 * r * r);
648
+ var atStart = this.startPoint.distanceToSquared(onCurve) <= endTolSq;
649
+ var atEnd = this.endPoint.distanceToSquared(onCurve) <= endTolSq;
650
+ if (!atStart && !atEnd)
651
+ return 0;
652
+ var pts = this.getPoints(8);
653
+ if (pts.length < 3)
654
+ return 0;
655
+ var inward = atStart && !atEnd ? pts[1] : pts[pts.length - 2];
656
+ var ix = inward.x - onCurve.x;
657
+ var iy = inward.y - onCurve.y;
658
+ var ilen = Math.hypot(ix, iy);
659
+ if (!(ilen > 1e-18))
660
+ return 0;
661
+ return (mx * ix + my * iy) / ilen;
662
+ };
527
663
  /**
528
664
  * Returns perpendicular snap point(s) on this arc from the given point.
529
665
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AcGeCircArc2d.js","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcGeCircArc2d.js","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc2d.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { AcGePoint2dLike } from '../math';
2
+ import { AcGeCircArc2d } from './AcGeCircArc2d';
3
+ /**
4
+ * Create the unique circular arc from `start` through `through` to `end`.
5
+ *
6
+ * When `reverseDirection` is true, the complementary sweep between the same
7
+ * endpoints is returned (AutoCAD Ctrl-toggle).
8
+ */
9
+ export declare function acgeTryCreateArcByThreePoints(start: AcGePoint2dLike, through: AcGePoint2dLike, end: AcGePoint2dLike, reverseDirection?: boolean): AcGeCircArc2d | null;
10
+ /**
11
+ * Create a full circle from center and radius.
12
+ */
13
+ export declare function acgeTryCreateCircle(center: AcGePoint2dLike, radius: number): AcGeCircArc2d | null;
14
+ /**
15
+ * Create a full circle whose diameter is the segment `p1`–`p2`.
16
+ */
17
+ export declare function acgeTryCreateCircleByDiameter(p1: AcGePoint2dLike, p2: AcGePoint2dLike): AcGeCircArc2d | null;
18
+ /**
19
+ * Create a full circle through three non-collinear points.
20
+ */
21
+ export declare function acgeTryCreateCircleByThreePoints(p1: AcGePoint2dLike, p2: AcGePoint2dLike, p3: AcGePoint2dLike): AcGeCircArc2d | null;
22
+ /**
23
+ * Create the shorter arc from `start` to `end` on the circle at `center`.
24
+ */
25
+ export declare function acgeTryCreateShorterArc(start: AcGePoint2dLike, end: AcGePoint2dLike, center: AcGePoint2dLike): AcGeCircArc2d | null;
26
+ /**
27
+ * Create an arc from center, start, and end with an explicit orientation.
28
+ */
29
+ export declare function acgeTryCreateArcByCenterStartEnd(center: AcGePoint2dLike, start: AcGePoint2dLike, end: AcGePoint2dLike, clockwise: boolean): AcGeCircArc2d | null;
30
+ /**
31
+ * Create a center-start arc whose end is the radial projection of `rawEnd`.
32
+ */
33
+ export declare function acgeTryCreateArcByCenterStartProjectedEnd(center: AcGePoint2dLike, start: AcGePoint2dLike, rawEnd: AcGePoint2dLike, clockwise: boolean): AcGeCircArc2d | null;
34
+ /**
35
+ * Create a center-start arc from a signed included angle.
36
+ * Positive sweep is counterclockwise.
37
+ */
38
+ export declare function acgeTryCreateArcByCenterStartSweep(center: AcGePoint2dLike, start: AcGePoint2dLike, sweepRad: number): AcGeCircArc2d | null;
39
+ /**
40
+ * Create a center-start arc from a signed chord length.
41
+ */
42
+ export declare function acgeTryCreateArcByCenterStartChord(center: AcGePoint2dLike, start: AcGePoint2dLike, chordLength: number): AcGeCircArc2d | null;
43
+ /**
44
+ * Create a start-end arc from a signed included angle.
45
+ * Positive sweep is counterclockwise.
46
+ */
47
+ export declare function acgeTryCreateArcByStartEndAngle(start: AcGePoint2dLike, end: AcGePoint2dLike, sweepRad: number): AcGeCircArc2d | null;
48
+ /**
49
+ * Create a start-end arc from a tangent direction at the start point.
50
+ */
51
+ export declare function acgeTryCreateArcByStartEndDirection(start: AcGePoint2dLike, end: AcGePoint2dLike, directionRad: number): AcGeCircArc2d | null;
52
+ /**
53
+ * Create a start-end arc from a signed radius.
54
+ * Positive radius is counterclockwise (+Z).
55
+ */
56
+ export declare function acgeTryCreateArcByStartEndRadius(start: AcGePoint2dLike, end: AcGePoint2dLike, radiusInput: number): AcGeCircArc2d | null;
57
+ //# sourceMappingURL=AcGeCircArc2dFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcGeCircArc2dFactory.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc2dFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAQ/C;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE,eAAe,EACpB,gBAAgB,GAAE,OAAe,GAChC,aAAa,GAAG,IAAI,CAmBtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,IAAI,CAGtB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,eAAe,EACnB,EAAE,EAAE,eAAe,GAClB,aAAa,GAAG,IAAI,CAOtB;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,eAAe,EACnB,EAAE,EAAE,eAAe,EACnB,EAAE,EAAE,eAAe,GAClB,aAAa,GAAG,IAAI,CAItB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,eAAe,GACtB,aAAa,GAAG,IAAI,CAatB;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,OAAO,GACjB,aAAa,GAAG,IAAI,CAkBtB;AAED;;GAEG;AACH,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,OAAO,GACjB,aAAa,GAAG,IAAI,CAMtB;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,MAAM,GACf,aAAa,GAAG,IAAI,CAoBtB;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,MAAM,GAClB,aAAa,GAAG,IAAI,CAiBtB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,MAAM,GACf,aAAa,GAAG,IAAI,CAyCtB;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,eAAe,EACpB,YAAY,EAAE,MAAM,GACnB,aAAa,GAAG,IAAI,CAuBtB;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,MAAM,GAClB,aAAa,GAAG,IAAI,CAwBtB"}