@mlightcad/geometry-engine 1.0.7 → 2.0.1
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/dist/geometry-engine.js +727 -488
- package/dist/geometry-engine.umd.cjs +1 -1
- package/lib/geometry/AcGeCatmullRomCurve3d.d.ts +146 -0
- package/lib/geometry/AcGeCatmullRomCurve3d.d.ts.map +1 -0
- package/lib/geometry/AcGeCatmullRomCurve3d.js +358 -0
- package/lib/geometry/AcGeCatmullRomCurve3d.js.map +1 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts +5 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.js +18 -2
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts +69 -0
- package/lib/geometry/AcGeNurbsCurve.d.ts.map +1 -0
- package/lib/geometry/AcGeNurbsCurve.js +166 -0
- package/lib/geometry/AcGeNurbsCurve.js.map +1 -0
- package/lib/geometry/AcGeSpline3d.d.ts +16 -57
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +85 -197
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/geometry/index.d.ts +2 -0
- package/lib/geometry/index.d.ts.map +1 -1
- package/lib/geometry/index.js +2 -0
- package/lib/geometry/index.js.map +1 -1
- package/lib/util/AcGeSplineUtil.d.ts +36 -0
- package/lib/util/AcGeSplineUtil.d.ts.map +1 -0
- package/lib/util/AcGeSplineUtil.js +491 -0
- package/lib/util/AcGeSplineUtil.js.map +1 -0
- package/package.json +2 -2
@@ -0,0 +1,358 @@
|
|
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 { AcGeBox3d, AcGePoint3d, AcGeVector3d } from '../math';
|
17
|
+
import { AcGeCurve3d } from './AcGeCurve3d';
|
18
|
+
/**
|
19
|
+
* Internal class for computing cubic polynomial coefficients
|
20
|
+
* Based on an optimized c++ solution in
|
21
|
+
* - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/
|
22
|
+
* - http://ideone.com/NoEbVM
|
23
|
+
*/
|
24
|
+
var CubicPoly = /** @class */ (function () {
|
25
|
+
function CubicPoly() {
|
26
|
+
this.c0 = 0;
|
27
|
+
this.c1 = 0;
|
28
|
+
this.c2 = 0;
|
29
|
+
this.c3 = 0;
|
30
|
+
}
|
31
|
+
/**
|
32
|
+
* Compute coefficients for a cubic polynomial
|
33
|
+
* p(s) = c0 + c1*s + c2*s^2 + c3*s^3
|
34
|
+
* such that
|
35
|
+
* p(0) = x0, p(1) = x1
|
36
|
+
* and
|
37
|
+
* p'(0) = t0, p'(1) = t1.
|
38
|
+
*/
|
39
|
+
CubicPoly.prototype.init = function (x0, x1, t0, t1) {
|
40
|
+
this.c0 = x0;
|
41
|
+
this.c1 = t0;
|
42
|
+
this.c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;
|
43
|
+
this.c3 = 2 * x0 - 2 * x1 + t0 + t1;
|
44
|
+
};
|
45
|
+
/**
|
46
|
+
* Initialize for Catmull-Rom interpolation
|
47
|
+
*/
|
48
|
+
CubicPoly.prototype.initCatmullRom = function (x0, x1, x2, x3, tension) {
|
49
|
+
this.init(x1, x2, tension * (x2 - x0), tension * (x3 - x1));
|
50
|
+
};
|
51
|
+
/**
|
52
|
+
* Initialize for non-uniform Catmull-Rom interpolation
|
53
|
+
*/
|
54
|
+
CubicPoly.prototype.initNonuniformCatmullRom = function (x0, x1, x2, x3, dt0, dt1, dt2) {
|
55
|
+
// compute tangents when parameterized in [t1,t2]
|
56
|
+
var t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;
|
57
|
+
var t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2;
|
58
|
+
// rescale tangents for parametrization in [0,1]
|
59
|
+
t1 *= dt1;
|
60
|
+
t2 *= dt1;
|
61
|
+
this.init(x1, x2, t1, t2);
|
62
|
+
};
|
63
|
+
/**
|
64
|
+
* Calculate the polynomial value at parameter t
|
65
|
+
*/
|
66
|
+
CubicPoly.prototype.calc = function (t) {
|
67
|
+
var t2 = t * t;
|
68
|
+
var t3 = t2 * t;
|
69
|
+
return this.c0 + this.c1 * t + this.c2 * t2 + this.c3 * t3;
|
70
|
+
};
|
71
|
+
return CubicPoly;
|
72
|
+
}());
|
73
|
+
/**
|
74
|
+
* A curve representing a Catmull-Rom spline.
|
75
|
+
*
|
76
|
+
* ```js
|
77
|
+
* //Create a closed wavey loop
|
78
|
+
* const curve = new AcGeCatmullRomCurve3d( [
|
79
|
+
* new AcGePoint3d( -10, 0, 10 ),
|
80
|
+
* new AcGePoint3d( -5, 5, 5 ),
|
81
|
+
* new AcGePoint3d( 0, 0, 0 ),
|
82
|
+
* new AcGePoint3d( 5, -5, 5 ),
|
83
|
+
* new AcGePoint3d( 10, 0, 10 )
|
84
|
+
* ], true ); // true for closed curve
|
85
|
+
*
|
86
|
+
* const points = curve.getPoints( 50 );
|
87
|
+
*
|
88
|
+
* // Convert to NURBS curve
|
89
|
+
* const nurbsCurve = curve.toNurbsCurve();
|
90
|
+
* ```
|
91
|
+
*/
|
92
|
+
var AcGeCatmullRomCurve3d = /** @class */ (function (_super) {
|
93
|
+
__extends(AcGeCatmullRomCurve3d, _super);
|
94
|
+
/**
|
95
|
+
* Constructs a new Catmull-Rom curve.
|
96
|
+
*
|
97
|
+
* @param points - An array of 3D points defining the curve.
|
98
|
+
* @param closed - Whether the curve is closed or not.
|
99
|
+
* @param curveType - The curve type.
|
100
|
+
* @param tension - Tension of the curve.
|
101
|
+
*/
|
102
|
+
function AcGeCatmullRomCurve3d(points, closed, curveType, tension) {
|
103
|
+
if (points === void 0) { points = []; }
|
104
|
+
if (closed === void 0) { closed = false; }
|
105
|
+
if (curveType === void 0) { curveType = 'centripetal'; }
|
106
|
+
if (tension === void 0) { tension = 0.5; }
|
107
|
+
var _this = _super.call(this) || this;
|
108
|
+
/**
|
109
|
+
* This flag can be used for type testing.
|
110
|
+
*/
|
111
|
+
_this.isCatmullRomCurve3d = true;
|
112
|
+
/**
|
113
|
+
* The curve type identifier
|
114
|
+
*/
|
115
|
+
_this.type = 'CatmullRomCurve3d';
|
116
|
+
// Internal computation objects
|
117
|
+
_this._tmp = new AcGeVector3d();
|
118
|
+
_this._px = new CubicPoly();
|
119
|
+
_this._py = new CubicPoly();
|
120
|
+
_this._pz = new CubicPoly();
|
121
|
+
_this._points = points.map(function (p) { return new AcGePoint3d(p); });
|
122
|
+
_this._closed = closed;
|
123
|
+
_this._curveType = curveType;
|
124
|
+
_this._tension = tension;
|
125
|
+
return _this;
|
126
|
+
}
|
127
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "points", {
|
128
|
+
/**
|
129
|
+
* An array of 3D points defining the curve.
|
130
|
+
*/
|
131
|
+
get: function () {
|
132
|
+
return this._points;
|
133
|
+
},
|
134
|
+
enumerable: false,
|
135
|
+
configurable: true
|
136
|
+
});
|
137
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "closed", {
|
138
|
+
/**
|
139
|
+
* Whether the curve is closed or not.
|
140
|
+
*/
|
141
|
+
get: function () {
|
142
|
+
return this._closed;
|
143
|
+
},
|
144
|
+
enumerable: false,
|
145
|
+
configurable: true
|
146
|
+
});
|
147
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "curveType", {
|
148
|
+
/**
|
149
|
+
* The curve type.
|
150
|
+
*/
|
151
|
+
get: function () {
|
152
|
+
return this._curveType;
|
153
|
+
},
|
154
|
+
enumerable: false,
|
155
|
+
configurable: true
|
156
|
+
});
|
157
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "tension", {
|
158
|
+
/**
|
159
|
+
* Tension of the curve.
|
160
|
+
*/
|
161
|
+
get: function () {
|
162
|
+
return this._tension;
|
163
|
+
},
|
164
|
+
enumerable: false,
|
165
|
+
configurable: true
|
166
|
+
});
|
167
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "startPoint", {
|
168
|
+
/**
|
169
|
+
* Start point of this curve.
|
170
|
+
*/
|
171
|
+
get: function () {
|
172
|
+
return this._points.length > 0 ? this._points[0] : new AcGePoint3d();
|
173
|
+
},
|
174
|
+
enumerable: false,
|
175
|
+
configurable: true
|
176
|
+
});
|
177
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "endPoint", {
|
178
|
+
/**
|
179
|
+
* End point of this curve.
|
180
|
+
*/
|
181
|
+
get: function () {
|
182
|
+
return this._points.length > 0
|
183
|
+
? this._points[this._points.length - 1]
|
184
|
+
: new AcGePoint3d();
|
185
|
+
},
|
186
|
+
enumerable: false,
|
187
|
+
configurable: true
|
188
|
+
});
|
189
|
+
Object.defineProperty(AcGeCatmullRomCurve3d.prototype, "length", {
|
190
|
+
/**
|
191
|
+
* Length of this curve (approximated).
|
192
|
+
*/
|
193
|
+
get: function () {
|
194
|
+
if (this._points.length < 2)
|
195
|
+
return 0;
|
196
|
+
var totalLength = 0;
|
197
|
+
for (var i = 1; i < this._points.length; i++) {
|
198
|
+
totalLength += this._points[i - 1].distanceTo(this._points[i]);
|
199
|
+
}
|
200
|
+
if (this._closed && this._points.length > 2) {
|
201
|
+
totalLength += this._points[this._points.length - 1].distanceTo(this._points[0]);
|
202
|
+
}
|
203
|
+
return totalLength;
|
204
|
+
},
|
205
|
+
enumerable: false,
|
206
|
+
configurable: true
|
207
|
+
});
|
208
|
+
/**
|
209
|
+
* Returns a point on the curve.
|
210
|
+
*
|
211
|
+
* @param t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
|
212
|
+
* @param optionalTarget - The optional target vector the result is written to.
|
213
|
+
* @return The position on the curve.
|
214
|
+
*/
|
215
|
+
AcGeCatmullRomCurve3d.prototype.getPoint = function (t, optionalTarget) {
|
216
|
+
if (optionalTarget === void 0) { optionalTarget = new AcGePoint3d(); }
|
217
|
+
var point = optionalTarget;
|
218
|
+
var points = this._points;
|
219
|
+
var l = points.length;
|
220
|
+
if (l === 0) {
|
221
|
+
return point.set(0, 0, 0);
|
222
|
+
}
|
223
|
+
if (l === 1) {
|
224
|
+
return point.copy(points[0]);
|
225
|
+
}
|
226
|
+
var p = (l - (this._closed ? 0 : 1)) * t;
|
227
|
+
var intPoint = Math.floor(p);
|
228
|
+
var weight = p - intPoint;
|
229
|
+
if (this._closed) {
|
230
|
+
intPoint +=
|
231
|
+
intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;
|
232
|
+
}
|
233
|
+
else if (weight === 0 && intPoint === l - 1) {
|
234
|
+
intPoint = l - 2;
|
235
|
+
weight = 1;
|
236
|
+
}
|
237
|
+
var p0, p3; // 4 points (p1 & p2 defined below)
|
238
|
+
if (this._closed || intPoint > 0) {
|
239
|
+
p0 = points[(intPoint - 1) % l];
|
240
|
+
}
|
241
|
+
else {
|
242
|
+
// extrapolate first point
|
243
|
+
this._tmp.subVectors(points[0], points[1]).add(points[0]);
|
244
|
+
p0 = new AcGePoint3d(this._tmp.x, this._tmp.y, this._tmp.z);
|
245
|
+
}
|
246
|
+
var p1 = points[intPoint % l];
|
247
|
+
var p2 = points[(intPoint + 1) % l];
|
248
|
+
if (this._closed || intPoint + 2 < l) {
|
249
|
+
p3 = points[(intPoint + 2) % l];
|
250
|
+
}
|
251
|
+
else {
|
252
|
+
// extrapolate last point
|
253
|
+
this._tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);
|
254
|
+
p3 = new AcGePoint3d(this._tmp.x, this._tmp.y, this._tmp.z);
|
255
|
+
}
|
256
|
+
if (this._curveType === 'centripetal' || this._curveType === 'chordal') {
|
257
|
+
// init Centripetal / Chordal Catmull-Rom
|
258
|
+
var pow = this._curveType === 'chordal' ? 0.5 : 0.25;
|
259
|
+
var dt0 = Math.pow(p0.distanceToSquared(p1), pow);
|
260
|
+
var dt1 = Math.pow(p1.distanceToSquared(p2), pow);
|
261
|
+
var dt2 = Math.pow(p2.distanceToSquared(p3), pow);
|
262
|
+
// safety check for repeated points
|
263
|
+
if (dt1 < 1e-4)
|
264
|
+
dt1 = 1.0;
|
265
|
+
if (dt0 < 1e-4)
|
266
|
+
dt0 = dt1;
|
267
|
+
if (dt2 < 1e-4)
|
268
|
+
dt2 = dt1;
|
269
|
+
this._px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);
|
270
|
+
this._py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);
|
271
|
+
this._pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);
|
272
|
+
}
|
273
|
+
else if (this._curveType === 'catmullrom') {
|
274
|
+
this._px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this._tension);
|
275
|
+
this._py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this._tension);
|
276
|
+
this._pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this._tension);
|
277
|
+
}
|
278
|
+
point.set(this._px.calc(weight), this._py.calc(weight), this._pz.calc(weight));
|
279
|
+
return point;
|
280
|
+
};
|
281
|
+
/**
|
282
|
+
* Get an array of points along the curve
|
283
|
+
* @param divisions - Number of divisions to create
|
284
|
+
* @returns Array of points along the curve
|
285
|
+
*/
|
286
|
+
AcGeCatmullRomCurve3d.prototype.getPoints = function (divisions) {
|
287
|
+
var points = [];
|
288
|
+
for (var d = 0; d <= divisions; d++) {
|
289
|
+
points.push(this.getPoint(d / divisions));
|
290
|
+
}
|
291
|
+
return points;
|
292
|
+
};
|
293
|
+
/**
|
294
|
+
* Set the points defining the curve
|
295
|
+
* @param points - Array of points
|
296
|
+
*/
|
297
|
+
AcGeCatmullRomCurve3d.prototype.setPoints = function (points) {
|
298
|
+
this._points = points.map(function (p) { return new AcGePoint3d(p); });
|
299
|
+
this._boundingBoxNeedsUpdate = true;
|
300
|
+
};
|
301
|
+
/**
|
302
|
+
* Set whether the curve is closed
|
303
|
+
* @param closed - Whether the curve should be closed
|
304
|
+
*/
|
305
|
+
AcGeCatmullRomCurve3d.prototype.setClosed = function (closed) {
|
306
|
+
if (this._closed === closed) {
|
307
|
+
return;
|
308
|
+
}
|
309
|
+
this._closed = closed;
|
310
|
+
this._boundingBoxNeedsUpdate = true;
|
311
|
+
};
|
312
|
+
/**
|
313
|
+
* Set the curve type
|
314
|
+
* @param curveType - The curve type
|
315
|
+
*/
|
316
|
+
AcGeCatmullRomCurve3d.prototype.setCurveType = function (curveType) {
|
317
|
+
this._curveType = curveType;
|
318
|
+
};
|
319
|
+
/**
|
320
|
+
* Set the tension of the curve
|
321
|
+
* @param tension - The tension value
|
322
|
+
*/
|
323
|
+
AcGeCatmullRomCurve3d.prototype.setTension = function (tension) {
|
324
|
+
this._tension = tension;
|
325
|
+
};
|
326
|
+
/**
|
327
|
+
* Transforms the curve by applying the input matrix.
|
328
|
+
* @param matrix Input transformation matrix
|
329
|
+
* @return Return this curve
|
330
|
+
*/
|
331
|
+
AcGeCatmullRomCurve3d.prototype.transform = function (matrix) {
|
332
|
+
this._points = this._points.map(function (point) {
|
333
|
+
var transformedPoint = new AcGePoint3d();
|
334
|
+
transformedPoint.copy(point);
|
335
|
+
transformedPoint.applyMatrix3d(matrix);
|
336
|
+
return transformedPoint;
|
337
|
+
});
|
338
|
+
this._boundingBoxNeedsUpdate = true;
|
339
|
+
return this;
|
340
|
+
};
|
341
|
+
/**
|
342
|
+
* Calculate the bounding box of this curve.
|
343
|
+
* @return The bounding box
|
344
|
+
*/
|
345
|
+
AcGeCatmullRomCurve3d.prototype.calculateBoundingBox = function () {
|
346
|
+
if (this._points.length === 0) {
|
347
|
+
return new AcGeBox3d();
|
348
|
+
}
|
349
|
+
var box = new AcGeBox3d();
|
350
|
+
this._points.forEach(function (point) {
|
351
|
+
box.expandByPoint(point);
|
352
|
+
});
|
353
|
+
return box;
|
354
|
+
};
|
355
|
+
return AcGeCatmullRomCurve3d;
|
356
|
+
}(AcGeCurve3d));
|
357
|
+
export { AcGeCatmullRomCurve3d };
|
358
|
+
//# sourceMappingURL=AcGeCatmullRomCurve3d.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeCatmullRomCurve3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeCatmullRomCurve3d.ts"],"names":[],"mappings":"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"}
|
@@ -93,6 +93,11 @@ export declare class AcGeEllipseArc3d extends AcGeCurve3d {
|
|
93
93
|
/**
|
94
94
|
* @inheritdoc
|
95
95
|
*/
|
96
|
+
/**
|
97
|
+
* Check if this ellipse arc is actually a circular arc (major and minor radii are equal)
|
98
|
+
* @returns True if the ellipse arc is circular
|
99
|
+
*/
|
100
|
+
get isCircular(): boolean;
|
96
101
|
get length(): number;
|
97
102
|
/**
|
98
103
|
* Compute the bounding box of the 3D ellipse arc.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeEllipseArc3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc3d.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAA;
|
1
|
+
{"version":3,"file":"AcGeEllipseArc3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc3d.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAGhB,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;IAsBxB;;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,WAOb;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;;;OAGG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,MAAM,IAAI,MAAM,CA0BnB;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;CACF"}
|
@@ -27,6 +27,7 @@ var __values = (this && this.__values) || function(o) {
|
|
27
27
|
import { AcCmErrors } from '@mlightcad/common';
|
28
28
|
import { AcGeBox3d, AcGePlane, AcGePoint3d, AcGeVector3d } from '../math';
|
29
29
|
import { AcGeMathUtil, ORIGIN_POINT_3D, TAU } from '../util';
|
30
|
+
import { AcGeTol } from '../util/AcGeTol';
|
30
31
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
31
32
|
/**
|
32
33
|
* Class representing a 3d ellipse arc defined by center, normal, majorAxis, majorAxisRadius,
|
@@ -250,12 +251,27 @@ var AcGeEllipseArc3d = /** @class */ (function (_super) {
|
|
250
251
|
enumerable: false,
|
251
252
|
configurable: true
|
252
253
|
});
|
253
|
-
Object.defineProperty(AcGeEllipseArc3d.prototype, "
|
254
|
+
Object.defineProperty(AcGeEllipseArc3d.prototype, "isCircular", {
|
254
255
|
/**
|
255
256
|
* @inheritdoc
|
256
257
|
*/
|
258
|
+
/**
|
259
|
+
* Check if this ellipse arc is actually a circular arc (major and minor radii are equal)
|
260
|
+
* @returns True if the ellipse arc is circular
|
261
|
+
*/
|
262
|
+
get: function () {
|
263
|
+
return AcGeTol.equal(this.majorAxisRadius, this.minorAxisRadius);
|
264
|
+
},
|
265
|
+
enumerable: false,
|
266
|
+
configurable: true
|
267
|
+
});
|
268
|
+
Object.defineProperty(AcGeEllipseArc3d.prototype, "length", {
|
257
269
|
get: function () {
|
258
|
-
//
|
270
|
+
// For circular arcs, use the exact formula: length = radius * deltaAngle
|
271
|
+
if (this.isCircular) {
|
272
|
+
return this.majorAxisRadius * Math.abs(this.deltaAngle);
|
273
|
+
}
|
274
|
+
// For elliptical arcs, use numerical integration
|
259
275
|
var steps = 1000;
|
260
276
|
var step = this.deltaAngle / steps;
|
261
277
|
var length = 0;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeEllipseArc3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc3d.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"AcGeEllipseArc3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc3d.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import { AcGePoint3dLike } from '../math';
|
2
|
+
/**
|
3
|
+
* Type for NURBS knot parameterization
|
4
|
+
*/
|
5
|
+
export type AcGeKnotParameterizationType = 'Uniform' | 'Chord' | 'SqrtChord';
|
6
|
+
/**
|
7
|
+
* A NURBS curve implementation that can be used by other curve classes
|
8
|
+
*/
|
9
|
+
export declare class AcGeNurbsCurve {
|
10
|
+
private _degree;
|
11
|
+
private _knots;
|
12
|
+
private _controlPoints;
|
13
|
+
private _weights;
|
14
|
+
constructor(degree: number, knots: number[], controlPoints: AcGePoint3dLike[], weights?: number[]);
|
15
|
+
/**
|
16
|
+
* Get the degree of the NURBS curve
|
17
|
+
*/
|
18
|
+
degree(): number;
|
19
|
+
/**
|
20
|
+
* Get the knot vector
|
21
|
+
*/
|
22
|
+
knots(): number[];
|
23
|
+
/**
|
24
|
+
* Get the control points
|
25
|
+
*/
|
26
|
+
controlPoints(): AcGePoint3dLike[];
|
27
|
+
/**
|
28
|
+
* Get the weights
|
29
|
+
*/
|
30
|
+
weights(): number[];
|
31
|
+
/**
|
32
|
+
* Calculate a point on the curve at parameter u
|
33
|
+
*/
|
34
|
+
point(u: number): number[];
|
35
|
+
/**
|
36
|
+
* Calculate curve length using numerical integration
|
37
|
+
*/
|
38
|
+
length(): number;
|
39
|
+
/**
|
40
|
+
* Create a NURBS curve from control points and knots
|
41
|
+
*/
|
42
|
+
static byKnotsControlPointsWeights(degree: number, knots: number[], controlPoints: AcGePoint3dLike[], weights?: number[]): AcGeNurbsCurve;
|
43
|
+
/**
|
44
|
+
* Create a NURBS curve from fit points using interpolation
|
45
|
+
*/
|
46
|
+
static byPoints(points: number[][], degree: number, parameterization?: AcGeKnotParameterizationType): AcGeNurbsCurve;
|
47
|
+
/**
|
48
|
+
* Get the valid parameter range for this curve
|
49
|
+
*/
|
50
|
+
getParameterRange(): {
|
51
|
+
start: number;
|
52
|
+
end: number;
|
53
|
+
};
|
54
|
+
/**
|
55
|
+
* Get points along the curve
|
56
|
+
* @param divisions - Number of divisions to create
|
57
|
+
* @returns Array of points along the curve
|
58
|
+
*/
|
59
|
+
getPoints(divisions: number): number[][];
|
60
|
+
/**
|
61
|
+
* Check if the curve is closed by comparing start and end points
|
62
|
+
*/
|
63
|
+
isClosed(tolerance?: number): boolean;
|
64
|
+
/**
|
65
|
+
* Create a closed NURBS curve using Catmull-Rom interpolation for smooth closure
|
66
|
+
*/
|
67
|
+
static createClosedCurve(points: AcGePoint3dLike[], degree: number, parameterization?: AcGeKnotParameterizationType): AcGeNurbsCurve;
|
68
|
+
}
|
69
|
+
//# sourceMappingURL=AcGeNurbsCurve.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeNurbsCurve.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeNurbsCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUzC;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAE5E;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAU;gBAGxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,eAAe,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM,EAAE;IAUpB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,KAAK,IAAI,MAAM,EAAE;IAIjB;;OAEG;IACH,aAAa,IAAI,eAAe,EAAE;IAIlC;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE;IAInB;;OAEG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAY1B;;OAEG;IACH,MAAM,IAAI,MAAM;IAWhB;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,eAAe,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,cAAc;IAIjB;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,4BAAwC,GACzD,cAAc;IAuBjB;;OAEG;IACH,iBAAiB,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAMnD;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE;IAYxC;;OAEG;IACH,QAAQ,CAAC,SAAS,GAAE,MAAa,GAAG,OAAO;IAY3C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,MAAM,EAAE,eAAe,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,4BAAsC,GACvD,cAAc;CAuBlB"}
|