@mlightcad/geometry-engine 3.2.6 → 3.2.7
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 +309 -288
- package/dist/geometry-engine.umd.cjs +1 -1
- package/lib/geometry/AcGeSpline3d.d.ts +12 -0
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +62 -0
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/package.json +2 -2
package/dist/geometry-engine.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AcCmErrors as
|
|
1
|
+
import { AcCmErrors as Pe } from "@mlightcad/common";
|
|
2
2
|
const $t = [
|
|
3
3
|
"00",
|
|
4
4
|
"01",
|
|
@@ -269,10 +269,10 @@ function Ze(E, e, i) {
|
|
|
269
269
|
function Xr(E, e) {
|
|
270
270
|
return (E % e + e) % e;
|
|
271
271
|
}
|
|
272
|
-
function
|
|
272
|
+
function Pi(E, e, i, a, l) {
|
|
273
273
|
return a + (E - e) * (l - a) / (i - e);
|
|
274
274
|
}
|
|
275
|
-
function
|
|
275
|
+
function Mi(E, e, i) {
|
|
276
276
|
return E !== e ? (i - E) / (e - E) : 0;
|
|
277
277
|
}
|
|
278
278
|
function Wr(E, e, i) {
|
|
@@ -342,8 +342,8 @@ const Ct = {
|
|
|
342
342
|
generateUUID: xi,
|
|
343
343
|
clamp: Ze,
|
|
344
344
|
euclideanModulo: Xr,
|
|
345
|
-
mapLinear:
|
|
346
|
-
inverseLerp:
|
|
345
|
+
mapLinear: Pi,
|
|
346
|
+
inverseLerp: Mi,
|
|
347
347
|
lerp: Wr,
|
|
348
348
|
damp: Ai,
|
|
349
349
|
pingpong: zi,
|
|
@@ -384,7 +384,7 @@ const Ct = {
|
|
|
384
384
|
this.x = e, this.y = i;
|
|
385
385
|
return;
|
|
386
386
|
}
|
|
387
|
-
throw
|
|
387
|
+
throw Pe.ILLEGAL_PARAMETERS;
|
|
388
388
|
}
|
|
389
389
|
}
|
|
390
390
|
/**
|
|
@@ -954,8 +954,8 @@ const On = class On {
|
|
|
954
954
|
* @returns Return this matrix
|
|
955
955
|
*/
|
|
956
956
|
multiplyMatrices(e, i) {
|
|
957
|
-
const a = e.elements, l = i.elements, _ = this.elements, g = a[0], p = a[3], x = a[6], f = a[1], A = a[4], y = a[7], I = a[2], C = a[5], U = a[8], q = l[0], Z = l[3], j = l[6], yt = l[1],
|
|
958
|
-
return _[0] = g * q + p * yt + x * Y, _[3] = g * Z + p *
|
|
957
|
+
const a = e.elements, l = i.elements, _ = this.elements, g = a[0], p = a[3], x = a[6], f = a[1], A = a[4], y = a[7], I = a[2], C = a[5], U = a[8], q = l[0], Z = l[3], j = l[6], yt = l[1], Pt = l[4], ft = l[7], Y = l[2], ut = l[5], ht = l[8];
|
|
958
|
+
return _[0] = g * q + p * yt + x * Y, _[3] = g * Z + p * Pt + x * ut, _[6] = g * j + p * ft + x * ht, _[1] = f * q + A * yt + y * Y, _[4] = f * Z + A * Pt + y * ut, _[7] = f * j + A * ft + y * ht, _[2] = I * q + C * yt + U * Y, _[5] = I * Z + C * Pt + U * ut, _[8] = I * j + C * ft + U * ht, this;
|
|
959
959
|
}
|
|
960
960
|
/**
|
|
961
961
|
* Multiply every component of the matrix by the scalar value s.
|
|
@@ -1225,7 +1225,7 @@ function Jr(E, e, i = !1) {
|
|
|
1225
1225
|
function Oi(E, e) {
|
|
1226
1226
|
if (E.length === 0 || e.length === 0)
|
|
1227
1227
|
return !1;
|
|
1228
|
-
const i = new
|
|
1228
|
+
const i = new Me().setFromPoints(E), a = new Me().setFromPoints(e);
|
|
1229
1229
|
if (!i.intersectsBox(a))
|
|
1230
1230
|
return !1;
|
|
1231
1231
|
for (let l = 0; l < E.length; ) {
|
|
@@ -1324,8 +1324,8 @@ function Xi(E, e, i, a) {
|
|
|
1324
1324
|
a
|
|
1325
1325
|
);
|
|
1326
1326
|
for (let q = 1; q <= x; q++) {
|
|
1327
|
-
const Z = _ + q * f, j = tr(Z, E, e, i, a), yt = j[0] - A[0],
|
|
1328
|
-
p += Math.sqrt(yt * yt +
|
|
1327
|
+
const Z = _ + q * f, j = tr(Z, E, e, i, a), yt = j[0] - A[0], Pt = j[1] - A[1], ft = j[2] - A[2];
|
|
1328
|
+
p += Math.sqrt(yt * yt + Pt * Pt + ft * ft), A = j;
|
|
1329
1329
|
}
|
|
1330
1330
|
const y = tr(
|
|
1331
1331
|
g,
|
|
@@ -1373,9 +1373,9 @@ class ir {
|
|
|
1373
1373
|
}
|
|
1374
1374
|
if (y !== q || x !== I || f !== C || A !== U) {
|
|
1375
1375
|
let Z = 1 - p;
|
|
1376
|
-
const j = x * I + f * C + A * U + y * q, yt = j >= 0 ? 1 : -1,
|
|
1377
|
-
if (
|
|
1378
|
-
const Y = Math.sqrt(
|
|
1376
|
+
const j = x * I + f * C + A * U + y * q, yt = j >= 0 ? 1 : -1, Pt = 1 - j * j;
|
|
1377
|
+
if (Pt > Number.EPSILON) {
|
|
1378
|
+
const Y = Math.sqrt(Pt), ut = Math.atan2(Y, j * yt);
|
|
1379
1379
|
Z = Math.sin(Z * ut) / Y, p = Math.sin(p * ut) / Y;
|
|
1380
1380
|
}
|
|
1381
1381
|
const ft = p * yt;
|
|
@@ -1752,7 +1752,7 @@ const Yt = class Yt {
|
|
|
1752
1752
|
this.x = e, this.y = i, this.z = a;
|
|
1753
1753
|
return;
|
|
1754
1754
|
}
|
|
1755
|
-
throw
|
|
1755
|
+
throw Pe.ILLEGAL_PARAMETERS;
|
|
1756
1756
|
}
|
|
1757
1757
|
}
|
|
1758
1758
|
/**
|
|
@@ -2723,8 +2723,8 @@ const fr = /* @__PURE__ */ new H(), Rr = /* @__PURE__ */ new ir(), qn = class qn
|
|
|
2723
2723
|
* @returns Return this matrix
|
|
2724
2724
|
*/
|
|
2725
2725
|
multiplyMatrices(e, i) {
|
|
2726
|
-
const a = e.elements, l = i.elements, _ = this.elements, g = a[0], p = a[4], x = a[8], f = a[12], A = a[1], y = a[5], I = a[9], C = a[13], U = a[2], q = a[6], Z = a[10], j = a[14], yt = a[3],
|
|
2727
|
-
return _[0] = g * ut + p * Tt + x * se + f * X, _[4] = g * ht + p * Kt + x * ae + f * wt, _[8] = g * Lt + p * Ht + x * Ft + f * Wt, _[12] = g * jt + p * ie + x * Xt + f * Ae, _[1] = A * ut + y * Tt + I * se + C * X, _[5] = A * ht + y * Kt + I * ae + C * wt, _[9] = A * Lt + y * Ht + I * Ft + C * Wt, _[13] = A * jt + y * ie + I * Xt + C * Ae, _[2] = U * ut + q * Tt + Z * se + j * X, _[6] = U * ht + q * Kt + Z * ae + j * wt, _[10] = U * Lt + q * Ht + Z * Ft + j * Wt, _[14] = U * jt + q * ie + Z * Xt + j * Ae, _[3] = yt * ut +
|
|
2726
|
+
const a = e.elements, l = i.elements, _ = this.elements, g = a[0], p = a[4], x = a[8], f = a[12], A = a[1], y = a[5], I = a[9], C = a[13], U = a[2], q = a[6], Z = a[10], j = a[14], yt = a[3], Pt = a[7], ft = a[11], Y = a[15], ut = l[0], ht = l[4], Lt = l[8], jt = l[12], Tt = l[1], Kt = l[5], Ht = l[9], ie = l[13], se = l[2], ae = l[6], Ft = l[10], Xt = l[14], X = l[3], wt = l[7], Wt = l[11], Ae = l[15];
|
|
2727
|
+
return _[0] = g * ut + p * Tt + x * se + f * X, _[4] = g * ht + p * Kt + x * ae + f * wt, _[8] = g * Lt + p * Ht + x * Ft + f * Wt, _[12] = g * jt + p * ie + x * Xt + f * Ae, _[1] = A * ut + y * Tt + I * se + C * X, _[5] = A * ht + y * Kt + I * ae + C * wt, _[9] = A * Lt + y * Ht + I * Ft + C * Wt, _[13] = A * jt + y * ie + I * Xt + C * Ae, _[2] = U * ut + q * Tt + Z * se + j * X, _[6] = U * ht + q * Kt + Z * ae + j * wt, _[10] = U * Lt + q * Ht + Z * Ft + j * Wt, _[14] = U * jt + q * ie + Z * Xt + j * Ae, _[3] = yt * ut + Pt * Tt + ft * se + Y * X, _[7] = yt * ht + Pt * Kt + ft * ae + Y * wt, _[11] = yt * Lt + Pt * Ht + ft * Ft + Y * Wt, _[15] = yt * jt + Pt * ie + ft * Xt + Y * Ae, this;
|
|
2728
2728
|
}
|
|
2729
2729
|
/**
|
|
2730
2730
|
* Multiply every component of the matrix by a scalar value s.
|
|
@@ -2769,11 +2769,11 @@ const fr = /* @__PURE__ */ new H(), Rr = /* @__PURE__ */ new ir(), qn = class qn
|
|
|
2769
2769
|
* @returns Return this matrix
|
|
2770
2770
|
*/
|
|
2771
2771
|
invert() {
|
|
2772
|
-
const e = this.elements, i = e[0], a = e[1], l = e[2], _ = e[3], g = e[4], p = e[5], x = e[6], f = e[7], A = e[8], y = e[9], I = e[10], C = e[11], U = e[12], q = e[13], Z = e[14], j = e[15], yt = y * Z * f - q * I * f + q * x * C - p * Z * C - y * x * j + p * I * j,
|
|
2772
|
+
const e = this.elements, i = e[0], a = e[1], l = e[2], _ = e[3], g = e[4], p = e[5], x = e[6], f = e[7], A = e[8], y = e[9], I = e[10], C = e[11], U = e[12], q = e[13], Z = e[14], j = e[15], yt = y * Z * f - q * I * f + q * x * C - p * Z * C - y * x * j + p * I * j, Pt = U * I * f - A * Z * f - U * x * C + g * Z * C + A * x * j - g * I * j, ft = A * q * f - U * y * f + U * p * C - g * q * C - A * p * j + g * y * j, Y = U * y * x - A * q * x - U * p * I + g * q * I + A * p * Z - g * y * Z, ut = i * yt + a * Pt + l * ft + _ * Y;
|
|
2773
2773
|
if (ut === 0)
|
|
2774
2774
|
return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
|
2775
2775
|
const ht = 1 / ut;
|
|
2776
|
-
return e[0] = yt * ht, e[1] = (q * I * _ - y * Z * _ - q * l * C + a * Z * C + y * l * j - a * I * j) * ht, e[2] = (p * Z * _ - q * x * _ + q * l * f - a * Z * f - p * l * j + a * x * j) * ht, e[3] = (y * x * _ - p * I * _ - y * l * f + a * I * f + p * l * C - a * x * C) * ht, e[4] =
|
|
2776
|
+
return e[0] = yt * ht, e[1] = (q * I * _ - y * Z * _ - q * l * C + a * Z * C + y * l * j - a * I * j) * ht, e[2] = (p * Z * _ - q * x * _ + q * l * f - a * Z * f - p * l * j + a * x * j) * ht, e[3] = (y * x * _ - p * I * _ - y * l * f + a * I * f + p * l * C - a * x * C) * ht, e[4] = Pt * ht, e[5] = (A * Z * _ - U * I * _ + U * l * C - i * Z * C - A * l * j + i * I * j) * ht, e[6] = (U * x * _ - g * Z * _ - U * l * f + i * Z * f + g * l * j - i * x * j) * ht, e[7] = (g * I * _ - A * x * _ + A * l * f - i * I * f - g * l * C + i * x * C) * ht, e[8] = ft * ht, e[9] = (U * y * _ - A * q * _ - U * a * C + i * q * C + A * a * j - i * y * j) * ht, e[10] = (g * q * _ - U * p * _ + U * a * f - i * q * f - g * a * j + i * p * j) * ht, e[11] = (A * p * _ - g * y * _ - A * a * f + i * y * f + g * a * C - i * p * C) * ht, e[12] = Y * ht, e[13] = (A * q * l - U * y * l + U * a * I - i * q * I - A * a * Z + i * y * Z) * ht, e[14] = (U * p * l - g * q * l - U * a * x + i * q * x + g * a * Z - i * p * Z) * ht, e[15] = (g * y * l - A * p * l + A * a * x - i * y * x - g * a * I + i * p * I) * ht, this;
|
|
2777
2777
|
}
|
|
2778
2778
|
/**
|
|
2779
2779
|
* Multiply the columns of this matrix by vector v.
|
|
@@ -2887,8 +2887,8 @@ const fr = /* @__PURE__ */ new H(), Rr = /* @__PURE__ */ new ir(), qn = class qn
|
|
|
2887
2887
|
* @returns Return this matrix
|
|
2888
2888
|
*/
|
|
2889
2889
|
compose(e, i, a) {
|
|
2890
|
-
const l = this.elements, _ = i.x, g = i.y, p = i.z, x = i.w, f = _ + _, A = g + g, y = p + p, I = _ * f, C = _ * A, U = _ * y, q = g * A, Z = g * y, j = p * y, yt = x * f,
|
|
2891
|
-
return l[0] = (1 - (q + j)) * Y, l[1] = (C + ft) * Y, l[2] = (U -
|
|
2890
|
+
const l = this.elements, _ = i.x, g = i.y, p = i.z, x = i.w, f = _ + _, A = g + g, y = p + p, I = _ * f, C = _ * A, U = _ * y, q = g * A, Z = g * y, j = p * y, yt = x * f, Pt = x * A, ft = x * y, Y = a.x, ut = a.y, ht = a.z;
|
|
2891
|
+
return l[0] = (1 - (q + j)) * Y, l[1] = (C + ft) * Y, l[2] = (U - Pt) * Y, l[3] = 0, l[4] = (C - ft) * ut, l[5] = (1 - (I + j)) * ut, l[6] = (Z + yt) * ut, l[7] = 0, l[8] = (U + Pt) * ht, l[9] = (Z - yt) * ht, l[10] = (1 - (I + q)) * ht, l[11] = 0, l[12] = e.x, l[13] = e.y, l[14] = e.z, l[15] = 1, this;
|
|
2892
2892
|
}
|
|
2893
2893
|
/**
|
|
2894
2894
|
* Decompose this matrix into its position, quaternion and scale components.
|
|
@@ -3294,7 +3294,7 @@ const Te = [
|
|
|
3294
3294
|
/* @__PURE__ */ new H(),
|
|
3295
3295
|
/* @__PURE__ */ new H()
|
|
3296
3296
|
], mr = /* @__PURE__ */ new H(), Vr = /* @__PURE__ */ new Vt();
|
|
3297
|
-
class
|
|
3297
|
+
class Me {
|
|
3298
3298
|
/**
|
|
3299
3299
|
* Create a 2d box bounded by min and max.
|
|
3300
3300
|
* @param min (optional) Input 2d vector representing the lower (x, y) boundary of the box.
|
|
@@ -3341,7 +3341,7 @@ class Pe {
|
|
|
3341
3341
|
* @returns Return a new 2d box with the same min and max as this one.
|
|
3342
3342
|
*/
|
|
3343
3343
|
clone() {
|
|
3344
|
-
return new
|
|
3344
|
+
return new Me().copy(this);
|
|
3345
3345
|
}
|
|
3346
3346
|
/**
|
|
3347
3347
|
* Copy the min and max from box to this box.
|
|
@@ -3972,7 +3972,7 @@ class is extends ti {
|
|
|
3972
3972
|
*/
|
|
3973
3973
|
calculateBoundingBox() {
|
|
3974
3974
|
const e = this.outter;
|
|
3975
|
-
return e ? e.box : new
|
|
3975
|
+
return e ? e.box : new Me();
|
|
3976
3976
|
}
|
|
3977
3977
|
/**
|
|
3978
3978
|
* @inheritdoc
|
|
@@ -4053,7 +4053,7 @@ class is extends ti {
|
|
|
4053
4053
|
calculateBoundaryBoxes(e) {
|
|
4054
4054
|
const i = [];
|
|
4055
4055
|
return e.forEach((a) => {
|
|
4056
|
-
i.push(new
|
|
4056
|
+
i.push(new Me().setFromPoints(a));
|
|
4057
4057
|
}), i;
|
|
4058
4058
|
}
|
|
4059
4059
|
/**
|
|
@@ -4228,7 +4228,7 @@ class nr extends Xn {
|
|
|
4228
4228
|
const p = e;
|
|
4229
4229
|
this.center = new Dt(p.x, p.y), this.radius = i, this._clockwise = _, this._startAngle = this._clockwise ? this._mirrorAngle(Ct.normalizeAngle(a)) : Ct.normalizeAngle(a), this._endAngle = this._clockwise ? this._mirrorAngle(Ct.normalizeAngle(l)) : Ct.normalizeAngle(l);
|
|
4230
4230
|
} else
|
|
4231
|
-
throw
|
|
4231
|
+
throw Pe.ILLEGAL_PARAMETERS;
|
|
4232
4232
|
}
|
|
4233
4233
|
/**
|
|
4234
4234
|
* Create arc by three points
|
|
@@ -4245,8 +4245,8 @@ class nr extends Xn {
|
|
|
4245
4245
|
return { x: Kt, y: Ht };
|
|
4246
4246
|
}, U = p.y - y * p.x, q = x.y - I * x.x, Z = C(y, U, I, q), j = Math.sqrt(
|
|
4247
4247
|
Math.pow(e.x - Z.x, 2) + Math.pow(e.y - Z.y, 2)
|
|
4248
|
-
), yt = (ht, Lt) => Math.atan2(ht.y - Lt.y, ht.x - Lt.x),
|
|
4249
|
-
this.center = Z, this.radius = j, this._clockwise = !ut, this._startAngle =
|
|
4248
|
+
), yt = (ht, Lt) => Math.atan2(ht.y - Lt.y, ht.x - Lt.x), Pt = yt(e, Z), ft = yt(i, Z), Y = yt(a, Z), ut = Y > Pt && Y < ft || Pt > Y && Pt < ft || ft > Y && ft < Pt;
|
|
4249
|
+
this.center = Z, this.radius = j, this._clockwise = !ut, this._startAngle = Pt, this._endAngle = Y;
|
|
4250
4250
|
}
|
|
4251
4251
|
/**
|
|
4252
4252
|
* Create circular arc by two points and one bugle factor
|
|
@@ -4395,7 +4395,7 @@ class nr extends Xn {
|
|
|
4395
4395
|
) && e.push(this.getPointAtAngle(_));
|
|
4396
4396
|
}
|
|
4397
4397
|
const a = e.map((_) => _.x), l = e.map((_) => _.y);
|
|
4398
|
-
return new
|
|
4398
|
+
return new Me(
|
|
4399
4399
|
new Dt(Math.min(...a), Math.min(...l)),
|
|
4400
4400
|
new Dt(Math.max(...a), Math.max(...l))
|
|
4401
4401
|
);
|
|
@@ -4756,7 +4756,7 @@ class er extends Wn {
|
|
|
4756
4756
|
return this._radius;
|
|
4757
4757
|
}
|
|
4758
4758
|
set radius(e) {
|
|
4759
|
-
if (e < 0) throw
|
|
4759
|
+
if (e < 0) throw Pe.ILLEGAL_PARAMETERS;
|
|
4760
4760
|
this._radius = e, this._boundingBoxNeedsUpdate = !0;
|
|
4761
4761
|
}
|
|
4762
4762
|
/**
|
|
@@ -5017,7 +5017,7 @@ class ei extends Xn {
|
|
|
5017
5017
|
return this._majorAxisRadius;
|
|
5018
5018
|
}
|
|
5019
5019
|
set majorAxisRadius(e) {
|
|
5020
|
-
if (e < 0) throw
|
|
5020
|
+
if (e < 0) throw Pe.ILLEGAL_PARAMETERS;
|
|
5021
5021
|
this._majorAxisRadius = e, this._boundingBoxNeedsUpdate = !0;
|
|
5022
5022
|
}
|
|
5023
5023
|
/**
|
|
@@ -5027,7 +5027,7 @@ class ei extends Xn {
|
|
|
5027
5027
|
return this._minorAxisRadius;
|
|
5028
5028
|
}
|
|
5029
5029
|
set minorAxisRadius(e) {
|
|
5030
|
-
if (e < 0) throw
|
|
5030
|
+
if (e < 0) throw Pe.ILLEGAL_PARAMETERS;
|
|
5031
5031
|
this._minorAxisRadius = e, this._boundingBoxNeedsUpdate = !0;
|
|
5032
5032
|
}
|
|
5033
5033
|
/**
|
|
@@ -5090,7 +5090,7 @@ class ei extends Xn {
|
|
|
5090
5090
|
const p = this.getPoint(g / 100);
|
|
5091
5091
|
i = Math.min(i, p.x), a = Math.min(a, p.y), l = Math.max(l, p.x), _ = Math.max(_, p.y);
|
|
5092
5092
|
}
|
|
5093
|
-
return new
|
|
5093
|
+
return new Me({ x: i, y: a }, { x: l, y: _ });
|
|
5094
5094
|
}
|
|
5095
5095
|
/**
|
|
5096
5096
|
* Return true if its start point is identical to its end point. Otherwise, return false.
|
|
@@ -5177,7 +5177,7 @@ class ni extends Wn {
|
|
|
5177
5177
|
return this._majorAxisRadius;
|
|
5178
5178
|
}
|
|
5179
5179
|
set majorAxisRadius(e) {
|
|
5180
|
-
if (e < 0) throw
|
|
5180
|
+
if (e < 0) throw Pe.ILLEGAL_PARAMETERS;
|
|
5181
5181
|
this._majorAxisRadius = e, this._boundingBoxNeedsUpdate = !0;
|
|
5182
5182
|
}
|
|
5183
5183
|
/**
|
|
@@ -5187,7 +5187,7 @@ class ni extends Wn {
|
|
|
5187
5187
|
return this._minorAxisRadius;
|
|
5188
5188
|
}
|
|
5189
5189
|
set minorAxisRadius(e) {
|
|
5190
|
-
if (e < 0) throw
|
|
5190
|
+
if (e < 0) throw Pe.ILLEGAL_PARAMETERS;
|
|
5191
5191
|
this._minorAxisRadius = e, this._boundingBoxNeedsUpdate = !0;
|
|
5192
5192
|
}
|
|
5193
5193
|
/**
|
|
@@ -5541,7 +5541,7 @@ class ss extends Xn {
|
|
|
5541
5541
|
*/
|
|
5542
5542
|
calculateBoundingBox() {
|
|
5543
5543
|
const e = this.getPoints(100);
|
|
5544
|
-
return new
|
|
5544
|
+
return new Me().setFromPoints(e);
|
|
5545
5545
|
}
|
|
5546
5546
|
/**
|
|
5547
5547
|
* @inheritdoc
|
|
@@ -5637,7 +5637,7 @@ class ri extends Xn {
|
|
|
5637
5637
|
Math.max(this._start.x, this._end.x),
|
|
5638
5638
|
Math.max(this._start.y, this._end.y)
|
|
5639
5639
|
);
|
|
5640
|
-
return new
|
|
5640
|
+
return new Me(e, i);
|
|
5641
5641
|
}
|
|
5642
5642
|
/**
|
|
5643
5643
|
* @inheritdoc
|
|
@@ -5717,7 +5717,7 @@ class as extends Xn {
|
|
|
5717
5717
|
* @inheritdoc
|
|
5718
5718
|
*/
|
|
5719
5719
|
calculateBoundingBox() {
|
|
5720
|
-
const e = this.getPoints(100), i = new
|
|
5720
|
+
const e = this.getPoints(100), i = new Me();
|
|
5721
5721
|
return i.setFromPoints(e), i;
|
|
5722
5722
|
}
|
|
5723
5723
|
/**
|
|
@@ -5881,14 +5881,14 @@ var ii = { exports: {} };
|
|
|
5881
5881
|
}, yt.parseFloat = function(t) {
|
|
5882
5882
|
return parseFloat(t);
|
|
5883
5883
|
};
|
|
5884
|
-
var
|
|
5884
|
+
var Pt = function() {
|
|
5885
5885
|
this.b = "";
|
|
5886
5886
|
};
|
|
5887
|
-
y.StringBuf =
|
|
5887
|
+
y.StringBuf = Pt, Pt.__name__ = ["StringBuf"], Pt.prototype = {
|
|
5888
5888
|
add: function(t) {
|
|
5889
5889
|
this.b += yt.string(t);
|
|
5890
5890
|
},
|
|
5891
|
-
__class__:
|
|
5891
|
+
__class__: Pt
|
|
5892
5892
|
};
|
|
5893
5893
|
var ft = function() {
|
|
5894
5894
|
};
|
|
@@ -5966,7 +5966,7 @@ var ii = { exports: {} };
|
|
|
5966
5966
|
__class__: Lt
|
|
5967
5967
|
};
|
|
5968
5968
|
var jt = function() {
|
|
5969
|
-
this.buf = new
|
|
5969
|
+
this.buf = new Pt(), this.cache = [], this.useCache = jt.USE_CACHE, this.useEnumIndex = jt.USE_ENUM_INDEX, this.shash = new se(), this.scount = 0;
|
|
5970
5970
|
};
|
|
5971
5971
|
y["haxe.Serializer"] = jt, jt.__name__ = ["haxe", "Serializer"], jt.prototype = {
|
|
5972
5972
|
toString: function() {
|
|
@@ -6037,14 +6037,14 @@ var ii = { exports: {} };
|
|
|
6037
6037
|
case Z:
|
|
6038
6038
|
this.buf.b += "l";
|
|
6039
6039
|
for (var m = t, b = m.h, w = null; b != null; ) {
|
|
6040
|
-
var
|
|
6041
|
-
w = b[0], b = b[1],
|
|
6040
|
+
var P;
|
|
6041
|
+
w = b[0], b = b[1], P = w, this.serialize(P);
|
|
6042
6042
|
}
|
|
6043
6043
|
this.buf.b += "h";
|
|
6044
6044
|
break;
|
|
6045
6045
|
case Date:
|
|
6046
|
-
var
|
|
6047
|
-
this.buf.b += "v", this.buf.add(
|
|
6046
|
+
var M = t;
|
|
6047
|
+
this.buf.b += "v", this.buf.add(M.getTime());
|
|
6048
6048
|
break;
|
|
6049
6049
|
case se:
|
|
6050
6050
|
this.buf.b += "b";
|
|
@@ -6071,7 +6071,7 @@ var ii = { exports: {} };
|
|
|
6071
6071
|
this.buf.b += "h";
|
|
6072
6072
|
break;
|
|
6073
6073
|
case ae:
|
|
6074
|
-
for (var V = t, G = 0, Q = V.length - 2, J = new
|
|
6074
|
+
for (var V = t, G = 0, Q = V.length - 2, J = new Pt(), et = jt.BASE64; G < Q; ) {
|
|
6075
6075
|
var it = V.get(G++), nt = V.get(G++), st = V.get(G++);
|
|
6076
6076
|
J.add(et.charAt(it >> 2)), J.add(et.charAt((it << 4 | nt >> 4) & 63)), J.add(et.charAt((nt << 2 | st >> 6) & 63)), J.add(et.charAt(st & 63));
|
|
6077
6077
|
}
|
|
@@ -6093,7 +6093,7 @@ var ii = { exports: {} };
|
|
|
6093
6093
|
if (wt.__instanceof(t, xr)) {
|
|
6094
6094
|
var mt = ut.getClassName(t);
|
|
6095
6095
|
this.buf.b += "A", this.serializeString(mt);
|
|
6096
|
-
} else if (wt.__instanceof(t,
|
|
6096
|
+
} else if (wt.__instanceof(t, Pr))
|
|
6097
6097
|
this.buf.b += "B", this.serializeString(ut.getEnumName(t));
|
|
6098
6098
|
else {
|
|
6099
6099
|
if (this.useCache && this.serializeRef(t)) return;
|
|
@@ -6250,9 +6250,9 @@ var ii = { exports: {} };
|
|
|
6250
6250
|
var w = ut.createEmptyInstance(b);
|
|
6251
6251
|
return this.cache.push(w), this.unserializeObject(w), w;
|
|
6252
6252
|
case 119:
|
|
6253
|
-
var
|
|
6254
|
-
if (
|
|
6255
|
-
var z = this.unserializeEnum(
|
|
6253
|
+
var P = this.unserialize(), M = this.resolver.resolveEnum(P);
|
|
6254
|
+
if (M == null) throw new X("Enum not found " + P);
|
|
6255
|
+
var z = this.unserializeEnum(M, this.unserialize());
|
|
6256
6256
|
return this.cache.push(z), z;
|
|
6257
6257
|
case 106:
|
|
6258
6258
|
var N = this.unserialize(), k = this.resolver.resolveEnum(N);
|
|
@@ -6506,16 +6506,16 @@ var ii = { exports: {} };
|
|
|
6506
6506
|
return k instanceof X && (k = k.val), "???";
|
|
6507
6507
|
}
|
|
6508
6508
|
if (w != null && w != Object.toString && typeof w == "function") {
|
|
6509
|
-
var
|
|
6510
|
-
if (
|
|
6509
|
+
var P = t.toString();
|
|
6510
|
+
if (P != "[object Object]") return P;
|
|
6511
6511
|
}
|
|
6512
|
-
var
|
|
6512
|
+
var M = null, z = `{
|
|
6513
6513
|
`;
|
|
6514
6514
|
n += " ";
|
|
6515
6515
|
var N = t.hasOwnProperty != null;
|
|
6516
|
-
for (var
|
|
6517
|
-
N && !t.hasOwnProperty(
|
|
6518
|
-
`), z += n +
|
|
6516
|
+
for (var M in t)
|
|
6517
|
+
N && !t.hasOwnProperty(M) || M == "prototype" || M == "__class__" || M == "__super__" || M == "__interfaces__" || M == "__properties__" || (z.length != 2 && (z += `,
|
|
6518
|
+
`), z += n + M + " : " + wt.__string_rec(t[M], n));
|
|
6519
6519
|
return n = n.substring(1), z += `
|
|
6520
6520
|
` + n + "}", z;
|
|
6521
6521
|
case "function":
|
|
@@ -6557,7 +6557,7 @@ var ii = { exports: {} };
|
|
|
6557
6557
|
} else if (typeof n == "object" && wt.__isNativeObj(n) && t instanceof n)
|
|
6558
6558
|
return !0;
|
|
6559
6559
|
} else return !1;
|
|
6560
|
-
return n == xr && t.__name__ != null || n ==
|
|
6560
|
+
return n == xr && t.__name__ != null || n == Pr && t.__ename__ != null ? !0 : t.__enum__ == n;
|
|
6561
6561
|
}
|
|
6562
6562
|
}, wt.__nativeClassName = function(t) {
|
|
6563
6563
|
var n = wt.__toStr.call(t).slice(8, -1);
|
|
@@ -7337,17 +7337,17 @@ var ii = { exports: {} };
|
|
|
7337
7337
|
y["verb.core.MeshIntersectionPoint"] = Ve, Ve.__name__ = ["verb", "core", "MeshIntersectionPoint"], Ve.prototype = {
|
|
7338
7338
|
__class__: Ve
|
|
7339
7339
|
};
|
|
7340
|
-
var
|
|
7340
|
+
var Pn = f.core.PolylineMeshIntersection = function(t, n, r, s, o) {
|
|
7341
7341
|
this.point = t, this.u = n, this.uv = r, this.polylineIndex = s, this.faceIndex = o;
|
|
7342
7342
|
};
|
|
7343
|
-
y["verb.core.PolylineMeshIntersection"] =
|
|
7344
|
-
__class__:
|
|
7343
|
+
y["verb.core.PolylineMeshIntersection"] = Pn, Pn.__name__ = ["verb", "core", "PolylineMeshIntersection"], Pn.prototype = {
|
|
7344
|
+
__class__: Pn
|
|
7345
7345
|
};
|
|
7346
|
-
var
|
|
7346
|
+
var Mn = f.core.SurfaceSurfaceIntersectionPoint = function(t, n, r, s) {
|
|
7347
7347
|
this.uv0 = t, this.uv1 = n, this.point = r, this.dist = s;
|
|
7348
7348
|
};
|
|
7349
|
-
y["verb.core.SurfaceSurfaceIntersectionPoint"] =
|
|
7350
|
-
__class__:
|
|
7349
|
+
y["verb.core.SurfaceSurfaceIntersectionPoint"] = Mn, Mn.__name__ = ["verb", "core", "SurfaceSurfaceIntersectionPoint"], Mn.prototype = {
|
|
7350
|
+
__class__: Mn
|
|
7351
7351
|
};
|
|
7352
7352
|
var An = f.core.TriSegmentIntersection = function(t, n, r, s) {
|
|
7353
7353
|
this.point = t, this.s = n, this.t = r, this.p = s;
|
|
@@ -7391,7 +7391,7 @@ var ii = { exports: {} };
|
|
|
7391
7391
|
return -w.item1;
|
|
7392
7392
|
}), h, c = null;
|
|
7393
7393
|
c = function(w) {
|
|
7394
|
-
for (var
|
|
7394
|
+
for (var P, M = w.dimension, z = s.distanceFunction(t, w.kdPoint.point), N, k = [], L = 0, B = s.dim; L < B; )
|
|
7395
7395
|
L++, k.push(0);
|
|
7396
7396
|
N = k;
|
|
7397
7397
|
for (var T, R, F = function(G, Q) {
|
|
@@ -7404,7 +7404,7 @@ var ii = { exports: {} };
|
|
|
7404
7404
|
(o.size() < n || z < o.peek().item1) && F(w, z);
|
|
7405
7405
|
return;
|
|
7406
7406
|
}
|
|
7407
|
-
w.right == null ?
|
|
7407
|
+
w.right == null ? P = w.left : w.left == null ? P = w.right : t[M] < w.kdPoint.point[M] ? P = w.left : P = w.right, c(P), (o.size() < n || z < o.peek().item1) && F(w, z), (o.size() < n || Math.abs(T) < o.peek().item1) && (P == w.left ? R = w.right : R = w.left, R != null && c(R));
|
|
7408
7408
|
}, h = c;
|
|
7409
7409
|
for (var v = 0; v < n; )
|
|
7410
7410
|
v++, o.push(new qt(null, r));
|
|
@@ -7603,11 +7603,11 @@ var ii = { exports: {} };
|
|
|
7603
7603
|
}, xt.mult = function(t, n) {
|
|
7604
7604
|
var r, s, o, h, c, v, d, m;
|
|
7605
7605
|
r = t.length, s = n.length, o = n[0].length, h = [];
|
|
7606
|
-
for (var b = r - 1, w = 0,
|
|
7607
|
-
for (c = [], v = t[b],
|
|
7608
|
-
for (d = v[s - 1] * n[s - 1][
|
|
7609
|
-
m = w - 1, d += v[w] * n[w][
|
|
7610
|
-
w == 0 && (d += v[0] * n[0][
|
|
7606
|
+
for (var b = r - 1, w = 0, P = 0; b >= 0; ) {
|
|
7607
|
+
for (c = [], v = t[b], P = o - 1; P >= 0; ) {
|
|
7608
|
+
for (d = v[s - 1] * n[s - 1][P], w = s - 2; w >= 1; )
|
|
7609
|
+
m = w - 1, d += v[w] * n[w][P] + v[m] * n[m][P], w -= 2;
|
|
7610
|
+
w == 0 && (d += v[0] * n[0][P]), c[P] = d, P--;
|
|
7611
7611
|
}
|
|
7612
7612
|
h[b] = c, b--;
|
|
7613
7613
|
}
|
|
@@ -7673,9 +7673,9 @@ var ii = { exports: {} };
|
|
|
7673
7673
|
}
|
|
7674
7674
|
return c;
|
|
7675
7675
|
}, xt.LU = function(t) {
|
|
7676
|
-
for (var n, r, s, o, h, c, v, d, m, b = [], w = 0,
|
|
7677
|
-
var
|
|
7678
|
-
b.push(t[
|
|
7676
|
+
for (var n, r, s, o, h, c, v, d, m, b = [], w = 0, P = t.length; w < P; ) {
|
|
7677
|
+
var M = w++;
|
|
7678
|
+
b.push(t[M].slice());
|
|
7679
7679
|
}
|
|
7680
7680
|
t = b;
|
|
7681
7681
|
var z = t.length, N = z - 1, k = [];
|
|
@@ -7717,8 +7717,8 @@ var ii = { exports: {} };
|
|
|
7717
7717
|
var v = Gt.getMinCoordOnAxis(n.points, n.faces[c], s);
|
|
7718
7718
|
o.push(new qt(v, c));
|
|
7719
7719
|
}
|
|
7720
|
-
o.sort(function(
|
|
7721
|
-
var z =
|
|
7720
|
+
o.sort(function(P, M) {
|
|
7721
|
+
var z = P.item0, N = M.item0;
|
|
7722
7722
|
return z == N ? 0 : z > N ? 1 : -1;
|
|
7723
7723
|
});
|
|
7724
7724
|
for (var d = [], m = 0, b = o.length; m < b; ) {
|
|
@@ -7744,7 +7744,7 @@ var ii = { exports: {} };
|
|
|
7744
7744
|
}
|
|
7745
7745
|
return r;
|
|
7746
7746
|
}, Gt.triangleUVFromPoint = function(t, n, r) {
|
|
7747
|
-
var s = t.faces[n], o = t.points[s[0]], h = t.points[s[1]], c = t.points[s[2]], v = t.uvs[s[0]], d = t.uvs[s[1]], m = t.uvs[s[2]], b = u.sub(o, r), w = u.sub(h, r),
|
|
7747
|
+
var s = t.faces[n], o = t.points[s[0]], h = t.points[s[1]], c = t.points[s[2]], v = t.uvs[s[0]], d = t.uvs[s[1]], m = t.uvs[s[2]], b = u.sub(o, r), w = u.sub(h, r), P = u.sub(c, r), M = u.norm(u.cross(u.sub(o, h), u.sub(o, c))), z = u.norm(u.cross(w, P)) / M, N = u.norm(u.cross(P, b)) / M, k = u.norm(u.cross(b, w)) / M;
|
|
7748
7748
|
return u.add(u.mul(z, v), u.add(u.mul(N, d), u.mul(k, m)));
|
|
7749
7749
|
};
|
|
7750
7750
|
var Fe = function(t, n) {
|
|
@@ -7792,13 +7792,13 @@ var ii = { exports: {} };
|
|
|
7792
7792
|
var h = n.length, c = t(n), v = c, d;
|
|
7793
7793
|
if (isNaN(c)) throw new X("uncmin: f(x0) is a NaN!");
|
|
7794
7794
|
r = Math.max(r, $.EPSILON);
|
|
7795
|
-
var m, b, w,
|
|
7796
|
-
for (b = s(n);
|
|
7795
|
+
var m, b, w, P = xt.identity(h), M = 0, z = [], N, k, L, B, T, R, F = "";
|
|
7796
|
+
for (b = s(n); M < o; ) {
|
|
7797
7797
|
if (!u.all(u.finite(b))) {
|
|
7798
7798
|
F = "Gradient has Infinity or NaN";
|
|
7799
7799
|
break;
|
|
7800
7800
|
}
|
|
7801
|
-
if (m = u.neg(xt.dot(
|
|
7801
|
+
if (m = u.neg(xt.dot(P, b)), !u.all(u.finite(m))) {
|
|
7802
7802
|
F = "Search direction has Infinity or NaN";
|
|
7803
7803
|
break;
|
|
7804
7804
|
}
|
|
@@ -7806,9 +7806,9 @@ var ii = { exports: {} };
|
|
|
7806
7806
|
F = "Newton step smaller than tol";
|
|
7807
7807
|
break;
|
|
7808
7808
|
}
|
|
7809
|
-
for (T = 1, d = u.dot(b, m), N = n;
|
|
7809
|
+
for (T = 1, d = u.dot(b, m), N = n; M < o && !(T * R < r); ) {
|
|
7810
7810
|
if (z = u.mul(T, m), N = u.add(n, z), v = t(N), v - c >= 0.1 * T * d || isNaN(v)) {
|
|
7811
|
-
T *= 0.5, ++
|
|
7811
|
+
T *= 0.5, ++M;
|
|
7812
7812
|
continue;
|
|
7813
7813
|
}
|
|
7814
7814
|
break;
|
|
@@ -7817,24 +7817,24 @@ var ii = { exports: {} };
|
|
|
7817
7817
|
F = "Line search step size smaller than tol";
|
|
7818
7818
|
break;
|
|
7819
7819
|
}
|
|
7820
|
-
if (
|
|
7820
|
+
if (M == o) {
|
|
7821
7821
|
F = "maxit reached during line search";
|
|
7822
7822
|
break;
|
|
7823
7823
|
}
|
|
7824
|
-
w = s(N), k = u.sub(w, b), B = u.dot(k, z), L = xt.dot(
|
|
7824
|
+
w = s(N), k = u.sub(w, b), B = u.dot(k, z), L = xt.dot(P, k), P = xt.sub(xt.add(P, xt.mul((B + u.dot(k, L)) / (B * B), me.tensor(z, z))), xt.div(xt.add(me.tensor(L, z), me.tensor(z, L)), B)), n = N, c = v, b = w, ++M;
|
|
7825
7825
|
}
|
|
7826
|
-
return new kn(n, c, b,
|
|
7826
|
+
return new kn(n, c, b, P, M, F);
|
|
7827
7827
|
}, me.numericalGradient = function(t, n) {
|
|
7828
7828
|
var r = n.length, s = t(n);
|
|
7829
7829
|
if (s == NaN) throw new X("gradient: f(x) is a NaN!");
|
|
7830
|
-
for (var o = n.slice(0), h, c, v = [], d, m = 1e-3, b, w,
|
|
7830
|
+
for (var o = n.slice(0), h, c, v = [], d, m = 1e-3, b, w, P, M = 0, z, N, k, L = 0; L < r; )
|
|
7831
7831
|
for (var B = L++, T = Math.max(1e-6 * s, 1e-8); ; ) {
|
|
7832
|
-
if (++
|
|
7832
|
+
if (++M, M > 20) throw new X("Numerical gradient fails");
|
|
7833
7833
|
if (o[B] = n[B] + T, h = t(o), o[B] = n[B] - T, c = t(o), o[B] = n[B], isNaN(h) || isNaN(c)) {
|
|
7834
7834
|
T /= 16;
|
|
7835
7835
|
continue;
|
|
7836
7836
|
}
|
|
7837
|
-
if (v[B] = (h - c) / (2 * T), b = n[B] - T, w = n[B],
|
|
7837
|
+
if (v[B] = (h - c) / (2 * T), b = n[B] - T, w = n[B], P = n[B] + T, z = (h - s) / T, N = (s - c) / T, k = u.max([Math.abs(v[B]), Math.abs(s), Math.abs(h), Math.abs(c), Math.abs(b), Math.abs(w), Math.abs(P), 1e-8]), d = Math.min(u.max([Math.abs(z - v[B]), Math.abs(N - v[B]), Math.abs(z - N)]) / k, T / k), d > m) T /= 16;
|
|
7838
7838
|
else break;
|
|
7839
7839
|
}
|
|
7840
7840
|
return v;
|
|
@@ -8103,7 +8103,7 @@ var ii = { exports: {} };
|
|
|
8103
8103
|
var r = vt.rationalSurfaceClosestParam(t, n);
|
|
8104
8104
|
return S.rationalSurfacePoint(t, r[0], r[1]);
|
|
8105
8105
|
}, vt.rationalSurfaceClosestParam = function(t, n) {
|
|
8106
|
-
for (var r = 5, s = 0, o, h = 1e-4, c = 5e-4, v, d = t.knotsU[0], m = K.last(t.knotsU), b = t.knotsV[0], w = K.last(t.knotsV),
|
|
8106
|
+
for (var r = 5, s = 0, o, h = 1e-4, c = 5e-4, v, d = t.knotsU[0], m = K.last(t.knotsU), b = t.knotsV[0], w = K.last(t.knotsV), P = vt.isRationalSurfaceClosed(t), M = vt.isRationalSurfaceClosed(t, !1), z, N = Mt.rationalSurfaceAdaptive(t, new Oe()), k = 1 / 0, L = 0, B = N.points.length; L < B; ) {
|
|
8107
8107
|
var T = L++, R = N.points[T], F = u.normSquared(u.sub(n, R));
|
|
8108
8108
|
F < k && (k = F, z = N.uvs[T]);
|
|
8109
8109
|
}
|
|
@@ -8117,7 +8117,7 @@ var ii = { exports: {} };
|
|
|
8117
8117
|
var V = u.norm(v), G = u.dot(o[1][0], v), Q = u.norm(o[1][0]) * V, J = u.dot(o[0][1], v), et = u.norm(o[0][1]) * V, it = G / Q, nt = J / et, st = V < h, tt = it < c, at = nt < c;
|
|
8118
8118
|
if (st && tt && at) return z;
|
|
8119
8119
|
var O = D(z, o, v);
|
|
8120
|
-
O[0] < d ?
|
|
8120
|
+
O[0] < d ? P ? O = [m - (O[0] - d), O[1]] : O = [d + $.EPSILON, O[1]] : O[0] > m && (P ? O = [d + (O[0] - m), O[1]] : O = [m - $.EPSILON, O[1]]), O[1] < b ? M ? O = [O[0], w - (O[1] - b)] : O = [O[0], b + $.EPSILON] : O[1] > w && (M ? O = [O[0], b + (O[0] - w)] : O = [O[0], w - $.EPSILON]);
|
|
8121
8121
|
var lt = u.norm(u.mul(O[0] - z[0], o[1][0])), mt = u.norm(u.mul(O[1] - z[1], o[0][1]));
|
|
8122
8122
|
if (lt + mt < h) return z;
|
|
8123
8123
|
z = O, s++;
|
|
@@ -8126,9 +8126,9 @@ var ii = { exports: {} };
|
|
|
8126
8126
|
}, vt.rationalCurveClosestPoint = function(t, n) {
|
|
8127
8127
|
return S.rationalCurvePoint(t, vt.rationalCurveClosestParam(t, n));
|
|
8128
8128
|
}, vt.rationalCurveClosestParam = function(t, n) {
|
|
8129
|
-
for (var r = 1 / 0, s = 0, o =
|
|
8130
|
-
var v = h++, d = o[v][0], m = o[v + 1][0], b = o[v].slice(1), w = o[v + 1].slice(1),
|
|
8131
|
-
|
|
8129
|
+
for (var r = 1 / 0, s = 0, o = Mt.rationalCurveRegularSample(t, t.controlPoints.length * t.degree, !0), h = 0, c = o.length - 1; h < c; ) {
|
|
8130
|
+
var v = h++, d = o[v][0], m = o[v + 1][0], b = o[v].slice(1), w = o[v + 1].slice(1), P = he.segmentClosestPoint(n, b, w, d, m), M = u.norm(u.sub(n, P.pt));
|
|
8131
|
+
M < r && (r = M, s = P.u);
|
|
8132
8132
|
}
|
|
8133
8133
|
for (var z = 5, N = 0, k, L = 1e-4, B = 5e-4, T, R = t.knots[0], F = K.last(t.knots), W = u.normSquared(u.sub(t.controlPoints[0], K.last(t.controlPoints))) < $.EPSILON, D = s, V = function(O) {
|
|
8134
8134
|
return S.rationalCurveDerivatives(t, O, 2);
|
|
@@ -8243,11 +8243,11 @@ var ii = { exports: {} };
|
|
|
8243
8243
|
for (var c, v = [], d = 0, m = o + 1; d < m; )
|
|
8244
8244
|
d++, v.push(n);
|
|
8245
8245
|
c = v;
|
|
8246
|
-
for (var b = [], w = [],
|
|
8246
|
+
for (var b = [], w = [], P = S.knotSpan(o, n, s), M = null, z = 0; z < h.length; ) {
|
|
8247
8247
|
var N = h[z];
|
|
8248
|
-
++z,
|
|
8248
|
+
++z, M = ct.curveKnotRefine(new kt(o, s, N), c), b.push(M.controlPoints.slice(0, P + 1)), w.push(M.controlPoints.slice(P + 1));
|
|
8249
8249
|
}
|
|
8250
|
-
var k =
|
|
8250
|
+
var k = M.knots.slice(0, P + o + 2), L = M.knots.slice(P + 1);
|
|
8251
8251
|
return r ? [new Ot(t.degreeU, o, t.knotsU.slice(), k, b), new Ot(t.degreeU, o, t.knotsU.slice(), L, w)] : (b = xt.transpose(b), w = xt.transpose(w), [new Ot(o, t.degreeV, k, t.knotsV.slice(), b), new Ot(o, t.degreeV, L, t.knotsV.slice(), w)]);
|
|
8252
8252
|
}, Zt.curveSplit = function(t, n) {
|
|
8253
8253
|
var r = t.degree;
|
|
@@ -8255,14 +8255,14 @@ var ii = { exports: {} };
|
|
|
8255
8255
|
for (var s = t.knots, o, h = [], c = 0, v = r + 1; c < v; )
|
|
8256
8256
|
c++, h.push(n);
|
|
8257
8257
|
o = h;
|
|
8258
|
-
var d = ct.curveKnotRefine(t, o), m = S.knotSpan(r, n, s), b = d.knots.slice(0, m + r + 2), w = d.knots.slice(m + 1),
|
|
8259
|
-
return [new kt(r, b,
|
|
8258
|
+
var d = ct.curveKnotRefine(t, o), m = S.knotSpan(r, n, s), b = d.knots.slice(0, m + r + 2), w = d.knots.slice(m + 1), P = d.controlPoints.slice(0, m + 1), M = d.controlPoints.slice(m + 1);
|
|
8259
|
+
return [new kt(r, b, P), new kt(r, w, M)];
|
|
8260
8260
|
}, Zt.rationalCurveByEqualArcLength = function(t, n) {
|
|
8261
8261
|
var r = vt.rationalCurveArcLength(t), s = r / n;
|
|
8262
8262
|
return Zt.rationalCurveByArcLength(t, s);
|
|
8263
8263
|
}, Zt.rationalCurveByArcLength = function(t, n) {
|
|
8264
|
-
var r = ct.decomposeCurveIntoBeziers(t), s = r.map(function(
|
|
8265
|
-
return vt.rationalBezierCurveArcLength(
|
|
8264
|
+
var r = ct.decomposeCurveIntoBeziers(t), s = r.map(function(P) {
|
|
8265
|
+
return vt.rationalBezierCurveArcLength(P);
|
|
8266
8266
|
}), o = u.sum(s), h = [new un(t.knots[0], 0)];
|
|
8267
8267
|
if (n > o) return h;
|
|
8268
8268
|
for (var c = n, v = 0, d = c, m = 0, b = 0, w; v < r.length; ) {
|
|
@@ -8291,8 +8291,8 @@ var ii = { exports: {} };
|
|
|
8291
8291
|
for (var o = S.surfaceDerivatives(t, n, r, s), h = S.rational2d(o), c = S.weight2d(o), v = [], d = h[0][0].length, m = 0, b = s + 1; m < b; ) {
|
|
8292
8292
|
var w = m++;
|
|
8293
8293
|
v.push([]);
|
|
8294
|
-
for (var
|
|
8295
|
-
for (var z =
|
|
8294
|
+
for (var P = 0, M = s - w + 1; P < M; ) {
|
|
8295
|
+
for (var z = P++, N = h[w][z], k = 1, L = z + 1; k < L; ) {
|
|
8296
8296
|
var B = k++;
|
|
8297
8297
|
u.subMulMutate(N, At.get(z, B) * c[0][B], v[w][z - B]);
|
|
8298
8298
|
}
|
|
@@ -8314,9 +8314,9 @@ var ii = { exports: {} };
|
|
|
8314
8314
|
}, S.rationalCurveDerivatives = function(t, n, r) {
|
|
8315
8315
|
r == null && (r = 1);
|
|
8316
8316
|
for (var s = S.curveDerivatives(t, n, r), o = S.rational1d(s), h = S.weight1d(s), c = [], v = 0, d = r + 1; v < d; ) {
|
|
8317
|
-
for (var m = v++, b = o[m], w = 1,
|
|
8318
|
-
var
|
|
8319
|
-
u.subMulMutate(b, At.get(m,
|
|
8317
|
+
for (var m = v++, b = o[m], w = 1, P = m + 1; w < P; ) {
|
|
8318
|
+
var M = w++;
|
|
8319
|
+
u.subMulMutate(b, At.get(m, M) * h[M], c[m - M]);
|
|
8320
8320
|
}
|
|
8321
8321
|
u.mulMutate(1 / h[0], b), c.push(b);
|
|
8322
8322
|
}
|
|
@@ -8329,11 +8329,11 @@ var ii = { exports: {} };
|
|
|
8329
8329
|
}, S.surfaceDerivativesGivenNM = function(t, n, r, s, o, h) {
|
|
8330
8330
|
var c = r.degreeU, v = r.degreeV, d = r.controlPoints, m = r.knotsU, b = r.knotsV;
|
|
8331
8331
|
if (!S.areValidRelations(c, d.length, m.length) || !S.areValidRelations(v, d[0].length, b.length)) throw new X("Invalid relations between control points, knot vector, and n");
|
|
8332
|
-
var w = d[0][0].length,
|
|
8333
|
-
h < c ?
|
|
8334
|
-
var
|
|
8335
|
-
h < v ?
|
|
8336
|
-
for (var z = u.zeros3d(h + 1, h + 1, w), N = S.knotSpanGivenN(t, c, s, m), k = S.knotSpanGivenN(n, v, o, b), L = S.derivativeBasisFunctionsGivenNI(N, s, c, t, m), B = S.derivativeBasisFunctionsGivenNI(k, o, v, n, b), T = u.zeros2d(v + 1, w), R = 0, F = 0, W =
|
|
8332
|
+
var w = d[0][0].length, P;
|
|
8333
|
+
h < c ? P = h : P = c;
|
|
8334
|
+
var M;
|
|
8335
|
+
h < v ? M = h : M = v;
|
|
8336
|
+
for (var z = u.zeros3d(h + 1, h + 1, w), N = S.knotSpanGivenN(t, c, s, m), k = S.knotSpanGivenN(n, v, o, b), L = S.derivativeBasisFunctionsGivenNI(N, s, c, t, m), B = S.derivativeBasisFunctionsGivenNI(k, o, v, n, b), T = u.zeros2d(v + 1, w), R = 0, F = 0, W = P + 1; F < W; ) {
|
|
8337
8337
|
for (var D = F++, V = 0, G = v + 1; V < G; ) {
|
|
8338
8338
|
var Q = V++;
|
|
8339
8339
|
T[Q] = u.zeros1d(w);
|
|
@@ -8343,7 +8343,7 @@ var ii = { exports: {} };
|
|
|
8343
8343
|
}
|
|
8344
8344
|
}
|
|
8345
8345
|
var nt = h - D;
|
|
8346
|
-
nt <
|
|
8346
|
+
nt < M ? R = nt : R = M;
|
|
8347
8347
|
for (var st = 0, tt = R + 1; st < tt; ) {
|
|
8348
8348
|
var at = st++;
|
|
8349
8349
|
z[D][at] = u.zeros1d(w);
|
|
@@ -8360,30 +8360,30 @@ var ii = { exports: {} };
|
|
|
8360
8360
|
}, S.surfacePointGivenNM = function(t, n, r, s, o) {
|
|
8361
8361
|
var h = r.degreeU, c = r.degreeV, v = r.controlPoints, d = r.knotsU, m = r.knotsV;
|
|
8362
8362
|
if (!S.areValidRelations(h, v.length, d.length) || !S.areValidRelations(c, v[0].length, m.length)) throw new X("Invalid relations between control points, knot vector, and n");
|
|
8363
|
-
for (var b = v[0][0].length, w = S.knotSpanGivenN(t, h, s, d),
|
|
8363
|
+
for (var b = v[0][0].length, w = S.knotSpanGivenN(t, h, s, d), P = S.knotSpanGivenN(n, c, o, m), M = S.basisFunctionsGivenKnotSpanIndex(w, s, h, d), z = S.basisFunctionsGivenKnotSpanIndex(P, o, c, m), N = w - h, k = P, L = u.zeros1d(b), B = u.zeros1d(b), T = 0, R = c + 1; T < R; ) {
|
|
8364
8364
|
var F = T++;
|
|
8365
|
-
B = u.zeros1d(b), k =
|
|
8365
|
+
B = u.zeros1d(b), k = P - c + F;
|
|
8366
8366
|
for (var W = 0, D = h + 1; W < D; ) {
|
|
8367
8367
|
var V = W++;
|
|
8368
|
-
u.addMulMutate(B,
|
|
8368
|
+
u.addMulMutate(B, M[V], v[N + V][k]);
|
|
8369
8369
|
}
|
|
8370
8370
|
u.addMulMutate(L, z[F], B);
|
|
8371
8371
|
}
|
|
8372
8372
|
return L;
|
|
8373
8373
|
}, S.curveRegularSamplePoints = function(t, n) {
|
|
8374
|
-
for (var r = S.curveDerivatives(t, t.knots[0], t.degree), s = 1 / n, o = s * s, h = r[0], c = u.mul(s, r[1]), v = u.mul(o * 0.5, r[2]), d = u.mul(o * s * 0.5, r[3]), m = u.add(v, v), b = u.add(d, d), w = u.mul(0.3333333333333333, d),
|
|
8375
|
-
|
|
8376
|
-
return
|
|
8374
|
+
for (var r = S.curveDerivatives(t, t.knots[0], t.degree), s = 1 / n, o = s * s, h = r[0], c = u.mul(s, r[1]), v = u.mul(o * 0.5, r[2]), d = u.mul(o * s * 0.5, r[3]), m = u.add(v, v), b = u.add(d, d), w = u.mul(0.3333333333333333, d), P = [], M = 0, z = n + 1; M < z; )
|
|
8375
|
+
M++, P.push(S.dehomogenize(h)), u.addAllMutate([h, c, v, w]), u.addAllMutate([c, m, d]), u.addAllMutate([m, b]), u.addAllMutate([v, d]);
|
|
8376
|
+
return P;
|
|
8377
8377
|
}, S.curveRegularSamplePoints2 = function(t, n) {
|
|
8378
|
-
for (var r = S.curveDerivatives(t, t.knots[0], t.degree), s = 1 / n, o = s * s, h = r[0], c = u.mul(s, r[1]), v = u.mul(o * 0.5, r[2]), d = u.mul(o * s * 0.5, r[3]), m = u.add(v, v), b = u.add(d, d), w = u.mul(0.3333333333333333, d),
|
|
8379
|
-
|
|
8380
|
-
return
|
|
8378
|
+
for (var r = S.curveDerivatives(t, t.knots[0], t.degree), s = 1 / n, o = s * s, h = r[0], c = u.mul(s, r[1]), v = u.mul(o * 0.5, r[2]), d = u.mul(o * s * 0.5, r[3]), m = u.add(v, v), b = u.add(d, d), w = u.mul(0.3333333333333333, d), P = [], M = 0, z = n + 1; M < z; )
|
|
8379
|
+
M++, P.push(S.dehomogenize(h)), u.addAllMutate([h, c, v, w]), u.addAllMutate([c, m, d]), u.addAllMutate([m, b]), u.addAllMutate([v, d]);
|
|
8380
|
+
return P;
|
|
8381
8381
|
}, S.rationalSurfaceRegularSampleDerivatives = function(t, n, r, s) {
|
|
8382
8382
|
for (var o = S.surfaceRegularSampleDerivatives(t, n, r, s), h = [], c = n + 1, v = r + 1, d = s + 1, m = 0; m < c; ) {
|
|
8383
8383
|
var b = m++, w = [];
|
|
8384
8384
|
h.push(w);
|
|
8385
|
-
for (var
|
|
8386
|
-
for (var
|
|
8385
|
+
for (var P = 0; P < v; ) {
|
|
8386
|
+
for (var M = P++, z = o[b][M], N = S.rational2d(z), k = S.weight2d(z), L = [], B = N[0][0].length, T = 0; T < d; ) {
|
|
8387
8387
|
var R = T++;
|
|
8388
8388
|
L.push([]);
|
|
8389
8389
|
for (var F = 0, W = d - R; F < W; ) {
|
|
@@ -8410,12 +8410,12 @@ var ii = { exports: {} };
|
|
|
8410
8410
|
}, S.surfaceRegularSampleDerivatives = function(t, n, r, s) {
|
|
8411
8411
|
var o = t.degreeU, h = t.degreeV, c = t.controlPoints, v = t.knotsU, d = t.knotsV, m = c[0][0].length;
|
|
8412
8412
|
(K.last(v) - v[0]) / n, (K.last(d) - d[0]) / r;
|
|
8413
|
-
for (var b = S.regularlySpacedDerivativeBasisFunctions(o, v, n), w = b.item0,
|
|
8413
|
+
for (var b = S.regularlySpacedDerivativeBasisFunctions(o, v, n), w = b.item0, P = b.item1, M = S.regularlySpacedDerivativeBasisFunctions(h, d, r), z = M.item0, N = M.item1, k = [], L = n + 1, B = r + 1, T = 0; T < L; ) {
|
|
8414
8414
|
var R = T++, F = [];
|
|
8415
8415
|
k.push(F);
|
|
8416
8416
|
for (var W = 0; W < B; ) {
|
|
8417
8417
|
var D = W++;
|
|
8418
|
-
F.push(S.surfaceDerivativesGivenBasesKnotSpans(o, h, c, w[R], z[D],
|
|
8418
|
+
F.push(S.surfaceDerivativesGivenBasesKnotSpans(o, h, c, w[R], z[D], P[R], N[D], m, s));
|
|
8419
8419
|
}
|
|
8420
8420
|
}
|
|
8421
8421
|
return k;
|
|
@@ -8424,12 +8424,12 @@ var ii = { exports: {} };
|
|
|
8424
8424
|
}, S.surfaceRegularSamplePoints = function(t, n, r) {
|
|
8425
8425
|
var s = t.degreeU, o = t.degreeV, h = t.controlPoints, c = t.knotsU, v = t.knotsV, d = h[0][0].length;
|
|
8426
8426
|
(K.last(c) - c[0]) / n, (K.last(v) - v[0]) / r;
|
|
8427
|
-
for (var m = S.regularlySpacedBasisFunctions(s, c, n), b = m.item0, w = m.item1,
|
|
8427
|
+
for (var m = S.regularlySpacedBasisFunctions(s, c, n), b = m.item0, w = m.item1, P = S.regularlySpacedBasisFunctions(o, v, r), M = P.item0, z = P.item1, N = [], k = n + 1, L = r + 1, B = 0; B < k; ) {
|
|
8428
8428
|
var T = B++, R = [];
|
|
8429
8429
|
N.push(R);
|
|
8430
8430
|
for (var F = 0; F < L; ) {
|
|
8431
8431
|
var W = F++;
|
|
8432
|
-
R.push(S.surfacePointGivenBasesKnotSpans(s, o, h, b[T],
|
|
8432
|
+
R.push(S.surfacePointGivenBasesKnotSpans(s, o, h, b[T], M[W], w[T], z[W], d));
|
|
8433
8433
|
}
|
|
8434
8434
|
}
|
|
8435
8435
|
return N;
|
|
@@ -8446,8 +8446,8 @@ var ii = { exports: {} };
|
|
|
8446
8446
|
}
|
|
8447
8447
|
return new qt(c, h);
|
|
8448
8448
|
}, S.surfacePointGivenBasesKnotSpans = function(t, n, r, s, o, h, c, v) {
|
|
8449
|
-
for (var d = u.zeros1d(v), m, b = s - t, w = o - n,
|
|
8450
|
-
var z =
|
|
8449
|
+
for (var d = u.zeros1d(v), m, b = s - t, w = o - n, P = 0, M = n + 1; P < M; ) {
|
|
8450
|
+
var z = P++;
|
|
8451
8451
|
m = u.zeros1d(v);
|
|
8452
8452
|
for (var N = 0, k = t + 1; N < k; ) {
|
|
8453
8453
|
var L = N++;
|
|
@@ -8461,27 +8461,27 @@ var ii = { exports: {} };
|
|
|
8461
8461
|
d < t ? b = d : b = t;
|
|
8462
8462
|
var w;
|
|
8463
8463
|
d < n ? w = d : w = n;
|
|
8464
|
-
for (var
|
|
8464
|
+
for (var P = u.zeros3d(b + 1, w + 1, m), M = u.zeros2d(n + 1, m), z = 0, N = 0, k = b + 1; N < k; ) {
|
|
8465
8465
|
for (var L = N++, B = 0, T = n + 1; B < T; ) {
|
|
8466
8466
|
var R = B++;
|
|
8467
|
-
|
|
8467
|
+
M[R] = u.zeros1d(m);
|
|
8468
8468
|
for (var F = 0, W = t + 1; F < W; ) {
|
|
8469
8469
|
var D = F++;
|
|
8470
|
-
u.addMulMutate(
|
|
8470
|
+
u.addMulMutate(M[R], h[L][D], r[s - t + D][o - n + R]);
|
|
8471
8471
|
}
|
|
8472
8472
|
}
|
|
8473
8473
|
var V = d - L;
|
|
8474
8474
|
V < w ? z = V : z = w;
|
|
8475
8475
|
for (var G = 0, Q = z + 1; G < Q; ) {
|
|
8476
8476
|
var J = G++;
|
|
8477
|
-
|
|
8477
|
+
P[L][J] = u.zeros1d(m);
|
|
8478
8478
|
for (var et = 0, it = n + 1; et < it; ) {
|
|
8479
8479
|
var nt = et++;
|
|
8480
|
-
u.addMulMutate(
|
|
8480
|
+
u.addMulMutate(P[L][J], c[J][nt], M[nt]);
|
|
8481
8481
|
}
|
|
8482
8482
|
}
|
|
8483
8483
|
}
|
|
8484
|
-
return
|
|
8484
|
+
return P;
|
|
8485
8485
|
}, S.curveDerivatives = function(t, n, r) {
|
|
8486
8486
|
var s = t.knots.length - t.degree - 2;
|
|
8487
8487
|
return S.curveDerivativesGivenN(s, t, n, r);
|
|
@@ -8490,8 +8490,8 @@ var ii = { exports: {} };
|
|
|
8490
8490
|
if (!S.areValidRelations(o, h.length, c.length)) throw new X("Invalid relations between control points, knot vector, and n");
|
|
8491
8491
|
var v = h[0].length, d;
|
|
8492
8492
|
s < o ? d = s : d = o;
|
|
8493
|
-
for (var m = u.zeros2d(s + 1, v), b = S.knotSpanGivenN(t, o, r, c), w = S.derivativeBasisFunctionsGivenNI(b, r, o, d, c),
|
|
8494
|
-
for (var z =
|
|
8493
|
+
for (var m = u.zeros2d(s + 1, v), b = S.knotSpanGivenN(t, o, r, c), w = S.derivativeBasisFunctionsGivenNI(b, r, o, d, c), P = 0, M = d + 1; P < M; )
|
|
8494
|
+
for (var z = P++, N = 0, k = o + 1; N < k; ) {
|
|
8495
8495
|
var L = N++;
|
|
8496
8496
|
u.addMulMutate(m[z], w[z][L], h[b - o + L]);
|
|
8497
8497
|
}
|
|
@@ -8515,7 +8515,7 @@ var ii = { exports: {} };
|
|
|
8515
8515
|
return S.volumePointGivenNML(t, o, h, c, n, r, s);
|
|
8516
8516
|
}, S.volumePointGivenNML = function(t, n, r, s, o, h, c) {
|
|
8517
8517
|
if (!S.areValidRelations(t.degreeU, t.controlPoints.length, t.knotsU.length) || !S.areValidRelations(t.degreeV, t.controlPoints[0].length, t.knotsV.length) || !S.areValidRelations(t.degreeW, t.controlPoints[0][0].length, t.knotsW.length)) throw new X("Invalid relations between control points and knot vector");
|
|
8518
|
-
for (var v = t.controlPoints, d = t.degreeU, m = t.degreeV, b = t.degreeW, w = t.knotsU,
|
|
8518
|
+
for (var v = t.controlPoints, d = t.degreeU, m = t.degreeV, b = t.degreeW, w = t.knotsU, P = t.knotsV, M = t.knotsW, z = v[0][0][0].length, N = S.knotSpanGivenN(n, d, o, w), k = S.knotSpanGivenN(r, m, h, P), L = S.knotSpanGivenN(s, b, c, M), B = S.basisFunctionsGivenKnotSpanIndex(N, o, d, w), T = S.basisFunctionsGivenKnotSpanIndex(k, h, m, P), R = S.basisFunctionsGivenKnotSpanIndex(L, c, b, M), F = N - d, W = u.zeros1d(z), D = u.zeros1d(z), V = u.zeros1d(z), G = 0, Q = b + 1; G < Q; ) {
|
|
8519
8519
|
var J = G++;
|
|
8520
8520
|
V = u.zeros1d(z);
|
|
8521
8521
|
for (var et = L - b + J, it = 0, nt = m + 1; it < nt; ) {
|
|
@@ -8537,13 +8537,13 @@ var ii = { exports: {} };
|
|
|
8537
8537
|
var h = u.zeros2d(r + 1, r + 1), c = u.zeros1d(r + 1), v = u.zeros1d(r + 1), d = 0, m = 0;
|
|
8538
8538
|
h[0][0] = 1;
|
|
8539
8539
|
for (var b = 1, w = r + 1; b < w; ) {
|
|
8540
|
-
var
|
|
8541
|
-
c[
|
|
8542
|
-
for (var
|
|
8543
|
-
var z =
|
|
8544
|
-
h[
|
|
8540
|
+
var P = b++;
|
|
8541
|
+
c[P] = n - o[t + 1 - P], v[P] = o[t + P] - n, d = 0;
|
|
8542
|
+
for (var M = 0; M < P; ) {
|
|
8543
|
+
var z = M++;
|
|
8544
|
+
h[P][z] = v[z + 1] + c[P - z], m = h[z][P - 1] / h[P][z], h[z][P] = d + v[z + 1] * m, d = c[P - z] * m;
|
|
8545
8545
|
}
|
|
8546
|
-
h[
|
|
8546
|
+
h[P][P] = d;
|
|
8547
8547
|
}
|
|
8548
8548
|
for (var N = u.zeros2d(s + 1, r + 1), k = u.zeros2d(2, r + 1), L = 0, B = 1, T = 0, R = 0, F = 0, W = 0, D = 0, V = 0, G = r + 1; V < G; ) {
|
|
8549
8549
|
var Q = V++;
|
|
@@ -8581,9 +8581,9 @@ var ii = { exports: {} };
|
|
|
8581
8581
|
for (var m = 1, b = r + 1; m < b; ) {
|
|
8582
8582
|
var w = m++;
|
|
8583
8583
|
h[w] = n - s[t + 1 - w], c[w] = s[t + w] - n, v = 0;
|
|
8584
|
-
for (var
|
|
8585
|
-
var
|
|
8586
|
-
d = o[
|
|
8584
|
+
for (var P = 0; P < w; ) {
|
|
8585
|
+
var M = P++;
|
|
8586
|
+
d = o[M] / (c[M + 1] + h[w - M]), o[M] = v + c[M + 1] * d, v = h[w - M] * d;
|
|
8587
8587
|
}
|
|
8588
8588
|
o[w] = v;
|
|
8589
8589
|
}
|
|
@@ -8627,8 +8627,8 @@ var ii = { exports: {} };
|
|
|
8627
8627
|
var m = d++, b = [];
|
|
8628
8628
|
c = t[m], h = v[m];
|
|
8629
8629
|
for (var w = 0; w < s; ) {
|
|
8630
|
-
var
|
|
8631
|
-
b.push(c[
|
|
8630
|
+
var P = w++;
|
|
8631
|
+
b.push(c[P] * h);
|
|
8632
8632
|
}
|
|
8633
8633
|
b.push(h), o.push(b);
|
|
8634
8634
|
}
|
|
@@ -8650,7 +8650,7 @@ var ii = { exports: {} };
|
|
|
8650
8650
|
var rt = f.eval.Intersect = function() {
|
|
8651
8651
|
};
|
|
8652
8652
|
y["verb.eval.Intersect"] = rt, rt.__name__ = ["verb", "eval", "Intersect"], rt.surfaces = function(t, n, r) {
|
|
8653
|
-
var s =
|
|
8653
|
+
var s = Mt.rationalSurfaceAdaptive(t), o = Mt.rationalSurfaceAdaptive(n), h = rt.meshes(s, o), c = h.map(function(v) {
|
|
8654
8654
|
return v.map(function(d) {
|
|
8655
8655
|
return rt.surfacesAtPointWithEstimate(t, n, d.uv0, d.uv1, r);
|
|
8656
8656
|
});
|
|
@@ -8661,15 +8661,15 @@ var ii = { exports: {} };
|
|
|
8661
8661
|
}), 3);
|
|
8662
8662
|
});
|
|
8663
8663
|
}, rt.surfacesAtPointWithEstimate = function(t, n, r, s, o) {
|
|
8664
|
-
var h, c, v, d, m, b, w,
|
|
8664
|
+
var h, c, v, d, m, b, w, P, M, z, N, k, L, B = 5, T = 0;
|
|
8665
8665
|
do {
|
|
8666
|
-
if (h = S.rationalSurfaceDerivatives(t, r[0], r[1], 1), c = h[0][0], d = h[1][0], m = h[0][1], v = u.normalized(u.cross(d, m)), b = u.dot(v, c), w = S.rationalSurfaceDerivatives(n, s[0], s[1], 1),
|
|
8667
|
-
var R = u.normalized(u.cross(v,
|
|
8666
|
+
if (h = S.rationalSurfaceDerivatives(t, r[0], r[1], 1), c = h[0][0], d = h[1][0], m = h[0][1], v = u.normalized(u.cross(d, m)), b = u.dot(v, c), w = S.rationalSurfaceDerivatives(n, s[0], s[1], 1), P = w[0][0], z = w[1][0], N = w[0][1], M = u.normalized(u.cross(z, N)), k = u.dot(M, P), L = u.distSquared(c, P), L < o * o) break;
|
|
8667
|
+
var R = u.normalized(u.cross(v, M)), F = u.dot(R, c), W = rt.threePlanes(v, b, M, k, R, F);
|
|
8668
8668
|
if (W == null) throw new X("panic!");
|
|
8669
|
-
var D = u.sub(W, c), V = u.sub(W,
|
|
8669
|
+
var D = u.sub(W, c), V = u.sub(W, P), G = u.cross(d, v), Q = u.cross(m, v), J = u.cross(z, M), et = u.cross(N, M), it = u.dot(Q, D) / u.dot(Q, d), nt = u.dot(G, D) / u.dot(G, m), st = u.dot(et, V) / u.dot(et, z), tt = u.dot(J, V) / u.dot(J, N);
|
|
8670
8670
|
r = u.add([it, nt], r), s = u.add([st, tt], s), T++;
|
|
8671
8671
|
} while (T < B);
|
|
8672
|
-
return new
|
|
8672
|
+
return new Mn(r, s, c, L);
|
|
8673
8673
|
}, rt.meshes = function(t, n, r, s) {
|
|
8674
8674
|
r == null && (r = new Ce(t)), s == null && (s = new Ce(n));
|
|
8675
8675
|
var o = rt.boundingBoxTrees(r, s, 0), h = K.unique(o.map(function(c) {
|
|
@@ -8679,15 +8679,15 @@ var ii = { exports: {} };
|
|
|
8679
8679
|
}).filter(function(c) {
|
|
8680
8680
|
return u.distSquared(c.min.point, c.max.point) > $.EPSILON;
|
|
8681
8681
|
}), function(c, v) {
|
|
8682
|
-
var d = u.sub(c.min.uv0, v.min.uv0), m = u.dot(d, d), b = u.sub(c.max.uv0, v.max.uv0), w = u.dot(b, b),
|
|
8683
|
-
return m < $.EPSILON && w < $.EPSILON ||
|
|
8682
|
+
var d = u.sub(c.min.uv0, v.min.uv0), m = u.dot(d, d), b = u.sub(c.max.uv0, v.max.uv0), w = u.dot(b, b), P = u.sub(c.min.uv0, v.max.uv0), M = u.dot(P, P), z = u.sub(c.max.uv0, v.min.uv0), N = u.dot(z, z);
|
|
8683
|
+
return m < $.EPSILON && w < $.EPSILON || M < $.EPSILON && N < $.EPSILON;
|
|
8684
8684
|
});
|
|
8685
8685
|
return rt.makeMeshIntersectionPolylines(h);
|
|
8686
8686
|
}, rt.meshSlices = function(t, n, r, s) {
|
|
8687
|
-
for (var o = new Fe(t), h = o.boundingBox(), c = h.min[0], v = h.min[1], d = h.max[0], m = h.max[1], b = u.span(n, r, s), w = [],
|
|
8688
|
-
var
|
|
8689
|
-
++
|
|
8690
|
-
var z = [[c, v,
|
|
8687
|
+
for (var o = new Fe(t), h = o.boundingBox(), c = h.min[0], v = h.min[1], d = h.max[0], m = h.max[1], b = u.span(n, r, s), w = [], P = 0; P < b.length; ) {
|
|
8688
|
+
var M = b[P];
|
|
8689
|
+
++P;
|
|
8690
|
+
var z = [[c, v, M], [d, v, M], [d, m, M], [c, m, M]], N = [[0, 0], [1, 0], [1, 1], [0, 1]], k = [[0, 1, 2], [0, 2, 3]], L = new fe(k, z, null, N);
|
|
8691
8691
|
w.push(rt.meshes(t, L, o));
|
|
8692
8692
|
}
|
|
8693
8693
|
return w;
|
|
@@ -8712,15 +8712,15 @@ var ii = { exports: {} };
|
|
|
8712
8712
|
return B.adj == null;
|
|
8713
8713
|
});
|
|
8714
8714
|
b.length == 0 && (b = o);
|
|
8715
|
-
for (var w = [],
|
|
8715
|
+
for (var w = [], P = 0, M = !1; b.length != 0; ) {
|
|
8716
8716
|
var z = b.pop();
|
|
8717
8717
|
if (!z.visited) {
|
|
8718
|
-
for (var N = [], k = z; k != null && !(k.visited || (k.visited = !0, k.opp.visited = !0, N.push(k),
|
|
8718
|
+
for (var N = [], k = z; k != null && !(k.visited || (k.visited = !0, k.opp.visited = !0, N.push(k), P += 2, k = k.opp.adj, k == z)); )
|
|
8719
8719
|
;
|
|
8720
8720
|
N.length > 0 && (N.push(N[N.length - 1].opp), w.push(N));
|
|
8721
8721
|
}
|
|
8722
|
-
if (b.length == 0 && o.length > 0 && (
|
|
8723
|
-
|
|
8722
|
+
if (b.length == 0 && o.length > 0 && (M || P < o.length)) {
|
|
8723
|
+
M = !0;
|
|
8724
8724
|
var L = o.pop();
|
|
8725
8725
|
b.push(L);
|
|
8726
8726
|
}
|
|
@@ -8743,7 +8743,7 @@ var ii = { exports: {} };
|
|
|
8743
8743
|
r == null && (r = 1e-3), s != null ? s = s : s = new Se(t), o != null ? o = o : o = new De(n);
|
|
8744
8744
|
var h = rt.boundingBoxTrees(s, o, r);
|
|
8745
8745
|
return K.unique(h.map(function(c) {
|
|
8746
|
-
var v = c.item0, d = c.item1, m = K.first(v.knots), b = K.last(v.knots), w = (m + b) / 2,
|
|
8746
|
+
var v = c.item0, d = c.item1, m = K.first(v.knots), b = K.last(v.knots), w = (m + b) / 2, P = K.first(d.knotsU), M = K.last(d.knotsU), z = K.first(d.knotsV), N = K.last(d.knotsV), k = [(P + M) / 2, (z + N) / 2];
|
|
8747
8747
|
return rt.curveAndSurfaceWithEstimate(v, d, [w].concat(k), r);
|
|
8748
8748
|
}).filter(function(c) {
|
|
8749
8749
|
return u.distSquared(c.curvePoint, c.surfacePoint) < r * r;
|
|
@@ -8756,8 +8756,8 @@ var ii = { exports: {} };
|
|
|
8756
8756
|
var m = S.rationalCurvePoint(t, d[0]), b = S.rationalSurfacePoint(n, d[1], d[2]), w = u.sub(m, b);
|
|
8757
8757
|
return u.dot(w, w);
|
|
8758
8758
|
}, h = function(d) {
|
|
8759
|
-
var m = S.rationalCurveDerivatives(t, d[0], 1), b = S.rationalSurfaceDerivatives(n, d[1], d[2], 1), w = u.sub(b[0][0], m[0]),
|
|
8760
|
-
return [2 * u.dot(
|
|
8759
|
+
var m = S.rationalCurveDerivatives(t, d[0], 1), b = S.rationalSurfaceDerivatives(n, d[1], d[2], 1), w = u.sub(b[0][0], m[0]), P = u.mul(-1, m[1]), M = b[1][0], z = b[0][1];
|
|
8760
|
+
return [2 * u.dot(P, w), 2 * u.dot(M, w), 2 * u.dot(z, w)];
|
|
8761
8761
|
}, c = me.uncmin(o, r, s * s, h), v = c.solution;
|
|
8762
8762
|
return new xn(v[0], [v[1], v[2]], S.rationalCurvePoint(t, v[0]), S.rationalSurfacePoint(n, v[1], v[2]));
|
|
8763
8763
|
}, rt.polylineAndMesh = function(t, n, r) {
|
|
@@ -8766,8 +8766,8 @@ var ii = { exports: {} };
|
|
|
8766
8766
|
++h;
|
|
8767
8767
|
var v = c.item0, d = c.item1, m = rt.segmentWithTriangle(t.points[v], t.points[v + 1], n.points, n.faces[d]);
|
|
8768
8768
|
if (m != null) {
|
|
8769
|
-
var b = m.point, w = u.lerp(m.p, [t.params[v]], [t.params[v + 1]])[0],
|
|
8770
|
-
o.push(new
|
|
8769
|
+
var b = m.point, w = u.lerp(m.p, [t.params[v]], [t.params[v + 1]])[0], P = Gt.triangleUVFromPoint(n, d, b);
|
|
8770
|
+
o.push(new Pn(b, w, P, v, d));
|
|
8771
8771
|
}
|
|
8772
8772
|
}
|
|
8773
8773
|
return o;
|
|
@@ -8791,8 +8791,8 @@ var ii = { exports: {} };
|
|
|
8791
8791
|
s.push(w.item1), o.push(v), s.push(w.item0), o.push(v);
|
|
8792
8792
|
continue;
|
|
8793
8793
|
}
|
|
8794
|
-
var
|
|
8795
|
-
s.push(
|
|
8794
|
+
var P = c.split(), M = v.split();
|
|
8795
|
+
s.push(P.item1), o.push(M.item1), s.push(P.item1), o.push(M.item0), s.push(P.item0), o.push(M.item1), s.push(P.item0), o.push(M.item0);
|
|
8796
8796
|
}
|
|
8797
8797
|
}
|
|
8798
8798
|
return h;
|
|
@@ -8806,11 +8806,11 @@ var ii = { exports: {} };
|
|
|
8806
8806
|
return Math.abs(o.u0 - h.u0) < r * 5;
|
|
8807
8807
|
});
|
|
8808
8808
|
}, rt.curvesWithEstimate = function(t, n, r, s, o) {
|
|
8809
|
-
var h = function(
|
|
8810
|
-
var
|
|
8809
|
+
var h = function(P) {
|
|
8810
|
+
var M = S.rationalCurvePoint(t, P[0]), z = S.rationalCurvePoint(n, P[1]), N = u.sub(M, z);
|
|
8811
8811
|
return u.dot(N, N);
|
|
8812
|
-
}, c = function(
|
|
8813
|
-
var
|
|
8812
|
+
}, c = function(P) {
|
|
8813
|
+
var M = S.rationalCurveDerivatives(t, P[0], 1), z = S.rationalCurveDerivatives(n, P[1], 1), N = u.sub(M[0], z[0]), k = M[1], L = u.mul(-1, z[1]);
|
|
8814
8814
|
return [2 * u.dot(k, N), 2 * u.dot(L, N)];
|
|
8815
8815
|
}, v = me.uncmin(h, [r, s], o * o, c), d = v.solution[0], m = v.solution[1], b = S.rationalCurvePoint(t, d), w = S.rationalCurvePoint(n, m);
|
|
8816
8816
|
return new Ye(b, w, d, m);
|
|
@@ -8819,16 +8819,16 @@ var ii = { exports: {} };
|
|
|
8819
8819
|
if (b == null) return null;
|
|
8820
8820
|
var w = rt.clipRayInCoplanarTriangle(b, t, n);
|
|
8821
8821
|
if (w == null) return null;
|
|
8822
|
-
var
|
|
8823
|
-
if (
|
|
8824
|
-
var
|
|
8825
|
-
return
|
|
8822
|
+
var P = rt.clipRayInCoplanarTriangle(b, r, s);
|
|
8823
|
+
if (P == null) return null;
|
|
8824
|
+
var M = rt.mergeTriangleClipIntervals(w, P, t, n, r, s);
|
|
8825
|
+
return M == null ? null : new ee(new Ve(M.min.uv0, M.min.uv1, M.min.point, n, s), new Ve(M.max.uv0, M.max.uv1, M.max.point, n, s));
|
|
8826
8826
|
}, rt.clipRayInCoplanarTriangle = function(t, n, r) {
|
|
8827
|
-
for (var s = n.faces[r], o = [n.points[s[0]], n.points[s[1]], n.points[s[2]]], h = [n.uvs[s[0]], n.uvs[s[1]], n.uvs[s[2]]], c = [u.sub(h[1], h[0]), u.sub(h[2], h[1]), u.sub(h[0], h[2])], v = [u.sub(o[1], o[0]), u.sub(o[2], o[1]), u.sub(o[0], o[2])], d = v.map(u.normalized), m = v.map(u.norm), b = null, w = null,
|
|
8828
|
-
var
|
|
8827
|
+
for (var s = n.faces[r], o = [n.points[s[0]], n.points[s[1]], n.points[s[2]]], h = [n.uvs[s[0]], n.uvs[s[1]], n.uvs[s[2]]], c = [u.sub(h[1], h[0]), u.sub(h[2], h[1]), u.sub(h[0], h[2])], v = [u.sub(o[1], o[0]), u.sub(o[2], o[1]), u.sub(o[0], o[2])], d = v.map(u.normalized), m = v.map(u.norm), b = null, w = null, P = 0; P < 3; ) {
|
|
8828
|
+
var M = P++, z = o[M], N = d[M], k = rt.rays(z, N, t.origin, t.dir);
|
|
8829
8829
|
if (k != null) {
|
|
8830
8830
|
var L = k.u0, B = k.u1;
|
|
8831
|
-
L < -$.EPSILON || L > m[
|
|
8831
|
+
L < -$.EPSILON || L > m[M] + $.EPSILON || ((b == null || B < b.u) && (b = new sn(B, u.onRay(t.origin, t.dir, B), u.onRay(h[M], c[M], L / m[M]))), (w == null || B > w.u) && (w = new sn(B, u.onRay(t.origin, t.dir, B), u.onRay(h[M], c[M], L / m[M]))));
|
|
8832
8832
|
}
|
|
8833
8833
|
}
|
|
8834
8834
|
return w == null || b == null ? null : new ee(b, w);
|
|
@@ -8845,9 +8845,9 @@ var ii = { exports: {} };
|
|
|
8845
8845
|
if (u.dot(o, o) < $.EPSILON) return null;
|
|
8846
8846
|
var h = 0, c = Math.abs(o[0]), v = Math.abs(o[1]), d = Math.abs(o[2]);
|
|
8847
8847
|
v > c && (h = 1, c = v), d > c && (h = 2, c = d);
|
|
8848
|
-
var m, b, w,
|
|
8849
|
-
h == 0 ? (m = n[1], b = n[2], w = s[1],
|
|
8850
|
-
var
|
|
8848
|
+
var m, b, w, P;
|
|
8849
|
+
h == 0 ? (m = n[1], b = n[2], w = s[1], P = s[2]) : h == 1 ? (m = n[0], b = n[2], w = s[0], P = s[2]) : (m = n[0], b = n[1], w = s[0], P = s[1]);
|
|
8850
|
+
var M = -u.dot(t, n), z = -u.dot(r, s), N = m * P - b * w, k = (b * z - M * P) / N, L = (M * w - m * z) / N, B;
|
|
8851
8851
|
return h == 0 ? B = [0, k, L] : h == 1 ? B = [k, 0, L] : B = [k, L, 0], new rn(B, u.normalized(o));
|
|
8852
8852
|
}, rt.threePlanes = function(t, n, r, s, o, h) {
|
|
8853
8853
|
var c = u.cross(r, o), v = u.dot(t, c);
|
|
@@ -8865,19 +8865,19 @@ var ii = { exports: {} };
|
|
|
8865
8865
|
}, rt.segments = function(t, n, r, s, o) {
|
|
8866
8866
|
var h = u.sub(n, t), c = Math.sqrt(u.dot(h, h)), v = u.mul(1 / c, h), d = u.sub(s, r), m = Math.sqrt(u.dot(d, d)), b = u.mul(1 / m, d), w = rt.rays(t, v, r, b);
|
|
8867
8867
|
if (w != null) {
|
|
8868
|
-
var
|
|
8869
|
-
if (k < o * o) return new Ye(z, N,
|
|
8868
|
+
var P = Math.min(Math.max(0, w.u0 / c), 1), M = Math.min(Math.max(0, w.u1 / m), 1), z = u.onRay(t, h, P), N = u.onRay(r, d, M), k = u.distSquared(z, N);
|
|
8869
|
+
if (k < o * o) return new Ye(z, N, P, M);
|
|
8870
8870
|
}
|
|
8871
8871
|
return null;
|
|
8872
8872
|
}, rt.rays = function(t, n, r, s) {
|
|
8873
8873
|
var o = u.dot(n, s), h = u.dot(n, r), c = u.dot(n, t), v = u.dot(s, r), d = u.dot(s, t), m = u.dot(n, n), b = u.dot(s, s), w = m * b - o * o;
|
|
8874
8874
|
if (Math.abs(w) < $.EPSILON) return null;
|
|
8875
|
-
var
|
|
8876
|
-
return new Ye(N, k, z,
|
|
8875
|
+
var P = o * (h - c) - m * (v - d), M = P / w, z = (h - c + M * o) / m, N = u.onRay(t, n, z), k = u.onRay(r, s, M);
|
|
8876
|
+
return new Ye(N, k, z, M);
|
|
8877
8877
|
}, rt.segmentWithTriangle = function(t, n, r, s) {
|
|
8878
|
-
var o = r[s[0]], h = r[s[1]], c = r[s[2]], v = u.sub(h, o), d = u.sub(c, o), m = u.cross(v, d), b = u.sub(n, t), w = u.sub(t, o),
|
|
8879
|
-
if (Math.abs(
|
|
8880
|
-
var z =
|
|
8878
|
+
var o = r[s[0]], h = r[s[1]], c = r[s[2]], v = u.sub(h, o), d = u.sub(c, o), m = u.cross(v, d), b = u.sub(n, t), w = u.sub(t, o), P = -u.dot(m, w), M = u.dot(m, b);
|
|
8879
|
+
if (Math.abs(M) < $.EPSILON) return null;
|
|
8880
|
+
var z = P / M;
|
|
8881
8881
|
if (z < 0 || z > 1) return null;
|
|
8882
8882
|
var N = u.add(t, u.mul(z, b)), k = u.dot(v, d), L = u.dot(v, v), B = u.dot(d, d), T = u.sub(N, o), R = u.dot(T, v), F = u.dot(T, d), W = k * k - L * B;
|
|
8883
8883
|
if (Math.abs(W) < $.EPSILON) return null;
|
|
@@ -8917,22 +8917,22 @@ var ii = { exports: {} };
|
|
|
8917
8917
|
c >= 0 && (b = b - h[c].mult);
|
|
8918
8918
|
var w;
|
|
8919
8919
|
b > 0 ? w = ct.surfaceKnotRefine(t, u.rep(b, n), r) : w = t;
|
|
8920
|
-
var
|
|
8921
|
-
return Math.abs(n - K.first(s)) < $.EPSILON ?
|
|
8920
|
+
var P = S.knotSpan(o, n, s);
|
|
8921
|
+
return Math.abs(n - K.first(s)) < $.EPSILON ? P = 0 : Math.abs(n - K.last(s)) < $.EPSILON && (P = (r ? w.controlPoints[0].length : w.controlPoints.length) - 1), r ? new kt(w.degreeU, w.knotsU, function(M) {
|
|
8922
8922
|
for (var z, N = [], k = 0, L = w.controlPoints; k < L.length; ) {
|
|
8923
8923
|
var B = L[k];
|
|
8924
|
-
++k, N.push(B[
|
|
8924
|
+
++k, N.push(B[P]);
|
|
8925
8925
|
}
|
|
8926
8926
|
return z = N, z;
|
|
8927
|
-
}()) : new kt(w.degreeV, w.knotsV, w.controlPoints[
|
|
8927
|
+
}()) : new kt(w.degreeV, w.knotsV, w.controlPoints[P]);
|
|
8928
8928
|
}, ot.loftedSurface = function(t, n) {
|
|
8929
8929
|
t = ct.unifyCurveKnotVectors(t);
|
|
8930
8930
|
var r = t[0].degree;
|
|
8931
8931
|
n == null && (n = 3), n > t.length - 1 && (n = t.length - 1);
|
|
8932
8932
|
for (var s = t[0].knots, o = [], h = [], c = 0, v = t[0].controlPoints.length; c < v; ) {
|
|
8933
8933
|
var d = [c++], m = t.map(/* @__PURE__ */ function(w) {
|
|
8934
|
-
return function(
|
|
8935
|
-
return
|
|
8934
|
+
return function(P) {
|
|
8935
|
+
return P.controlPoints[w[0]];
|
|
8936
8936
|
};
|
|
8937
8937
|
}(d)), b = ot.rationalInterpCurve(m, n, !0);
|
|
8938
8938
|
h.push(b.controlPoints), o = b.knots;
|
|
@@ -8951,8 +8951,8 @@ var ii = { exports: {} };
|
|
|
8951
8951
|
}, ot.fourPointSurface = function(t, n, r, s, o) {
|
|
8952
8952
|
o == null && (o = 3);
|
|
8953
8953
|
for (var h = o, c = [], v = 0, d = o + 1; v < d; ) {
|
|
8954
|
-
for (var m = v++, b = [], w = 0,
|
|
8955
|
-
var
|
|
8954
|
+
for (var m = v++, b = [], w = 0, P = o + 1; w < P; ) {
|
|
8955
|
+
var M = w++, z = 1 - m / h, N = u.lerp(z, t, n), k = u.lerp(z, s, r), L = u.lerp(1 - M / h, N, k);
|
|
8956
8956
|
L.push(1), b.push(L);
|
|
8957
8957
|
}
|
|
8958
8958
|
c.push(b);
|
|
@@ -8964,15 +8964,15 @@ var ii = { exports: {} };
|
|
|
8964
8964
|
n = u.normalized(n), r = u.normalized(r), o < s && (o = 2 * Math.PI + s);
|
|
8965
8965
|
var v = o - s, d = 0;
|
|
8966
8966
|
v <= Math.PI / 2 ? d = 1 : v <= Math.PI ? d = 2 : v <= 3 * Math.PI / 2 ? d = 3 : d = 4;
|
|
8967
|
-
var m = v / d, b = Math.cos(m / 2), w = u.add(t, u.add(u.mul(h * Math.cos(s), n), u.mul(c * Math.sin(s), r))),
|
|
8968
|
-
|
|
8967
|
+
var m = v / d, b = Math.cos(m / 2), w = u.add(t, u.add(u.mul(h * Math.cos(s), n), u.mul(c * Math.sin(s), r))), P = u.sub(u.mul(Math.cos(s), r), u.mul(Math.sin(s), n)), M = [], z = u.zeros1d(2 * d + 3), N = 0, k = s, L = u.zeros1d(d * 2);
|
|
8968
|
+
M[0] = w, L[0] = 1;
|
|
8969
8969
|
for (var B = 1, T = d + 1; B < T; ) {
|
|
8970
8970
|
var R = B++;
|
|
8971
8971
|
k += m;
|
|
8972
8972
|
var F = u.add(t, u.add(u.mul(h * Math.cos(k), n), u.mul(c * Math.sin(k), r)));
|
|
8973
|
-
L[N + 2] = 1,
|
|
8974
|
-
var W = u.sub(u.mul(Math.cos(k), r), u.mul(Math.sin(k), n)), D = rt.rays(w, u.mul(1 / u.norm(
|
|
8975
|
-
L[N + 1] = b,
|
|
8973
|
+
L[N + 2] = 1, M[N + 2] = F;
|
|
8974
|
+
var W = u.sub(u.mul(Math.cos(k), r), u.mul(Math.sin(k), n)), D = rt.rays(w, u.mul(1 / u.norm(P), P), F, u.mul(1 / u.norm(W), W)), V = u.add(w, u.mul(D.u0, P));
|
|
8975
|
+
L[N + 1] = b, M[N + 1] = V, N += 2, R < d && (w = F, P = W);
|
|
8976
8976
|
}
|
|
8977
8977
|
for (var G = 2 * d + 1, Q = 0; Q < 3; ) {
|
|
8978
8978
|
var J = Q++;
|
|
@@ -8989,7 +8989,7 @@ var ii = { exports: {} };
|
|
|
8989
8989
|
z[3] = z[4] = 0.25, z[5] = z[6] = 0.5, z[7] = z[8] = 0.75;
|
|
8990
8990
|
break;
|
|
8991
8991
|
}
|
|
8992
|
-
return new kt(2, z, S.homogenize1d(
|
|
8992
|
+
return new kt(2, z, S.homogenize1d(M, L));
|
|
8993
8993
|
}, ot.arc = function(t, n, r, s, o, h) {
|
|
8994
8994
|
return ot.ellipseArc(t, u.mul(s, u.normalized(n)), u.mul(s, u.normalized(r)), o, h);
|
|
8995
8995
|
}, ot.polyline = function(t) {
|
|
@@ -9017,9 +9017,9 @@ var ii = { exports: {} };
|
|
|
9017
9017
|
var w = b++;
|
|
9018
9018
|
v[w] = 0, v[m + w] = 1;
|
|
9019
9019
|
}
|
|
9020
|
-
for (var
|
|
9020
|
+
for (var P = Math.cos(d / 2), M = 0, z = u.zeros1d(c + 1), N = u.zeros1d(c + 1), k = u.zeros3d(2 * c + 1, o.length, 3), L = u.zeros2d(2 * c + 1, o.length), B = 1, T = c + 1; B < T; ) {
|
|
9021
9021
|
var R = B++;
|
|
9022
|
-
|
|
9022
|
+
M += d, N[R] = Math.cos(M), z[R] = Math.sin(M);
|
|
9023
9023
|
}
|
|
9024
9024
|
for (var F = 0, W = o.length; F < W; ) {
|
|
9025
9025
|
var D = F++, V = he.rayClosestPoint(o[D], n, r), G = u.sub(o[D], V), Q = u.norm(G), J = u.cross(r, G);
|
|
@@ -9035,7 +9035,7 @@ var ii = { exports: {} };
|
|
|
9035
9035
|
var mt = rt.rays(et, u.mul(1 / u.norm(it), it), O, u.mul(1 / u.norm(lt), lt)), It = u.add(et, u.mul(mt.u0, it));
|
|
9036
9036
|
k[nt + 1][D] = It;
|
|
9037
9037
|
}
|
|
9038
|
-
L[nt + 1][D] =
|
|
9038
|
+
L[nt + 1][D] = P * h[D], nt += 2, at < c && (et = O, it = lt);
|
|
9039
9039
|
}
|
|
9040
9040
|
}
|
|
9041
9041
|
return new Ot(2, t.degree, v, t.knots, S.homogenize2d(k, L));
|
|
@@ -9051,8 +9051,8 @@ var ii = { exports: {} };
|
|
|
9051
9051
|
var d = c++, m = u.norm(u.sub(t[d], t[d - 1])), b = h[h.length - 1];
|
|
9052
9052
|
h.push(b + m);
|
|
9053
9053
|
}
|
|
9054
|
-
for (var w = h[h.length - 1],
|
|
9055
|
-
var z =
|
|
9054
|
+
for (var w = h[h.length - 1], P = 0, M = h.length; P < M; ) {
|
|
9055
|
+
var z = P++;
|
|
9056
9056
|
h[z] = h[z] / w;
|
|
9057
9057
|
}
|
|
9058
9058
|
var N = u.rep(n + 1, 0), k = s != null && o != null, L;
|
|
@@ -9139,19 +9139,19 @@ var ii = { exports: {} };
|
|
|
9139
9139
|
}
|
|
9140
9140
|
h = c;
|
|
9141
9141
|
for (var m = 0, b = t.length; m < b; ) {
|
|
9142
|
-
var w = m++,
|
|
9142
|
+
var w = m++, P = [h[w].min];
|
|
9143
9143
|
t[w].knots = t[w].knots.map(/* @__PURE__ */ function(V) {
|
|
9144
9144
|
return function(G) {
|
|
9145
9145
|
return G - V[0];
|
|
9146
9146
|
};
|
|
9147
|
-
}(
|
|
9147
|
+
}(P));
|
|
9148
9148
|
}
|
|
9149
|
-
for (var
|
|
9149
|
+
for (var M = h.map(function(V) {
|
|
9150
9150
|
return V.max - V.min;
|
|
9151
|
-
}), z = q.fold(
|
|
9151
|
+
}), z = q.fold(M, function(V, G) {
|
|
9152
9152
|
return Math.max(V, G);
|
|
9153
9153
|
}, 0), N = 0, k = t.length; N < k; ) {
|
|
9154
|
-
var L = N++, B = [z /
|
|
9154
|
+
var L = N++, B = [z / M[L]];
|
|
9155
9155
|
t[L].knots = t[L].knots.map(/* @__PURE__ */ function(V) {
|
|
9156
9156
|
return function(G) {
|
|
9157
9157
|
return G * V[0];
|
|
@@ -9171,21 +9171,21 @@ var ii = { exports: {} };
|
|
|
9171
9171
|
return t > n ? t : n;
|
|
9172
9172
|
}, ct.curveElevateDegree = function(t, n) {
|
|
9173
9173
|
if (n <= t.degree) return t;
|
|
9174
|
-
var r = t.knots.length - t.degree - 2, s = t.degree, o = t.knots, h = t.controlPoints, c = n - t.degree, v = t.controlPoints[0].length, d = u.zeros2d(s + c + 1, s + 1), m = [], b = [], w = [],
|
|
9175
|
-
d[0][0] = 1, d[
|
|
9174
|
+
var r = t.knots.length - t.degree - 2, s = t.degree, o = t.knots, h = t.controlPoints, c = n - t.degree, v = t.controlPoints[0].length, d = u.zeros2d(s + c + 1, s + 1), m = [], b = [], w = [], P = r + s + 1, M = n, z = Math.floor(M / 2), N = [], k = [];
|
|
9175
|
+
d[0][0] = 1, d[M][s] = 1;
|
|
9176
9176
|
for (var L = 1, B = z + 1; L < B; )
|
|
9177
|
-
for (var T = L++, R = 1 / At.get(
|
|
9177
|
+
for (var T = L++, R = 1 / At.get(M, T), F = ct.imin(s, T), W = ct.imax(0, T - c), D = F + 1; W < D; ) {
|
|
9178
9178
|
var V = W++;
|
|
9179
9179
|
d[T][V] = R * At.get(s, V) * At.get(c, T - V);
|
|
9180
9180
|
}
|
|
9181
|
-
for (var G = z + 1; G <
|
|
9181
|
+
for (var G = z + 1; G < M; )
|
|
9182
9182
|
for (var Q = G++, J = ct.imin(s, Q), et = ct.imax(0, Q - c), it = J + 1; et < it; ) {
|
|
9183
9183
|
var nt = et++;
|
|
9184
|
-
d[Q][nt] = d[
|
|
9184
|
+
d[Q][nt] = d[M - Q][s - nt];
|
|
9185
9185
|
}
|
|
9186
|
-
var st =
|
|
9186
|
+
var st = M + 1, tt = -1, at = s, O = s + 1, lt = 1, mt = o[0];
|
|
9187
9187
|
N[0] = h[0];
|
|
9188
|
-
for (var It = 0, Et =
|
|
9188
|
+
for (var It = 0, Et = M + 1; It < Et; ) {
|
|
9189
9189
|
var zt = It++;
|
|
9190
9190
|
k[zt] = mt;
|
|
9191
9191
|
}
|
|
@@ -9193,14 +9193,14 @@ var ii = { exports: {} };
|
|
|
9193
9193
|
var de = Bt++;
|
|
9194
9194
|
m[de] = h[de];
|
|
9195
9195
|
}
|
|
9196
|
-
for (; O <
|
|
9197
|
-
for (var te = O; O <
|
|
9196
|
+
for (; O < P; ) {
|
|
9197
|
+
for (var te = O; O < P && o[O] == o[O + 1]; ) O = O + 1;
|
|
9198
9198
|
var Jt = O - te + 1, re = o[O], ue = tt;
|
|
9199
9199
|
tt = s - Jt;
|
|
9200
9200
|
var pe;
|
|
9201
9201
|
ue > 0 ? pe = Math.floor((ue + 2) / 2) : pe = 1;
|
|
9202
9202
|
var Ie;
|
|
9203
|
-
if (tt > 0 ? Ie = Math.floor(
|
|
9203
|
+
if (tt > 0 ? Ie = Math.floor(M - (tt + 1) / 2) : Ie = M, tt > 0) {
|
|
9204
9204
|
for (var ye = re - mt, we = [], be = s; be > Jt; )
|
|
9205
9205
|
we[be - Jt - 1] = ye / (o[at + be] - mt), be--;
|
|
9206
9206
|
for (var Be = 1, _n = tt + 1; Be < _n; ) {
|
|
@@ -9209,8 +9209,8 @@ var ii = { exports: {} };
|
|
|
9209
9209
|
w[li] = m[s];
|
|
9210
9210
|
}
|
|
9211
9211
|
}
|
|
9212
|
-
for (var
|
|
9213
|
-
var dn =
|
|
9212
|
+
for (var Mr = pe, ui = M + 1; Mr < ui; ) {
|
|
9213
|
+
var dn = Mr++;
|
|
9214
9214
|
b[dn] = u.zeros1d(v);
|
|
9215
9215
|
for (var ci = ct.imin(s, dn), Ar = ct.imax(0, dn - c), vi = ci + 1; Ar < vi; ) {
|
|
9216
9216
|
var zr = Ar++;
|
|
@@ -9225,7 +9225,7 @@ var ii = { exports: {} };
|
|
|
9225
9225
|
N[Le] = u.lerp(di, N[Le], N[Le - 1]);
|
|
9226
9226
|
}
|
|
9227
9227
|
if ($e >= pe) {
|
|
9228
|
-
if ($e - _r <= st -
|
|
9228
|
+
if ($e - _r <= st - M + ue) {
|
|
9229
9229
|
var fi = (re - k[$e - _r]) / Sr;
|
|
9230
9230
|
b[Xe] = u.lerp(fi, b[Xe], b[Xe + 1]);
|
|
9231
9231
|
}
|
|
@@ -9235,13 +9235,13 @@ var ii = { exports: {} };
|
|
|
9235
9235
|
cr = cr - 1, vr = vr + 1;
|
|
9236
9236
|
}
|
|
9237
9237
|
if (at != s)
|
|
9238
|
-
for (var kr = 0, mi =
|
|
9238
|
+
for (var kr = 0, mi = M - ue; kr < mi; )
|
|
9239
9239
|
kr++, k[st] = mt, st = st + 1;
|
|
9240
9240
|
for (var Ir = pe, gi = Ie + 1; Ir < gi; ) {
|
|
9241
9241
|
var pi = Ir++;
|
|
9242
9242
|
N[lt] = b[pi], lt = lt + 1;
|
|
9243
9243
|
}
|
|
9244
|
-
if (O <
|
|
9244
|
+
if (O < P) {
|
|
9245
9245
|
for (var Nr = 0; Nr < tt; ) {
|
|
9246
9246
|
var Er = Nr++;
|
|
9247
9247
|
m[Er] = w[Er];
|
|
@@ -9252,7 +9252,7 @@ var ii = { exports: {} };
|
|
|
9252
9252
|
}
|
|
9253
9253
|
at = O, O = O + 1, mt = re;
|
|
9254
9254
|
} else
|
|
9255
|
-
for (var Tr = 0, wi =
|
|
9255
|
+
for (var Tr = 0, wi = M + 1; Tr < wi; ) {
|
|
9256
9256
|
var bi = Tr++;
|
|
9257
9257
|
k[st + bi] = re;
|
|
9258
9258
|
}
|
|
@@ -9289,15 +9289,15 @@ var ii = { exports: {} };
|
|
|
9289
9289
|
}
|
|
9290
9290
|
}
|
|
9291
9291
|
s.length / h - 1;
|
|
9292
|
-
for (var b = h * 2, w = [],
|
|
9293
|
-
var
|
|
9294
|
-
w.push(new kt(n,
|
|
9292
|
+
for (var b = h * 2, w = [], P = 0; P < r.length; ) {
|
|
9293
|
+
var M = s.slice(P, P + b), z = r.slice(P, P + h);
|
|
9294
|
+
w.push(new kt(n, M, z)), P += h;
|
|
9295
9295
|
}
|
|
9296
9296
|
return w;
|
|
9297
9297
|
}, ct.curveKnotRefine = function(t, n) {
|
|
9298
9298
|
if (n.length == 0) return ot.clonedCurve(t);
|
|
9299
|
-
for (var r = t.degree, s = t.controlPoints, o = t.knots, h = s.length - 1, c = h + r + 1, v = n.length - 1, d = S.knotSpan(r, n[0], o), m = S.knotSpan(r, n[v], o), b = [], w = [],
|
|
9300
|
-
var z =
|
|
9299
|
+
for (var r = t.degree, s = t.controlPoints, o = t.knots, h = s.length - 1, c = h + r + 1, v = n.length - 1, d = S.knotSpan(r, n[0], o), m = S.knotSpan(r, n[v], o), b = [], w = [], P = 0, M = d - r + 1; P < M; ) {
|
|
9300
|
+
var z = P++;
|
|
9301
9301
|
b[z] = s[z];
|
|
9302
9302
|
}
|
|
9303
9303
|
for (var N = m - 1, k = h + 1; N < k; ) {
|
|
@@ -9324,8 +9324,8 @@ var ii = { exports: {} };
|
|
|
9324
9324
|
}
|
|
9325
9325
|
return new kt(r, w, b);
|
|
9326
9326
|
}, ct.curveKnotInsert = function(t, n, r) {
|
|
9327
|
-
for (var s = t.degree, o = t.controlPoints, h = t.knots, c = 0, v = o.length, d = S.knotSpan(s, n, h), m = [], b = [], w = [],
|
|
9328
|
-
var z =
|
|
9327
|
+
for (var s = t.degree, o = t.controlPoints, h = t.knots, c = 0, v = o.length, d = S.knotSpan(s, n, h), m = [], b = [], w = [], P = 1, M = d + 1; P < M; ) {
|
|
9328
|
+
var z = P++;
|
|
9329
9329
|
b[z] = h[z];
|
|
9330
9330
|
}
|
|
9331
9331
|
for (var N = 1, k = r + 1; N < k; ) {
|
|
@@ -9363,18 +9363,18 @@ var ii = { exports: {} };
|
|
|
9363
9363
|
}
|
|
9364
9364
|
return new kt(s, b, w);
|
|
9365
9365
|
};
|
|
9366
|
-
var
|
|
9366
|
+
var Mt = f.eval.Tess = function() {
|
|
9367
9367
|
};
|
|
9368
|
-
y["verb.eval.Tess"] =
|
|
9369
|
-
return
|
|
9370
|
-
},
|
|
9368
|
+
y["verb.eval.Tess"] = Mt, Mt.__name__ = ["verb", "eval", "Tess"], Mt.rationalCurveRegularSample = function(t, n, r) {
|
|
9369
|
+
return Mt.rationalCurveRegularSampleRange(t, t.knots[0], K.last(t.knots), n, r);
|
|
9370
|
+
}, Mt.rationalCurveRegularSampleRange = function(t, n, r, s, o) {
|
|
9371
9371
|
s < 1 && (s = 2);
|
|
9372
9372
|
for (var h = [], c = (r - n) / (s - 1), v = 0, d = 0; d < s; ) {
|
|
9373
9373
|
var m = d++;
|
|
9374
9374
|
v = n + c * m, o ? h.push([v].concat(S.rationalCurvePoint(t, v))) : h.push(S.rationalCurvePoint(t, v));
|
|
9375
9375
|
}
|
|
9376
9376
|
return h;
|
|
9377
|
-
},
|
|
9377
|
+
}, Mt.rationalCurveAdaptiveSample = function(t, n, r) {
|
|
9378
9378
|
if (r == null && (r = !1), n == null && (n = 1e-6), t.degree == 1)
|
|
9379
9379
|
if (r) {
|
|
9380
9380
|
for (var s = [], o = 0, h = t.controlPoints.length; o < h; ) {
|
|
@@ -9384,17 +9384,17 @@ var ii = { exports: {} };
|
|
|
9384
9384
|
return s;
|
|
9385
9385
|
} else
|
|
9386
9386
|
return t.controlPoints.map(S.dehomogenize);
|
|
9387
|
-
return
|
|
9388
|
-
},
|
|
9387
|
+
return Mt.rationalCurveAdaptiveSampleRange(t, t.knots[0], K.last(t.knots), n, r);
|
|
9388
|
+
}, Mt.rationalCurveAdaptiveSampleRange = function(t, n, r, s, o) {
|
|
9389
9389
|
var h = S.rationalCurvePoint(t, n), c = S.rationalCurvePoint(t, r), v = 0.5 + 0.2 * Math.random(), d = n + (r - n) * v, m = S.rationalCurvePoint(t, d), b = u.sub(h, c), w = u.sub(h, m);
|
|
9390
9390
|
if (u.dot(b, b) < s && u.dot(w, w) > s || !he.threePointsAreFlat(h, m, c, s)) {
|
|
9391
|
-
var
|
|
9392
|
-
return
|
|
9391
|
+
var P = n + (r - n) * 0.5, M = Mt.rationalCurveAdaptiveSampleRange(t, n, P, s, o), z = Mt.rationalCurveAdaptiveSampleRange(t, P, r, s, o);
|
|
9392
|
+
return M.slice(0, -1).concat(z);
|
|
9393
9393
|
} else return o ? [[n].concat(h), [r].concat(c)] : [h, c];
|
|
9394
|
-
},
|
|
9394
|
+
}, Mt.rationalSurfaceNaive = function(t, n, r) {
|
|
9395
9395
|
n < 1 && (n = 1), r < 1 && (r = 1), t.degreeU, t.degreeV, t.controlPoints;
|
|
9396
|
-
for (var s = t.knotsU, o = t.knotsV, h = K.last(s) - s[0], c = K.last(o) - o[0], v = h / n, d = c / r, m = [], b = [], w = [],
|
|
9397
|
-
for (var z =
|
|
9396
|
+
for (var s = t.knotsU, o = t.knotsV, h = K.last(s) - s[0], c = K.last(o) - o[0], v = h / n, d = c / r, m = [], b = [], w = [], P = 0, M = n + 1; P < M; )
|
|
9397
|
+
for (var z = P++, N = 0, k = r + 1; N < k; ) {
|
|
9398
9398
|
var L = N++, B = z * v, T = L * d;
|
|
9399
9399
|
b.push([B, T]);
|
|
9400
9400
|
var R = S.rationalSurfaceDerivatives(t, B, T, 1), F = R[0][0];
|
|
@@ -9408,49 +9408,49 @@ var ii = { exports: {} };
|
|
|
9408
9408
|
D.push(tt), D.push(at);
|
|
9409
9409
|
}
|
|
9410
9410
|
return new fe(D, m, w, b);
|
|
9411
|
-
},
|
|
9411
|
+
}, Mt.divideRationalSurfaceAdaptive = function(t, n) {
|
|
9412
9412
|
n == null && (n = new Oe()), n.minDivsU != null ? n.minDivsU = n.minDivsU : n.minDivsU = 1, n.minDivsV != null ? n.minDivsU = n.minDivsV : n.minDivsU = 1, n.refine != null ? n.refine = n.refine : n.refine = !0;
|
|
9413
9413
|
var r = (t.controlPoints.length - 1) * 2, s = (t.controlPoints[0].length - 1) * 2, o;
|
|
9414
9414
|
n.minDivsU > r ? o = n.minDivsU = n.minDivsU : o = n.minDivsU = r;
|
|
9415
9415
|
var h;
|
|
9416
9416
|
n.minDivsV > s ? h = n.minDivsV = n.minDivsV : h = n.minDivsV = s;
|
|
9417
|
-
for (var c = K.last(t.knotsU), v = t.knotsU[0], d = K.last(t.knotsV), m = t.knotsV[0], b = (c - v) / o, w = (d - m) / h,
|
|
9417
|
+
for (var c = K.last(t.knotsU), v = t.knotsU[0], d = K.last(t.knotsV), m = t.knotsV[0], b = (c - v) / o, w = (d - m) / h, P = [], M = [], z = 0, N = h + 1; z < N; ) {
|
|
9418
9418
|
for (var k = z++, L = [], B = 0, T = o + 1; B < T; ) {
|
|
9419
9419
|
var R = B++, F = v + b * R, W = m + w * k, D = S.rationalSurfaceDerivatives(t, F, W, 1), V = u.normalized(u.cross(D[0][1], D[1][0]));
|
|
9420
9420
|
L.push(new ve(D[0][0], V, [F, W], -1, u.isZero(V)));
|
|
9421
9421
|
}
|
|
9422
|
-
|
|
9422
|
+
M.push(L);
|
|
9423
9423
|
}
|
|
9424
9424
|
for (var G = 0; G < h; )
|
|
9425
9425
|
for (var Q = G++, J = 0; J < o; ) {
|
|
9426
|
-
var et = J++, it = [
|
|
9427
|
-
|
|
9426
|
+
var et = J++, it = [M[h - Q - 1][et], M[h - Q - 1][et + 1], M[h - Q][et + 1], M[h - Q][et]];
|
|
9427
|
+
P.push(new Ee(t, it));
|
|
9428
9428
|
}
|
|
9429
|
-
if (!n.refine) return
|
|
9429
|
+
if (!n.refine) return P;
|
|
9430
9430
|
for (var nt = 0; nt < h; )
|
|
9431
9431
|
for (var st = nt++, tt = 0; tt < o; ) {
|
|
9432
|
-
var at = tt++, O = st * o + at, lt =
|
|
9433
|
-
|
|
9432
|
+
var at = tt++, O = st * o + at, lt = Mt.north(O, st, at, o, h, P), mt = Mt.east(O, st, at, o, h, P), It = Mt.south(O, st, at, o, h, P), Et = Mt.west(O, st, at, o, h, P);
|
|
9433
|
+
P[O].neighbors = [It, mt, lt, Et], P[O].divide(n);
|
|
9434
9434
|
}
|
|
9435
|
-
return
|
|
9436
|
-
},
|
|
9435
|
+
return P;
|
|
9436
|
+
}, Mt.north = function(t, n, r, s, o, h) {
|
|
9437
9437
|
return n == 0 ? null : h[t - s];
|
|
9438
|
-
},
|
|
9438
|
+
}, Mt.south = function(t, n, r, s, o, h) {
|
|
9439
9439
|
return n == o - 1 ? null : h[t + s];
|
|
9440
|
-
},
|
|
9440
|
+
}, Mt.east = function(t, n, r, s, o, h) {
|
|
9441
9441
|
return r == s - 1 ? null : h[t + 1];
|
|
9442
|
-
},
|
|
9442
|
+
}, Mt.west = function(t, n, r, s, o, h) {
|
|
9443
9443
|
return r == 0 ? null : h[t - 1];
|
|
9444
|
-
},
|
|
9444
|
+
}, Mt.triangulateAdaptiveRefinementNodeTree = function(t) {
|
|
9445
9445
|
for (var n = fe.empty(), r = 0; r < t.length; ) {
|
|
9446
9446
|
var s = t[r];
|
|
9447
9447
|
++r, s.triangulate(n);
|
|
9448
9448
|
}
|
|
9449
9449
|
return n;
|
|
9450
|
-
},
|
|
9450
|
+
}, Mt.rationalSurfaceAdaptive = function(t, n) {
|
|
9451
9451
|
n != null ? n = n : n = new Oe();
|
|
9452
|
-
var r =
|
|
9453
|
-
return
|
|
9452
|
+
var r = Mt.divideRationalSurfaceAdaptive(t, n);
|
|
9453
|
+
return Mt.triangulateAdaptiveRefinementNodeTree(r);
|
|
9454
9454
|
};
|
|
9455
9455
|
var Oe = f.core.AdaptiveRefinementOptions = function() {
|
|
9456
9456
|
this.minDivsV = 1, this.minDivsU = 1, this.refine = !0, this.maxDepth = 10, this.minDepth = 0, this.normTol = 0.025;
|
|
@@ -9595,18 +9595,18 @@ var ii = { exports: {} };
|
|
|
9595
9595
|
}
|
|
9596
9596
|
}
|
|
9597
9597
|
for (var w = 0; w < r.length; ) {
|
|
9598
|
-
var
|
|
9599
|
-
if (++w,
|
|
9600
|
-
s.push(
|
|
9598
|
+
var P = r[w];
|
|
9599
|
+
if (++w, P.id != -1) {
|
|
9600
|
+
s.push(P.id);
|
|
9601
9601
|
continue;
|
|
9602
9602
|
}
|
|
9603
|
-
t.uvs.push(
|
|
9603
|
+
t.uvs.push(P.uv), t.points.push(P.point), t.normals.push(P.normal), P.id = n, s.push(n), n++;
|
|
9604
9604
|
}
|
|
9605
9605
|
if (r.length == 4)
|
|
9606
9606
|
return t.faces.push([s[0], s[3], s[1]]), t.faces.push([s[3], s[2], s[1]]), t;
|
|
9607
9607
|
if (r.length == 5) {
|
|
9608
|
-
var
|
|
9609
|
-
return t.faces.push([s[o], s[(o + 2) %
|
|
9608
|
+
var M = s.length;
|
|
9609
|
+
return t.faces.push([s[o], s[(o + 2) % M], s[(o + 1) % M]]), t.faces.push([s[(o + 4) % M], s[(o + 3) % M], s[o]]), t.faces.push([s[o], s[(o + 3) % M], s[(o + 2) % M]]), t;
|
|
9610
9610
|
}
|
|
9611
9611
|
var z = this.center();
|
|
9612
9612
|
t.uvs.push(z.uv), t.points.push(z.point), t.normals.push(z.normal);
|
|
@@ -9792,10 +9792,10 @@ var ii = { exports: {} };
|
|
|
9792
9792
|
});
|
|
9793
9793
|
},
|
|
9794
9794
|
tessellate: function(t) {
|
|
9795
|
-
return
|
|
9795
|
+
return Mt.rationalCurveAdaptiveSample(this._data, t, !1);
|
|
9796
9796
|
},
|
|
9797
9797
|
tessellateAsync: function(t) {
|
|
9798
|
-
return _t.dispatchMethod(
|
|
9798
|
+
return _t.dispatchMethod(Mt, "rationalCurveAdaptiveSample", [this._data, t, !1]);
|
|
9799
9799
|
},
|
|
9800
9800
|
__class__: bt
|
|
9801
9801
|
});
|
|
@@ -9957,10 +9957,10 @@ var ii = { exports: {} };
|
|
|
9957
9957
|
});
|
|
9958
9958
|
},
|
|
9959
9959
|
tessellate: function(t) {
|
|
9960
|
-
return
|
|
9960
|
+
return Mt.rationalSurfaceAdaptive(this._data, t);
|
|
9961
9961
|
},
|
|
9962
9962
|
tessellateAsync: function(t) {
|
|
9963
|
-
return _t.dispatchMethod(
|
|
9963
|
+
return _t.dispatchMethod(Mt, "rationalSurfaceAdaptive", [this._data, t]);
|
|
9964
9964
|
},
|
|
9965
9965
|
transform: function(t) {
|
|
9966
9966
|
return new gt(ct.rationalSurfaceTransform(this._data, t));
|
|
@@ -10147,7 +10147,7 @@ var ii = { exports: {} };
|
|
|
10147
10147
|
wr.__name__ = ["Float"];
|
|
10148
10148
|
var br = y.Bool = Boolean;
|
|
10149
10149
|
br.__ename__ = ["Bool"];
|
|
10150
|
-
var xr = y.Class = { __name__: ["Class"] },
|
|
10150
|
+
var xr = y.Class = { __name__: ["Class"] }, Pr = {};
|
|
10151
10151
|
Array.prototype.map == null && (Array.prototype.map = function(t) {
|
|
10152
10152
|
for (var n = [], r = 0, s = this.length; r < s; ) {
|
|
10153
10153
|
var o = r++;
|
|
@@ -10201,7 +10201,7 @@ var ii = { exports: {} };
|
|
|
10201
10201
|
return process.nextTick(d(m, B)), B;
|
|
10202
10202
|
};
|
|
10203
10203
|
}
|
|
10204
|
-
function
|
|
10204
|
+
function P() {
|
|
10205
10205
|
if (t.postMessage && !t.importScripts) {
|
|
10206
10206
|
var B = !0, T = t.onmessage;
|
|
10207
10207
|
return t.onmessage = function() {
|
|
@@ -10209,7 +10209,7 @@ var ii = { exports: {} };
|
|
|
10209
10209
|
}, t.postMessage("", "*"), t.onmessage = T, B;
|
|
10210
10210
|
}
|
|
10211
10211
|
}
|
|
10212
|
-
function
|
|
10212
|
+
function M() {
|
|
10213
10213
|
var B = "setImmediate$" + Math.random() + "$", T = function(R) {
|
|
10214
10214
|
R.source === t && typeof R.data == "string" && R.data.indexOf(B) === 0 && m(+R.data.slice(B.length));
|
|
10215
10215
|
};
|
|
@@ -10244,7 +10244,7 @@ var ii = { exports: {} };
|
|
|
10244
10244
|
};
|
|
10245
10245
|
}
|
|
10246
10246
|
var L = Object.getPrototypeOf && Object.getPrototypeOf(t);
|
|
10247
|
-
L = L && L.setTimeout ? L : t, {}.toString.call(t.process) === "[object process]" ? w() :
|
|
10247
|
+
L = L && L.setTimeout ? L : t, {}.toString.call(t.process) === "[object process]" ? w() : P() ? M() : t.MessageChannel ? z() : h && "onreadystatechange" in h.createElement("script") ? N() : k(), L.setImmediate = c, L.clearImmediate = b;
|
|
10248
10248
|
})(new Function("return this")()), jt.USE_CACHE = !1, jt.USE_ENUM_INDEX = !1, jt.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:", Tt.DEFAULT_RESOLVER = ut, Tt.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:", Ht.count = 0, Xt.i64tmp = function(t) {
|
|
10249
10249
|
var n, r = new Lt(0, 0);
|
|
10250
10250
|
return n = r, n;
|
|
@@ -10576,12 +10576,12 @@ class si extends Wn {
|
|
|
10576
10576
|
super();
|
|
10577
10577
|
const g = arguments.length;
|
|
10578
10578
|
if (g < 2 || g > 5)
|
|
10579
|
-
throw
|
|
10579
|
+
throw Pe.ILLEGAL_PARAMETERS;
|
|
10580
10580
|
if (this._degree = 3, this._closed = !1, Array.isArray(i)) {
|
|
10581
10581
|
this._controlPoints = e;
|
|
10582
10582
|
let p, x = 3, f = !1;
|
|
10583
10583
|
if (g >= 3 && (Array.isArray(a) ? (p = a, g >= 4 && (x = l || 3), g >= 5 && (f = _)) : a !== void 0 && (x = a || 3, g >= 4 && (f = l))), a === void 0 && g >= 4 && (x = l || 3, g >= 5 && (f = _)), this._degree = x, this._closed = f, this._controlPoints.length < this._degree + 1)
|
|
10584
|
-
throw
|
|
10584
|
+
throw Pe.ILLEGAL_PARAMETERS;
|
|
10585
10585
|
const A = this.toVerbPoints(this._controlPoints);
|
|
10586
10586
|
this._nurbsCurve = gn.geom.NurbsCurve.byKnotsControlPointsWeights(
|
|
10587
10587
|
this._degree,
|
|
@@ -10591,7 +10591,7 @@ class si extends Wn {
|
|
|
10591
10591
|
);
|
|
10592
10592
|
} else {
|
|
10593
10593
|
if (this._fitPoints = e, this._knotParameterization = i, g >= 3 && (this._degree = a || 3), g >= 4 && (this._closed = l), this._fitPoints.length < this._degree + 1)
|
|
10594
|
-
throw
|
|
10594
|
+
throw Pe.ILLEGAL_PARAMETERS;
|
|
10595
10595
|
const p = this.toNurbsPoints(this._fitPoints);
|
|
10596
10596
|
this._nurbsCurve = gn.geom.NurbsCurve.byPoints(p, this._degree), this._controlPoints = this.toGePoints(this._nurbsCurve.controlPoints());
|
|
10597
10597
|
}
|
|
@@ -10642,6 +10642,27 @@ class si extends Wn {
|
|
|
10642
10642
|
get knotParameterization() {
|
|
10643
10643
|
return this._knotParameterization;
|
|
10644
10644
|
}
|
|
10645
|
+
get controlPoints() {
|
|
10646
|
+
return this._controlPoints.map((e) => ({
|
|
10647
|
+
x: e.x,
|
|
10648
|
+
y: e.y,
|
|
10649
|
+
z: e.z || 0
|
|
10650
|
+
}));
|
|
10651
|
+
}
|
|
10652
|
+
get fitPoints() {
|
|
10653
|
+
var e;
|
|
10654
|
+
return (e = this._fitPoints) == null ? void 0 : e.map((i) => ({
|
|
10655
|
+
x: i.x,
|
|
10656
|
+
y: i.y,
|
|
10657
|
+
z: i.z || 0
|
|
10658
|
+
}));
|
|
10659
|
+
}
|
|
10660
|
+
get knots() {
|
|
10661
|
+
return [...this._nurbsCurve.knots()];
|
|
10662
|
+
}
|
|
10663
|
+
get weights() {
|
|
10664
|
+
return [...this._nurbsCurve.weights()];
|
|
10665
|
+
}
|
|
10645
10666
|
/**
|
|
10646
10667
|
* The start point of this spline
|
|
10647
10668
|
*/
|
|
@@ -10777,7 +10798,7 @@ class si extends Wn {
|
|
|
10777
10798
|
}
|
|
10778
10799
|
export {
|
|
10779
10800
|
is as AcGeArea2d,
|
|
10780
|
-
|
|
10801
|
+
Me as AcGeBox2d,
|
|
10781
10802
|
Ue as AcGeBox3d,
|
|
10782
10803
|
ts as AcGeCatmullRomCurve3d,
|
|
10783
10804
|
nr as AcGeCircArc2d,
|
|
@@ -10826,14 +10847,14 @@ export {
|
|
|
10826
10847
|
Gi as generateUniformKnots,
|
|
10827
10848
|
Zr as intPartLength,
|
|
10828
10849
|
rs as interpolateControlPoints,
|
|
10829
|
-
|
|
10850
|
+
Mi as inverseLerp,
|
|
10830
10851
|
Vi as isBetween,
|
|
10831
10852
|
Di as isBetweenAngle,
|
|
10832
10853
|
Jr as isPointInPolygon,
|
|
10833
10854
|
Oi as isPolygonIntersect,
|
|
10834
10855
|
Ti as isPowerOfTwo,
|
|
10835
10856
|
Wr as lerp,
|
|
10836
|
-
|
|
10857
|
+
Pi as mapLinear,
|
|
10837
10858
|
$n as normalizeAngle,
|
|
10838
10859
|
zi as pingpong,
|
|
10839
10860
|
Li as radToDeg,
|