@mlightcad/geometry-engine 3.2.9 → 3.2.10
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 -21
- package/README.md +174 -174
- package/dist/geometry-engine.js +2086 -6355
- package/dist/geometry-engine.umd.cjs +1 -4
- package/lib/geometry/AcGeLoop2d.d.ts +37 -0
- package/lib/geometry/AcGeLoop2d.d.ts.map +1 -1
- package/lib/geometry/AcGeLoop2d.js +172 -0
- package/lib/geometry/AcGeLoop2d.js.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts +1 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.js +9 -20
- package/lib/geometry/AcGeNurbsCurve.js.map +1 -1
- package/lib/geometry/AcGeSpline3d.d.ts +4 -7
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +56 -33
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/util/AcGeNurbsUtil.d.ts +19 -3
- package/lib/util/AcGeNurbsUtil.d.ts.map +1 -1
- package/lib/util/AcGeNurbsUtil.js +197 -9
- package/lib/util/AcGeNurbsUtil.js.map +1 -1
- package/package.json +2 -5
|
@@ -16,6 +16,18 @@ export declare class AcGeLoop2d extends AcGeCurve2d {
|
|
|
16
16
|
*/
|
|
17
17
|
constructor(curves?: Array<AcGeBoundaryEdgeType>);
|
|
18
18
|
get curves(): ReadonlyArray<AcGeBoundaryEdgeType>;
|
|
19
|
+
/**
|
|
20
|
+
* Build loops from a list of boundary edges.
|
|
21
|
+
*
|
|
22
|
+
* This method greedily connects the nearest edge endpoints to form one or more
|
|
23
|
+
* closed loops. If a loop cannot be closed within the given tolerance, it will
|
|
24
|
+
* still return the best-effort loop with the collected edges.
|
|
25
|
+
*
|
|
26
|
+
* @param edges Input edges
|
|
27
|
+
* @param tolerance Distance tolerance to treat two points as connected
|
|
28
|
+
* @returns Loops constructed from the input edges
|
|
29
|
+
*/
|
|
30
|
+
static buildFromEdges(edges: ReadonlyArray<AcGeBoundaryEdgeType>, tolerance?: number): AcGeLoop2d[];
|
|
19
31
|
/**
|
|
20
32
|
* Append an edge to this loop
|
|
21
33
|
* @param curve
|
|
@@ -55,5 +67,30 @@ export declare class AcGeLoop2d extends AcGeCurve2d {
|
|
|
55
67
|
* @returns Return points
|
|
56
68
|
*/
|
|
57
69
|
getPoints(numPoints: number): AcGePoint2d[];
|
|
70
|
+
private static findConnectingEdge;
|
|
71
|
+
/**
|
|
72
|
+
* Get the start point of an edge as a 2D point.
|
|
73
|
+
* @param edge Input edge
|
|
74
|
+
* @returns Start point
|
|
75
|
+
*/
|
|
76
|
+
private static getEdgeStartPoint;
|
|
77
|
+
/**
|
|
78
|
+
* Get the end point of an edge as a 2D point.
|
|
79
|
+
* @param edge Input edge
|
|
80
|
+
* @returns End point
|
|
81
|
+
*/
|
|
82
|
+
private static getEdgeEndPoint;
|
|
83
|
+
/**
|
|
84
|
+
* Reverse an edge so its start/end direction is flipped.
|
|
85
|
+
* @param edge Input edge
|
|
86
|
+
* @returns Reversed edge
|
|
87
|
+
*/
|
|
88
|
+
private static reverseEdge;
|
|
89
|
+
/**
|
|
90
|
+
* Reverse a spline edge by mirroring its knots and control points.
|
|
91
|
+
* @param edge Input spline edge
|
|
92
|
+
* @returns Reversed spline edge
|
|
93
|
+
*/
|
|
94
|
+
private static reverseSplineEdge;
|
|
58
95
|
}
|
|
59
96
|
//# sourceMappingURL=AcGeLoop2d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeLoop2d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeLoop2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,aAAa,GACb,YAAY,GACZ,gBAAgB,CAAA;AAEpB;;;GAGG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;gBACS,MAAM,GAAE,KAAK,CAAC,oBAAoB,CAAM;IAKpD,IAAI,MAAM,IACe,aAAa,CAAC,oBAAoB,CAAC,CAC3D;IAED;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,oBAAoB;IAK/B;;OAEG;IACH,IAAI,aAAa,WAEhB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,WAAW,CAM5B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED;;OAEG;IACH,IAAI,MAAM,WAMT;IAED;;OAEG;IACH,oBAAoB,IAAI,SAAS;IAOjC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY;IAM/B;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"AcGeLoop2d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeLoop2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,aAAa,GACb,YAAY,GACZ,gBAAgB,CAAA;AAEpB;;;GAGG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;gBACS,MAAM,GAAE,KAAK,CAAC,oBAAoB,CAAM;IAKpD,IAAI,MAAM,IACe,aAAa,CAAC,oBAAoB,CAAC,CAC3D;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,cAAc,CACnB,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC1C,SAAS,SAAO,GACf,UAAU,EAAE;IAqDf;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,oBAAoB;IAK/B;;OAEG;IACH,IAAI,aAAa,WAEhB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,WAAW,CAM5B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED;;OAEG;IACH,IAAI,MAAM,WAMT;IAED;;OAEG;IACH,oBAAoB,IAAI,SAAS;IAOjC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY;IAM/B;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAU3C,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA4CjC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAKhC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IA+B1B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAoBjC"}
|
|
@@ -13,8 +13,36 @@ 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
|
+
import { AcGeEllipseArc2d, AcGeSpline3d } from '../geometry';
|
|
16
42
|
import { AcGeBox2d, AcGePoint2d } from '../math';
|
|
43
|
+
import { AcGeCircArc2d } from './AcGeCircArc2d';
|
|
17
44
|
import { AcGeCurve2d } from './AcGeCurve2d';
|
|
45
|
+
import { AcGeLine2d } from './AcGeLine2d';
|
|
18
46
|
/**
|
|
19
47
|
* The class representing one closed loop created by connected edges, which can be line, circular arc,
|
|
20
48
|
* ellipse arc, or spline.
|
|
@@ -38,6 +66,60 @@ var AcGeLoop2d = /** @class */ (function (_super) {
|
|
|
38
66
|
enumerable: false,
|
|
39
67
|
configurable: true
|
|
40
68
|
});
|
|
69
|
+
/**
|
|
70
|
+
* Build loops from a list of boundary edges.
|
|
71
|
+
*
|
|
72
|
+
* This method greedily connects the nearest edge endpoints to form one or more
|
|
73
|
+
* closed loops. If a loop cannot be closed within the given tolerance, it will
|
|
74
|
+
* still return the best-effort loop with the collected edges.
|
|
75
|
+
*
|
|
76
|
+
* @param edges Input edges
|
|
77
|
+
* @param tolerance Distance tolerance to treat two points as connected
|
|
78
|
+
* @returns Loops constructed from the input edges
|
|
79
|
+
*/
|
|
80
|
+
AcGeLoop2d.buildFromEdges = function (edges, tolerance) {
|
|
81
|
+
if (tolerance === void 0) { tolerance = 1e-3; }
|
|
82
|
+
if (edges.length === 0)
|
|
83
|
+
return [];
|
|
84
|
+
// Work on a mutable copy so we can consume edges as we form loops.
|
|
85
|
+
var remaining = __spreadArray([], __read(edges), false);
|
|
86
|
+
var loops = [];
|
|
87
|
+
var toleranceSq = tolerance * tolerance;
|
|
88
|
+
// Squared-distance check to avoid repeated sqrt calls.
|
|
89
|
+
var isClose = function (a, b) {
|
|
90
|
+
var dx = a.x - b.x;
|
|
91
|
+
var dy = a.y - b.y;
|
|
92
|
+
return dx * dx + dy * dy <= toleranceSq;
|
|
93
|
+
};
|
|
94
|
+
while (remaining.length > 0) {
|
|
95
|
+
var loopEdges = [];
|
|
96
|
+
var current = remaining.shift();
|
|
97
|
+
loopEdges.push(current);
|
|
98
|
+
var start = AcGeLoop2d.getEdgeStartPoint(current);
|
|
99
|
+
var end = AcGeLoop2d.getEdgeEndPoint(current);
|
|
100
|
+
// If the first edge is already closed, keep it as a single-edge loop.
|
|
101
|
+
if (!isClose(start, end)) {
|
|
102
|
+
while (remaining.length > 0) {
|
|
103
|
+
// Find the closest edge endpoint to the current end point.
|
|
104
|
+
var match = AcGeLoop2d.findConnectingEdge(remaining, end, toleranceSq);
|
|
105
|
+
if (match.index < 0)
|
|
106
|
+
break;
|
|
107
|
+
var next = remaining.splice(match.index, 1)[0];
|
|
108
|
+
// Reverse the edge direction if its end is closer than its start.
|
|
109
|
+
if (match.reverse) {
|
|
110
|
+
next = AcGeLoop2d.reverseEdge(next);
|
|
111
|
+
}
|
|
112
|
+
loopEdges.push(next);
|
|
113
|
+
end = AcGeLoop2d.getEdgeEndPoint(next);
|
|
114
|
+
// Stop once we close the loop back to the original start.
|
|
115
|
+
if (isClose(end, start))
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
loops.push(new AcGeLoop2d(loopEdges));
|
|
120
|
+
}
|
|
121
|
+
return loops;
|
|
122
|
+
};
|
|
41
123
|
/**
|
|
42
124
|
* Append an edge to this loop
|
|
43
125
|
* @param curve
|
|
@@ -135,6 +217,96 @@ var AcGeLoop2d = /** @class */ (function (_super) {
|
|
|
135
217
|
});
|
|
136
218
|
return points;
|
|
137
219
|
};
|
|
220
|
+
AcGeLoop2d.findConnectingEdge = function (edges, target, toleranceSq) {
|
|
221
|
+
var bestIndex = -1;
|
|
222
|
+
var bestReverse = false;
|
|
223
|
+
var bestDistance = Number.POSITIVE_INFINITY;
|
|
224
|
+
for (var i = 0; i < edges.length; i++) {
|
|
225
|
+
var edge = edges[i];
|
|
226
|
+
var start = AcGeLoop2d.getEdgeStartPoint(edge);
|
|
227
|
+
var end = AcGeLoop2d.getEdgeEndPoint(edge);
|
|
228
|
+
// Distance from target to edge start.
|
|
229
|
+
var dxStart = target.x - start.x;
|
|
230
|
+
var dyStart = target.y - start.y;
|
|
231
|
+
var distStart = dxStart * dxStart + dyStart * dyStart;
|
|
232
|
+
if (distStart < bestDistance) {
|
|
233
|
+
bestDistance = distStart;
|
|
234
|
+
bestIndex = i;
|
|
235
|
+
bestReverse = false;
|
|
236
|
+
}
|
|
237
|
+
// Distance from target to edge end.
|
|
238
|
+
var dxEnd = target.x - end.x;
|
|
239
|
+
var dyEnd = target.y - end.y;
|
|
240
|
+
var distEnd = dxEnd * dxEnd + dyEnd * dyEnd;
|
|
241
|
+
if (distEnd < bestDistance) {
|
|
242
|
+
bestDistance = distEnd;
|
|
243
|
+
bestIndex = i;
|
|
244
|
+
bestReverse = true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// If the closest edge is still too far away, report no match.
|
|
248
|
+
if (bestDistance > toleranceSq) {
|
|
249
|
+
return { index: -1, reverse: false };
|
|
250
|
+
}
|
|
251
|
+
return { index: bestIndex, reverse: bestReverse };
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* Get the start point of an edge as a 2D point.
|
|
255
|
+
* @param edge Input edge
|
|
256
|
+
* @returns Start point
|
|
257
|
+
*/
|
|
258
|
+
AcGeLoop2d.getEdgeStartPoint = function (edge) {
|
|
259
|
+
var start = edge.startPoint;
|
|
260
|
+
return new AcGePoint2d(start.x, start.y);
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* Get the end point of an edge as a 2D point.
|
|
264
|
+
* @param edge Input edge
|
|
265
|
+
* @returns End point
|
|
266
|
+
*/
|
|
267
|
+
AcGeLoop2d.getEdgeEndPoint = function (edge) {
|
|
268
|
+
var end = edge.endPoint;
|
|
269
|
+
return new AcGePoint2d(end.x, end.y);
|
|
270
|
+
};
|
|
271
|
+
/**
|
|
272
|
+
* Reverse an edge so its start/end direction is flipped.
|
|
273
|
+
* @param edge Input edge
|
|
274
|
+
* @returns Reversed edge
|
|
275
|
+
*/
|
|
276
|
+
AcGeLoop2d.reverseEdge = function (edge) {
|
|
277
|
+
if (edge instanceof AcGeLine2d) {
|
|
278
|
+
return new AcGeLine2d(edge.endPoint, edge.startPoint);
|
|
279
|
+
}
|
|
280
|
+
if (edge instanceof AcGeCircArc2d) {
|
|
281
|
+
return new AcGeCircArc2d(edge.center, edge.radius, edge.endAngle, edge.startAngle, !edge.clockwise);
|
|
282
|
+
}
|
|
283
|
+
if (edge instanceof AcGeEllipseArc2d) {
|
|
284
|
+
return new AcGeEllipseArc2d(edge.center, edge.majorAxisRadius, edge.minorAxisRadius, edge.endAngle, edge.startAngle, !edge.clockwise, edge.rotation);
|
|
285
|
+
}
|
|
286
|
+
if (edge instanceof AcGeSpline3d) {
|
|
287
|
+
// Reverse spline by reversing control points and knot vector.
|
|
288
|
+
return AcGeLoop2d.reverseSplineEdge(edge);
|
|
289
|
+
}
|
|
290
|
+
return edge;
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* Reverse a spline edge by mirroring its knots and control points.
|
|
294
|
+
* @param edge Input spline edge
|
|
295
|
+
* @returns Reversed spline edge
|
|
296
|
+
*/
|
|
297
|
+
AcGeLoop2d.reverseSplineEdge = function (edge) {
|
|
298
|
+
// Mirror knot values around the midpoint and reverse the order.
|
|
299
|
+
var controlPoints = __spreadArray([], __read(edge.controlPoints), false).reverse();
|
|
300
|
+
var knots = edge.knots;
|
|
301
|
+
var knotStart = knots[0];
|
|
302
|
+
var knotEnd = knots[knots.length - 1];
|
|
303
|
+
var reversedKnots = knots
|
|
304
|
+
.map(function (knot) { return knotStart + knotEnd - knot; })
|
|
305
|
+
.reverse();
|
|
306
|
+
var weights = edge.weights;
|
|
307
|
+
var reversedWeights = weights.length > 0 ? __spreadArray([], __read(weights), false).reverse() : undefined;
|
|
308
|
+
return new AcGeSpline3d(controlPoints, reversedKnots, reversedWeights, edge.degree, edge.closed);
|
|
309
|
+
};
|
|
138
310
|
return AcGeLoop2d;
|
|
139
311
|
}(AcGeCurve2d));
|
|
140
312
|
export { AcGeLoop2d };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeLoop2d.js","sourceRoot":"","sources":["../../src/geometry/AcGeLoop2d.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcGeLoop2d.js","sourceRoot":"","sources":["../../src/geometry/AcGeLoop2d.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export declare class AcGeNurbsCurve {
|
|
|
43
43
|
/**
|
|
44
44
|
* Create a NURBS curve from fit points using interpolation
|
|
45
45
|
*/
|
|
46
|
-
static byPoints(points: number[][], degree: number, parameterization?: AcGeKnotParameterizationType): AcGeNurbsCurve;
|
|
46
|
+
static byPoints(points: number[][], degree: number, parameterization?: AcGeKnotParameterizationType, startTangent?: number[], endTangent?: number[]): AcGeNurbsCurve;
|
|
47
47
|
/**
|
|
48
48
|
* Get the valid parameter range for this curve
|
|
49
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeNurbsCurve.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeNurbsCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"AcGeNurbsCurve.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeNurbsCurve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAQtD;;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,EAC1D,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,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,6BAA6B,CAClC,MAAM,EAAE,eAAe,EAAE,GACxB,WAAW,EAAE;IAkBhB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,MAAM,EAAE,eAAe,EAAE,EACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,4BAAsC,GACvD,cAAc;CASlB"}
|
|
@@ -23,7 +23,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
23
23
|
}
|
|
24
24
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
25
|
};
|
|
26
|
-
import { calculateCurveLength, evaluateNurbsPoint,
|
|
26
|
+
import { calculateCurveLength, evaluateNurbsPoint, interpolateNurbsCurve } from '../util';
|
|
27
27
|
import { AcGeCatmullRomCurve3d } from './AcGeCatmullRomCurve3d';
|
|
28
28
|
/**
|
|
29
29
|
* A NURBS curve implementation that can be used by other curve classes
|
|
@@ -85,26 +85,15 @@ var AcGeNurbsCurve = /** @class */ (function () {
|
|
|
85
85
|
/**
|
|
86
86
|
* Create a NURBS curve from fit points using interpolation
|
|
87
87
|
*/
|
|
88
|
-
AcGeNurbsCurve.byPoints = function (points, degree, parameterization) {
|
|
88
|
+
AcGeNurbsCurve.byPoints = function (points, degree, parameterization, startTangent, endTangent) {
|
|
89
89
|
if (parameterization === void 0) { parameterization = 'Uniform'; }
|
|
90
|
-
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
knots = generateSqrtChordKnots(degree, points);
|
|
98
|
-
break;
|
|
99
|
-
case 'Uniform':
|
|
100
|
-
default:
|
|
101
|
-
knots = generateUniformKnots(degree, points.length);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
// Convert number[][] to AcGePoint3dLike[] for control points
|
|
105
|
-
var controlPoints = points.map(function (p) { return ({ x: p[0], y: p[1], z: p[2] }); });
|
|
106
|
-
var weights = new Array(controlPoints.length).fill(1.0);
|
|
107
|
-
return new AcGeNurbsCurve(degree, knots, controlPoints, weights);
|
|
90
|
+
var result = interpolateNurbsCurve(points, degree, parameterization, startTangent, endTangent);
|
|
91
|
+
var controlPoints = result.controlPoints.map(function (p) { return ({
|
|
92
|
+
x: p[0],
|
|
93
|
+
y: p[1],
|
|
94
|
+
z: p[2]
|
|
95
|
+
}); });
|
|
96
|
+
return new AcGeNurbsCurve(degree, result.knots, controlPoints, result.weights);
|
|
108
97
|
};
|
|
109
98
|
/**
|
|
110
99
|
* Get the valid parameter range for this curve
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeNurbsCurve.js","sourceRoot":"","sources":["../../src/geometry/AcGeNurbsCurve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"AcGeNurbsCurve.js","sourceRoot":"","sources":["../../src/geometry/AcGeNurbsCurve.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,10 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
|
8
8
|
private _controlPoints;
|
|
9
9
|
private _closed;
|
|
10
10
|
private _degree;
|
|
11
|
+
private _startTangent?;
|
|
12
|
+
private _endTangent?;
|
|
11
13
|
constructor(controlPoints: AcGePoint3dLike[], knots: number[], weights?: number[], degree?: number, closed?: boolean);
|
|
12
|
-
constructor(fitPoints: AcGePointLike[], knotParam: AcGeKnotParameterizationType, degree?: number, closed?: boolean);
|
|
14
|
+
constructor(fitPoints: AcGePointLike[], knotParam: AcGeKnotParameterizationType, degree?: number, closed?: boolean, startTangent?: AcGePointLike, endTangent?: AcGePointLike);
|
|
13
15
|
/**
|
|
14
16
|
* Build the NURBS curve using stored data
|
|
15
17
|
*/
|
|
@@ -87,18 +89,13 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
|
87
89
|
* @returns Return converted points
|
|
88
90
|
*/
|
|
89
91
|
private toNurbsPoints;
|
|
90
|
-
/**
|
|
91
|
-
* Convert input points to points in verb-nurbs-web format
|
|
92
|
-
* @param points Input points to convert
|
|
93
|
-
* @returns Return converted points
|
|
94
|
-
*/
|
|
95
|
-
private toVerbPoints;
|
|
96
92
|
/**
|
|
97
93
|
* Convert input points to points in geometry engine format
|
|
98
94
|
* @param points Input points to convert
|
|
99
95
|
* @returns Return converted points
|
|
100
96
|
*/
|
|
101
97
|
private toGePoints;
|
|
98
|
+
private toNurbsPoint;
|
|
102
99
|
/**
|
|
103
100
|
* Create a closed spline from fit points using AcGeNurbsCurve.createClosedCurve
|
|
104
101
|
* @param fitPoints - Array of fit points defining the curve
|
|
@@ -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;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;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,WAAW,CAAC,CAAe;gBAGjC,aAAa,EAAE,eAAe,EAAE,EAChC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO;gBAGhB,SAAS,EAAE,aAAa,EAAE,EAC1B,SAAS,EAAE,4BAA4B,EACvC,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,aAAa;IAmJ5B;;OAEG;IACH,OAAO,CAAC,UAAU;IA4DlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,oBAAoB,6CAEvB;IAED,IAAI,aAAa;;;;QAMhB;IAED,IAAI,SAAS;;;;oBAMZ;IAED,IAAI,KAAK,aAER;IAED,IAAI,OAAO,aAEV;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;IAmBnD;;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;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAIpB;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,SAAS,EAAE,eAAe,EAAE,EAC5B,gBAAgB,GAAE,4BAAwC,EAC1D,MAAM,GAAE,MAAU,GACjB,YAAY;CAUhB"}
|
|
@@ -39,23 +39,22 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
39
39
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
40
40
|
};
|
|
41
41
|
import { AcCmErrors } from '@mlightcad/common';
|
|
42
|
-
import verb from 'verb-nurbs-web';
|
|
43
42
|
import { AcGeBox3d, AcGePoint3d } from '../math';
|
|
44
43
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
|
45
44
|
import { AcGeNurbsCurve } from './AcGeNurbsCurve';
|
|
46
45
|
var AcGeSpline3d = /** @class */ (function (_super) {
|
|
47
46
|
__extends(AcGeSpline3d, _super);
|
|
48
|
-
function AcGeSpline3d(a, b, c, d, e) {
|
|
47
|
+
function AcGeSpline3d(a, b, c, d, e, f) {
|
|
49
48
|
var _this = _super.call(this) || this;
|
|
50
49
|
// Count the number of arguments passed (including undefined)
|
|
51
50
|
var argsLength = arguments.length;
|
|
52
|
-
if (argsLength < 2 || argsLength > 5) {
|
|
53
|
-
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
|
54
|
-
}
|
|
55
51
|
// Default degree is 3
|
|
56
52
|
_this._degree = 3;
|
|
57
53
|
_this._closed = false;
|
|
58
54
|
if (!Array.isArray(b)) {
|
|
55
|
+
if (argsLength < 2 || argsLength > 6) {
|
|
56
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
|
57
|
+
}
|
|
59
58
|
// Constructor with fit points
|
|
60
59
|
_this._fitPoints = a;
|
|
61
60
|
_this._knotParameterization = b;
|
|
@@ -63,18 +62,50 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
63
62
|
if (argsLength >= 3) {
|
|
64
63
|
_this._degree = c || 3;
|
|
65
64
|
}
|
|
66
|
-
|
|
65
|
+
var hasClosedArg = typeof d === 'boolean';
|
|
66
|
+
if (argsLength >= 4 && hasClosedArg) {
|
|
67
67
|
_this._closed = d;
|
|
68
68
|
}
|
|
69
|
+
if (hasClosedArg) {
|
|
70
|
+
if (argsLength >= 5) {
|
|
71
|
+
_this._startTangent = e;
|
|
72
|
+
}
|
|
73
|
+
if (argsLength >= 6) {
|
|
74
|
+
_this._endTangent = f;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (argsLength >= 4) {
|
|
79
|
+
_this._startTangent = d;
|
|
80
|
+
}
|
|
81
|
+
if (argsLength >= 5) {
|
|
82
|
+
_this._endTangent = e;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (_this._closed) {
|
|
86
|
+
_this._startTangent = undefined;
|
|
87
|
+
_this._endTangent = undefined;
|
|
88
|
+
}
|
|
69
89
|
// Validate minimum number of fit points for the specified degree
|
|
70
|
-
|
|
90
|
+
var tangentCount = (_this._startTangent ? 1 : 0) + (_this._endTangent ? 1 : 0);
|
|
91
|
+
if (_this._fitPoints.length + tangentCount < _this._degree + 1) {
|
|
71
92
|
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
|
72
93
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
94
|
+
if (_this._closed) {
|
|
95
|
+
_this._nurbsCurve = AcGeNurbsCurve.createClosedCurve(_this._fitPoints, _this._degree, _this._knotParameterization);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
var points = _this.toNurbsPoints(_this._fitPoints);
|
|
99
|
+
_this._nurbsCurve = AcGeNurbsCurve.byPoints(points, _this._degree, _this._knotParameterization, _this._startTangent
|
|
100
|
+
? _this.toNurbsPoint(_this._startTangent)
|
|
101
|
+
: undefined, _this._endTangent ? _this.toNurbsPoint(_this._endTangent) : undefined);
|
|
102
|
+
}
|
|
103
|
+
_this._controlPoints = _this.toGePoints(_this._nurbsCurve.controlPoints().map(function (p) { return [p.x, p.y, p.z || 0]; }));
|
|
76
104
|
}
|
|
77
105
|
else {
|
|
106
|
+
if (argsLength < 2 || argsLength > 5) {
|
|
107
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
|
108
|
+
}
|
|
78
109
|
// Constructor with control points
|
|
79
110
|
_this._controlPoints = a;
|
|
80
111
|
// Determine if c is weights or degree based on type
|
|
@@ -113,8 +144,7 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
113
144
|
if (_this._controlPoints.length < _this._degree + 1) {
|
|
114
145
|
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
|
115
146
|
}
|
|
116
|
-
|
|
117
|
-
_this._nurbsCurve = verb.geom.NurbsCurve.byKnotsControlPointsWeights(_this._degree, b, points, weights);
|
|
147
|
+
_this._nurbsCurve = AcGeNurbsCurve.byKnotsControlPointsWeights(_this._degree, b, _this._controlPoints, weights);
|
|
118
148
|
}
|
|
119
149
|
return _this;
|
|
120
150
|
// Apply closed state if specified
|
|
@@ -131,14 +161,16 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
131
161
|
if (this._closed) {
|
|
132
162
|
var newFitPoints = AcGeNurbsCurve.createFitPointsForClosedCurve(this._fitPoints);
|
|
133
163
|
var points = this.toNurbsPoints(newFitPoints);
|
|
134
|
-
this._nurbsCurve =
|
|
164
|
+
this._nurbsCurve = AcGeNurbsCurve.byPoints(points, this._degree, this._knotParameterization);
|
|
135
165
|
}
|
|
136
166
|
else {
|
|
137
167
|
// Create open curve from fit points
|
|
138
168
|
var points = this.toNurbsPoints(this._fitPoints);
|
|
139
|
-
this._nurbsCurve =
|
|
169
|
+
this._nurbsCurve = AcGeNurbsCurve.byPoints(points, this._degree, this._knotParameterization, this._startTangent
|
|
170
|
+
? this.toNurbsPoint(this._startTangent)
|
|
171
|
+
: undefined, this._endTangent ? this.toNurbsPoint(this._endTangent) : undefined);
|
|
140
172
|
}
|
|
141
|
-
this._controlPoints = this.toGePoints(this._nurbsCurve.controlPoints());
|
|
173
|
+
this._controlPoints = this.toGePoints(this._nurbsCurve.controlPoints().map(function (p) { return [p.x, p.y, p.z || 0]; }));
|
|
142
174
|
}
|
|
143
175
|
else if (this._controlPoints) {
|
|
144
176
|
// Build from control points
|
|
@@ -146,16 +178,15 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
146
178
|
// Create closed curve from control points
|
|
147
179
|
var newFitPoints = AcGeNurbsCurve.createFitPointsForClosedCurve(this._controlPoints);
|
|
148
180
|
var points = this.toNurbsPoints(newFitPoints);
|
|
149
|
-
this._nurbsCurve =
|
|
150
|
-
this._controlPoints = this.toGePoints(this._nurbsCurve.controlPoints());
|
|
181
|
+
this._nurbsCurve = AcGeNurbsCurve.byPoints(points, this._degree, this._knotParameterization);
|
|
182
|
+
this._controlPoints = this.toGePoints(this._nurbsCurve.controlPoints().map(function (p) { return [p.x, p.y, p.z || 0]; }));
|
|
151
183
|
}
|
|
152
184
|
else {
|
|
153
185
|
// Create open curve from control points
|
|
154
186
|
// Get knots and weights from the current NURBS curve
|
|
155
187
|
var knots = this._nurbsCurve.knots();
|
|
156
188
|
var weights = this._nurbsCurve.weights();
|
|
157
|
-
|
|
158
|
-
this._nurbsCurve = verb.geom.NurbsCurve.byKnotsControlPointsWeights(this._degree, knots, points, weights);
|
|
189
|
+
this._nurbsCurve = AcGeNurbsCurve.byKnotsControlPointsWeights(this._degree, knots, this._controlPoints, weights);
|
|
159
190
|
}
|
|
160
191
|
}
|
|
161
192
|
};
|
|
@@ -319,9 +350,10 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
319
350
|
AcGeSpline3d.prototype.getCurvePoints = function (curve, count) {
|
|
320
351
|
var points = [];
|
|
321
352
|
var knots = curve.knots(); // Get the knot vector from the curve
|
|
353
|
+
var degree = curve.degree();
|
|
322
354
|
// The valid parameter range is between knots[degree] and knots[knots.length - degree - 1]
|
|
323
|
-
var startParam = knots[
|
|
324
|
-
var endParam = knots[knots.length -
|
|
355
|
+
var startParam = knots[degree];
|
|
356
|
+
var endParam = knots[knots.length - degree - 1];
|
|
325
357
|
var step = (endParam - startParam) / (count - 1); // Adjust step size for correct range
|
|
326
358
|
for (var i = 0; i < count; i++) {
|
|
327
359
|
var t = startParam + i * step; // Map t to the correct parameter space
|
|
@@ -366,18 +398,6 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
366
398
|
});
|
|
367
399
|
return nurbsPoints;
|
|
368
400
|
};
|
|
369
|
-
/**
|
|
370
|
-
* Convert input points to points in verb-nurbs-web format
|
|
371
|
-
* @param points Input points to convert
|
|
372
|
-
* @returns Return converted points
|
|
373
|
-
*/
|
|
374
|
-
AcGeSpline3d.prototype.toVerbPoints = function (points) {
|
|
375
|
-
var verbPoints = new Array(points.length);
|
|
376
|
-
points.forEach(function (point, index) {
|
|
377
|
-
verbPoints[index] = [point.x, point.y, point.z || 0];
|
|
378
|
-
});
|
|
379
|
-
return verbPoints;
|
|
380
|
-
};
|
|
381
401
|
/**
|
|
382
402
|
* Convert input points to points in geometry engine format
|
|
383
403
|
* @param points Input points to convert
|
|
@@ -390,6 +410,9 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
390
410
|
});
|
|
391
411
|
return gePoints;
|
|
392
412
|
};
|
|
413
|
+
AcGeSpline3d.prototype.toNurbsPoint = function (point) {
|
|
414
|
+
return [point.x, point.y, point.z || 0];
|
|
415
|
+
};
|
|
393
416
|
/**
|
|
394
417
|
* Create a closed spline from fit points using AcGeNurbsCurve.createClosedCurve
|
|
395
418
|
* @param fitPoints - Array of fit points defining the curve
|
|
@@ -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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"}
|