@mlightcad/geometry-engine 3.4.7 → 3.4.9
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.umd.cjs +1 -1
- package/lib/geometry/AcGeSpline3d.d.ts +85 -10
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +113 -33
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/geometry/AcGeSplineUtil.d.ts +6 -0
- package/lib/geometry/AcGeSplineUtil.d.ts.map +1 -0
- package/lib/geometry/AcGeSplineUtil.js +36 -0
- package/lib/geometry/AcGeSplineUtil.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/math/AcGeMatrix3d.d.ts +5 -1
- package/lib/math/AcGeMatrix3d.d.ts.map +1 -1
- package/lib/math/AcGeMatrix3d.js +24 -9
- package/lib/math/AcGeMatrix3d.js.map +1 -1
- package/lib/util/AcGeGeometryUtil.d.ts +12 -2
- package/lib/util/AcGeGeometryUtil.d.ts.map +1 -1
- package/lib/util/AcGeGeometryUtil.js +22 -3
- package/lib/util/AcGeGeometryUtil.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -25,16 +25,8 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
|
25
25
|
*/
|
|
26
26
|
get degree(): number;
|
|
27
27
|
get knotParameterization(): AcGeKnotParameterizationType | undefined;
|
|
28
|
-
get controlPoints():
|
|
29
|
-
|
|
30
|
-
y: number;
|
|
31
|
-
z: number;
|
|
32
|
-
}[];
|
|
33
|
-
get fitPoints(): {
|
|
34
|
-
x: number;
|
|
35
|
-
y: number;
|
|
36
|
-
z: number;
|
|
37
|
-
}[] | undefined;
|
|
28
|
+
get controlPoints(): import("../math").AcGeVector3dLike[];
|
|
29
|
+
get fitPoints(): import("../math").AcGeVector3dLike[] | undefined;
|
|
38
30
|
get knots(): number[];
|
|
39
31
|
get weights(): number[];
|
|
40
32
|
/**
|
|
@@ -133,5 +125,88 @@ export declare class AcGeSpline3d extends AcGeCurve3d {
|
|
|
133
125
|
* @returns A closed spline
|
|
134
126
|
*/
|
|
135
127
|
static createClosedSpline(fitPoints: AcGePoint3dLike[], parameterization?: AcGeKnotParameterizationType, degree?: number): AcGeSpline3d;
|
|
128
|
+
/**
|
|
129
|
+
* Creates a 3D spline geometry from control points, knots, and optional weights.
|
|
130
|
+
*
|
|
131
|
+
* This factory is intended for robust deserialization: it normalizes degree and
|
|
132
|
+
* weights from imperfect source data and returns `null` instead of throwing when
|
|
133
|
+
* the NURBS definition is invalid.
|
|
134
|
+
*
|
|
135
|
+
* @param controlPoints - Control vertices defining the curve shape
|
|
136
|
+
* @param knots - Full knot vector for the spline
|
|
137
|
+
* @param weights - Optional per-control-point weights; ignored when the array length
|
|
138
|
+
* does not match `controlPoints.length`
|
|
139
|
+
* @param declaredDegree - Degree from the source file; when less than 1, derived from
|
|
140
|
+
* `knots.length - controlPoints.length - 1`, then clamped to `[1, controlPoints.length - 1]`
|
|
141
|
+
* @param closed - Whether the spline forms a closed loop
|
|
142
|
+
* @returns A spline geometry, or `null` if construction fails
|
|
143
|
+
*/
|
|
144
|
+
static fromControlPoints(controlPoints: AcGePoint3dLike[], knots: number[], weights: number[] | undefined, declaredDegree: number | undefined, closed: boolean): AcGeSpline3d | null;
|
|
145
|
+
/**
|
|
146
|
+
* Creates a 3D spline geometry that interpolates fit points.
|
|
147
|
+
*
|
|
148
|
+
* Knots and control points are generated from the fit data. Non-zero start/end
|
|
149
|
+
* tangents constrain the curve ends; zero-length tangents are ignored. Degree is
|
|
150
|
+
* clamped so that `fitPoints.length + tangentCount >= degree + 1`.
|
|
151
|
+
*
|
|
152
|
+
* @param fitPoints - Points the spline should pass through
|
|
153
|
+
* @param knotParam - Knot parameterization (`'Uniform'`, `'Chord'`, or `'SqrtChord'`)
|
|
154
|
+
* @param declaredDegree - Requested degree from the source file; defaults to 3 when
|
|
155
|
+
* missing or less than 1, then clamped to fit the available fit/tangent data
|
|
156
|
+
* @param closed - Whether the spline forms a closed loop
|
|
157
|
+
* @param startTangent - Optional start tangent direction; ignored when zero-length
|
|
158
|
+
* @param endTangent - Optional end tangent direction; ignored when zero-length
|
|
159
|
+
* @returns A spline geometry, or `null` if construction fails
|
|
160
|
+
*/
|
|
161
|
+
static fromFitPoints(fitPoints: AcGePoint3dLike[], knotParam: AcGeKnotParameterizationType, declaredDegree: number | undefined, closed: boolean, startTangent?: AcGePoint3dLike | null, endTangent?: AcGePoint3dLike | null): AcGeSpline3d | null;
|
|
162
|
+
/**
|
|
163
|
+
* Creates a 3D spline geometry from parsed DWG/DXF spline-edge data.
|
|
164
|
+
*
|
|
165
|
+
* Used for hatch boundary paths, proxy-graphics edges, and similar structures where
|
|
166
|
+
* spline data is embedded as a lightweight edge record rather than a full SPLINE
|
|
167
|
+
* entity. Control-point data is preferred; fit data is used when control points are
|
|
168
|
+
* absent. Fit-point edges always use `'Uniform'` knot parameterization and are
|
|
169
|
+
* treated as open curves.
|
|
170
|
+
*
|
|
171
|
+
* @param spline - Parsed spline-edge payload from a DWG/DXF reader
|
|
172
|
+
* @param spline.numberOfControlPoints - Count of control points in the edge record
|
|
173
|
+
* @param spline.numberOfKnots - Count of knots in the edge record
|
|
174
|
+
* @param spline.numberOfFitData - Count of fit points in the edge record
|
|
175
|
+
* @param spline.degree - Optional declared degree
|
|
176
|
+
* @param spline.controlPoints - Control vertices, optionally with per-point `weight`
|
|
177
|
+
* @param spline.knots - Knot values for the control-point representation
|
|
178
|
+
* @param spline.fitDatum - Fit points when the edge is defined by fit data
|
|
179
|
+
* @param spline.startTangent - Optional start tangent for fit-data edges
|
|
180
|
+
* @param spline.endTangent - Optional end tangent for fit-data edges
|
|
181
|
+
* @returns A spline geometry, or `null` when neither representation can be built
|
|
182
|
+
*/
|
|
183
|
+
static fromDwgSplineEdge(spline: {
|
|
184
|
+
numberOfControlPoints: number;
|
|
185
|
+
numberOfKnots: number;
|
|
186
|
+
numberOfFitData: number;
|
|
187
|
+
degree?: number;
|
|
188
|
+
controlPoints: Array<{
|
|
189
|
+
x: number;
|
|
190
|
+
y: number;
|
|
191
|
+
z?: number;
|
|
192
|
+
weight?: number | null;
|
|
193
|
+
}>;
|
|
194
|
+
knots: number[];
|
|
195
|
+
fitDatum: Array<{
|
|
196
|
+
x: number;
|
|
197
|
+
y: number;
|
|
198
|
+
z?: number;
|
|
199
|
+
}>;
|
|
200
|
+
startTangent?: {
|
|
201
|
+
x: number;
|
|
202
|
+
y: number;
|
|
203
|
+
z?: number;
|
|
204
|
+
} | null;
|
|
205
|
+
endTangent?: {
|
|
206
|
+
x: number;
|
|
207
|
+
y: number;
|
|
208
|
+
z?: number;
|
|
209
|
+
} | null;
|
|
210
|
+
}): AcGeSpline3d | null;
|
|
136
211
|
}
|
|
137
212
|
//# 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,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"AcGeSpline3d.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,9 +40,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
40
40
|
};
|
|
41
41
|
import { AcCmErrors } from '@mlightcad/common';
|
|
42
42
|
import { AcGeBox3d, AcGePoint3d } from '../math';
|
|
43
|
+
import { AcGeGeometryUtil } from '../util/AcGeGeometryUtil';
|
|
43
44
|
import { acGeClosedPolygonArea3d } from '../util/AcGePolygonAreaUtil';
|
|
44
45
|
import { AcGeCurve3d } from './AcGeCurve3d';
|
|
45
46
|
import { AcGeNurbsCurve } from './AcGeNurbsCurve';
|
|
47
|
+
import { isNonZeroDirection, normalizeSplineWeights, resolveControlPointSplineDegree, resolveFitPointSplineDegree } from './AcGeSplineUtil';
|
|
46
48
|
var AcGeSpline3d = /** @class */ (function (_super) {
|
|
47
49
|
__extends(AcGeSpline3d, _super);
|
|
48
50
|
function AcGeSpline3d(a, b, c, d, e, f) {
|
|
@@ -221,11 +223,7 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
221
223
|
});
|
|
222
224
|
Object.defineProperty(AcGeSpline3d.prototype, "controlPoints", {
|
|
223
225
|
get: function () {
|
|
224
|
-
return this._controlPoints.map(
|
|
225
|
-
x: point.x,
|
|
226
|
-
y: point.y,
|
|
227
|
-
z: point.z || 0
|
|
228
|
-
}); });
|
|
226
|
+
return this._controlPoints.map(AcGeGeometryUtil.point2dToPoint3d);
|
|
229
227
|
},
|
|
230
228
|
enumerable: false,
|
|
231
229
|
configurable: true
|
|
@@ -233,11 +231,7 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
233
231
|
Object.defineProperty(AcGeSpline3d.prototype, "fitPoints", {
|
|
234
232
|
get: function () {
|
|
235
233
|
var _a;
|
|
236
|
-
return (_a = this._fitPoints) === null || _a === void 0 ? void 0 : _a.map(
|
|
237
|
-
x: point.x,
|
|
238
|
-
y: point.y,
|
|
239
|
-
z: point.z || 0
|
|
240
|
-
}); });
|
|
234
|
+
return (_a = this._fitPoints) === null || _a === void 0 ? void 0 : _a.map(AcGeGeometryUtil.point2dToPoint3d);
|
|
241
235
|
},
|
|
242
236
|
enumerable: false,
|
|
243
237
|
configurable: true
|
|
@@ -328,7 +322,7 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
328
322
|
var length = this._fitPoints.length;
|
|
329
323
|
var newIndex = index < 0 || index >= length ? length - 1 : index;
|
|
330
324
|
var point = this._fitPoints[newIndex];
|
|
331
|
-
return
|
|
325
|
+
return AcGeGeometryUtil.point2dToPoint3d(point);
|
|
332
326
|
};
|
|
333
327
|
/**
|
|
334
328
|
* Return the value of the control point at position index in the list of control points.
|
|
@@ -451,29 +445,9 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
451
445
|
*/
|
|
452
446
|
AcGeSpline3d.prototype.clone = function () {
|
|
453
447
|
if (this._fitPoints && this._knotParameterization) {
|
|
454
|
-
return new AcGeSpline3d(this._fitPoints.map(
|
|
455
|
-
x: point.x,
|
|
456
|
-
y: point.y,
|
|
457
|
-
z: point.z || 0
|
|
458
|
-
}); }), this._knotParameterization, this._degree, this._closed, this._startTangent
|
|
459
|
-
? {
|
|
460
|
-
x: this._startTangent.x,
|
|
461
|
-
y: this._startTangent.y,
|
|
462
|
-
z: this._startTangent.z || 0
|
|
463
|
-
}
|
|
464
|
-
: undefined, this._endTangent
|
|
465
|
-
? {
|
|
466
|
-
x: this._endTangent.x,
|
|
467
|
-
y: this._endTangent.y,
|
|
468
|
-
z: this._endTangent.z || 0
|
|
469
|
-
}
|
|
470
|
-
: undefined);
|
|
448
|
+
return new AcGeSpline3d(this._fitPoints.map(AcGeGeometryUtil.point2dToPoint3d), this._knotParameterization, this._degree, this._closed, this._startTangent ? AcGeGeometryUtil.point2dToPoint3d(this._startTangent) : undefined, this._endTangent ? AcGeGeometryUtil.point2dToPoint3d(this._endTangent) : undefined);
|
|
471
449
|
}
|
|
472
|
-
return new AcGeSpline3d(this._controlPoints.map(
|
|
473
|
-
x: point.x,
|
|
474
|
-
y: point.y,
|
|
475
|
-
z: point.z || 0
|
|
476
|
-
}); }), this._nurbsCurve.knots(), this._nurbsCurve.weights(), this._degree, this._closed);
|
|
450
|
+
return new AcGeSpline3d(this._controlPoints.map(AcGeGeometryUtil.point2dToPoint3d), this._nurbsCurve.knots(), this._nurbsCurve.weights(), this._degree, this._closed);
|
|
477
451
|
};
|
|
478
452
|
/**
|
|
479
453
|
* Convert input points to points in NURBS format
|
|
@@ -518,6 +492,112 @@ var AcGeSpline3d = /** @class */ (function (_super) {
|
|
|
518
492
|
// Create spline using the constructor with fit points, degree, and closed=true
|
|
519
493
|
return new AcGeSpline3d(fitPoints, parameterization, degree, true);
|
|
520
494
|
};
|
|
495
|
+
/**
|
|
496
|
+
* Creates a 3D spline geometry from control points, knots, and optional weights.
|
|
497
|
+
*
|
|
498
|
+
* This factory is intended for robust deserialization: it normalizes degree and
|
|
499
|
+
* weights from imperfect source data and returns `null` instead of throwing when
|
|
500
|
+
* the NURBS definition is invalid.
|
|
501
|
+
*
|
|
502
|
+
* @param controlPoints - Control vertices defining the curve shape
|
|
503
|
+
* @param knots - Full knot vector for the spline
|
|
504
|
+
* @param weights - Optional per-control-point weights; ignored when the array length
|
|
505
|
+
* does not match `controlPoints.length`
|
|
506
|
+
* @param declaredDegree - Degree from the source file; when less than 1, derived from
|
|
507
|
+
* `knots.length - controlPoints.length - 1`, then clamped to `[1, controlPoints.length - 1]`
|
|
508
|
+
* @param closed - Whether the spline forms a closed loop
|
|
509
|
+
* @returns A spline geometry, or `null` if construction fails
|
|
510
|
+
*/
|
|
511
|
+
AcGeSpline3d.fromControlPoints = function (controlPoints, knots, weights, declaredDegree, closed) {
|
|
512
|
+
if (controlPoints.length < 2 || knots.length < 2) {
|
|
513
|
+
return null;
|
|
514
|
+
}
|
|
515
|
+
var degree = resolveControlPointSplineDegree(declaredDegree, controlPoints.length, knots.length);
|
|
516
|
+
if (controlPoints.length < degree + 1) {
|
|
517
|
+
return null;
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
return new AcGeSpline3d(controlPoints, knots, normalizeSplineWeights(weights, controlPoints.length), degree, closed);
|
|
521
|
+
}
|
|
522
|
+
catch (_a) {
|
|
523
|
+
return null;
|
|
524
|
+
}
|
|
525
|
+
};
|
|
526
|
+
/**
|
|
527
|
+
* Creates a 3D spline geometry that interpolates fit points.
|
|
528
|
+
*
|
|
529
|
+
* Knots and control points are generated from the fit data. Non-zero start/end
|
|
530
|
+
* tangents constrain the curve ends; zero-length tangents are ignored. Degree is
|
|
531
|
+
* clamped so that `fitPoints.length + tangentCount >= degree + 1`.
|
|
532
|
+
*
|
|
533
|
+
* @param fitPoints - Points the spline should pass through
|
|
534
|
+
* @param knotParam - Knot parameterization (`'Uniform'`, `'Chord'`, or `'SqrtChord'`)
|
|
535
|
+
* @param declaredDegree - Requested degree from the source file; defaults to 3 when
|
|
536
|
+
* missing or less than 1, then clamped to fit the available fit/tangent data
|
|
537
|
+
* @param closed - Whether the spline forms a closed loop
|
|
538
|
+
* @param startTangent - Optional start tangent direction; ignored when zero-length
|
|
539
|
+
* @param endTangent - Optional end tangent direction; ignored when zero-length
|
|
540
|
+
* @returns A spline geometry, or `null` if construction fails
|
|
541
|
+
*/
|
|
542
|
+
AcGeSpline3d.fromFitPoints = function (fitPoints, knotParam, declaredDegree, closed, startTangent, endTangent) {
|
|
543
|
+
if (fitPoints.length < 2) {
|
|
544
|
+
return null;
|
|
545
|
+
}
|
|
546
|
+
var hasStartTangent = isNonZeroDirection(startTangent);
|
|
547
|
+
var hasEndTangent = isNonZeroDirection(endTangent);
|
|
548
|
+
var tangentCount = (hasStartTangent ? 1 : 0) + (hasEndTangent ? 1 : 0);
|
|
549
|
+
var degree = resolveFitPointSplineDegree(declaredDegree, fitPoints.length, tangentCount);
|
|
550
|
+
if (fitPoints.length + tangentCount < degree + 1) {
|
|
551
|
+
return null;
|
|
552
|
+
}
|
|
553
|
+
try {
|
|
554
|
+
if (hasStartTangent || hasEndTangent) {
|
|
555
|
+
return new AcGeSpline3d(fitPoints, knotParam, degree, closed, hasStartTangent ? startTangent : undefined, hasEndTangent ? endTangent : undefined);
|
|
556
|
+
}
|
|
557
|
+
return new AcGeSpline3d(fitPoints, knotParam, degree, closed);
|
|
558
|
+
}
|
|
559
|
+
catch (_a) {
|
|
560
|
+
return null;
|
|
561
|
+
}
|
|
562
|
+
};
|
|
563
|
+
/**
|
|
564
|
+
* Creates a 3D spline geometry from parsed DWG/DXF spline-edge data.
|
|
565
|
+
*
|
|
566
|
+
* Used for hatch boundary paths, proxy-graphics edges, and similar structures where
|
|
567
|
+
* spline data is embedded as a lightweight edge record rather than a full SPLINE
|
|
568
|
+
* entity. Control-point data is preferred; fit data is used when control points are
|
|
569
|
+
* absent. Fit-point edges always use `'Uniform'` knot parameterization and are
|
|
570
|
+
* treated as open curves.
|
|
571
|
+
*
|
|
572
|
+
* @param spline - Parsed spline-edge payload from a DWG/DXF reader
|
|
573
|
+
* @param spline.numberOfControlPoints - Count of control points in the edge record
|
|
574
|
+
* @param spline.numberOfKnots - Count of knots in the edge record
|
|
575
|
+
* @param spline.numberOfFitData - Count of fit points in the edge record
|
|
576
|
+
* @param spline.degree - Optional declared degree
|
|
577
|
+
* @param spline.controlPoints - Control vertices, optionally with per-point `weight`
|
|
578
|
+
* @param spline.knots - Knot values for the control-point representation
|
|
579
|
+
* @param spline.fitDatum - Fit points when the edge is defined by fit data
|
|
580
|
+
* @param spline.startTangent - Optional start tangent for fit-data edges
|
|
581
|
+
* @param spline.endTangent - Optional end tangent for fit-data edges
|
|
582
|
+
* @returns A spline geometry, or `null` when neither representation can be built
|
|
583
|
+
*/
|
|
584
|
+
AcGeSpline3d.fromDwgSplineEdge = function (spline) {
|
|
585
|
+
if (spline.numberOfControlPoints > 0 && spline.numberOfKnots > 0) {
|
|
586
|
+
var controlPoints = spline.controlPoints.map(AcGeGeometryUtil.point2dToPoint3d);
|
|
587
|
+
var hasWeights_1 = true;
|
|
588
|
+
var weights = spline.controlPoints.map(function (item) {
|
|
589
|
+
if (item.weight == null)
|
|
590
|
+
hasWeights_1 = false;
|
|
591
|
+
return item.weight || 1;
|
|
592
|
+
});
|
|
593
|
+
return AcGeSpline3d.fromControlPoints(controlPoints, spline.knots, hasWeights_1 ? weights : undefined, spline.degree, false);
|
|
594
|
+
}
|
|
595
|
+
if (spline.numberOfFitData > 0) {
|
|
596
|
+
var fitPoints = spline.fitDatum.map(AcGeGeometryUtil.point2dToPoint3d);
|
|
597
|
+
return AcGeSpline3d.fromFitPoints(fitPoints, 'Uniform', spline.degree, false, spline.startTangent ? AcGeGeometryUtil.point2dToPoint3d(spline.startTangent) : undefined, spline.endTangent ? AcGeGeometryUtil.point2dToPoint3d(spline.endTangent) : undefined);
|
|
598
|
+
}
|
|
599
|
+
return null;
|
|
600
|
+
};
|
|
521
601
|
return AcGeSpline3d;
|
|
522
602
|
}(AcGeCurve3d));
|
|
523
603
|
export { AcGeSpline3d };
|
|
@@ -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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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AcGePoint3dLike } from '../math';
|
|
2
|
+
export declare function isNonZeroDirection(vector?: AcGePoint3dLike | null): boolean;
|
|
3
|
+
export declare function resolveControlPointSplineDegree(declaredDegree: number | undefined, controlPointCount: number, knotCount: number): number;
|
|
4
|
+
export declare function resolveFitPointSplineDegree(declaredDegree: number | undefined, fitPointCount: number, tangentCount: number): number;
|
|
5
|
+
export declare function normalizeSplineWeights(weights: number[] | undefined, controlPointCount: number): number[] | undefined;
|
|
6
|
+
//# sourceMappingURL=AcGeSplineUtil.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcGeSplineUtil.d.ts","sourceRoot":"","sources":["../../src/geometry/AcGeSplineUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAM3E;AAED,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,GAChB,MAAM,CAUR;AAED,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,iBAAiB,EAAE,MAAM,GACxB,MAAM,EAAE,GAAG,SAAS,CAKtB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function isNonZeroDirection(vector) {
|
|
2
|
+
var _a, _b, _c;
|
|
3
|
+
if (!vector)
|
|
4
|
+
return false;
|
|
5
|
+
var x = (_a = vector.x) !== null && _a !== void 0 ? _a : 0;
|
|
6
|
+
var y = (_b = vector.y) !== null && _b !== void 0 ? _b : 0;
|
|
7
|
+
var z = (_c = vector.z) !== null && _c !== void 0 ? _c : 0;
|
|
8
|
+
return x * x + y * y + z * z > 1e-20;
|
|
9
|
+
}
|
|
10
|
+
export function resolveControlPointSplineDegree(declaredDegree, controlPointCount, knotCount) {
|
|
11
|
+
var degree = declaredDegree !== null && declaredDegree !== void 0 ? declaredDegree : 0;
|
|
12
|
+
if (degree < 1 && knotCount > 0 && controlPointCount > 0) {
|
|
13
|
+
degree = knotCount - controlPointCount - 1;
|
|
14
|
+
}
|
|
15
|
+
if (degree < 1) {
|
|
16
|
+
degree = 3;
|
|
17
|
+
}
|
|
18
|
+
degree = Math.min(degree, controlPointCount - 1);
|
|
19
|
+
return Math.max(1, degree);
|
|
20
|
+
}
|
|
21
|
+
export function resolveFitPointSplineDegree(declaredDegree, fitPointCount, tangentCount) {
|
|
22
|
+
var degree = declaredDegree !== null && declaredDegree !== void 0 ? declaredDegree : 0;
|
|
23
|
+
if (degree < 1) {
|
|
24
|
+
degree = 3;
|
|
25
|
+
}
|
|
26
|
+
var maxDegree = fitPointCount + tangentCount - 1;
|
|
27
|
+
degree = Math.min(degree, maxDegree);
|
|
28
|
+
return Math.max(1, degree);
|
|
29
|
+
}
|
|
30
|
+
export function normalizeSplineWeights(weights, controlPointCount) {
|
|
31
|
+
if (!weights || weights.length !== controlPointCount) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return weights;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=AcGeSplineUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcGeSplineUtil.js","sourceRoot":"","sources":["../../src/geometry/AcGeSplineUtil.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,MAA+B;;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzB,IAAM,CAAC,GAAG,MAAA,MAAM,CAAC,CAAC,mCAAI,CAAC,CAAA;IACvB,IAAM,CAAC,GAAG,MAAA,MAAM,CAAC,CAAC,mCAAI,CAAC,CAAA;IACvB,IAAM,CAAC,GAAG,MAAA,MAAM,CAAC,CAAC,mCAAI,CAAC,CAAA;IACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,cAAkC,EAClC,iBAAyB,EACzB,SAAiB;IAEjB,IAAI,MAAM,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,CAAC,CAAA;IAChC,IAAI,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,CAAC,CAAA;IACZ,CAAC;IACD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,cAAkC,EAClC,aAAqB,EACrB,YAAoB;IAEpB,IAAI,MAAM,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,CAAC,CAAA;IAChC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,CAAC,CAAA;IACZ,CAAC;IACD,IAAM,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC,CAAA;IAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAA6B,EAC7B,iBAAyB;IAEzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACrD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { AcGeArea2d, AcGeCatmullRomCurve3d, AcGeCircArc2d, AcGeCircArc3d, AcGeCu
|
|
|
2
2
|
export type { AcGeBoundaryEdgeType, AcGeIndexNode, AcGeKnotParameterizationType, AcGeLoop2dType, AcGePolyline2dVertex, CatmullRomCurveType } from './geometry';
|
|
3
3
|
export { AcGeBox2d, AcGeBox3d, AcGeEuler, AcGeMatrix2d, AcGeMatrix3d, AcGePlane, AcGePoint2d, AcGePoint3d, AcGeQuaternion, AcGeVector2d, AcGeVector3d } from './math';
|
|
4
4
|
export type { AcGePoint, AcGePoint2dLike, AcGePoint3dLike, AcGePointLike, AcGeVector, AcGeVector2dLike, AcGeVector3dLike, AcGeVectorLike } from './math';
|
|
5
|
-
export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, basisFunction, calculateCurveLength, ceilPowerOfTwo, clamp, computeParameterValues, damp, degToRad, euclideanModulo, evaluateNurbsPoint, evaluateNurbsDerivatives, signedPlanarCurvature, floorPowerOfTwo, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUUID, generateUniformKnots, getOcsAngle, getOcsReferenceVector, intPartLength, interpolateControlPoints, interpolateNurbsCurve, inverseLerp, isBetween, isBetweenAngle,
|
|
5
|
+
export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, basisFunction, calculateCurveLength, ceilPowerOfTwo, clamp, computeParameterValues, damp, degToRad, euclideanModulo, evaluateNurbsPoint, evaluateNurbsDerivatives, signedPlanarCurvature, floorPowerOfTwo, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUUID, generateUniformKnots, getOcsAngle, getOcsReferenceVector, intPartLength, interpolateControlPoints, interpolateNurbsCurve, inverseLerp, isBetween, isBetweenAngle, isPowerOfTwo, lerp, mapLinear, normalizeAngle, pingpong, radToDeg, randFloat, randFloatSpread, randInt, relativeEps, seededRandom, smootherstep, smoothstep, transformOcsPointToWcs, transformWcsPointToOcs, offsetPointByDirectionInXY, offsetSmoothedSampledPath, offsetVertexPath, acGeClosedPolygonArea2d, acGeClosedPolygonArea3d, acGePolygonArea2d, acGePolygonArea3d, acGeSignedPolygonArea2d } from './util';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AACf,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,KAAK,EACL,sBAAsB,EACtB,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AACf,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,QAAQ,CAAA;AACf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,KAAK,EACL,sBAAsB,EACtB,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,QAAQ,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { AcGeArea2d, AcGeCatmullRomCurve3d, AcGeCircArc2d, AcGeCircArc3d, AcGeCurve2d, AcGeEllipseArc2d, AcGeEllipseArc3d, AcGeLine2d, AcGeLine3d, AcGeLoop2d, AcGeNurbsCurve, AcGePolyline2d, AcGeShape2d, AcGeSpline3d } from './geometry';
|
|
2
2
|
export { AcGeBox2d, AcGeBox3d, AcGeEuler, AcGeMatrix2d, AcGeMatrix3d, AcGePlane, AcGePoint2d, AcGePoint3d, AcGeQuaternion, AcGeVector2d, AcGeVector3d } from './math';
|
|
3
|
-
export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, basisFunction, calculateCurveLength, ceilPowerOfTwo, clamp, computeParameterValues, damp, degToRad, euclideanModulo, evaluateNurbsPoint, evaluateNurbsDerivatives, signedPlanarCurvature, floorPowerOfTwo, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUUID, generateUniformKnots, getOcsAngle, getOcsReferenceVector, intPartLength, interpolateControlPoints, interpolateNurbsCurve, inverseLerp, isBetween, isBetweenAngle,
|
|
3
|
+
export { AcGeGeometryUtil, AcGeMathUtil, AcGeTol, DEFAULT_TOL, DEG2RAD, FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, RAD2DEG, TAU, basisFunction, calculateCurveLength, ceilPowerOfTwo, clamp, computeParameterValues, damp, degToRad, euclideanModulo, evaluateNurbsPoint, evaluateNurbsDerivatives, signedPlanarCurvature, floorPowerOfTwo, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUUID, generateUniformKnots, getOcsAngle, getOcsReferenceVector, intPartLength, interpolateControlPoints, interpolateNurbsCurve, inverseLerp, isBetween, isBetweenAngle, isPowerOfTwo, lerp, mapLinear, normalizeAngle, pingpong, radToDeg, randFloat, randFloatSpread, randInt, relativeEps, seededRandom, smootherstep, smoothstep, transformOcsPointToWcs, transformWcsPointToOcs, offsetPointByDirectionInXY, offsetSmoothedSampledPath, offsetVertexPath, acGeClosedPolygonArea2d, acGeClosedPolygonArea3d, acGePolygonArea2d, acGePolygonArea3d, acGeSignedPolygonArea2d } from './util';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAA;AASnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AAWf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,KAAK,EACL,sBAAsB,EACtB,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAA;AASnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,QAAQ,CAAA;AAWf,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,eAAe,EACf,eAAe,EACf,OAAO,EACP,GAAG,EACH,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,KAAK,EACL,sBAAsB,EACtB,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,QAAQ,CAAA"}
|
|
@@ -9,6 +9,10 @@ export declare class AcGeMatrix3d {
|
|
|
9
9
|
* Identity matrix.
|
|
10
10
|
*/
|
|
11
11
|
static IDENTITY: Readonly<AcGeMatrix3d>;
|
|
12
|
+
/**
|
|
13
|
+
* Create a translation matrix from a vector or numbers x, y and z.
|
|
14
|
+
*/
|
|
15
|
+
static makeTranslation(x: number | AcGeVector3dLike, y?: number, z?: number): AcGeMatrix3d;
|
|
12
16
|
/**
|
|
13
17
|
* A column-major list of matrix values.
|
|
14
18
|
*/
|
|
@@ -190,7 +194,7 @@ export declare class AcGeMatrix3d {
|
|
|
190
194
|
* @param z Input one number
|
|
191
195
|
* @returns Return this matrix
|
|
192
196
|
*/
|
|
193
|
-
makeTranslation(x: number |
|
|
197
|
+
makeTranslation(x: number | AcGeVector3dLike, y?: number, z?: number): this;
|
|
194
198
|
/**
|
|
195
199
|
* Set this matrix as a rotational transformation around the X axis by theta (θ) radians.
|
|
196
200
|
* @param theta Input rotation angle in radians.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeMatrix3d.d.ts","sourceRoot":"","sources":["../../src/math/AcGeMatrix3d.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAE/D;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,QAAQ,yBAAoC;
|
|
1
|
+
{"version":3,"file":"AcGeMatrix3d.d.ts","sourceRoot":"","sources":["../../src/math/AcGeMatrix3d.ts"],"names":[],"mappings":"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"}
|
package/lib/math/AcGeMatrix3d.js
CHANGED
|
@@ -46,6 +46,12 @@ var AcGeMatrix3d = /** @class */ (function () {
|
|
|
46
46
|
this.set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a translation matrix from a vector or numbers x, y and z.
|
|
51
|
+
*/
|
|
52
|
+
AcGeMatrix3d.makeTranslation = function (x, y, z) {
|
|
53
|
+
return new AcGeMatrix3d().makeTranslation(x, y, z);
|
|
54
|
+
};
|
|
49
55
|
/**
|
|
50
56
|
* Set the elements of this matrix to the supplied row-major values n11, n12, ... n44.
|
|
51
57
|
*
|
|
@@ -152,17 +158,25 @@ var AcGeMatrix3d = /** @class */ (function () {
|
|
|
152
158
|
* @returns Return this matrix
|
|
153
159
|
*/
|
|
154
160
|
AcGeMatrix3d.prototype.setFromExtrusionDirection = function (extrusion) {
|
|
155
|
-
|
|
161
|
+
var length = Math.hypot(extrusion.x, extrusion.y, extrusion.z);
|
|
162
|
+
if (!Number.isFinite(length) || length < 1e-12) {
|
|
163
|
+
this.identity();
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
var normal = Math.abs(length - 1) > 1e-6
|
|
167
|
+
? extrusion.clone().multiplyScalar(1 / length)
|
|
168
|
+
: extrusion;
|
|
169
|
+
if (!DEFAULT_TOL.equalPoint3d(normal, AcGeVector3d.Z_AXIS)) {
|
|
156
170
|
var xAxis = new AcGeVector3d(1, 0, 0);
|
|
157
|
-
if (Math.abs(
|
|
158
|
-
Math.abs(
|
|
159
|
-
xAxis.crossVectors(AcGeVector3d.Y_AXIS,
|
|
171
|
+
if (Math.abs(normal.x) < 1.0 / 64.0 &&
|
|
172
|
+
Math.abs(normal.y) < 1.0 / 64.0) {
|
|
173
|
+
xAxis.crossVectors(AcGeVector3d.Y_AXIS, normal).normalize();
|
|
160
174
|
}
|
|
161
175
|
else {
|
|
162
|
-
xAxis.crossVectors(AcGeVector3d.Z_AXIS,
|
|
176
|
+
xAxis.crossVectors(AcGeVector3d.Z_AXIS, normal).normalize();
|
|
163
177
|
}
|
|
164
|
-
var yAxis =
|
|
165
|
-
this.set(xAxis.x, xAxis.y, xAxis.z, 0, yAxis.x, yAxis.y, yAxis.z, 0,
|
|
178
|
+
var yAxis = normal.clone().cross(xAxis).normalize();
|
|
179
|
+
this.set(xAxis.x, xAxis.y, xAxis.z, 0, yAxis.x, yAxis.y, yAxis.z, 0, normal.x, normal.y, normal.z, 0, 0, 0, 0, 1);
|
|
166
180
|
}
|
|
167
181
|
else {
|
|
168
182
|
this.identity();
|
|
@@ -719,8 +733,9 @@ var AcGeMatrix3d = /** @class */ (function () {
|
|
|
719
733
|
* @returns Return this matrix
|
|
720
734
|
*/
|
|
721
735
|
AcGeMatrix3d.prototype.makeTranslation = function (x, y, z) {
|
|
722
|
-
|
|
723
|
-
|
|
736
|
+
var _a;
|
|
737
|
+
if (typeof x === 'object') {
|
|
738
|
+
this.set(1, 0, 0, x.x, 0, 1, 0, x.y, 0, 0, 1, (_a = x.z) !== null && _a !== void 0 ? _a : 0, 0, 0, 0, 1);
|
|
724
739
|
}
|
|
725
740
|
else {
|
|
726
741
|
this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1);
|