@mlightcad/geometry-engine 3.10.7 → 3.11.0
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/AcGeArea2d.js +2 -2
- package/lib/geometry/AcGeNurbsCurve.js +5 -5
- package/lib/geometry/AcGeNurbsCurve.js.map +1 -1
- package/lib/geometry/AcGePolyline2d.js +4 -4
- package/lib/geometry/AcGePolyline2dOffset.d.ts +2 -2
- package/lib/geometry/AcGePolyline2dOffset.d.ts.map +1 -1
- package/lib/geometry/AcGePolyline2dOffset.js +2 -2
- package/lib/geometry/AcGePolyline2dOffset.js.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +8 -8
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/geometry/AcGeSplineUtil.d.ts +4 -4
- package/lib/geometry/AcGeSplineUtil.d.ts.map +1 -1
- package/lib/geometry/AcGeSplineUtil.js +4 -4
- package/lib/geometry/AcGeSplineUtil.js.map +1 -1
- 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/AcGeEuler.js +7 -7
- package/lib/math/AcGeEuler.js.map +1 -1
- package/lib/math/AcGeQuaternion.js +2 -2
- package/lib/math/AcGeQuaternion.js.map +1 -1
- package/lib/util/AcGeCurveOffsetUtil.d.ts +2 -2
- package/lib/util/AcGeCurveOffsetUtil.d.ts.map +1 -1
- package/lib/util/AcGeCurveOffsetUtil.js +5 -5
- package/lib/util/AcGeCurveOffsetUtil.js.map +1 -1
- package/lib/util/AcGeMathUtil.d.ts +49 -49
- package/lib/util/AcGeMathUtil.d.ts.map +1 -1
- package/lib/util/AcGeMathUtil.js +55 -55
- package/lib/util/AcGeMathUtil.js.map +1 -1
- package/lib/util/AcGeNurbsUtil.d.ts +12 -12
- package/lib/util/AcGeNurbsUtil.d.ts.map +1 -1
- package/lib/util/AcGeNurbsUtil.js +26 -26
- package/lib/util/AcGeNurbsUtil.js.map +1 -1
- package/lib/util/AcGeOcsUtil.d.ts +4 -4
- package/lib/util/AcGeOcsUtil.d.ts.map +1 -1
- package/lib/util/AcGeOcsUtil.js +6 -6
- package/lib/util/AcGeOcsUtil.js.map +1 -1
- package/lib/util/AcGePolygonAreaUtil.d.ts +5 -5
- package/lib/util/AcGePolygonAreaUtil.js +8 -8
- package/lib/util/AcGeSampledCurveOffsetUtil.d.ts +2 -2
- package/lib/util/AcGeSampledCurveOffsetUtil.d.ts.map +1 -1
- package/lib/util/AcGeSampledCurveOffsetUtil.js +2 -2
- package/lib/util/AcGeSampledCurveOffsetUtil.js.map +1 -1
- package/lib/util/index.d.ts +6 -6
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +6 -6
- package/lib/util/index.js.map +1 -1
- package/package.json +2 -2
package/lib/util/AcGeMathUtil.js
CHANGED
|
@@ -264,7 +264,7 @@ var RAD2DEG = 180 / Math.PI;
|
|
|
264
264
|
* http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
|
|
265
265
|
* @returns Return a UUID
|
|
266
266
|
*/
|
|
267
|
-
function
|
|
267
|
+
function acgeGenerateUUID() {
|
|
268
268
|
var d0 = (Math.random() * 0xffffffff) | 0;
|
|
269
269
|
var d1 = (Math.random() * 0xffffffff) | 0;
|
|
270
270
|
var d2 = (Math.random() * 0xffffffff) | 0;
|
|
@@ -299,7 +299,7 @@ function generateUUID() {
|
|
|
299
299
|
* @param max Input maximum value
|
|
300
300
|
* @returns Return clamped value between min and max
|
|
301
301
|
*/
|
|
302
|
-
function
|
|
302
|
+
function acgeClamp(value, min, max) {
|
|
303
303
|
return Math.max(min, Math.min(max, value));
|
|
304
304
|
}
|
|
305
305
|
/**
|
|
@@ -309,7 +309,7 @@ function clamp(value, min, max) {
|
|
|
309
309
|
* @param m Input one integer
|
|
310
310
|
* @returns Return the Euclidean modulo of m % n
|
|
311
311
|
*/
|
|
312
|
-
function
|
|
312
|
+
function acgeEuclideanModulo(n, m) {
|
|
313
313
|
return ((n % m) + m) % m;
|
|
314
314
|
}
|
|
315
315
|
/**
|
|
@@ -321,7 +321,7 @@ function euclideanModulo(n, m) {
|
|
|
321
321
|
* @param b2 Input maximum value for range B.
|
|
322
322
|
* @returns Return linear mapping of x from range [a1, a2] to range [b1, b2]
|
|
323
323
|
*/
|
|
324
|
-
function
|
|
324
|
+
function acgeMapLinear(x, a1, a2, b1, b2) {
|
|
325
325
|
return b1 + ((x - a1) * (b2 - b1)) / (a2 - a1);
|
|
326
326
|
}
|
|
327
327
|
/**
|
|
@@ -332,7 +332,7 @@ function mapLinear(x, a1, a2, b1, b2) {
|
|
|
332
332
|
* @param value Input a value between start and end
|
|
333
333
|
* @returns Return the percentage in the closed interval [0, 1] of the given value between the start and end point.
|
|
334
334
|
*/
|
|
335
|
-
function
|
|
335
|
+
function acgeInverseLerp(x, y, value) {
|
|
336
336
|
if (x !== y) {
|
|
337
337
|
return (value - x) / (y - x);
|
|
338
338
|
}
|
|
@@ -349,7 +349,7 @@ function inverseLerp(x, y, value) {
|
|
|
349
349
|
* @param t Input interpolation factor in the closed interval [0, 1]
|
|
350
350
|
* @returns Return a value linearly interpolated from two known points
|
|
351
351
|
*/
|
|
352
|
-
function
|
|
352
|
+
function acgeLerp(x, y, t) {
|
|
353
353
|
return (1 - t) * x + t * y;
|
|
354
354
|
}
|
|
355
355
|
/**
|
|
@@ -363,8 +363,8 @@ function lerp(x, y, t) {
|
|
|
363
363
|
* @param dt Input delta time in seconds.
|
|
364
364
|
* @returns Return a number from x toward y
|
|
365
365
|
*/
|
|
366
|
-
function
|
|
367
|
-
return
|
|
366
|
+
function acgeDamp(x, y, lambda, dt) {
|
|
367
|
+
return acgeLerp(x, y, 1 - Math.exp(-lambda * dt));
|
|
368
368
|
}
|
|
369
369
|
/**
|
|
370
370
|
* Return a value that alternates between 0 and length.
|
|
@@ -373,9 +373,9 @@ function damp(x, y, lambda, dt) {
|
|
|
373
373
|
* @param length The positive value the function will pingpong to. Default is 1.
|
|
374
374
|
* @returns Return a value that alternates between 0 and length : Float.
|
|
375
375
|
*/
|
|
376
|
-
function
|
|
376
|
+
function acgePingpong(x, length) {
|
|
377
377
|
if (length === void 0) { length = 1; }
|
|
378
|
-
return length - Math.abs(
|
|
378
|
+
return length - Math.abs(acgeEuclideanModulo(x, length * 2) - length);
|
|
379
379
|
}
|
|
380
380
|
/**
|
|
381
381
|
* Return a value between 0-1. A variation on smoothstep that has zero 1st and 2nd order derivatives
|
|
@@ -386,7 +386,7 @@ function pingpong(x, length) {
|
|
|
386
386
|
* @param max Any x value above max will be 1.
|
|
387
387
|
* @returns Return a value between 0-1
|
|
388
388
|
*/
|
|
389
|
-
function
|
|
389
|
+
function acgeSmoothstep(x, min, max) {
|
|
390
390
|
if (x <= min)
|
|
391
391
|
return 0;
|
|
392
392
|
if (x >= max)
|
|
@@ -402,7 +402,7 @@ function smoothstep(x, min, max) {
|
|
|
402
402
|
* @param max Any x value above max will be 1.
|
|
403
403
|
* @returns Return a value between 0-1
|
|
404
404
|
*/
|
|
405
|
-
function
|
|
405
|
+
function acgeSmootherstep(x, min, max) {
|
|
406
406
|
if (x <= min)
|
|
407
407
|
return 0;
|
|
408
408
|
if (x >= max)
|
|
@@ -416,7 +416,7 @@ function smootherstep(x, min, max) {
|
|
|
416
416
|
* @param high Input interval upper boundary value
|
|
417
417
|
* @returns Return random integer in the interval [low, high].
|
|
418
418
|
*/
|
|
419
|
-
function
|
|
419
|
+
function acgeRandInt(low, high) {
|
|
420
420
|
return low + Math.floor(Math.random() * (high - low + 1));
|
|
421
421
|
}
|
|
422
422
|
/**
|
|
@@ -426,7 +426,7 @@ function randInt(low, high) {
|
|
|
426
426
|
* @returns Return random float in the interval [low, high]
|
|
427
427
|
*/
|
|
428
428
|
// Random float from <low, high> interval
|
|
429
|
-
function
|
|
429
|
+
function acgeRandFloat(low, high) {
|
|
430
430
|
return low + Math.random() * (high - low);
|
|
431
431
|
}
|
|
432
432
|
/**
|
|
@@ -434,7 +434,7 @@ function randFloat(low, high) {
|
|
|
434
434
|
* @param range Input interval range value
|
|
435
435
|
* @returns Return random float in the interval [- range / 2, range / 2].
|
|
436
436
|
*/
|
|
437
|
-
function
|
|
437
|
+
function acgeRandFloatSpread(range) {
|
|
438
438
|
return range * (0.5 - Math.random());
|
|
439
439
|
}
|
|
440
440
|
/**
|
|
@@ -442,7 +442,7 @@ function randFloatSpread(range) {
|
|
|
442
442
|
* @param s Input one integer seed number
|
|
443
443
|
* @returns Return pseudo-random float in the interval [0, 1]
|
|
444
444
|
*/
|
|
445
|
-
function
|
|
445
|
+
function acgeSeededRandom(s) {
|
|
446
446
|
if (s !== undefined)
|
|
447
447
|
_seed = s;
|
|
448
448
|
// Mulberry32 generator
|
|
@@ -456,7 +456,7 @@ function seededRandom(s) {
|
|
|
456
456
|
* @param degrees Input degrees value to be converted
|
|
457
457
|
* @returns Return converted angle value in radians
|
|
458
458
|
*/
|
|
459
|
-
function
|
|
459
|
+
function acgeDegToRad(degrees) {
|
|
460
460
|
return degrees * DEG2RAD;
|
|
461
461
|
}
|
|
462
462
|
/**
|
|
@@ -464,7 +464,7 @@ function degToRad(degrees) {
|
|
|
464
464
|
* @param radians Input radians value to be converted
|
|
465
465
|
* @returns Return converted angle value in degrees
|
|
466
466
|
*/
|
|
467
|
-
function
|
|
467
|
+
function acgeRadToDeg(radians) {
|
|
468
468
|
return radians * RAD2DEG;
|
|
469
469
|
}
|
|
470
470
|
/**
|
|
@@ -472,7 +472,7 @@ function radToDeg(radians) {
|
|
|
472
472
|
* @param value Input the number to check
|
|
473
473
|
* @returns Return true if n is a power of 2.
|
|
474
474
|
*/
|
|
475
|
-
function
|
|
475
|
+
function acgeIsPowerOfTwo(value) {
|
|
476
476
|
return (value & (value - 1)) === 0 && value !== 0;
|
|
477
477
|
}
|
|
478
478
|
/**
|
|
@@ -480,7 +480,7 @@ function isPowerOfTwo(value) {
|
|
|
480
480
|
* @param value Input one number
|
|
481
481
|
* @returns Return the smallest power of 2 that is greater than or equal to n.
|
|
482
482
|
*/
|
|
483
|
-
function
|
|
483
|
+
function acgeCeilPowerOfTwo(value) {
|
|
484
484
|
return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));
|
|
485
485
|
}
|
|
486
486
|
/**
|
|
@@ -488,7 +488,7 @@ function ceilPowerOfTwo(value) {
|
|
|
488
488
|
* @param value Input one number
|
|
489
489
|
* @returns Return the largest power of 2 that is less than or equal to n.
|
|
490
490
|
*/
|
|
491
|
-
function
|
|
491
|
+
function acgeFloorPowerOfTwo(value) {
|
|
492
492
|
return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));
|
|
493
493
|
}
|
|
494
494
|
/**
|
|
@@ -496,7 +496,7 @@ function floorPowerOfTwo(value) {
|
|
|
496
496
|
* @param angle Input one angle value in radians
|
|
497
497
|
* @returns Return normalized angle value in radians
|
|
498
498
|
*/
|
|
499
|
-
function
|
|
499
|
+
function acgeNormalizeAngle(angle) {
|
|
500
500
|
var TAU = Math.PI * 2;
|
|
501
501
|
return ((angle % TAU) + TAU) % TAU;
|
|
502
502
|
}
|
|
@@ -507,7 +507,7 @@ function normalizeAngle(angle) {
|
|
|
507
507
|
* @param value2 Input the second value
|
|
508
508
|
* @returns Return true if if the valueToTest is between (value1, value2) or (value2, value1).
|
|
509
509
|
*/
|
|
510
|
-
function
|
|
510
|
+
function acgeIsBetween(valueToTest, value1, value2) {
|
|
511
511
|
return ((valueToTest > value1 && valueToTest < value2) ||
|
|
512
512
|
(valueToTest > value2 && valueToTest < value1));
|
|
513
513
|
}
|
|
@@ -519,11 +519,11 @@ function isBetween(valueToTest, value1, value2) {
|
|
|
519
519
|
* @param clockwise Input rotation direction from start angle to end angle
|
|
520
520
|
* @returns Return true if the algleToTest is between startAngle and endAngle
|
|
521
521
|
*/
|
|
522
|
-
function
|
|
522
|
+
function acgeIsBetweenAngle(angleToTest, startAngle, endAngle, clockwise) {
|
|
523
523
|
if (clockwise === void 0) { clockwise = false; }
|
|
524
|
-
angleToTest =
|
|
525
|
-
startAngle =
|
|
526
|
-
endAngle =
|
|
524
|
+
angleToTest = acgeNormalizeAngle(angleToTest);
|
|
525
|
+
startAngle = acgeNormalizeAngle(startAngle);
|
|
526
|
+
endAngle = acgeNormalizeAngle(endAngle);
|
|
527
527
|
if (clockwise) {
|
|
528
528
|
if (startAngle > endAngle) {
|
|
529
529
|
return angleToTest <= startAngle && angleToTest >= endAngle;
|
|
@@ -541,45 +541,45 @@ function isBetweenAngle(angleToTest, startAngle, endAngle, clockwise) {
|
|
|
541
541
|
}
|
|
542
542
|
}
|
|
543
543
|
}
|
|
544
|
-
function
|
|
544
|
+
function acgeIntPartLength(num) {
|
|
545
545
|
num = Math.abs(num);
|
|
546
546
|
if (num < 1.0) {
|
|
547
547
|
return 0;
|
|
548
548
|
}
|
|
549
549
|
return Math.ceil(Math.log10(Math.abs(num) + 1));
|
|
550
550
|
}
|
|
551
|
-
function
|
|
551
|
+
function acgeRelativeEps(num, epsilon) {
|
|
552
552
|
if (epsilon === void 0) { epsilon = 1.0e-7; }
|
|
553
|
-
var count =
|
|
553
|
+
var count = acgeIntPartLength(num);
|
|
554
554
|
return Math.max(Math.pow(10, count) * epsilon, epsilon);
|
|
555
555
|
}
|
|
556
556
|
var AcGeMathUtil = {
|
|
557
557
|
DEG2RAD: DEG2RAD,
|
|
558
558
|
RAD2DEG: RAD2DEG,
|
|
559
|
-
generateUUID:
|
|
560
|
-
clamp:
|
|
561
|
-
euclideanModulo:
|
|
562
|
-
mapLinear:
|
|
563
|
-
inverseLerp:
|
|
564
|
-
lerp:
|
|
565
|
-
damp:
|
|
566
|
-
pingpong:
|
|
567
|
-
smoothstep:
|
|
568
|
-
smootherstep:
|
|
569
|
-
randInt:
|
|
570
|
-
randFloat:
|
|
571
|
-
randFloatSpread:
|
|
572
|
-
seededRandom:
|
|
573
|
-
degToRad:
|
|
574
|
-
radToDeg:
|
|
575
|
-
isPowerOfTwo:
|
|
576
|
-
ceilPowerOfTwo:
|
|
577
|
-
floorPowerOfTwo:
|
|
578
|
-
normalizeAngle:
|
|
579
|
-
isBetween:
|
|
580
|
-
isBetweenAngle:
|
|
581
|
-
intPartLength:
|
|
582
|
-
relativeEps:
|
|
559
|
+
generateUUID: acgeGenerateUUID,
|
|
560
|
+
clamp: acgeClamp,
|
|
561
|
+
euclideanModulo: acgeEuclideanModulo,
|
|
562
|
+
mapLinear: acgeMapLinear,
|
|
563
|
+
inverseLerp: acgeInverseLerp,
|
|
564
|
+
lerp: acgeLerp,
|
|
565
|
+
damp: acgeDamp,
|
|
566
|
+
pingpong: acgePingpong,
|
|
567
|
+
smoothstep: acgeSmoothstep,
|
|
568
|
+
smootherstep: acgeSmootherstep,
|
|
569
|
+
randInt: acgeRandInt,
|
|
570
|
+
randFloat: acgeRandFloat,
|
|
571
|
+
randFloatSpread: acgeRandFloatSpread,
|
|
572
|
+
seededRandom: acgeSeededRandom,
|
|
573
|
+
degToRad: acgeDegToRad,
|
|
574
|
+
radToDeg: acgeRadToDeg,
|
|
575
|
+
isPowerOfTwo: acgeIsPowerOfTwo,
|
|
576
|
+
ceilPowerOfTwo: acgeCeilPowerOfTwo,
|
|
577
|
+
floorPowerOfTwo: acgeFloorPowerOfTwo,
|
|
578
|
+
normalizeAngle: acgeNormalizeAngle,
|
|
579
|
+
isBetween: acgeIsBetween,
|
|
580
|
+
isBetweenAngle: acgeIsBetweenAngle,
|
|
581
|
+
intPartLength: acgeIntPartLength,
|
|
582
|
+
relativeEps: acgeRelativeEps
|
|
583
583
|
};
|
|
584
|
-
export { DEG2RAD, RAD2DEG,
|
|
584
|
+
export { DEG2RAD, RAD2DEG, acgeGenerateUUID, acgeClamp, acgeEuclideanModulo, acgeMapLinear, acgeInverseLerp, acgeLerp, acgeDamp, acgePingpong, acgeSmoothstep, acgeSmootherstep, acgeRandInt, acgeRandFloat, acgeRandFloatSpread, acgeSeededRandom, acgeDegToRad, acgeRadToDeg, acgeIsPowerOfTwo, acgeCeilPowerOfTwo, acgeFloorPowerOfTwo, acgeNormalizeAngle, acgeIsBetween, acgeIsBetweenAngle, acgeIntPartLength, acgeRelativeEps, AcGeMathUtil };
|
|
585
585
|
//# sourceMappingURL=AcGeMathUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeMathUtil.js","sourceRoot":"","sources":["../../src/util/AcGeMathUtil.ts"],"names":[],"mappings":"AAAA,IAAM,IAAI,GAAa;IACrB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI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"}
|
|
1
|
+
{"version":3,"file":"AcGeMathUtil.js","sourceRoot":"","sources":["../../src/util/AcGeMathUtil.ts"],"names":[],"mappings":"AAAA,IAAM,IAAI,GAAa;IACrB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI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"}
|
|
@@ -5,27 +5,27 @@ type KnotParameterizationType = 'Uniform' | 'Chord' | 'SqrtChord';
|
|
|
5
5
|
/**
|
|
6
6
|
* Generate uniform knot vector
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function acgeGenerateUniformKnots(degree: number, numControlPoints: number): number[];
|
|
9
9
|
/**
|
|
10
10
|
* Generate chord-length parameterized knots
|
|
11
11
|
*/
|
|
12
|
-
export declare function
|
|
12
|
+
export declare function acgeGenerateChordKnots(degree: number, points: number[][]): number[];
|
|
13
13
|
/**
|
|
14
14
|
* Compute parameter values for fit points
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function acgeComputeParameterValues(points: number[][], parameterization?: KnotParameterizationType): number[];
|
|
17
17
|
/**
|
|
18
18
|
* Generate a clamped knot vector using averaging method
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function acgeGenerateAveragedKnots(degree: number, parameters: number[]): number[];
|
|
21
21
|
/**
|
|
22
22
|
* Generate sqrt-chord parameterized knots
|
|
23
23
|
*/
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function acgeGenerateSqrtChordKnots(degree: number, points: number[][]): number[];
|
|
25
25
|
/**
|
|
26
26
|
* Interpolate a NURBS curve from fit points with optional end tangents
|
|
27
27
|
*/
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function acgeInterpolateNurbsCurve(fitPoints: number[][], degree: number, parameterization?: KnotParameterizationType, startTangent?: number[], endTangent?: number[]): {
|
|
29
29
|
controlPoints: number[][];
|
|
30
30
|
knots: number[];
|
|
31
31
|
weights: number[];
|
|
@@ -33,11 +33,11 @@ export declare function interpolateNurbsCurve(fitPoints: number[][], degree: num
|
|
|
33
33
|
/**
|
|
34
34
|
* Calculate basis function value for NURBS
|
|
35
35
|
*/
|
|
36
|
-
export declare function
|
|
36
|
+
export declare function acgeBasisFunction(i: number, k: number, u: number, knots: number[]): number;
|
|
37
37
|
/**
|
|
38
38
|
* Calculate point on NURBS curve
|
|
39
39
|
*/
|
|
40
|
-
export declare function
|
|
40
|
+
export declare function acgeEvaluateNurbsPoint(u: number, degree: number, knots: number[], controlPoints: number[][], weights: number[]): number[];
|
|
41
41
|
export type AcGeNurbsEvaluation = {
|
|
42
42
|
point: number[];
|
|
43
43
|
deriv1: number[];
|
|
@@ -46,18 +46,18 @@ export type AcGeNurbsEvaluation = {
|
|
|
46
46
|
/**
|
|
47
47
|
* Evaluates a rational NURBS curve and its first two parametric derivatives.
|
|
48
48
|
*/
|
|
49
|
-
export declare function
|
|
49
|
+
export declare function acgeEvaluateNurbsDerivatives(u: number, degree: number, knots: number[], controlPoints: number[][], weights: number[]): AcGeNurbsEvaluation;
|
|
50
50
|
/**
|
|
51
51
|
* Signed planar curvature from parametric derivatives in XY.
|
|
52
52
|
*/
|
|
53
|
-
export declare function
|
|
53
|
+
export declare function acgeSignedPlanarCurvature(deriv1: number[], deriv2: number[]): number;
|
|
54
54
|
/**
|
|
55
55
|
* Calculate curve length using numerical integration
|
|
56
56
|
*/
|
|
57
|
-
export declare function
|
|
57
|
+
export declare function acgeCalculateCurveLength(degree: number, knots: number[], controlPoints: number[][], weights: number[]): number;
|
|
58
58
|
/**
|
|
59
59
|
* Generate control points from fit points using interpolation
|
|
60
60
|
*/
|
|
61
|
-
export declare function
|
|
61
|
+
export declare function acgeInterpolateControlPoints(fitPoints: number[][], degree?: number, parameterization?: KnotParameterizationType, startTangent?: number[], endTangent?: number[]): number[][];
|
|
62
62
|
export {};
|
|
63
63
|
//# sourceMappingURL=AcGeNurbsUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeNurbsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,wBAAwB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAEjE;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"AcGeNurbsUtil.d.ts","sourceRoot":"","sources":["../../src/util/AcGeNurbsUtil.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,wBAAwB,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAA;AAEjE;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAqCV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,gBAAgB,GAAE,wBAAoC,GACrD,MAAM,EAAE,CAgCV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAqBV;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAAE,GACjB,MAAM,EAAE,CAsCV;AAwDD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,wBAAoC,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB;IAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAmGnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,EAAE,CAmDV;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAoDD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,mBAAmB,CA4DrB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CA2CR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,GAAE,MAAU,EAClB,gBAAgB,GAAE,wBAAoC,EACtD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,EAAE,CAYZ"}
|
|
@@ -29,7 +29,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
29
29
|
/**
|
|
30
30
|
* Generate uniform knot vector
|
|
31
31
|
*/
|
|
32
|
-
export function
|
|
32
|
+
export function acgeGenerateUniformKnots(degree, numControlPoints) {
|
|
33
33
|
var knots = [];
|
|
34
34
|
var n = numControlPoints - 1;
|
|
35
35
|
var p = degree;
|
|
@@ -50,7 +50,7 @@ export function generateUniformKnots(degree, numControlPoints) {
|
|
|
50
50
|
/**
|
|
51
51
|
* Generate chord-length parameterized knots
|
|
52
52
|
*/
|
|
53
|
-
export function
|
|
53
|
+
export function acgeGenerateChordKnots(degree, points) {
|
|
54
54
|
var n = points.length - 1;
|
|
55
55
|
var p = degree;
|
|
56
56
|
// Calculate chord lengths
|
|
@@ -84,7 +84,7 @@ export function generateChordKnots(degree, points) {
|
|
|
84
84
|
/**
|
|
85
85
|
* Compute parameter values for fit points
|
|
86
86
|
*/
|
|
87
|
-
export function
|
|
87
|
+
export function acgeComputeParameterValues(points, parameterization) {
|
|
88
88
|
if (parameterization === void 0) { parameterization = 'Uniform'; }
|
|
89
89
|
var count = points.length;
|
|
90
90
|
if (count === 0) {
|
|
@@ -116,7 +116,7 @@ export function computeParameterValues(points, parameterization) {
|
|
|
116
116
|
/**
|
|
117
117
|
* Generate a clamped knot vector using averaging method
|
|
118
118
|
*/
|
|
119
|
-
export function
|
|
119
|
+
export function acgeGenerateAveragedKnots(degree, parameters) {
|
|
120
120
|
var n = parameters.length - 1;
|
|
121
121
|
var p = degree;
|
|
122
122
|
var m = n + p + 1;
|
|
@@ -137,7 +137,7 @@ export function generateAveragedKnots(degree, parameters) {
|
|
|
137
137
|
/**
|
|
138
138
|
* Generate sqrt-chord parameterized knots
|
|
139
139
|
*/
|
|
140
|
-
export function
|
|
140
|
+
export function acgeGenerateSqrtChordKnots(degree, points) {
|
|
141
141
|
var n = points.length - 1;
|
|
142
142
|
var p = degree;
|
|
143
143
|
// Calculate sqrt chord lengths
|
|
@@ -218,7 +218,7 @@ function solveLinearSystem(matrix, rhs) {
|
|
|
218
218
|
/**
|
|
219
219
|
* Interpolate a NURBS curve from fit points with optional end tangents
|
|
220
220
|
*/
|
|
221
|
-
export function
|
|
221
|
+
export function acgeInterpolateNurbsCurve(fitPoints, degree, parameterization, startTangent, endTangent) {
|
|
222
222
|
var _a, _b, _c, _d, _e, _f;
|
|
223
223
|
if (parameterization === void 0) { parameterization = 'Uniform'; }
|
|
224
224
|
if (fitPoints.length === 0) {
|
|
@@ -234,7 +234,7 @@ export function interpolateNurbsCurve(fitPoints, degree, parameterization, start
|
|
|
234
234
|
if (n < degree) {
|
|
235
235
|
throw new Error('Not enough points to interpolate a curve of this degree.');
|
|
236
236
|
}
|
|
237
|
-
var params =
|
|
237
|
+
var params = acgeComputeParameterValues(safePoints, parameterization);
|
|
238
238
|
var extendedParams = params.slice();
|
|
239
239
|
if (hasStartTangent) {
|
|
240
240
|
extendedParams.unshift(params[0]);
|
|
@@ -242,7 +242,7 @@ export function interpolateNurbsCurve(fitPoints, degree, parameterization, start
|
|
|
242
242
|
if (hasEndTangent) {
|
|
243
243
|
extendedParams.push(params[params.length - 1]);
|
|
244
244
|
}
|
|
245
|
-
var knots =
|
|
245
|
+
var knots = acgeGenerateAveragedKnots(degree, extendedParams);
|
|
246
246
|
var size = n + 1;
|
|
247
247
|
var matrix = new Array(size);
|
|
248
248
|
var rhsX = new Array(size);
|
|
@@ -259,7 +259,7 @@ export function interpolateNurbsCurve(fitPoints, degree, parameterization, start
|
|
|
259
259
|
var u = params[i];
|
|
260
260
|
matrix[row] = new Array(size).fill(0);
|
|
261
261
|
for (var j = 0; j <= n; j++) {
|
|
262
|
-
matrix[row][j] =
|
|
262
|
+
matrix[row][j] = acgeBasisFunction(j, degree, u, knots);
|
|
263
263
|
}
|
|
264
264
|
rhsX[row] = safePoints[i][0];
|
|
265
265
|
rhsY[row] = safePoints[i][1];
|
|
@@ -307,7 +307,7 @@ export function interpolateNurbsCurve(fitPoints, degree, parameterization, start
|
|
|
307
307
|
/**
|
|
308
308
|
* Calculate basis function value for NURBS
|
|
309
309
|
*/
|
|
310
|
-
export function
|
|
310
|
+
export function acgeBasisFunction(i, k, u, knots) {
|
|
311
311
|
if (k === 0) {
|
|
312
312
|
return u >= knots[i] && u < knots[i + 1] ? 1.0 : 0.0;
|
|
313
313
|
}
|
|
@@ -315,13 +315,13 @@ export function basisFunction(i, k, u, knots) {
|
|
|
315
315
|
var d2 = knots[i + k + 1] - knots[i + 1];
|
|
316
316
|
var c1 = d1 > 1e-10 ? (u - knots[i]) / d1 : 0.0;
|
|
317
317
|
var c2 = d2 > 1e-10 ? (knots[i + k + 1] - u) / d2 : 0.0;
|
|
318
|
-
return (c1 *
|
|
319
|
-
c2 *
|
|
318
|
+
return (c1 * acgeBasisFunction(i, k - 1, u, knots) +
|
|
319
|
+
c2 * acgeBasisFunction(i + 1, k - 1, u, knots));
|
|
320
320
|
}
|
|
321
321
|
/**
|
|
322
322
|
* Calculate point on NURBS curve
|
|
323
323
|
*/
|
|
324
|
-
export function
|
|
324
|
+
export function acgeEvaluateNurbsPoint(u, degree, knots, controlPoints, weights) {
|
|
325
325
|
var n = controlPoints.length - 1;
|
|
326
326
|
var p = degree;
|
|
327
327
|
// Clamp parameter to valid range
|
|
@@ -337,7 +337,7 @@ export function evaluateNurbsPoint(u, degree, knots, controlPoints, weights) {
|
|
|
337
337
|
var point = [0, 0, 0];
|
|
338
338
|
var weight = 0;
|
|
339
339
|
for (var i = 0; i <= n; i++) {
|
|
340
|
-
var basis =
|
|
340
|
+
var basis = acgeBasisFunction(i, p, u, knots);
|
|
341
341
|
var w = weights[i] * basis;
|
|
342
342
|
point[0] += controlPoints[i][0] * w;
|
|
343
343
|
point[1] += controlPoints[i][1] * w;
|
|
@@ -374,10 +374,10 @@ function basisFunctionDeriv1(i, k, u, knots) {
|
|
|
374
374
|
var denomB = knots[i + k + 1] - knots[i + 1];
|
|
375
375
|
var value = 0;
|
|
376
376
|
if (denomA > 1e-10) {
|
|
377
|
-
value += (k / denomA) *
|
|
377
|
+
value += (k / denomA) * acgeBasisFunction(i, k - 1, u, knots);
|
|
378
378
|
}
|
|
379
379
|
if (denomB > 1e-10) {
|
|
380
|
-
value -= (k / denomB) *
|
|
380
|
+
value -= (k / denomB) * acgeBasisFunction(i + 1, k - 1, u, knots);
|
|
381
381
|
}
|
|
382
382
|
return value;
|
|
383
383
|
}
|
|
@@ -401,7 +401,7 @@ function basisFunctionDeriv2(i, k, u, knots) {
|
|
|
401
401
|
/**
|
|
402
402
|
* Evaluates a rational NURBS curve and its first two parametric derivatives.
|
|
403
403
|
*/
|
|
404
|
-
export function
|
|
404
|
+
export function acgeEvaluateNurbsDerivatives(u, degree, knots, controlPoints, weights) {
|
|
405
405
|
var n = controlPoints.length - 1;
|
|
406
406
|
var p = degree;
|
|
407
407
|
var startParam = knots[p];
|
|
@@ -414,7 +414,7 @@ export function evaluateNurbsDerivatives(u, degree, knots, controlPoints, weight
|
|
|
414
414
|
var dw = 0;
|
|
415
415
|
var d2w = 0;
|
|
416
416
|
for (var i = 0; i <= n; i++) {
|
|
417
|
-
var basis =
|
|
417
|
+
var basis = acgeBasisFunction(i, p, u, knots);
|
|
418
418
|
var dbasis = basisFunctionDeriv1(i, p, u, knots);
|
|
419
419
|
var d2basis = basisFunctionDeriv2(i, p, u, knots);
|
|
420
420
|
var weight = weights[i];
|
|
@@ -436,7 +436,7 @@ export function evaluateNurbsDerivatives(u, degree, knots, controlPoints, weight
|
|
|
436
436
|
d2w += wD2Basis;
|
|
437
437
|
}
|
|
438
438
|
if (Math.abs(w) < 1e-10) {
|
|
439
|
-
var point_1 =
|
|
439
|
+
var point_1 = acgeEvaluateNurbsPoint(u, degree, knots, controlPoints, weights);
|
|
440
440
|
return { point: point_1, deriv1: [0, 0, 0], deriv2: [0, 0, 0] };
|
|
441
441
|
}
|
|
442
442
|
var w2 = w * w;
|
|
@@ -459,7 +459,7 @@ export function evaluateNurbsDerivatives(u, degree, knots, controlPoints, weight
|
|
|
459
459
|
/**
|
|
460
460
|
* Signed planar curvature from parametric derivatives in XY.
|
|
461
461
|
*/
|
|
462
|
-
export function
|
|
462
|
+
export function acgeSignedPlanarCurvature(deriv1, deriv2) {
|
|
463
463
|
var dx = deriv1[0];
|
|
464
464
|
var dy = deriv1[1];
|
|
465
465
|
var ddx = deriv2[0];
|
|
@@ -472,17 +472,17 @@ export function signedPlanarCurvature(deriv1, deriv2) {
|
|
|
472
472
|
/**
|
|
473
473
|
* Calculate curve length using numerical integration
|
|
474
474
|
*/
|
|
475
|
-
export function
|
|
475
|
+
export function acgeCalculateCurveLength(degree, knots, controlPoints, weights) {
|
|
476
476
|
var p = degree;
|
|
477
477
|
var startParam = knots[p];
|
|
478
478
|
var endParam = knots[knots.length - p - 1];
|
|
479
479
|
var length = 0;
|
|
480
480
|
var steps = 1000;
|
|
481
481
|
var step = (endParam - startParam) / steps;
|
|
482
|
-
var prevPoint =
|
|
482
|
+
var prevPoint = acgeEvaluateNurbsPoint(startParam, degree, knots, controlPoints, weights);
|
|
483
483
|
for (var i = 1; i <= steps; i++) {
|
|
484
484
|
var u = startParam + i * step;
|
|
485
|
-
var point =
|
|
485
|
+
var point = acgeEvaluateNurbsPoint(u, degree, knots, controlPoints, weights);
|
|
486
486
|
var dx_1 = point[0] - prevPoint[0];
|
|
487
487
|
var dy_1 = point[1] - prevPoint[1];
|
|
488
488
|
var dz_1 = point[2] - prevPoint[2];
|
|
@@ -490,7 +490,7 @@ export function calculateCurveLength(degree, knots, controlPoints, weights) {
|
|
|
490
490
|
prevPoint = point;
|
|
491
491
|
}
|
|
492
492
|
// Add the final segment to the end point
|
|
493
|
-
var finalPoint =
|
|
493
|
+
var finalPoint = acgeEvaluateNurbsPoint(endParam, degree, knots, controlPoints, weights);
|
|
494
494
|
var dx = finalPoint[0] - prevPoint[0];
|
|
495
495
|
var dy = finalPoint[1] - prevPoint[1];
|
|
496
496
|
var dz = finalPoint[2] - prevPoint[2];
|
|
@@ -500,12 +500,12 @@ export function calculateCurveLength(degree, knots, controlPoints, weights) {
|
|
|
500
500
|
/**
|
|
501
501
|
* Generate control points from fit points using interpolation
|
|
502
502
|
*/
|
|
503
|
-
export function
|
|
503
|
+
export function acgeInterpolateControlPoints(fitPoints, degree, parameterization, startTangent, endTangent) {
|
|
504
504
|
if (degree === void 0) { degree = 3; }
|
|
505
505
|
if (parameterization === void 0) { parameterization = 'Uniform'; }
|
|
506
506
|
if (fitPoints.length === 0) {
|
|
507
507
|
return [];
|
|
508
508
|
}
|
|
509
|
-
return
|
|
509
|
+
return acgeInterpolateNurbsCurve(fitPoints, degree, parameterization, startTangent, endTangent).controlPoints;
|
|
510
510
|
}
|
|
511
511
|
//# sourceMappingURL=AcGeNurbsUtil.js.map
|