@mlightcad/geometry-engine 1.0.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.
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/dist/geometry-engine.js +10186 -0
- package/dist/geometry-engine.umd.cjs +4 -0
- package/lib/geometry/AcGeArea2d.d.ts +61 -0
- package/lib/geometry/AcGeArea2d.d.ts.map +1 -0
- package/lib/geometry/AcGeArea2d.js +174 -0
- package/lib/geometry/AcGeArea2d.js.map +1 -0
- package/lib/geometry/AcGeCircArc2d.d.ts +108 -0
- package/lib/geometry/AcGeCircArc2d.d.ts.map +1 -0
- package/lib/geometry/AcGeCircArc2d.js +412 -0
- package/lib/geometry/AcGeCircArc2d.js.map +1 -0
- package/lib/geometry/AcGeCircArc3d.d.ts +138 -0
- package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -0
- package/lib/geometry/AcGeCircArc3d.js +447 -0
- package/lib/geometry/AcGeCircArc3d.js.map +1 -0
- package/lib/geometry/AcGeCurve2d.d.ts +85 -0
- package/lib/geometry/AcGeCurve2d.d.ts.map +1 -0
- package/lib/geometry/AcGeCurve2d.js +213 -0
- package/lib/geometry/AcGeCurve2d.js.map +1 -0
- package/lib/geometry/AcGeCurve3d.d.ts +27 -0
- package/lib/geometry/AcGeCurve3d.d.ts.map +1 -0
- package/lib/geometry/AcGeCurve3d.js +29 -0
- package/lib/geometry/AcGeCurve3d.js.map +1 -0
- package/lib/geometry/AcGeEllipseArc2d.d.ts +105 -0
- package/lib/geometry/AcGeEllipseArc2d.d.ts.map +1 -0
- package/lib/geometry/AcGeEllipseArc2d.js +292 -0
- package/lib/geometry/AcGeEllipseArc2d.js.map +1 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts +141 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -0
- package/lib/geometry/AcGeEllipseArc3d.js +442 -0
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -0
- package/lib/geometry/AcGeLine2d.d.ts +56 -0
- package/lib/geometry/AcGeLine2d.d.ts.map +1 -0
- package/lib/geometry/AcGeLine2d.js +125 -0
- package/lib/geometry/AcGeLine2d.js.map +1 -0
- package/lib/geometry/AcGeLine3d.d.ts +134 -0
- package/lib/geometry/AcGeLine3d.d.ts.map +1 -0
- package/lib/geometry/AcGeLine3d.js +291 -0
- package/lib/geometry/AcGeLine3d.js.map +1 -0
- package/lib/geometry/AcGeLoop2d.d.ts +59 -0
- package/lib/geometry/AcGeLoop2d.d.ts.map +1 -0
- package/lib/geometry/AcGeLoop2d.js +141 -0
- package/lib/geometry/AcGeLoop2d.js.map +1 -0
- package/lib/geometry/AcGePolyline2d.d.ts +90 -0
- package/lib/geometry/AcGePolyline2d.d.ts.map +1 -0
- package/lib/geometry/AcGePolyline2d.js +224 -0
- package/lib/geometry/AcGePolyline2d.js.map +1 -0
- package/lib/geometry/AcGeShape.d.ts +12 -0
- package/lib/geometry/AcGeShape.d.ts.map +1 -0
- package/lib/geometry/AcGeShape.js +22 -0
- package/lib/geometry/AcGeShape.js.map +1 -0
- package/lib/geometry/AcGeShape2d.d.ts +31 -0
- package/lib/geometry/AcGeShape2d.d.ts.map +1 -0
- package/lib/geometry/AcGeShape2d.js +51 -0
- package/lib/geometry/AcGeShape2d.js.map +1 -0
- package/lib/geometry/AcGeShape3d.d.ts +33 -0
- package/lib/geometry/AcGeShape3d.d.ts.map +1 -0
- package/lib/geometry/AcGeShape3d.js +52 -0
- package/lib/geometry/AcGeShape3d.js.map +1 -0
- package/lib/geometry/AcGeSpline3d.d.ts +77 -0
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -0
- package/lib/geometry/AcGeSpline3d.js +221 -0
- package/lib/geometry/AcGeSpline3d.js.map +1 -0
- package/lib/geometry/index.d.ts +13 -0
- package/lib/geometry/index.d.ts.map +1 -0
- package/lib/geometry/index.js +13 -0
- package/lib/geometry/index.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -0
- package/lib/math/AcGeBox2d.d.ts +173 -0
- package/lib/math/AcGeBox2d.d.ts.map +1 -0
- package/lib/math/AcGeBox2d.js +289 -0
- package/lib/math/AcGeBox2d.js.map +1 -0
- package/lib/math/AcGeBox3d.d.ts +195 -0
- package/lib/math/AcGeBox3d.d.ts.map +1 -0
- package/lib/math/AcGeBox3d.js +378 -0
- package/lib/math/AcGeBox3d.js.map +1 -0
- package/lib/math/AcGeEuler.d.ts +133 -0
- package/lib/math/AcGeEuler.d.ts.map +1 -0
- package/lib/math/AcGeEuler.js +358 -0
- package/lib/math/AcGeEuler.js.map +1 -0
- package/lib/math/AcGeMatrix2d.d.ts +203 -0
- package/lib/math/AcGeMatrix2d.d.ts.map +1 -0
- package/lib/math/AcGeMatrix2d.js +393 -0
- package/lib/math/AcGeMatrix2d.js.map +1 -0
- package/lib/math/AcGeMatrix3d.d.ts +279 -0
- package/lib/math/AcGeMatrix3d.d.ts.map +1 -0
- package/lib/math/AcGeMatrix3d.js +1037 -0
- package/lib/math/AcGeMatrix3d.js.map +1 -0
- package/lib/math/AcGePlane.d.ts +131 -0
- package/lib/math/AcGePlane.d.ts.map +1 -0
- package/lib/math/AcGePlane.js +218 -0
- package/lib/math/AcGePlane.js.map +1 -0
- package/lib/math/AcGePoint.d.ts +4 -0
- package/lib/math/AcGePoint.d.ts.map +1 -0
- package/lib/math/AcGePoint.js +2 -0
- package/lib/math/AcGePoint.js.map +1 -0
- package/lib/math/AcGePoint2d.d.ts +17 -0
- package/lib/math/AcGePoint2d.d.ts.map +1 -0
- package/lib/math/AcGePoint2d.js +40 -0
- package/lib/math/AcGePoint2d.js.map +1 -0
- package/lib/math/AcGePoint3d.d.ts +18 -0
- package/lib/math/AcGePoint3d.d.ts.map +1 -0
- package/lib/math/AcGePoint3d.js +43 -0
- package/lib/math/AcGePoint3d.js.map +1 -0
- package/lib/math/AcGeQuaternion.d.ts +230 -0
- package/lib/math/AcGeQuaternion.d.ts.map +1 -0
- package/lib/math/AcGeQuaternion.js +666 -0
- package/lib/math/AcGeQuaternion.js.map +1 -0
- package/lib/math/AcGeVector.d.ts +9 -0
- package/lib/math/AcGeVector.d.ts.map +1 -0
- package/lib/math/AcGeVector.js +2 -0
- package/lib/math/AcGeVector.js.map +1 -0
- package/lib/math/AcGeVector2d.d.ts +361 -0
- package/lib/math/AcGeVector2d.d.ts.map +1 -0
- package/lib/math/AcGeVector2d.js +622 -0
- package/lib/math/AcGeVector2d.js.map +1 -0
- package/lib/math/AcGeVector3d.d.ts +493 -0
- package/lib/math/AcGeVector3d.d.ts.map +1 -0
- package/lib/math/AcGeVector3d.js +868 -0
- package/lib/math/AcGeVector3d.js.map +1 -0
- package/lib/math/index.d.ts +14 -0
- package/lib/math/index.d.ts.map +1 -0
- package/lib/math/index.js +14 -0
- package/lib/math/index.js.map +1 -0
- package/lib/util/AcGeConstants.d.ts +19 -0
- package/lib/util/AcGeConstants.d.ts.map +1 -0
- package/lib/util/AcGeConstants.js +25 -0
- package/lib/util/AcGeConstants.js.map +1 -0
- package/lib/util/AcGeGeometryUtil.d.ts +16 -0
- package/lib/util/AcGeGeometryUtil.d.ts.map +1 -0
- package/lib/util/AcGeGeometryUtil.js +56 -0
- package/lib/util/AcGeGeometryUtil.js.map +1 -0
- package/lib/util/AcGeMathUtil.d.ts +203 -0
- package/lib/util/AcGeMathUtil.d.ts.map +1 -0
- package/lib/util/AcGeMathUtil.js +585 -0
- package/lib/util/AcGeMathUtil.js.map +1 -0
- package/lib/util/AcGeTol.d.ts +91 -0
- package/lib/util/AcGeTol.d.ts.map +1 -0
- package/lib/util/AcGeTol.js +83 -0
- package/lib/util/AcGeTol.js.map +1 -0
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +5 -0
- package/lib/util/index.js.map +1 -0
- package/package.json +42 -0
@@ -0,0 +1,292 @@
|
|
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
|
+
import { AcCmErrors } from '@mlightcad/common';
|
17
|
+
import { AcGeBox2d, AcGePoint2d, AcGePoint3d } from '../math';
|
18
|
+
import { AcGeMathUtil, TAU } from '../util';
|
19
|
+
import { AcGeCurve2d } from './AcGeCurve2d';
|
20
|
+
/**
|
21
|
+
* Class representing a 3d ellipse arc defined by center, normal, majorAxis, majorAxisRadius,
|
22
|
+
* minorAxisRadius, startAngle, and endAngle.
|
23
|
+
* - The majorAxis vector represents half the major axis of the ellipse (that is, from the center
|
24
|
+
* point to the start point of the ellipse) and is the zero angle for startAngle and endAngle.
|
25
|
+
* - Positive angles are counter-clockwise when looking down the normal vector (that is, right-hand
|
26
|
+
* rule). A startAngle of 0 and endAngle of 2pi will produce a closed Ellipse.
|
27
|
+
* - If startAngle is equal to 0 and endAngle is equal to 2 * Math.PI, it represents a full 3d ellipse.
|
28
|
+
*/
|
29
|
+
var AcGeEllipseArc2d = /** @class */ (function (_super) {
|
30
|
+
__extends(AcGeEllipseArc2d, _super);
|
31
|
+
/**
|
32
|
+
* Construct an instance of the ellipse arc.
|
33
|
+
* @param center Center point of the ellipse.
|
34
|
+
* @param majorAxisRadius Major axis radius of the ellipse.
|
35
|
+
* @param minorAxisRadius Minor axis radius of the ellipse.
|
36
|
+
* @param startAngle Start angle of the ellipse arc in radians.
|
37
|
+
* @param endAngle End angle of the ellipse arc in radians.
|
38
|
+
* @param clockwise The flag Whether the ellipse arc is drawn clockwise. Default is false.
|
39
|
+
* @param rotation The rotation angle of the ellipse in radians, counterclockwise from the positive X
|
40
|
+
* axis (optional). Default is 0.
|
41
|
+
*/
|
42
|
+
function AcGeEllipseArc2d(center, majorAxisRadius, minorAxisRadius, startAngle, endAngle, clockwise, rotation) {
|
43
|
+
if (startAngle === void 0) { startAngle = 0; }
|
44
|
+
if (endAngle === void 0) { endAngle = TAU; }
|
45
|
+
if (clockwise === void 0) { clockwise = false; }
|
46
|
+
if (rotation === void 0) { rotation = 0; }
|
47
|
+
var _this = _super.call(this) || this;
|
48
|
+
_this.center = center;
|
49
|
+
_this.majorAxisRadius = majorAxisRadius;
|
50
|
+
_this.minorAxisRadius = minorAxisRadius;
|
51
|
+
// Check whether it is a full ellipse
|
52
|
+
if ((endAngle - startAngle) % TAU == 0) {
|
53
|
+
_this.startAngle = 0;
|
54
|
+
_this.endAngle = TAU;
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
_this.startAngle = startAngle;
|
58
|
+
_this.endAngle = endAngle;
|
59
|
+
}
|
60
|
+
_this.clockwise = clockwise;
|
61
|
+
_this.rotation = rotation;
|
62
|
+
return _this;
|
63
|
+
}
|
64
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "center", {
|
65
|
+
/**
|
66
|
+
* Center of the ellipse in 3d space
|
67
|
+
*/
|
68
|
+
get: function () {
|
69
|
+
return this._center;
|
70
|
+
},
|
71
|
+
set: function (value) {
|
72
|
+
this._center = new AcGePoint3d(value.x, value.y, value.z || 0);
|
73
|
+
this._boundingBoxNeedsUpdate = true;
|
74
|
+
},
|
75
|
+
enumerable: false,
|
76
|
+
configurable: true
|
77
|
+
});
|
78
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "majorAxisRadius", {
|
79
|
+
/**
|
80
|
+
* Major axis radius of the ellipse
|
81
|
+
*/
|
82
|
+
get: function () {
|
83
|
+
return this._majorAxisRadius;
|
84
|
+
},
|
85
|
+
set: function (value) {
|
86
|
+
if (value < 0)
|
87
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
88
|
+
this._majorAxisRadius = value;
|
89
|
+
this._boundingBoxNeedsUpdate = true;
|
90
|
+
},
|
91
|
+
enumerable: false,
|
92
|
+
configurable: true
|
93
|
+
});
|
94
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "minorAxisRadius", {
|
95
|
+
/**
|
96
|
+
* Minor axis radius of the ellipse
|
97
|
+
*/
|
98
|
+
get: function () {
|
99
|
+
return this._minorAxisRadius;
|
100
|
+
},
|
101
|
+
set: function (value) {
|
102
|
+
if (value < 0)
|
103
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
104
|
+
this._minorAxisRadius = value;
|
105
|
+
this._boundingBoxNeedsUpdate = true;
|
106
|
+
},
|
107
|
+
enumerable: false,
|
108
|
+
configurable: true
|
109
|
+
});
|
110
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "startAngle", {
|
111
|
+
/**
|
112
|
+
* Start angle of the ellipse arc in radians in the range -pi to pi.
|
113
|
+
*/
|
114
|
+
get: function () {
|
115
|
+
return this._startAngle;
|
116
|
+
},
|
117
|
+
set: function (value) {
|
118
|
+
this._startAngle = AcGeMathUtil.normalizeAngle(value);
|
119
|
+
this._boundingBoxNeedsUpdate = true;
|
120
|
+
},
|
121
|
+
enumerable: false,
|
122
|
+
configurable: true
|
123
|
+
});
|
124
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "endAngle", {
|
125
|
+
/**
|
126
|
+
* End angle of the ellipse arc in radians in the range -pi to pi.
|
127
|
+
*/
|
128
|
+
get: function () {
|
129
|
+
return this._endAngle;
|
130
|
+
},
|
131
|
+
set: function (value) {
|
132
|
+
this._endAngle =
|
133
|
+
this.startAngle == 0 && value == TAU
|
134
|
+
? value
|
135
|
+
: AcGeMathUtil.normalizeAngle(value);
|
136
|
+
this._boundingBoxNeedsUpdate = true;
|
137
|
+
},
|
138
|
+
enumerable: false,
|
139
|
+
configurable: true
|
140
|
+
});
|
141
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "clockwise", {
|
142
|
+
/**
|
143
|
+
* The flag Whether the ellipse arc is drawn clockwise. Default is false.
|
144
|
+
*/
|
145
|
+
get: function () {
|
146
|
+
return this._clockwise;
|
147
|
+
},
|
148
|
+
set: function (value) {
|
149
|
+
this._clockwise = value;
|
150
|
+
this._boundingBoxNeedsUpdate = true;
|
151
|
+
},
|
152
|
+
enumerable: false,
|
153
|
+
configurable: true
|
154
|
+
});
|
155
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "rotation", {
|
156
|
+
/**
|
157
|
+
* The rotation angle of the ellipse in radians, counterclockwise from the positive X axis (optional).
|
158
|
+
* Default is 0.
|
159
|
+
*/
|
160
|
+
get: function () {
|
161
|
+
return this._rotation;
|
162
|
+
},
|
163
|
+
set: function (value) {
|
164
|
+
this._rotation = value;
|
165
|
+
this._boundingBoxNeedsUpdate = true;
|
166
|
+
},
|
167
|
+
enumerable: false,
|
168
|
+
configurable: true
|
169
|
+
});
|
170
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "deltaAngle", {
|
171
|
+
/**
|
172
|
+
* Return angle between endAngle and startAngle in range 0 to 2*PI
|
173
|
+
*/
|
174
|
+
get: function () {
|
175
|
+
return AcGeMathUtil.normalizeAngle(this.endAngle - this.startAngle);
|
176
|
+
},
|
177
|
+
enumerable: false,
|
178
|
+
configurable: true
|
179
|
+
});
|
180
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "isLargeArc", {
|
181
|
+
/**
|
182
|
+
* Return true if the arc is a large arc whose delta angle value is greater than PI.
|
183
|
+
*/
|
184
|
+
get: function () {
|
185
|
+
return Math.abs(this.deltaAngle) > Math.PI ? 1 : 0;
|
186
|
+
},
|
187
|
+
enumerable: false,
|
188
|
+
configurable: true
|
189
|
+
});
|
190
|
+
/**
|
191
|
+
* Compute the bounding box of the 3D ellipse arc.
|
192
|
+
* The bounding box is defined by its minimum and maximum x, y, and z coordinates.
|
193
|
+
* @returns Return bounding box containing the min and max coordinates
|
194
|
+
*/
|
195
|
+
AcGeEllipseArc2d.prototype.calculateBoundingBox = function () {
|
196
|
+
var numPoints = 100;
|
197
|
+
var minX = Infinity, minY = Infinity;
|
198
|
+
var maxX = -Infinity, maxY = -Infinity;
|
199
|
+
for (var i = 0; i <= numPoints; i++) {
|
200
|
+
var point = this.getPoint(i / numPoints);
|
201
|
+
minX = Math.min(minX, point.x);
|
202
|
+
minY = Math.min(minY, point.y);
|
203
|
+
maxX = Math.max(maxX, point.x);
|
204
|
+
maxY = Math.max(maxY, point.y);
|
205
|
+
}
|
206
|
+
// Return the bounding box defined by min and max coordinates
|
207
|
+
return new AcGeBox2d({ x: minX, y: minY }, { x: maxX, y: maxY });
|
208
|
+
};
|
209
|
+
Object.defineProperty(AcGeEllipseArc2d.prototype, "closed", {
|
210
|
+
/**
|
211
|
+
* Return true if its start point is identical to its end point. Otherwise, return false.
|
212
|
+
*/
|
213
|
+
get: function () {
|
214
|
+
return this.deltaAngle == 0;
|
215
|
+
},
|
216
|
+
enumerable: false,
|
217
|
+
configurable: true
|
218
|
+
});
|
219
|
+
/**
|
220
|
+
* Return the point for a given position on the curve according to the arc length.
|
221
|
+
* @param t Input a position on the curve according to the arc length. Must be in the range [ 0, 1 ].
|
222
|
+
* @returns Return the point for a given position on the curve according to the arc length.
|
223
|
+
*/
|
224
|
+
AcGeEllipseArc2d.prototype.getPoint = function (t) {
|
225
|
+
var twoPi = Math.PI * 2;
|
226
|
+
var deltaAngle = this.endAngle - this.startAngle;
|
227
|
+
var samePoints = Math.abs(deltaAngle) < Number.EPSILON;
|
228
|
+
// ensures that deltaAngle is 0 .. 2 PI
|
229
|
+
while (deltaAngle < 0)
|
230
|
+
deltaAngle += twoPi;
|
231
|
+
while (deltaAngle > twoPi)
|
232
|
+
deltaAngle -= twoPi;
|
233
|
+
if (deltaAngle < Number.EPSILON) {
|
234
|
+
if (samePoints) {
|
235
|
+
deltaAngle = 0;
|
236
|
+
}
|
237
|
+
else {
|
238
|
+
deltaAngle = twoPi;
|
239
|
+
}
|
240
|
+
}
|
241
|
+
if (this.clockwise === true && !samePoints) {
|
242
|
+
if (deltaAngle === twoPi) {
|
243
|
+
deltaAngle = -twoPi;
|
244
|
+
}
|
245
|
+
else {
|
246
|
+
deltaAngle = deltaAngle - twoPi;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
var angle = this.startAngle + t * deltaAngle;
|
250
|
+
var x = this.center.x + this.majorAxisRadius * Math.cos(angle);
|
251
|
+
var y = this.center.y + this.minorAxisRadius * Math.sin(angle);
|
252
|
+
if (this.rotation !== 0) {
|
253
|
+
var cos = Math.cos(this.rotation);
|
254
|
+
var sin = Math.sin(this.rotation);
|
255
|
+
var tx = x - this.center.x;
|
256
|
+
var ty = y - this.center.y;
|
257
|
+
// Rotate the point about the center of the ellipse.
|
258
|
+
x = tx * cos - ty * sin + this.center.x;
|
259
|
+
y = tx * sin + ty * cos + this.center.y;
|
260
|
+
}
|
261
|
+
return new AcGePoint2d(x, y);
|
262
|
+
};
|
263
|
+
/**
|
264
|
+
* @inheritdoc
|
265
|
+
*/
|
266
|
+
AcGeEllipseArc2d.prototype.transform = function (_matrix) {
|
267
|
+
this._boundingBoxNeedsUpdate = true;
|
268
|
+
return this;
|
269
|
+
};
|
270
|
+
/**
|
271
|
+
* @inheritdoc
|
272
|
+
*/
|
273
|
+
AcGeEllipseArc2d.prototype.copy = function (value) {
|
274
|
+
this.center = value.center;
|
275
|
+
this.majorAxisRadius = value.majorAxisRadius;
|
276
|
+
this.minorAxisRadius = value.minorAxisRadius;
|
277
|
+
this.startAngle = value.startAngle;
|
278
|
+
this.endAngle = value.endAngle;
|
279
|
+
this.clockwise = value.clockwise;
|
280
|
+
this.rotation = value.rotation;
|
281
|
+
return this;
|
282
|
+
};
|
283
|
+
/**
|
284
|
+
* @inheritdoc
|
285
|
+
*/
|
286
|
+
AcGeEllipseArc2d.prototype.clone = function () {
|
287
|
+
return new AcGeEllipseArc2d(this.center, this.majorAxisRadius, this.minorAxisRadius, this.startAngle, this.endAngle, this.clockwise, this.rotation);
|
288
|
+
};
|
289
|
+
return AcGeEllipseArc2d;
|
290
|
+
}(AcGeCurve2d));
|
291
|
+
export { AcGeEllipseArc2d };
|
292
|
+
//# sourceMappingURL=AcGeEllipseArc2d.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeEllipseArc2d.js","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc2d.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,141 @@
|
|
1
|
+
import { AcGeBox3d, AcGeMatrix3d, AcGePlane, AcGePoint3d, AcGePointLike, AcGeVector3d, AcGeVector3dLike } from '../math';
|
2
|
+
import { AcGeCurve3d } from './AcGeCurve3d';
|
3
|
+
/**
|
4
|
+
* Class representing a 3d ellipse arc defined by center, normal, majorAxis, majorAxisRadius,
|
5
|
+
* minorAxisRadius, startAngle, and endAngle.
|
6
|
+
* - The majorAxis vector represents half the major axis of the ellipse (that is, from the center
|
7
|
+
* point to the start point of the ellipse) and is the zero angle for startAngle and endAngle.
|
8
|
+
* - Positive angles are counter-clockwise when looking down the normal vector (that is, right-hand
|
9
|
+
* rule). A startAngle of 0 and endAngle of 2pi will produce a closed Ellipse.
|
10
|
+
* - If startAngle is equal to 0 and endAngle is equal to 2 * Math.PI, it represents a full 3d ellipse.
|
11
|
+
*/
|
12
|
+
export declare class AcGeEllipseArc3d extends AcGeCurve3d {
|
13
|
+
private _center;
|
14
|
+
private _normal;
|
15
|
+
private _majorAxis;
|
16
|
+
private _majorAxisRadius;
|
17
|
+
private _minorAxisRadius;
|
18
|
+
private _startAngle;
|
19
|
+
private _endAngle;
|
20
|
+
/**
|
21
|
+
* Construct an instance of the ellipse arc.
|
22
|
+
* @param center Center point of the ellipse.
|
23
|
+
* @param normal Normal vector defining the plane of the ellipse
|
24
|
+
* @param majorAxis Major axis vector (in WCS coordinates) of the ellipse.
|
25
|
+
* @param majorAxisRadius Major axis radius of the ellipse.
|
26
|
+
* @param minorAxisRadius Minor axis radius of the ellipse.
|
27
|
+
* @param startAngle Start angle of the ellipse arc in radians.
|
28
|
+
* @param endAngle End angle of the ellipse arc in radians.
|
29
|
+
*/
|
30
|
+
constructor(center: AcGePointLike, normal: AcGeVector3dLike, majorAxis: AcGeVector3dLike, majorAxisRadius: number, minorAxisRadius: number, startAngle?: number, endAngle?: number);
|
31
|
+
/**
|
32
|
+
* Center of the ellipse in 3d space
|
33
|
+
*/
|
34
|
+
get center(): AcGePoint3d;
|
35
|
+
set center(value: AcGePointLike);
|
36
|
+
/**
|
37
|
+
* Major axis radius of the ellipse
|
38
|
+
*/
|
39
|
+
get majorAxisRadius(): number;
|
40
|
+
set majorAxisRadius(value: number);
|
41
|
+
/**
|
42
|
+
* Minor axis radius of the ellipse
|
43
|
+
*/
|
44
|
+
get minorAxisRadius(): number;
|
45
|
+
set minorAxisRadius(value: number);
|
46
|
+
/**
|
47
|
+
* Start angle of the ellipse arc in radians in the range -pi to pi.
|
48
|
+
*/
|
49
|
+
get startAngle(): number;
|
50
|
+
set startAngle(value: number);
|
51
|
+
/**
|
52
|
+
* End angle of the ellipse arc in radians in the range -pi to pi.
|
53
|
+
*/
|
54
|
+
get endAngle(): number;
|
55
|
+
set endAngle(value: number);
|
56
|
+
/**
|
57
|
+
* Return angle between endAngle and startAngle in range 0 to 2*PI
|
58
|
+
*/
|
59
|
+
get deltaAngle(): number;
|
60
|
+
/**
|
61
|
+
* Return true if the arc is a large arc whose delta angle value is greater than PI.
|
62
|
+
*/
|
63
|
+
get isLargeArc(): 0 | 1;
|
64
|
+
/**
|
65
|
+
* Return true if the arc is clockwise from startAngle to endAngle
|
66
|
+
*/
|
67
|
+
get clockwise(): boolean;
|
68
|
+
/**
|
69
|
+
* Unit normal vector defining the plane of the ellipse
|
70
|
+
*/
|
71
|
+
get normal(): AcGeVector3d;
|
72
|
+
set normal(value: AcGeVector3dLike);
|
73
|
+
/**
|
74
|
+
* Unit major axis vector (in WCS coordinates) of the ellipse. The major axis vector is the vector from the
|
75
|
+
* ellipse's center point to its start point.
|
76
|
+
*/
|
77
|
+
get majorAxis(): AcGeVector3d;
|
78
|
+
set majorAxis(value: AcGeVector3dLike);
|
79
|
+
/**
|
80
|
+
* Unit minor axis vector (in WCS coordinates) of the ellipse.
|
81
|
+
*/
|
82
|
+
get minorAxis(): AcGeVector3d;
|
83
|
+
/**
|
84
|
+
* Compute the start point of the ellipse arc.
|
85
|
+
* @returns Return the start point of the ellipse arc.
|
86
|
+
*/
|
87
|
+
get startPoint(): AcGePoint3d;
|
88
|
+
/**
|
89
|
+
* Compute the end point of the ellipse arc.
|
90
|
+
* @returns Return the end point of the ellipse arc.
|
91
|
+
*/
|
92
|
+
get endPoint(): AcGePoint3d;
|
93
|
+
/**
|
94
|
+
* @inheritdoc
|
95
|
+
*/
|
96
|
+
get length(): number;
|
97
|
+
/**
|
98
|
+
* Compute the bounding box of the 3D ellipse arc.
|
99
|
+
* The bounding box is defined by its minimum and maximum x, y, and z coordinates.
|
100
|
+
* @returns Return bounding box containing the min and max coordinates
|
101
|
+
*/
|
102
|
+
calculateBoundingBox(): AcGeBox3d;
|
103
|
+
/**
|
104
|
+
* Return true if its start point is identical to its end point. Otherwise, return false.
|
105
|
+
*/
|
106
|
+
get closed(): boolean;
|
107
|
+
getPoints(numPoints?: number): AcGePoint3d[];
|
108
|
+
/**
|
109
|
+
* Calculate a point on the ellipse at a given angle.
|
110
|
+
* @param angle Input the angle in radians where the point is to be calculated.
|
111
|
+
* @returns Return the 3d coordinates of the point on the ellipse.
|
112
|
+
*/
|
113
|
+
getPointAtAngle(angle: number): AcGePoint3d;
|
114
|
+
/**
|
115
|
+
* Determines whether a given point is inside the ellipse.
|
116
|
+
* @param point - The 3D point to check.
|
117
|
+
* @returns - True if the point is inside the ellipse, false otherwise.
|
118
|
+
*/
|
119
|
+
contains(point: AcGePoint3d): boolean;
|
120
|
+
/**
|
121
|
+
* @inheritdoc
|
122
|
+
*/
|
123
|
+
transform(_matrix: AcGeMatrix3d): this;
|
124
|
+
/**
|
125
|
+
* @inheritdoc
|
126
|
+
*/
|
127
|
+
copy(value: AcGeEllipseArc3d): this;
|
128
|
+
/**
|
129
|
+
* @inheritdoc
|
130
|
+
*/
|
131
|
+
clone(): AcGeEllipseArc3d;
|
132
|
+
/**
|
133
|
+
* Return the plane in which the ellipse arc lies.
|
134
|
+
*/
|
135
|
+
get plane(): AcGePlane;
|
136
|
+
/**
|
137
|
+
*
|
138
|
+
*/
|
139
|
+
private toVerbEllipseArc;
|
140
|
+
}
|
141
|
+
//# sourceMappingURL=AcGeEllipseArc3d.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeEllipseArc3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc3d.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAE/C,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,OAAO,CAAe;IAE9B,OAAO,CAAC,UAAU,CAAe;IAEjC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;;;OASG;gBAED,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,UAAU,GAAE,MAAU,EACtB,QAAQ,GAAE,MAAY;IAkBxB;;OAEG;IACH,IAAI,MAAM,IAAI,WAAW,CAExB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAG9B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAIhC;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAIhC;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;;;OAGG;IACH,IAAI,SAAS,IAAI,YAAY,CAE5B;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,gBAAgB,EAKpC;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,YAAY,CAI5B;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,WAAW,CAE5B;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED;;;;OAIG;IACH,oBAAoB;IAiEpB;;OAEG;IACH,IAAI,MAAM,YAET;IAED,SAAS,CAAC,SAAS,GAAE,MAAY,GAAG,WAAW,EAAE;IAgBjD;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAmB3C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAgBrC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY;IAK/B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,gBAAgB;IAY5B;;OAEG;IACH,KAAK;IAYL;;OAEG;IACH,IAAI,KAAK,IAAI,SAAS,CAGrB;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAqBzB"}
|