@mlightcad/geometry-engine 2.0.0 → 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 +761 -517
- 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/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 +13 -54
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +52 -181
- 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 +1 -1
@@ -1,63 +1,22 @@
|
|
1
1
|
import { AcGeBox3d, AcGeMatrix3d, AcGePoint3d, AcGePoint3dLike, AcGePointLike } from '../math';
|
2
2
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
3
|
-
|
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
|
-
}
|
3
|
+
import { AcGeKnotParameterizationType, AcGeNurbsCurve } from './AcGeNurbsCurve';
|
34
4
|
export declare class AcGeSpline3d extends AcGeCurve3d {
|
35
5
|
private _nurbsCurve;
|
36
6
|
private _fitPoints?;
|
37
7
|
private _knotParameterization?;
|
38
8
|
private _controlPoints;
|
39
9
|
private _closed;
|
40
|
-
|
41
|
-
private _originalKnots?;
|
42
|
-
private _originalWeights?;
|
43
|
-
constructor(controlPoints: AcGePointLike[], knots: number[], weights?: number[], closed?: boolean);
|
10
|
+
constructor(controlPoints: AcGePoint3dLike[], knots: number[], weights?: number[], closed?: boolean);
|
44
11
|
constructor(fitPoints: AcGePointLike[], knotParam: AcGeKnotParameterizationType, closed?: boolean);
|
45
12
|
/**
|
46
|
-
*
|
47
|
-
*/
|
48
|
-
private setClosed;
|
49
|
-
/**
|
50
|
-
* Make the spline closed by adding control points and adjusting knots
|
51
|
-
*/
|
52
|
-
private makeClosed;
|
53
|
-
/**
|
54
|
-
* Make the spline open by restoring the original curve
|
13
|
+
* Build the NURBS curve using stored data
|
55
14
|
*/
|
56
|
-
private
|
15
|
+
private buildCurve;
|
57
16
|
/**
|
58
|
-
*
|
17
|
+
* Set the closed property and rebuild the curve if necessary
|
59
18
|
*/
|
60
|
-
private
|
19
|
+
private setClosed;
|
61
20
|
/**
|
62
21
|
* Degree of the spline to be created.
|
63
22
|
*/
|
@@ -90,7 +49,7 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
90
49
|
* @param index Input index (0 based) of point to get
|
91
50
|
* @returns
|
92
51
|
*/
|
93
|
-
getControlPointAt(index: number): import("../math").
|
52
|
+
getControlPointAt(index: number): import("../math").AcGeVector3dLike;
|
94
53
|
/**
|
95
54
|
* Divide this spline into the specified nubmer of points
|
96
55
|
* those points as an array of points.
|
@@ -98,7 +57,7 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
98
57
|
* @returns Return an array of point
|
99
58
|
*/
|
100
59
|
getPoints(numPoints?: number): AcGePoint3d[];
|
101
|
-
getCurvePoints(curve:
|
60
|
+
getCurvePoints(curve: AcGeNurbsCurve, count: number): number[][];
|
102
61
|
/**
|
103
62
|
* @inheritdoc
|
104
63
|
*/
|
@@ -116,11 +75,11 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
116
75
|
*/
|
117
76
|
private toNurbsPoints;
|
118
77
|
/**
|
119
|
-
*
|
120
|
-
* @param
|
121
|
-
* @
|
78
|
+
* Create a closed spline from fit points using AcGeNurbsCurve.createClosedCurve
|
79
|
+
* @param fitPoints - Array of fit points defining the curve
|
80
|
+
* @param parameterization - Knot parameterization type for NURBS
|
81
|
+
* @returns A closed spline
|
122
82
|
*/
|
123
|
-
|
83
|
+
static createClosedSpline(fitPoints: AcGePoint3dLike[], parameterization?: AcGeKnotParameterizationType): AcGeSpline3d;
|
124
84
|
}
|
125
|
-
export {};
|
126
85
|
//# sourceMappingURL=AcGeSpline3d.d.ts.map
|
@@ -1 +1 @@
|
|
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;
|
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;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAE/E,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,qBAAqB,CAAC,CAA8B;IAC5D,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,OAAO,CAAS;gBAGtB,aAAa,EAAE,eAAe,EAAE,EAChC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,MAAM,CAAC,EAAE,OAAO;gBAGhB,SAAS,EAAE,aAAa,EAAE,EAC1B,SAAS,EAAE,4BAA4B,EACvC,MAAM,CAAC,EAAE,OAAO;IAoElB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgDlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;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;IAsBjD,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAkBnD;;OAEG;IACH,oBAAoB;IAKpB,IAAI,MAAM,IAGQ,OAAO,CADxB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAExB;IAED;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY;IAM/B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CACvB,SAAS,EAAE,eAAe,EAAE,EAC5B,gBAAgB,GAAE,4BAAwC,GACzD,YAAY;CAQhB"}
|
@@ -13,102 +13,10 @@ 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
|
-
};
|
41
16
|
import { AcCmErrors } from '@mlightcad/common';
|
42
17
|
import { AcGeBox3d, AcGePoint3d } from '../math';
|
43
|
-
import { calculateCurveLength, evaluateNurbsPoint, generateChordKnots, generateSqrtChordKnots, generateUniformKnots, interpolateControlPoints } from '../util';
|
44
18
|
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
|
-
}());
|
19
|
+
import { AcGeNurbsCurve } from './AcGeNurbsCurve';
|
112
20
|
var AcGeSpline3d = /** @class */ (function (_super) {
|
113
21
|
__extends(AcGeSpline3d, _super);
|
114
22
|
function AcGeSpline3d(a, b, c, d) {
|
@@ -136,12 +44,8 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
136
44
|
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
137
45
|
}
|
138
46
|
var points = _this.toNurbsPoints(_this._fitPoints);
|
139
|
-
_this._nurbsCurve =
|
140
|
-
_this._controlPoints = _this.
|
141
|
-
// Store original data for potential reopening
|
142
|
-
_this._originalControlPoints = __spreadArray([], __read(_this._controlPoints), false);
|
143
|
-
_this._originalKnots = __spreadArray([], __read(_this._nurbsCurve.knots()), false);
|
144
|
-
_this._originalWeights = __spreadArray([], __read(_this._nurbsCurve.weights()), false);
|
47
|
+
_this._nurbsCurve = AcGeNurbsCurve.byPoints(points, degree, _this._knotParameterization);
|
48
|
+
_this._controlPoints = _this._nurbsCurve.controlPoints();
|
145
49
|
}
|
146
50
|
else {
|
147
51
|
// Constructor with control points
|
@@ -154,20 +58,49 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
154
58
|
if (_this._controlPoints.length < 4) {
|
155
59
|
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
156
60
|
}
|
157
|
-
|
158
|
-
_this._nurbsCurve = NurbsCurve.byKnotsControlPointsWeights(degree, b, points, c);
|
159
|
-
// Store original data for potential reopening
|
160
|
-
_this._originalControlPoints = __spreadArray([], __read(_this._controlPoints), false);
|
161
|
-
_this._originalKnots = __spreadArray([], __read(_this._nurbsCurve.knots()), false);
|
162
|
-
_this._originalWeights = c
|
163
|
-
? __spreadArray([], __read(c), false) : new Array(_this._controlPoints.length).fill(1.0);
|
61
|
+
_this._nurbsCurve = AcGeNurbsCurve.byKnotsControlPointsWeights(degree, b, _this._controlPoints, c);
|
164
62
|
}
|
165
63
|
// Apply closed state if specified
|
166
64
|
if (_this._closed) {
|
167
|
-
_this.
|
65
|
+
_this.buildCurve();
|
168
66
|
}
|
169
67
|
return _this;
|
170
68
|
}
|
69
|
+
/**
|
70
|
+
* Build the NURBS curve using stored data
|
71
|
+
*/
|
72
|
+
AcGeSpline3d.prototype.buildCurve = function () {
|
73
|
+
var degree = 3;
|
74
|
+
if (this._fitPoints && this._knotParameterization) {
|
75
|
+
// Build from fit points
|
76
|
+
if (this._closed) {
|
77
|
+
// Create closed curve from fit points
|
78
|
+
this._nurbsCurve = AcGeNurbsCurve.createClosedCurve(this._fitPoints, degree, this._knotParameterization);
|
79
|
+
}
|
80
|
+
else {
|
81
|
+
// Create open curve from fit points
|
82
|
+
var points = this.toNurbsPoints(this._fitPoints);
|
83
|
+
this._nurbsCurve = AcGeNurbsCurve.byPoints(points, degree, this._knotParameterization);
|
84
|
+
}
|
85
|
+
this._controlPoints = this._nurbsCurve.controlPoints();
|
86
|
+
}
|
87
|
+
else if (this._controlPoints) {
|
88
|
+
// Build from control points
|
89
|
+
if (this._closed) {
|
90
|
+
// Create closed curve from control points
|
91
|
+
var parameterization = this._knotParameterization || 'Chord';
|
92
|
+
this._nurbsCurve = AcGeNurbsCurve.createClosedCurve(this._controlPoints, degree, parameterization);
|
93
|
+
this._controlPoints = this._nurbsCurve.controlPoints();
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
// Create open curve from control points
|
97
|
+
// Get knots and weights from the current NURBS curve
|
98
|
+
var knots = this._nurbsCurve.knots();
|
99
|
+
var weights = this._nurbsCurve.weights();
|
100
|
+
this._nurbsCurve = AcGeNurbsCurve.byKnotsControlPointsWeights(degree, knots, this._controlPoints, weights);
|
101
|
+
}
|
102
|
+
}
|
103
|
+
};
|
171
104
|
/**
|
172
105
|
* Set the closed property and rebuild the curve if necessary
|
173
106
|
*/
|
@@ -177,71 +110,7 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
177
110
|
}
|
178
111
|
this._closed = closed;
|
179
112
|
this._boundingBoxNeedsUpdate = true;
|
180
|
-
|
181
|
-
this.makeClosed();
|
182
|
-
}
|
183
|
-
else {
|
184
|
-
this.makeOpen();
|
185
|
-
}
|
186
|
-
};
|
187
|
-
/**
|
188
|
-
* Make the spline closed by adding control points and adjusting knots
|
189
|
-
*/
|
190
|
-
AcGeSpline3d.prototype.makeClosed = function () {
|
191
|
-
var degree = this._nurbsCurve.degree();
|
192
|
-
var originalControlPoints = this._nurbsCurve.controlPoints();
|
193
|
-
var originalKnots = this._nurbsCurve.knots();
|
194
|
-
var originalWeights = this._nurbsCurve.weights();
|
195
|
-
// For a closed curve, we need to add control points at the end
|
196
|
-
// that ensure the curve closes smoothly
|
197
|
-
var closedControlPoints = __spreadArray([], __read(originalControlPoints), false);
|
198
|
-
var closedWeights = __spreadArray([], __read(originalWeights), false);
|
199
|
-
// Add control points to close the curve
|
200
|
-
// For a degree 3 curve, we typically need 3 additional control points
|
201
|
-
for (var i = 0; i < degree; i++) {
|
202
|
-
// Use the first control point to ensure the curve closes
|
203
|
-
closedControlPoints.push(__spreadArray([], __read(originalControlPoints[0]), false));
|
204
|
-
closedWeights.push(originalWeights[0]);
|
205
|
-
}
|
206
|
-
// Create new knot vector for closed curve
|
207
|
-
var closedKnots = this.createClosedKnotVector(originalKnots, degree);
|
208
|
-
// Create new NURBS curve
|
209
|
-
this._nurbsCurve = NurbsCurve.byKnotsControlPointsWeights(degree, closedKnots, closedControlPoints, closedWeights);
|
210
|
-
this._controlPoints = this.toGePoints(closedControlPoints);
|
211
|
-
};
|
212
|
-
/**
|
213
|
-
* Make the spline open by restoring the original curve
|
214
|
-
*/
|
215
|
-
AcGeSpline3d.prototype.makeOpen = function () {
|
216
|
-
if (!this._originalControlPoints ||
|
217
|
-
!this._originalKnots ||
|
218
|
-
!this._originalWeights) {
|
219
|
-
throw new Error('Original curve data not available');
|
220
|
-
}
|
221
|
-
var degree = this._nurbsCurve.degree();
|
222
|
-
var originalPoints = this.toNurbsPoints(this._originalControlPoints);
|
223
|
-
// Create new NURBS curve with original data
|
224
|
-
this._nurbsCurve = NurbsCurve.byKnotsControlPointsWeights(degree, this._originalKnots, originalPoints, this._originalWeights);
|
225
|
-
this._controlPoints = __spreadArray([], __read(this._originalControlPoints), false);
|
226
|
-
};
|
227
|
-
/**
|
228
|
-
* Create knot vector for closed curve
|
229
|
-
*/
|
230
|
-
AcGeSpline3d.prototype.createClosedKnotVector = function (originalKnots, degree) {
|
231
|
-
// For a closed curve, we need to create a proper knot vector
|
232
|
-
// that allows the curve to close smoothly
|
233
|
-
// Start with the original knots
|
234
|
-
var closedKnots = __spreadArray([], __read(originalKnots), false);
|
235
|
-
// For a closed curve, we need to extend the knot vector
|
236
|
-
// The key is to ensure that the curve can actually close
|
237
|
-
var lastKnot = originalKnots[originalKnots.length - 1];
|
238
|
-
// Add knots for the additional control points
|
239
|
-
// Use a spacing that ensures the curve closes properly
|
240
|
-
var additionalKnots = degree;
|
241
|
-
for (var i = 1; i <= additionalKnots; i++) {
|
242
|
-
closedKnots.push(lastKnot + i);
|
243
|
-
}
|
244
|
-
return closedKnots;
|
113
|
+
this.buildCurve();
|
245
114
|
};
|
246
115
|
Object.defineProperty(AcGeSpline3d.prototype, "degree", {
|
247
116
|
/**
|
@@ -403,16 +272,18 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
403
272
|
return nurbsPoints;
|
404
273
|
};
|
405
274
|
/**
|
406
|
-
*
|
407
|
-
* @param
|
408
|
-
* @
|
275
|
+
* Create a closed spline from fit points using AcGeNurbsCurve.createClosedCurve
|
276
|
+
* @param fitPoints - Array of fit points defining the curve
|
277
|
+
* @param parameterization - Knot parameterization type for NURBS
|
278
|
+
* @returns A closed spline
|
409
279
|
*/
|
410
|
-
AcGeSpline3d.
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
}
|
415
|
-
|
280
|
+
AcGeSpline3d.createClosedSpline = function (fitPoints, parameterization) {
|
281
|
+
if (parameterization === void 0) { parameterization = 'Uniform'; }
|
282
|
+
if (fitPoints.length < 4) {
|
283
|
+
throw new Error('At least 4 points are required for a closed spline');
|
284
|
+
}
|
285
|
+
// Create spline using the constructor with fit points and closed=true
|
286
|
+
return new AcGeSpline3d(fitPoints, parameterization, true);
|
416
287
|
};
|
417
288
|
return AcGeSpline3d;
|
418
289
|
}(AcGeCurve3d));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
package/lib/geometry/index.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA"}
|
package/lib/geometry/index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import verb from 'verb-nurbs-web';
|
2
|
+
import { AcGeKnotParameterizationType } from '../geometry';
|
3
|
+
/**
|
4
|
+
* Represents the data structure for a NURBS curve including control points, weights, knots, and degree
|
5
|
+
*/
|
6
|
+
export type NurbsCurveData = {
|
7
|
+
points: number[][];
|
8
|
+
weights?: number[];
|
9
|
+
knots: number[];
|
10
|
+
degree: number;
|
11
|
+
};
|
12
|
+
/**
|
13
|
+
* Main spline utility class
|
14
|
+
*/
|
15
|
+
export declare class AcGeSplineUtil {
|
16
|
+
/**
|
17
|
+
* Creates a NURBS curve from fit points using the specified knot parameterization
|
18
|
+
* @param fitPoints Array of fit points in 3D space
|
19
|
+
* @param knotParameterization Type of knot parameterization ('Uniform', 'Chord', or 'SqrtChord')
|
20
|
+
* @returns A NURBS curve object or undefined if insufficient points
|
21
|
+
*/
|
22
|
+
static createByFitPoints(fitPoints: number[][], knotParameterization?: AcGeKnotParameterizationType): verb.geom.NurbsCurve | undefined;
|
23
|
+
/**
|
24
|
+
* Converts closed fit points to control points for NURBS curve creation
|
25
|
+
* @param fitPoints Array of fit points defining the curve
|
26
|
+
* @param knotParameterization Type of knot parameterization
|
27
|
+
* @returns NURBS curve data with control points, weights, knots, and degree
|
28
|
+
*/
|
29
|
+
static convertClosedFitPointsToControlPoints(fitPoints: number[][], knotParameterization: AcGeKnotParameterizationType): NurbsCurveData;
|
30
|
+
private static removeDuplicateEndPoint;
|
31
|
+
private static createClosedSplineInterpolation;
|
32
|
+
private static convertClosedNurbsToClamped;
|
33
|
+
}
|
34
|
+
export declare const createByFitPoints: typeof AcGeSplineUtil.createByFitPoints;
|
35
|
+
export declare const convertClosedFitPointsToControlPoints: typeof AcGeSplineUtil.convertClosedFitPointsToControlPoints;
|
36
|
+
//# sourceMappingURL=AcGeSplineUtil.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeSplineUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeSplineUtil.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAA;AAEjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAO1D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAikBD;;GAEG;AACH,qBAAa,cAAc;IACzB;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CACtB,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,oBAAoB,GAAE,4BAAwC;IAgBhE;;;;;OAKG;IACH,MAAM,CAAC,qCAAqC,CAC1C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,oBAAoB,EAAE,4BAA4B,GACjD,cAAc;IAMjB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAWtC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAqC9C,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAqB3C;AAGD,eAAO,MAAM,iBAAiB,yCAAmC,CAAA;AACjE,eAAO,MAAM,qCAAqC,6DAAuD,CAAA"}
|