@mlightcad/geometry-engine 1.0.0 → 1.0.2
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/README.md +171 -8
- package/dist/geometry-engine.js +1618 -5973
- package/dist/geometry-engine.umd.cjs +1 -4
- package/lib/geometry/AcGeCircArc3d.d.ts +1 -1
- package/lib/geometry/AcGeEllipseArc2d.d.ts +1 -1
- package/lib/geometry/AcGeEllipseArc3d.d.ts +1 -5
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.js +24 -23
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
- package/lib/geometry/AcGeSpline3d.d.ts +34 -4
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +110 -10
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/util/AcGeNurbsUtil.d.ts +34 -0
- package/lib/util/AcGeNurbsUtil.d.ts.map +1 -0
- package/lib/util/AcGeNurbsUtil.js +191 -0
- package/lib/util/AcGeNurbsUtil.js.map +1 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/package.json +4 -6
@@ -65,7 +65,7 @@ export declare class AcGeCircArc3d extends AcGeCurve3d {
|
|
65
65
|
/**
|
66
66
|
* Return true if the arc is a large arc whose delta angle value is greater than PI.
|
67
67
|
*/
|
68
|
-
get isLargeArc():
|
68
|
+
get isLargeArc(): 1 | 0;
|
69
69
|
/**
|
70
70
|
* Return true if the arc is clockwise from startAngle to endAngle
|
71
71
|
*/
|
@@ -72,7 +72,7 @@ export declare class AcGeEllipseArc2d extends AcGeCurve2d {
|
|
72
72
|
/**
|
73
73
|
* Return true if the arc is a large arc whose delta angle value is greater than PI.
|
74
74
|
*/
|
75
|
-
get isLargeArc():
|
75
|
+
get isLargeArc(): 1 | 0;
|
76
76
|
/**
|
77
77
|
* Compute the bounding box of the 3D ellipse arc.
|
78
78
|
* The bounding box is defined by its minimum and maximum x, y, and z coordinates.
|
@@ -60,7 +60,7 @@ export declare class AcGeEllipseArc3d extends AcGeCurve3d {
|
|
60
60
|
/**
|
61
61
|
* Return true if the arc is a large arc whose delta angle value is greater than PI.
|
62
62
|
*/
|
63
|
-
get isLargeArc():
|
63
|
+
get isLargeArc(): 1 | 0;
|
64
64
|
/**
|
65
65
|
* Return true if the arc is clockwise from startAngle to endAngle
|
66
66
|
*/
|
@@ -133,9 +133,5 @@ export declare class AcGeEllipseArc3d extends AcGeCurve3d {
|
|
133
133
|
* Return the plane in which the ellipse arc lies.
|
134
134
|
*/
|
135
135
|
get plane(): AcGePlane;
|
136
|
-
/**
|
137
|
-
*
|
138
|
-
*/
|
139
|
-
private toVerbEllipseArc;
|
140
136
|
}
|
141
137
|
//# sourceMappingURL=AcGeEllipseArc3d.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeEllipseArc3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeEllipseArc3d.ts"],"names":[],"mappings":"
|
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;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;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,IAAI,MAAM,IAAI,MAAM,CAqBnB;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"}
|
@@ -25,7 +25,6 @@ var __values = (this && this.__values) || function(o) {
|
|
25
25
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
26
26
|
};
|
27
27
|
import { AcCmErrors } from '@mlightcad/common';
|
28
|
-
import verb from 'verb-nurbs-web';
|
29
28
|
import { AcGeBox3d, AcGePlane, AcGePoint3d, AcGeVector3d } from '../math';
|
30
29
|
import { AcGeMathUtil, ORIGIN_POINT_3D, TAU } from '../util';
|
31
30
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
@@ -60,7 +59,9 @@ var AcGeEllipseArc3d = /** @class */ (function (_super) {
|
|
60
59
|
_this.majorAxisRadius = majorAxisRadius;
|
61
60
|
_this.minorAxisRadius = minorAxisRadius;
|
62
61
|
// Check whether it is a full ellipse
|
63
|
-
|
62
|
+
var angleDiff = Math.abs(endAngle - startAngle);
|
63
|
+
if (Math.abs(angleDiff - TAU) < 1e-10 ||
|
64
|
+
Math.abs(angleDiff - 2 * TAU) < 1e-10) {
|
64
65
|
_this.startAngle = 0;
|
65
66
|
_this.endAngle = TAU;
|
66
67
|
}
|
@@ -152,7 +153,12 @@ var AcGeEllipseArc3d = /** @class */ (function (_super) {
|
|
152
153
|
* Return angle between endAngle and startAngle in range 0 to 2*PI
|
153
154
|
*/
|
154
155
|
get: function () {
|
155
|
-
|
156
|
+
var diff = this.endAngle - this.startAngle;
|
157
|
+
// Handle full circle case
|
158
|
+
if (Math.abs(diff - TAU) < 1e-10) {
|
159
|
+
return TAU;
|
160
|
+
}
|
161
|
+
return AcGeMathUtil.normalizeAngle(diff);
|
156
162
|
},
|
157
163
|
enumerable: false,
|
158
164
|
configurable: true
|
@@ -249,8 +255,21 @@ var AcGeEllipseArc3d = /** @class */ (function (_super) {
|
|
249
255
|
* @inheritdoc
|
250
256
|
*/
|
251
257
|
get: function () {
|
252
|
-
|
253
|
-
|
258
|
+
// Calculate length using numerical integration
|
259
|
+
var steps = 1000;
|
260
|
+
var step = this.deltaAngle / steps;
|
261
|
+
var length = 0;
|
262
|
+
var prevPoint = this.getPointAtAngle(this.startAngle);
|
263
|
+
for (var i = 1; i <= steps; i++) {
|
264
|
+
var angle = this.startAngle + i * step;
|
265
|
+
var point = this.getPointAtAngle(angle);
|
266
|
+
var dx = point.x - prevPoint.x;
|
267
|
+
var dy = point.y - prevPoint.y;
|
268
|
+
var dz = point.z - prevPoint.z;
|
269
|
+
length += Math.sqrt(dx * dx + dy * dy + dz * dz);
|
270
|
+
prevPoint = point;
|
271
|
+
}
|
272
|
+
return length;
|
254
273
|
},
|
255
274
|
enumerable: false,
|
256
275
|
configurable: true
|
@@ -418,24 +437,6 @@ var AcGeEllipseArc3d = /** @class */ (function (_super) {
|
|
418
437
|
enumerable: false,
|
419
438
|
configurable: true
|
420
439
|
});
|
421
|
-
/**
|
422
|
-
*
|
423
|
-
*/
|
424
|
-
AcGeEllipseArc3d.prototype.toVerbEllipseArc = function () {
|
425
|
-
var center = new Array(3);
|
426
|
-
this.center.toArray(center);
|
427
|
-
var majorAxis = new Array(3);
|
428
|
-
this.majorAxis
|
429
|
-
.clone()
|
430
|
-
.multiplyScalar(this.majorAxisRadius)
|
431
|
-
.toArray(majorAxis);
|
432
|
-
var minorAxis = new Array(3);
|
433
|
-
this.minorAxis
|
434
|
-
.clone()
|
435
|
-
.multiplyScalar(this.minorAxisRadius)
|
436
|
-
.toArray(minorAxis);
|
437
|
-
return new verb.geom.EllipseArc(center, majorAxis, minorAxis, this.startAngle, this.endAngle);
|
438
|
-
};
|
439
440
|
return AcGeEllipseArc3d;
|
440
441
|
}(AcGeCurve3d));
|
441
442
|
export { AcGeEllipseArc3d };
|
@@ -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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"}
|
@@ -1,7 +1,36 @@
|
|
1
|
-
import verb from 'verb-nurbs-web';
|
2
1
|
import { AcGeBox3d, AcGeMatrix3d, AcGePoint3d, AcGePoint3dLike, AcGePointLike } from '../math';
|
3
2
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
4
3
|
export type AcGeKnotParameterizationType = 'Uniform' | 'Chord' | 'SqrtChord';
|
4
|
+
/**
|
5
|
+
* Lightweight NURBS curve implementation
|
6
|
+
*/
|
7
|
+
declare class NurbsCurve {
|
8
|
+
private _degree;
|
9
|
+
private _knots;
|
10
|
+
private _controlPoints;
|
11
|
+
private _weights;
|
12
|
+
constructor(degree: number, knots: number[], controlPoints: number[][], weights?: number[]);
|
13
|
+
degree(): number;
|
14
|
+
knots(): number[];
|
15
|
+
controlPoints(): number[][];
|
16
|
+
weights(): number[];
|
17
|
+
/**
|
18
|
+
* Calculate a point on the curve at parameter u
|
19
|
+
*/
|
20
|
+
point(u: number): number[];
|
21
|
+
/**
|
22
|
+
* Calculate curve length using numerical integration
|
23
|
+
*/
|
24
|
+
length(): number;
|
25
|
+
/**
|
26
|
+
* Create a NURBS curve from control points and knots
|
27
|
+
*/
|
28
|
+
static byKnotsControlPointsWeights(degree: number, knots: number[], controlPoints: number[][], weights?: number[]): NurbsCurve;
|
29
|
+
/**
|
30
|
+
* Create a NURBS curve from fit points using interpolation
|
31
|
+
*/
|
32
|
+
static byPoints(points: number[][], degree: number, parameterization?: AcGeKnotParameterizationType): NurbsCurve;
|
33
|
+
}
|
5
34
|
export declare class AcGeSpline3d extends AcGeCurve3d {
|
6
35
|
private _nurbsCurve;
|
7
36
|
private _fitPoints?;
|
@@ -50,7 +79,7 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
50
79
|
* @returns Return an array of point
|
51
80
|
*/
|
52
81
|
getPoints(numPoints?: number): AcGePoint3d[];
|
53
|
-
getCurvePoints(curve:
|
82
|
+
getCurvePoints(curve: NurbsCurve, count: number): number[][];
|
54
83
|
/**
|
55
84
|
* @inheritdoc
|
56
85
|
*/
|
@@ -62,11 +91,11 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
62
91
|
*/
|
63
92
|
transform(_matrix: AcGeMatrix3d): this;
|
64
93
|
/**
|
65
|
-
* Convert input points to points in
|
94
|
+
* Convert input points to points in NURBS format
|
66
95
|
* @param points Input points to convert
|
67
96
|
* @returns Return converted points
|
68
97
|
*/
|
69
|
-
private
|
98
|
+
private toNurbsPoints;
|
70
99
|
/**
|
71
100
|
* Convert input points to points in geometry engine format
|
72
101
|
* @param points Input points to convert
|
@@ -74,4 +103,5 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
74
103
|
*/
|
75
104
|
private toGePoints;
|
76
105
|
}
|
106
|
+
export {};
|
77
107
|
//# sourceMappingURL=AcGeSpline3d.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeSpline3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"AcGeSpline3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,SAAS,CAAA;AAShB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAE5E;;GAEG;AACH,cAAM,UAAU;IACd,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAU;gBAGxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,CAAC,EAAE,MAAM,EAAE;IAUpB,MAAM,IAAI,MAAM;IAIhB,KAAK,IAAI,MAAM,EAAE;IAIjB,aAAa,IAAI,MAAM,EAAE,EAAE;IAI3B,OAAO,IAAI,MAAM,EAAE;IAInB;;OAEG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAU1B;;OAEG;IACH,MAAM,IAAI,MAAM;IAShB;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,UAAU;IAIb;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,4BAAwC,GACzD,UAAU;CAsBd;AAED,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,qBAAqB,CAAC,CAA8B;IAC5D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAAS;gBAGtB,aAAa,EAAE,aAAa,EAAE,EAC9B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,MAAM,EAAE;gBAGlB,SAAS,EAAE,aAAa,EAAE,EAC1B,SAAS,EAAE,4BAA4B;IAiDzC;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,oBAAoB,6CAEvB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,WAAW,CAM5B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAM1B;IAED;;OAEG;IACH,IAAI,MAAM,WAET;IAED;;;;;;OAMG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAU7C;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAM/B;;;;;OAKG;IACH,SAAS,CAAC,SAAS,GAAE,MAAY,GAAG,WAAW,EAAE;IAuBjD,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;IAkB/C;;OAEG;IACH,oBAAoB;IAKpB,IAAI,MAAM,IAGQ,OAAO,CADxB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAGxB;IAED;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY;IAM/B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAOnB"}
|
@@ -13,10 +13,102 @@ var __extends = (this && this.__extends) || (function () {
|
|
13
13
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
14
14
|
};
|
15
15
|
})();
|
16
|
+
var __read = (this && this.__read) || function (o, n) {
|
17
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
18
|
+
if (!m) return o;
|
19
|
+
var i = m.call(o), r, ar = [], e;
|
20
|
+
try {
|
21
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
22
|
+
}
|
23
|
+
catch (error) { e = { error: error }; }
|
24
|
+
finally {
|
25
|
+
try {
|
26
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
27
|
+
}
|
28
|
+
finally { if (e) throw e.error; }
|
29
|
+
}
|
30
|
+
return ar;
|
31
|
+
};
|
32
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
33
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
34
|
+
if (ar || !(i in from)) {
|
35
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
36
|
+
ar[i] = from[i];
|
37
|
+
}
|
38
|
+
}
|
39
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
40
|
+
};
|
16
41
|
import { AcCmErrors } from '@mlightcad/common';
|
17
|
-
import verb from 'verb-nurbs-web';
|
18
42
|
import { AcGeBox3d, AcGePoint3d } from '../math';
|
43
|
+
import { calculateCurveLength, evaluateNurbsPoint, generateChordKnots, generateSqrtChordKnots, generateUniformKnots, interpolateControlPoints } from '../util';
|
19
44
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
45
|
+
/**
|
46
|
+
* Lightweight NURBS curve implementation
|
47
|
+
*/
|
48
|
+
var NurbsCurve = /** @class */ (function () {
|
49
|
+
function NurbsCurve(degree, knots, controlPoints, weights) {
|
50
|
+
this._degree = degree;
|
51
|
+
this._knots = __spreadArray([], __read(knots), false);
|
52
|
+
this._controlPoints = controlPoints.map(function (p) { return __spreadArray([], __read(p), false); });
|
53
|
+
this._weights = weights
|
54
|
+
? __spreadArray([], __read(weights), false) : new Array(controlPoints.length).fill(1.0);
|
55
|
+
}
|
56
|
+
NurbsCurve.prototype.degree = function () {
|
57
|
+
return this._degree;
|
58
|
+
};
|
59
|
+
NurbsCurve.prototype.knots = function () {
|
60
|
+
return __spreadArray([], __read(this._knots), false);
|
61
|
+
};
|
62
|
+
NurbsCurve.prototype.controlPoints = function () {
|
63
|
+
return this._controlPoints.map(function (p) { return __spreadArray([], __read(p), false); });
|
64
|
+
};
|
65
|
+
NurbsCurve.prototype.weights = function () {
|
66
|
+
return __spreadArray([], __read(this._weights), false);
|
67
|
+
};
|
68
|
+
/**
|
69
|
+
* Calculate a point on the curve at parameter u
|
70
|
+
*/
|
71
|
+
NurbsCurve.prototype.point = function (u) {
|
72
|
+
return evaluateNurbsPoint(u, this._degree, this._knots, this._controlPoints, this._weights);
|
73
|
+
};
|
74
|
+
/**
|
75
|
+
* Calculate curve length using numerical integration
|
76
|
+
*/
|
77
|
+
NurbsCurve.prototype.length = function () {
|
78
|
+
return calculateCurveLength(this._degree, this._knots, this._controlPoints, this._weights);
|
79
|
+
};
|
80
|
+
/**
|
81
|
+
* Create a NURBS curve from control points and knots
|
82
|
+
*/
|
83
|
+
NurbsCurve.byKnotsControlPointsWeights = function (degree, knots, controlPoints, weights) {
|
84
|
+
return new NurbsCurve(degree, knots, controlPoints, weights);
|
85
|
+
};
|
86
|
+
/**
|
87
|
+
* Create a NURBS curve from fit points using interpolation
|
88
|
+
*/
|
89
|
+
NurbsCurve.byPoints = function (points, degree, parameterization) {
|
90
|
+
if (parameterization === void 0) { parameterization = 'Uniform'; }
|
91
|
+
// Generate knots based on parameterization type
|
92
|
+
var knots;
|
93
|
+
switch (parameterization) {
|
94
|
+
case 'Chord':
|
95
|
+
knots = generateChordKnots(degree, points);
|
96
|
+
break;
|
97
|
+
case 'SqrtChord':
|
98
|
+
knots = generateSqrtChordKnots(degree, points);
|
99
|
+
break;
|
100
|
+
case 'Uniform':
|
101
|
+
default:
|
102
|
+
knots = generateUniformKnots(degree, points.length);
|
103
|
+
break;
|
104
|
+
}
|
105
|
+
// Generate control points from fit points
|
106
|
+
var controlPoints = interpolateControlPoints(points);
|
107
|
+
var weights = new Array(controlPoints.length).fill(1.0);
|
108
|
+
return new NurbsCurve(degree, knots, controlPoints, weights);
|
109
|
+
};
|
110
|
+
return NurbsCurve;
|
111
|
+
}());
|
20
112
|
var AcGeSpline3d = /** @class */ (function (_super) {
|
21
113
|
__extends(AcGeSpline3d, _super);
|
22
114
|
function AcGeSpline3d(a, b, c) {
|
@@ -31,14 +123,22 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
31
123
|
if (argsLength == 2 && !Array.isArray(b)) {
|
32
124
|
_this._fitPoints = a;
|
33
125
|
_this._knotParameterization = b;
|
34
|
-
|
35
|
-
_this.
|
126
|
+
// Validate minimum number of fit points for degree 3
|
127
|
+
if (_this._fitPoints.length < 4) {
|
128
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
129
|
+
}
|
130
|
+
var points = _this.toNurbsPoints(_this._fitPoints);
|
131
|
+
_this._nurbsCurve = NurbsCurve.byPoints(points, degree, _this._knotParameterization);
|
36
132
|
_this._controlPoints = _this.toGePoints(_this._nurbsCurve.controlPoints());
|
37
133
|
}
|
38
134
|
else {
|
39
135
|
_this._controlPoints = a;
|
40
|
-
|
41
|
-
_this.
|
136
|
+
// Validate minimum number of control points for degree 3
|
137
|
+
if (_this._controlPoints.length < 4) {
|
138
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
139
|
+
}
|
140
|
+
var points = _this.toNurbsPoints(_this._controlPoints);
|
141
|
+
_this._nurbsCurve = NurbsCurve.byKnotsControlPointsWeights(degree, b, points, c);
|
42
142
|
}
|
43
143
|
return _this;
|
44
144
|
}
|
@@ -192,16 +292,16 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
192
292
|
return this;
|
193
293
|
};
|
194
294
|
/**
|
195
|
-
* Convert input points to points in
|
295
|
+
* Convert input points to points in NURBS format
|
196
296
|
* @param points Input points to convert
|
197
297
|
* @returns Return converted points
|
198
298
|
*/
|
199
|
-
AcGeSpline3d.prototype.
|
200
|
-
var
|
299
|
+
AcGeSpline3d.prototype.toNurbsPoints = function (points) {
|
300
|
+
var nurbsPoints = new Array(points.length);
|
201
301
|
points.forEach(function (point, index) {
|
202
|
-
|
302
|
+
nurbsPoints[index] = [point.x, point.y, point.z || 0];
|
203
303
|
});
|
204
|
-
return
|
304
|
+
return nurbsPoints;
|
205
305
|
};
|
206
306
|
/**
|
207
307
|
* Convert input points to points in geometry engine format
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* NURBS utility functions for spline calculations
|
3
|
+
*/
|
4
|
+
/**
|
5
|
+
* Generate uniform knot vector
|
6
|
+
*/
|
7
|
+
export declare function generateUniformKnots(degree: number, numControlPoints: number): number[];
|
8
|
+
/**
|
9
|
+
* Generate chord-length parameterized knots
|
10
|
+
*/
|
11
|
+
export declare function generateChordKnots(degree: number, points: number[][]): number[];
|
12
|
+
/**
|
13
|
+
* Generate sqrt-chord parameterized knots
|
14
|
+
*/
|
15
|
+
export declare function generateSqrtChordKnots(degree: number, points: number[][]): number[];
|
16
|
+
/**
|
17
|
+
* Calculate basis function value for NURBS
|
18
|
+
*/
|
19
|
+
export declare function basisFunction(i: number, k: number, u: number, knots: number[]): number;
|
20
|
+
/**
|
21
|
+
* Calculate point on NURBS curve
|
22
|
+
*/
|
23
|
+
export declare function evaluateNurbsPoint(u: number, degree: number, knots: number[], controlPoints: number[][], weights: number[]): number[];
|
24
|
+
/**
|
25
|
+
* Calculate curve length using numerical integration
|
26
|
+
*/
|
27
|
+
export declare function calculateCurveLength(degree: number, knots: number[], controlPoints: number[][], weights: number[]): number;
|
28
|
+
/**
|
29
|
+
* Generate control points from fit points using interpolation
|
30
|
+
* This is a simplified implementation - for production use, you might want
|
31
|
+
* to implement a more sophisticated interpolation algorithm
|
32
|
+
*/
|
33
|
+
export declare function interpolateControlPoints(fitPoints: number[][]): number[][];
|
34
|
+
//# sourceMappingURL=AcGeNurbsUtil.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeNurbsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAqCV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAsCV;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,EAAE,CA2BV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CA8BR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAK1E"}
|