@mlightcad/geometry-engine 3.0.3 → 3.0.4

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 (159) hide show
  1. package/package.json +2 -2
  2. package/dist/geometry-engine.js +0 -10702
  3. package/dist/geometry-engine.umd.cjs +0 -4
  4. package/lib/geometry/AcGeArea2d.d.ts +0 -61
  5. package/lib/geometry/AcGeArea2d.d.ts.map +0 -1
  6. package/lib/geometry/AcGeArea2d.js +0 -174
  7. package/lib/geometry/AcGeArea2d.js.map +0 -1
  8. package/lib/geometry/AcGeCatmullRomCurve3d.d.ts +0 -146
  9. package/lib/geometry/AcGeCatmullRomCurve3d.d.ts.map +0 -1
  10. package/lib/geometry/AcGeCatmullRomCurve3d.js +0 -358
  11. package/lib/geometry/AcGeCatmullRomCurve3d.js.map +0 -1
  12. package/lib/geometry/AcGeCircArc2d.d.ts +0 -132
  13. package/lib/geometry/AcGeCircArc2d.d.ts.map +0 -1
  14. package/lib/geometry/AcGeCircArc2d.js +0 -473
  15. package/lib/geometry/AcGeCircArc2d.js.map +0 -1
  16. package/lib/geometry/AcGeCircArc3d.d.ts +0 -138
  17. package/lib/geometry/AcGeCircArc3d.d.ts.map +0 -1
  18. package/lib/geometry/AcGeCircArc3d.js +0 -447
  19. package/lib/geometry/AcGeCircArc3d.js.map +0 -1
  20. package/lib/geometry/AcGeCurve2d.d.ts +0 -85
  21. package/lib/geometry/AcGeCurve2d.d.ts.map +0 -1
  22. package/lib/geometry/AcGeCurve2d.js +0 -213
  23. package/lib/geometry/AcGeCurve2d.js.map +0 -1
  24. package/lib/geometry/AcGeCurve3d.d.ts +0 -27
  25. package/lib/geometry/AcGeCurve3d.d.ts.map +0 -1
  26. package/lib/geometry/AcGeCurve3d.js +0 -29
  27. package/lib/geometry/AcGeCurve3d.js.map +0 -1
  28. package/lib/geometry/AcGeEllipseArc2d.d.ts +0 -105
  29. package/lib/geometry/AcGeEllipseArc2d.d.ts.map +0 -1
  30. package/lib/geometry/AcGeEllipseArc2d.js +0 -292
  31. package/lib/geometry/AcGeEllipseArc2d.js.map +0 -1
  32. package/lib/geometry/AcGeEllipseArc3d.d.ts +0 -142
  33. package/lib/geometry/AcGeEllipseArc3d.d.ts.map +0 -1
  34. package/lib/geometry/AcGeEllipseArc3d.js +0 -459
  35. package/lib/geometry/AcGeEllipseArc3d.js.map +0 -1
  36. package/lib/geometry/AcGeLine2d.d.ts +0 -56
  37. package/lib/geometry/AcGeLine2d.d.ts.map +0 -1
  38. package/lib/geometry/AcGeLine2d.js +0 -125
  39. package/lib/geometry/AcGeLine2d.js.map +0 -1
  40. package/lib/geometry/AcGeLine3d.d.ts +0 -134
  41. package/lib/geometry/AcGeLine3d.d.ts.map +0 -1
  42. package/lib/geometry/AcGeLine3d.js +0 -291
  43. package/lib/geometry/AcGeLine3d.js.map +0 -1
  44. package/lib/geometry/AcGeLoop2d.d.ts +0 -59
  45. package/lib/geometry/AcGeLoop2d.d.ts.map +0 -1
  46. package/lib/geometry/AcGeLoop2d.js +0 -141
  47. package/lib/geometry/AcGeLoop2d.js.map +0 -1
  48. package/lib/geometry/AcGeNurbsCurve.d.ts +0 -73
  49. package/lib/geometry/AcGeNurbsCurve.d.ts.map +0 -1
  50. package/lib/geometry/AcGeNurbsCurve.js +0 -172
  51. package/lib/geometry/AcGeNurbsCurve.js.map +0 -1
  52. package/lib/geometry/AcGePolyline2d.d.ts +0 -90
  53. package/lib/geometry/AcGePolyline2d.d.ts.map +0 -1
  54. package/lib/geometry/AcGePolyline2d.js +0 -224
  55. package/lib/geometry/AcGePolyline2d.js.map +0 -1
  56. package/lib/geometry/AcGeShape.d.ts +0 -12
  57. package/lib/geometry/AcGeShape.d.ts.map +0 -1
  58. package/lib/geometry/AcGeShape.js +0 -22
  59. package/lib/geometry/AcGeShape.js.map +0 -1
  60. package/lib/geometry/AcGeShape2d.d.ts +0 -31
  61. package/lib/geometry/AcGeShape2d.d.ts.map +0 -1
  62. package/lib/geometry/AcGeShape2d.js +0 -51
  63. package/lib/geometry/AcGeShape2d.js.map +0 -1
  64. package/lib/geometry/AcGeShape3d.d.ts +0 -33
  65. package/lib/geometry/AcGeShape3d.d.ts.map +0 -1
  66. package/lib/geometry/AcGeShape3d.js +0 -52
  67. package/lib/geometry/AcGeShape3d.js.map +0 -1
  68. package/lib/geometry/AcGeSpline3d.d.ts +0 -99
  69. package/lib/geometry/AcGeSpline3d.d.ts.map +0 -1
  70. package/lib/geometry/AcGeSpline3d.js +0 -350
  71. package/lib/geometry/AcGeSpline3d.js.map +0 -1
  72. package/lib/geometry/index.d.ts +0 -15
  73. package/lib/geometry/index.d.ts.map +0 -1
  74. package/lib/geometry/index.js +0 -15
  75. package/lib/geometry/index.js.map +0 -1
  76. package/lib/index.d.ts +0 -4
  77. package/lib/index.d.ts.map +0 -1
  78. package/lib/index.js +0 -4
  79. package/lib/index.js.map +0 -1
  80. package/lib/math/AcGeBox2d.d.ts +0 -173
  81. package/lib/math/AcGeBox2d.d.ts.map +0 -1
  82. package/lib/math/AcGeBox2d.js +0 -289
  83. package/lib/math/AcGeBox2d.js.map +0 -1
  84. package/lib/math/AcGeBox3d.d.ts +0 -195
  85. package/lib/math/AcGeBox3d.d.ts.map +0 -1
  86. package/lib/math/AcGeBox3d.js +0 -378
  87. package/lib/math/AcGeBox3d.js.map +0 -1
  88. package/lib/math/AcGeEuler.d.ts +0 -133
  89. package/lib/math/AcGeEuler.d.ts.map +0 -1
  90. package/lib/math/AcGeEuler.js +0 -358
  91. package/lib/math/AcGeEuler.js.map +0 -1
  92. package/lib/math/AcGeMatrix2d.d.ts +0 -203
  93. package/lib/math/AcGeMatrix2d.d.ts.map +0 -1
  94. package/lib/math/AcGeMatrix2d.js +0 -393
  95. package/lib/math/AcGeMatrix2d.js.map +0 -1
  96. package/lib/math/AcGeMatrix3d.d.ts +0 -279
  97. package/lib/math/AcGeMatrix3d.d.ts.map +0 -1
  98. package/lib/math/AcGeMatrix3d.js +0 -1037
  99. package/lib/math/AcGeMatrix3d.js.map +0 -1
  100. package/lib/math/AcGePlane.d.ts +0 -131
  101. package/lib/math/AcGePlane.d.ts.map +0 -1
  102. package/lib/math/AcGePlane.js +0 -218
  103. package/lib/math/AcGePlane.js.map +0 -1
  104. package/lib/math/AcGePoint.d.ts +0 -4
  105. package/lib/math/AcGePoint.d.ts.map +0 -1
  106. package/lib/math/AcGePoint.js +0 -2
  107. package/lib/math/AcGePoint.js.map +0 -1
  108. package/lib/math/AcGePoint2d.d.ts +0 -17
  109. package/lib/math/AcGePoint2d.d.ts.map +0 -1
  110. package/lib/math/AcGePoint2d.js +0 -40
  111. package/lib/math/AcGePoint2d.js.map +0 -1
  112. package/lib/math/AcGePoint3d.d.ts +0 -18
  113. package/lib/math/AcGePoint3d.d.ts.map +0 -1
  114. package/lib/math/AcGePoint3d.js +0 -43
  115. package/lib/math/AcGePoint3d.js.map +0 -1
  116. package/lib/math/AcGeQuaternion.d.ts +0 -230
  117. package/lib/math/AcGeQuaternion.d.ts.map +0 -1
  118. package/lib/math/AcGeQuaternion.js +0 -666
  119. package/lib/math/AcGeQuaternion.js.map +0 -1
  120. package/lib/math/AcGeVector.d.ts +0 -9
  121. package/lib/math/AcGeVector.d.ts.map +0 -1
  122. package/lib/math/AcGeVector.js +0 -2
  123. package/lib/math/AcGeVector.js.map +0 -1
  124. package/lib/math/AcGeVector2d.d.ts +0 -361
  125. package/lib/math/AcGeVector2d.d.ts.map +0 -1
  126. package/lib/math/AcGeVector2d.js +0 -622
  127. package/lib/math/AcGeVector2d.js.map +0 -1
  128. package/lib/math/AcGeVector3d.d.ts +0 -493
  129. package/lib/math/AcGeVector3d.d.ts.map +0 -1
  130. package/lib/math/AcGeVector3d.js +0 -868
  131. package/lib/math/AcGeVector3d.js.map +0 -1
  132. package/lib/math/index.d.ts +0 -14
  133. package/lib/math/index.d.ts.map +0 -1
  134. package/lib/math/index.js +0 -14
  135. package/lib/math/index.js.map +0 -1
  136. package/lib/util/AcGeConstants.d.ts +0 -19
  137. package/lib/util/AcGeConstants.d.ts.map +0 -1
  138. package/lib/util/AcGeConstants.js +0 -25
  139. package/lib/util/AcGeConstants.js.map +0 -1
  140. package/lib/util/AcGeGeometryUtil.d.ts +0 -16
  141. package/lib/util/AcGeGeometryUtil.d.ts.map +0 -1
  142. package/lib/util/AcGeGeometryUtil.js +0 -56
  143. package/lib/util/AcGeGeometryUtil.js.map +0 -1
  144. package/lib/util/AcGeMathUtil.d.ts +0 -203
  145. package/lib/util/AcGeMathUtil.d.ts.map +0 -1
  146. package/lib/util/AcGeMathUtil.js +0 -585
  147. package/lib/util/AcGeMathUtil.js.map +0 -1
  148. package/lib/util/AcGeNurbsUtil.d.ts +0 -34
  149. package/lib/util/AcGeNurbsUtil.d.ts.map +0 -1
  150. package/lib/util/AcGeNurbsUtil.js +0 -218
  151. package/lib/util/AcGeNurbsUtil.js.map +0 -1
  152. package/lib/util/AcGeTol.d.ts +0 -91
  153. package/lib/util/AcGeTol.d.ts.map +0 -1
  154. package/lib/util/AcGeTol.js +0 -83
  155. package/lib/util/AcGeTol.js.map +0 -1
  156. package/lib/util/index.d.ts +0 -6
  157. package/lib/util/index.d.ts.map +0 -1
  158. package/lib/util/index.js +0 -6
  159. package/lib/util/index.js.map +0 -1
@@ -1,473 +0,0 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
- var __values = (this && this.__values) || function(o) {
17
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
18
- if (m) return m.call(o);
19
- if (o && typeof o.length === "number") return {
20
- next: function () {
21
- if (o && i >= o.length) o = void 0;
22
- return { value: o && o[i++], done: !o };
23
- }
24
- };
25
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
26
- };
27
- var __read = (this && this.__read) || function (o, n) {
28
- var m = typeof Symbol === "function" && o[Symbol.iterator];
29
- if (!m) return o;
30
- var i = m.call(o), r, ar = [], e;
31
- try {
32
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
33
- }
34
- catch (error) { e = { error: error }; }
35
- finally {
36
- try {
37
- if (r && !r.done && (m = i["return"])) m.call(i);
38
- }
39
- finally { if (e) throw e.error; }
40
- }
41
- return ar;
42
- };
43
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
44
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
45
- if (ar || !(i in from)) {
46
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
47
- ar[i] = from[i];
48
- }
49
- }
50
- return to.concat(ar || Array.prototype.slice.call(from));
51
- };
52
- import { AcCmErrors } from '@mlightcad/common';
53
- import { AcGeBox2d, AcGePoint2d, AcGeVector2d } from '../math';
54
- import { AcGeMathUtil, TAU } from '../util';
55
- import { AcGeCurve2d } from './AcGeCurve2d';
56
- /**
57
- * Represent a circular arc.
58
- *
59
- * The angle system behavior depends on the clockwise property:
60
- * - If clockwise = false (counterclockwise): Angles are stored in normal mathematical sense
61
- * (0° = +X axis, 90° = +Y axis, 180° = -X axis, 270° = -Y axis)
62
- * - If clockwise = true: Angles are stored in a mirrored system where positive angles go clockwise
63
- * (0° = +X axis, 270° = +Y axis, 180° = -X axis, 90° = -Y axis)
64
- *
65
- * This means a "90° above X axis" in counterclockwise mode becomes "270°" in clockwise mode.
66
- */
67
- var AcGeCircArc2d = /** @class */ (function (_super) {
68
- __extends(AcGeCircArc2d, _super);
69
- function AcGeCircArc2d(a, b, c, d, e) {
70
- var _this = _super.call(this) || this;
71
- var argsLength = +(a !== undefined) +
72
- +(b !== undefined) +
73
- +(c !== undefined) +
74
- +(d !== undefined) +
75
- +(e !== undefined);
76
- if (argsLength == 3) {
77
- if (typeof a == 'object' &&
78
- typeof b == 'object' &&
79
- typeof c == 'object') {
80
- _this.createByThreePoints(a, b, c);
81
- }
82
- else {
83
- _this.createByStartEndPointsAndBulge(a, b, c);
84
- }
85
- }
86
- else if (argsLength == 5) {
87
- var center = a;
88
- _this.center = new AcGePoint2d(center.x, center.y);
89
- _this.radius = b;
90
- _this._clockwise = e;
91
- // Store internal angles (unmirrored)
92
- _this._startAngle = _this._clockwise
93
- ? _this._mirrorAngle(AcGeMathUtil.normalizeAngle(c))
94
- : AcGeMathUtil.normalizeAngle(c);
95
- _this._endAngle = _this._clockwise
96
- ? _this._mirrorAngle(AcGeMathUtil.normalizeAngle(d))
97
- : AcGeMathUtil.normalizeAngle(d);
98
- }
99
- else {
100
- throw AcCmErrors.ILLEGAL_PARAMETERS;
101
- }
102
- return _this;
103
- }
104
- /**
105
- * Create arc by three points
106
- * @param p1 Input the start point
107
- * @param p2 Input one point between the start point and the end point
108
- * @param p3 Input the end point
109
- */
110
- 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;
149
- };
150
- /**
151
- * Create circular arc by two points and one bugle factor
152
- * @param from Input start point
153
- * @param to Input end point
154
- * @param bulge Input the bulge factor used to indicate how much of an arc segment is present at this
155
- * vertex. The bulge factor is the tangent of one fourth the included angle for an arc segment, made
156
- * negative if the arc goes clockwise from the start point to the endpoint. A bulge of 0 indicates a
157
- * straight segment, and a bulge of 1 is a semicircle. Get more details from the following links.
158
- * - https://ezdxf.readthedocs.io/en/stable/dxfentities/lwpolyline.html
159
- * - https://www.afralisp.net/archive/lisp/Bulges1.htm
160
- */
161
- AcGeCircArc2d.prototype.createByStartEndPointsAndBulge = function (from, to, bulge) {
162
- var theta;
163
- var a;
164
- var b;
165
- if (bulge < 0) {
166
- theta = Math.atan(-bulge) * 4;
167
- a = new AcGeVector2d(from);
168
- b = new AcGeVector2d(to);
169
- }
170
- else {
171
- // Default is counter-clockwise
172
- theta = Math.atan(bulge) * 4;
173
- a = new AcGeVector2d(to);
174
- b = new AcGeVector2d(from);
175
- }
176
- var ab = new AcGeVector2d().subVectors(b, a);
177
- var lengthAB = ab.length();
178
- var c = new AcGeVector2d().addVectors(a, ab.multiplyScalar(0.5));
179
- // Distance from center of arc to line between form and to points
180
- var lengthCD = Math.abs(lengthAB / 2 / Math.tan(theta / 2));
181
- var normAB = ab.normalize();
182
- var d;
183
- if (theta < Math.PI) {
184
- var normDC = new AcGeVector2d(normAB.x * Math.cos(Math.PI / 2) - normAB.y * Math.sin(Math.PI / 2), normAB.y * Math.cos(Math.PI / 2) + normAB.x * Math.sin(Math.PI / 2));
185
- // d is the center of the arc
186
- d = c.add(normDC.multiplyScalar(-lengthCD));
187
- }
188
- else {
189
- var normCD = new AcGeVector2d(normAB.x * Math.cos(Math.PI / 2) - normAB.y * Math.sin(Math.PI / 2), normAB.y * Math.cos(Math.PI / 2) + normAB.x * Math.sin(Math.PI / 2));
190
- // d is the center of the arc
191
- d = c.add(normCD.multiplyScalar(lengthCD));
192
- }
193
- // Add points between start start and eng angle relative
194
- // to the center point
195
- if (bulge < 0) {
196
- this._startAngle = Math.atan2(a.y - d.y, a.x - d.x);
197
- this._endAngle = Math.atan2(b.y - d.y, b.x - d.x);
198
- }
199
- else {
200
- this._startAngle = Math.atan2(b.y - d.y, b.x - d.x);
201
- this._endAngle = Math.atan2(a.y - d.y, a.x - d.x);
202
- }
203
- this._clockwise = bulge < 0;
204
- this.center = d;
205
- this.radius = b.sub(d).length();
206
- };
207
- Object.defineProperty(AcGeCircArc2d.prototype, "center", {
208
- /**
209
- * Center of circular arc
210
- */
211
- get: function () {
212
- return this._center;
213
- },
214
- set: function (value) {
215
- this._center = new AcGePoint2d(value.x, value.y);
216
- this._boundingBoxNeedsUpdate = true;
217
- },
218
- enumerable: false,
219
- configurable: true
220
- });
221
- Object.defineProperty(AcGeCircArc2d.prototype, "radius", {
222
- /**
223
- * Radius of circular arc
224
- */
225
- get: function () {
226
- return this._radius;
227
- },
228
- set: function (value) {
229
- this._radius = value;
230
- this._boundingBoxNeedsUpdate = true;
231
- },
232
- enumerable: false,
233
- configurable: true
234
- });
235
- Object.defineProperty(AcGeCircArc2d.prototype, "startAngle", {
236
- /**
237
- * Start angle in radians of circular arc in the range 0 to 2 * PI.
238
- * If clockwise=true, angles are mirrored (0 = +X, 270° = +Y, 180° = -X, 90° = -Y).
239
- * If clockwise=false, angles are in normal mathematical sense (0 = +X, 90° = +Y, 180° = -X, 270° = -Y).
240
- */
241
- get: function () {
242
- return this._clockwise
243
- ? this._mirrorAngle(this._startAngle)
244
- : this._startAngle;
245
- },
246
- set: function (value) {
247
- this._startAngle = this._clockwise
248
- ? this._mirrorAngle(AcGeMathUtil.normalizeAngle(value))
249
- : AcGeMathUtil.normalizeAngle(value);
250
- this._boundingBoxNeedsUpdate = true;
251
- },
252
- enumerable: false,
253
- configurable: true
254
- });
255
- Object.defineProperty(AcGeCircArc2d.prototype, "endAngle", {
256
- /**
257
- * End angle in radians of circular arc in the range 0 to 2 * PI.
258
- * If clockwise=true, angles are mirrored (0 = +X, 270° = +Y, 180° = -X, 90° = -Y).
259
- * If clockwise=false, angles are in normal mathematical sense (0 = +X, 90° = +Y, 180° = -X, 270° = -Y).
260
- */
261
- get: function () {
262
- return this._clockwise ? this._mirrorAngle(this._endAngle) : this._endAngle;
263
- },
264
- set: function (value) {
265
- var normalizedValue = this.startAngle == 0 && value == TAU
266
- ? value
267
- : AcGeMathUtil.normalizeAngle(value);
268
- this._endAngle = this._clockwise
269
- ? this._mirrorAngle(normalizedValue)
270
- : normalizedValue;
271
- this._boundingBoxNeedsUpdate = true;
272
- },
273
- enumerable: false,
274
- configurable: true
275
- });
276
- /**
277
- * Mirror an angle for clockwise mode: 0° stays 0°, 90° becomes 270°, 180° stays 180°, 270° becomes 90°
278
- * @param angle Input angle in radians
279
- * @returns Mirrored angle in radians
280
- */
281
- AcGeCircArc2d.prototype._mirrorAngle = function (angle) {
282
- // Convert to degrees for easier calculation
283
- var degrees = (angle * 180) / Math.PI;
284
- // Mirror: 0°→0°, 90°→270°, 180°→180°, 270°→90°
285
- var mirroredDegrees = (360 - degrees) % 360;
286
- return (mirroredDegrees * Math.PI) / 180;
287
- };
288
- /**
289
- * Get the internal (unmirrored) angle for calculations
290
- * @param angle Input angle (may be mirrored)
291
- * @returns Internal angle for calculations
292
- */
293
- AcGeCircArc2d.prototype._getInternalAngle = function (angle) {
294
- return this._clockwise ? this._mirrorAngle(angle) : angle;
295
- };
296
- Object.defineProperty(AcGeCircArc2d.prototype, "deltaAngle", {
297
- /**
298
- * Angle between endAngle and startAngle in range 0 to 2*PI
299
- */
300
- get: function () {
301
- var internalStartAngle = this._getInternalAngle(this.startAngle);
302
- var internalEndAngle = this._getInternalAngle(this.endAngle);
303
- return this.clockwise
304
- ? AcGeMathUtil.normalizeAngle(internalStartAngle - internalEndAngle)
305
- : AcGeMathUtil.normalizeAngle(internalEndAngle - internalStartAngle);
306
- },
307
- enumerable: false,
308
- configurable: true
309
- });
310
- Object.defineProperty(AcGeCircArc2d.prototype, "clockwise", {
311
- /**
312
- * Rotation direction of the arc.
313
- */
314
- get: function () {
315
- return this._clockwise;
316
- },
317
- set: function (value) {
318
- this._clockwise = value;
319
- this._boundingBoxNeedsUpdate = true;
320
- },
321
- enumerable: false,
322
- configurable: true
323
- });
324
- Object.defineProperty(AcGeCircArc2d.prototype, "startPoint", {
325
- /**
326
- * Start point of circular arc
327
- */
328
- get: function () {
329
- return this.getPointAtAngle(this.startAngle);
330
- },
331
- enumerable: false,
332
- configurable: true
333
- });
334
- Object.defineProperty(AcGeCircArc2d.prototype, "endPoint", {
335
- /**
336
- * End point of circular arc
337
- */
338
- get: function () {
339
- return this.getPointAtAngle(this.endAngle);
340
- },
341
- enumerable: false,
342
- configurable: true
343
- });
344
- Object.defineProperty(AcGeCircArc2d.prototype, "midPoint", {
345
- /**
346
- * Middle point of circular arc
347
- */
348
- get: function () {
349
- var internalStartAngle = this._getInternalAngle(this.startAngle);
350
- var internalEndAngle = this._getInternalAngle(this.endAngle);
351
- var internalMidAngle = AcGeMathUtil.normalizeAngle((internalStartAngle + internalEndAngle) / 2);
352
- var midAngle = this._clockwise
353
- ? this._mirrorAngle(internalMidAngle)
354
- : internalMidAngle;
355
- return this.getPointAtAngle(midAngle);
356
- },
357
- enumerable: false,
358
- configurable: true
359
- });
360
- Object.defineProperty(AcGeCircArc2d.prototype, "closed", {
361
- /**
362
- * Return true if its start point is identical to its end point. Otherwise, return false.
363
- */
364
- get: function () {
365
- var internalStartAngle = this._getInternalAngle(this.startAngle);
366
- var internalEndAngle = this._getInternalAngle(this.endAngle);
367
- return (Math.abs(internalEndAngle - internalStartAngle) / Math.PI) % 2 == 0;
368
- },
369
- enumerable: false,
370
- configurable: true
371
- });
372
- /**
373
- * @inheritdoc
374
- */
375
- AcGeCircArc2d.prototype.calculateBoundingBox = function () {
376
- var e_1, _a;
377
- var points = [this.startPoint, this.endPoint];
378
- var criticalAngles = [0, Math.PI / 2, Math.PI, (3 * Math.PI) / 2];
379
- try {
380
- for (var criticalAngles_1 = __values(criticalAngles), criticalAngles_1_1 = criticalAngles_1.next(); !criticalAngles_1_1.done; criticalAngles_1_1 = criticalAngles_1.next()) {
381
- var angle = criticalAngles_1_1.value;
382
- var internalAngle = this._getInternalAngle(angle);
383
- if (AcGeMathUtil.isBetweenAngle(internalAngle, this._getInternalAngle(this.startAngle), this._getInternalAngle(this.endAngle), this.clockwise)) {
384
- points.push(this.getPointAtAngle(angle));
385
- }
386
- }
387
- }
388
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
389
- finally {
390
- try {
391
- if (criticalAngles_1_1 && !criticalAngles_1_1.done && (_a = criticalAngles_1.return)) _a.call(criticalAngles_1);
392
- }
393
- finally { if (e_1) throw e_1.error; }
394
- }
395
- var xValues = points.map(function (p) { return p.x; });
396
- var yValues = points.map(function (p) { return p.y; });
397
- return new AcGeBox2d(new AcGePoint2d(Math.min.apply(Math, __spreadArray([], __read(xValues), false)), Math.min.apply(Math, __spreadArray([], __read(yValues), false))), new AcGePoint2d(Math.max.apply(Math, __spreadArray([], __read(xValues), false)), Math.max.apply(Math, __spreadArray([], __read(yValues), false))));
398
- };
399
- Object.defineProperty(AcGeCircArc2d.prototype, "length", {
400
- /**
401
- * Get length of circular arc
402
- */
403
- get: function () {
404
- return Math.abs(this.deltaAngle * this.radius);
405
- },
406
- enumerable: false,
407
- configurable: true
408
- });
409
- /**
410
- * @inheritdoc
411
- */
412
- AcGeCircArc2d.prototype.transform = function (_matrix) {
413
- // TODO: implement it
414
- this._boundingBoxNeedsUpdate = true;
415
- return this;
416
- };
417
- /**
418
- * @inheritdoc
419
- */
420
- AcGeCircArc2d.prototype.clone = function () {
421
- return new AcGeCircArc2d(this.center.clone(), this.radius, this._startAngle, this._endAngle, this.clockwise);
422
- };
423
- /**
424
- * Calculate a point on the ellipse at a given angle.
425
- * @param angle Input the angle in radians where the point is to be calculated.
426
- * @returns Return the 2d coordinates of the point on the circular arc.
427
- */
428
- AcGeCircArc2d.prototype.getPointAtAngle = function (angle) {
429
- var internalAngle = this._getInternalAngle(angle);
430
- var x = this.center.x + this.radius * Math.cos(internalAngle);
431
- var y = this.center.y + this.radius * Math.sin(internalAngle);
432
- return new AcGePoint2d(x, y);
433
- };
434
- /**
435
- * Divide this arc into the specified nubmer of points and return those points as an array of points.
436
- * @param numPoints Input the nubmer of points returned
437
- * @returns Return an array of points
438
- */
439
- AcGeCircArc2d.prototype.getPoints = function (numPoints) {
440
- if (numPoints === void 0) { numPoints = 100; }
441
- var points = [];
442
- var deltaAngle = this.deltaAngle;
443
- var internalStartAngle = this._getInternalAngle(this.startAngle);
444
- if (this.closed) {
445
- deltaAngle = TAU;
446
- internalStartAngle = 0;
447
- }
448
- if (this.clockwise) {
449
- for (var i = 0; i <= numPoints; i++) {
450
- var internalAngle = internalStartAngle - deltaAngle * (i / numPoints);
451
- var angle = this._clockwise
452
- ? this._mirrorAngle(internalAngle)
453
- : internalAngle;
454
- var point = this.getPointAtAngle(angle);
455
- points.push(new AcGePoint2d(point.x, point.y));
456
- }
457
- }
458
- else {
459
- for (var i = 0; i <= numPoints; i++) {
460
- var internalAngle = internalStartAngle + deltaAngle * (i / numPoints);
461
- var angle = this._clockwise
462
- ? this._mirrorAngle(internalAngle)
463
- : internalAngle;
464
- var point = this.getPointAtAngle(angle);
465
- points.push(new AcGePoint2d(point.x, point.y));
466
- }
467
- }
468
- return points;
469
- };
470
- return AcGeCircArc2d;
471
- }(AcGeCurve2d));
472
- export { AcGeCircArc2d };
473
- //# sourceMappingURL=AcGeCircArc2d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AcGeCircArc2d.js","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc2d.ts"],"names":[],"mappings":"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"}
@@ -1,138 +0,0 @@
1
- import { AcGeBox3d, AcGeMatrix3d, AcGePlane, AcGePoint3d, AcGePoint3dLike, AcGePointLike, AcGeVector3d, AcGeVector3dLike } from '../math';
2
- import { AcGeCurve3d } from './AcGeCurve3d';
3
- /**
4
- * The class represeting both full circles and circular arcs in 3d space. The ellipse arc is
5
- * defined by a center point, radius, start angle, end angle, a normal vector, and a reference
6
- * vector. If start angle is equal to 0 and end angle is equal to 2 * Math.PI, it represents
7
- * a full circle.
8
- */
9
- export declare class AcGeCircArc3d extends AcGeCurve3d {
10
- private _center;
11
- private _radius;
12
- private _startAngle;
13
- private _endAngle;
14
- private _normal;
15
- private _refVec;
16
- /**
17
- * Compute center point of the arc given three points
18
- * @param startPoint Input start point of the arc
19
- * @param endPoint Input end point of the arc
20
- * @param pointOnArc Input one point on the arc (P3)
21
- * @returns Return center point of the arc
22
- */
23
- static computeCenterPoint(startPoint: AcGePoint3dLike, endPoint: AcGePoint3dLike, pointOnArc: AcGePoint3dLike): AcGePoint3d | null;
24
- /**
25
- * Create arc by three points
26
- * @param startPoint Input the start point
27
- * @param endPoint Input the end point
28
- * @param pointOnArc Input one point between the start point and the end point
29
- */
30
- static createByThreePoints(startPoint: AcGePoint3dLike, endPoint: AcGePoint3dLike, pointOnArc: AcGePoint3dLike): AcGeCircArc3d | undefined;
31
- /**
32
- * Create a 3d circular arc.
33
- * @param center The center point of the arc.
34
- * @param radius The radius of the arc.
35
- * @param startAngle The start angle of the arc.
36
- * @param endAngle The end angle of the arc.
37
- * @param normal The normal vector of the plane in which the arc lies.
38
- * @param refVec The reference vector from which angles are measured. Default value is x axis.
39
- */
40
- constructor(center: AcGePointLike, radius: number, startAngle: number, endAngle: number, normal: AcGeVector3dLike, refVec?: AcGeVector3dLike);
41
- /**
42
- * Center of circular arc
43
- */
44
- get center(): AcGePoint3d;
45
- set center(value: AcGePointLike);
46
- /**
47
- * Radius of circular arc
48
- */
49
- get radius(): number;
50
- set radius(value: number);
51
- /**
52
- * Start angle in radians of circular arc in the range 0 to 2 * PI.
53
- */
54
- get startAngle(): number;
55
- set startAngle(value: number);
56
- /**
57
- * End angle in radians of circular arc in the range 0 to 2 * PI.
58
- */
59
- get endAngle(): number;
60
- set endAngle(value: number);
61
- /**
62
- * Return angle between endAngle and startAngle in range 0 to 2*PI
63
- */
64
- get deltaAngle(): number;
65
- /**
66
- * Return true if the arc is a large arc whose delta angle value is greater than PI.
67
- */
68
- get isLargeArc(): 0 | 1;
69
- /**
70
- * Return true if the arc is clockwise from startAngle to endAngle
71
- */
72
- get clockwise(): boolean;
73
- /**
74
- * Normal vector defining the plane of the circular arc
75
- */
76
- get normal(): AcGeVector3d;
77
- set normal(value: AcGeVector3dLike);
78
- /**
79
- * The unit reference vector of circular arc
80
- */
81
- get refVec(): AcGeVector3d;
82
- set refVec(value: AcGeVector3dLike);
83
- /**
84
- * The start point of circular arc
85
- */
86
- get startPoint(): AcGePoint3d;
87
- /**
88
- * The end point of circular arc
89
- */
90
- get endPoint(): AcGePoint3d;
91
- /**
92
- * @inheritdoc
93
- */
94
- get length(): number;
95
- /**
96
- * @inheritdoc
97
- */
98
- calculateBoundingBox(): AcGeBox3d;
99
- /**
100
- * Return true if its start point is identical to its end point. Otherwise, return false.
101
- */
102
- get closed(): boolean;
103
- /**
104
- * Divide this arc into the specified nubmer of points
105
- * those points as an array of points.
106
- * @param numPoints Input the nubmer of points returned
107
- * @returns Return an array of point
108
- */
109
- getPoints(numPoints: number): AcGePoint3d[];
110
- /**
111
- * @inheritdoc
112
- */
113
- transform(matrix: AcGeMatrix3d): this;
114
- /**
115
- * @inheritdoc
116
- */
117
- copy(value: AcGeCircArc3d): this;
118
- /**
119
- * @inheritdoc
120
- */
121
- clone(): AcGeCircArc3d;
122
- /**
123
- * Calculate angle between the specified vec and the reference vector of this arc.
124
- * @param vec Input one vector
125
- * @returns Return angle between the specified vec and the reference vector of this arc.
126
- */
127
- getAngle(vec: AcGeVector3d): number;
128
- /**
129
- * Returns the point on the arc at a specific angle.
130
- * @param angle The angle at which to get the point.
131
- */
132
- getPointAtAngle(angle: number): AcGePoint3d;
133
- /**
134
- * Return the plane in which the circular arc lies.
135
- */
136
- get plane(): AcGePlane;
137
- }
138
- //# sourceMappingURL=AcGeCircArc3d.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AcGeCircArc3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeCircArc3d.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C;;;;;GAKG;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,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAe;IAE9B;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,eAAe,GAC1B,WAAW,GAAG,IAAI;IAmDrB;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CACxB,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,eAAe;IA4B7B;;;;;;;;OAQG;gBAED,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,MAAM,GAAE,gBAAsC;IAmBhD;;OAEG;IACH,IAAI,MAAM,IAAI,WAAW,CAExB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAG9B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAIvB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAG3B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAMzB;IAED;;OAEG;IACH,IAAI,UAAU,WAEb;IAED;;OAEG;IACH,IAAI,UAAU,UAEb;IAED;;OAEG;IACH,IAAI,SAAS,YAEZ;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAKjC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAKjC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,WAAW,CAE5B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED;;OAEG;IACH,IAAI,MAAM,WAET;IAED;;OAEG;IACH,oBAAoB;IA+BpB;;OAEG;IACH,IAAI,MAAM,YAET;IAED;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAgB3C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY;IAsB9B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,aAAa;IAWzB;;OAEG;IACH,KAAK;IAWL;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY;IAQ1B;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAuB3C;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,CAGrB;CACF"}