robust-predicates 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +49 -0
- package/package.json +7 -6
- package/umd/predicates.js +178 -178
package/index.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export as namespace predicates;
|
|
2
|
+
|
|
3
|
+
export function orient2d(
|
|
4
|
+
ax: number, ay: number,
|
|
5
|
+
bx: number, by: number,
|
|
6
|
+
cx: number, cy: number): number;
|
|
7
|
+
|
|
8
|
+
export function orient2dfast(
|
|
9
|
+
ax: number, ay: number,
|
|
10
|
+
bx: number, by: number,
|
|
11
|
+
cx: number, cy: number): number;
|
|
12
|
+
|
|
13
|
+
export function incircle(
|
|
14
|
+
ax: number, ay: number,
|
|
15
|
+
bx: number, by: number,
|
|
16
|
+
cx: number, cy: number,
|
|
17
|
+
dx: number, dy: number): number;
|
|
18
|
+
|
|
19
|
+
export function incirclefast(
|
|
20
|
+
ax: number, ay: number,
|
|
21
|
+
bx: number, by: number,
|
|
22
|
+
cx: number, cy: number,
|
|
23
|
+
dx: number, dy: number): number;
|
|
24
|
+
|
|
25
|
+
export function orient3d(
|
|
26
|
+
ax: number, ay: number, az: number,
|
|
27
|
+
bx: number, by: number, bz: number,
|
|
28
|
+
cx: number, cy: number, cz: number,
|
|
29
|
+
dx: number, dy: number, dz: number): number;
|
|
30
|
+
|
|
31
|
+
export function orient3dfast(
|
|
32
|
+
ax: number, ay: number, az: number,
|
|
33
|
+
bx: number, by: number, bz: number,
|
|
34
|
+
cx: number, cy: number, cz: number,
|
|
35
|
+
dx: number, dy: number, dz: number): number;
|
|
36
|
+
|
|
37
|
+
export function insphere(
|
|
38
|
+
ax: number, ay: number, az: number,
|
|
39
|
+
bx: number, by: number, bz: number,
|
|
40
|
+
cx: number, cy: number, cz: number,
|
|
41
|
+
dx: number, dy: number, dz: number,
|
|
42
|
+
ex: number, ey: number, ez: number): number;
|
|
43
|
+
|
|
44
|
+
export function inspherefast(
|
|
45
|
+
ax: number, ay: number, az: number,
|
|
46
|
+
bx: number, by: number, bz: number,
|
|
47
|
+
cx: number, cy: number, cz: number,
|
|
48
|
+
dx: number, dy: number, dz: number,
|
|
49
|
+
ex: number, ey: number, ez: number): number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "robust-predicates",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Fast robust predicates for computational geometry",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"computational geometry",
|
|
@@ -23,20 +23,21 @@
|
|
|
23
23
|
"prepublishOnly": "npm run test && rollup -c"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"c8": "^7.
|
|
27
|
-
"eslint": "^7.
|
|
26
|
+
"c8": "^7.7.0",
|
|
27
|
+
"eslint": "^7.23.0",
|
|
28
28
|
"eslint-config-mourner": "^3.0.0",
|
|
29
29
|
"mkdirp": "^1.0.4",
|
|
30
30
|
"nextafter": "^1.0.0",
|
|
31
31
|
"robust-in-sphere": "^1.1.3",
|
|
32
32
|
"robust-orientation": "^1.1.3",
|
|
33
|
-
"rollup": "^2.
|
|
33
|
+
"rollup": "^2.44.0",
|
|
34
34
|
"rollup-plugin-terser": "^7.0.2",
|
|
35
|
-
"tape": "^5.
|
|
36
|
-
"terser": "^5.
|
|
35
|
+
"tape": "^5.2.2",
|
|
36
|
+
"terser": "^5.6.1"
|
|
37
37
|
},
|
|
38
38
|
"files": [
|
|
39
39
|
"index.js",
|
|
40
|
+
"index.d.ts",
|
|
40
41
|
"esm",
|
|
41
42
|
"umd"
|
|
42
43
|
],
|
package/umd/predicates.js
CHANGED
|
@@ -151,7 +151,7 @@ const B = vec(4);
|
|
|
151
151
|
const C1 = vec(8);
|
|
152
152
|
const C2 = vec(12);
|
|
153
153
|
const D = vec(16);
|
|
154
|
-
const u = vec(4);
|
|
154
|
+
const u$2 = vec(4);
|
|
155
155
|
|
|
156
156
|
function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
157
157
|
let acxtail, acytail, bcxtail, bcytail;
|
|
@@ -233,18 +233,18 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
233
233
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
234
234
|
_i = s0 - t0;
|
|
235
235
|
bvirt = s0 - _i;
|
|
236
|
-
u[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
236
|
+
u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
237
237
|
_j = s1 + _i;
|
|
238
238
|
bvirt = _j - s1;
|
|
239
239
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
240
240
|
_i = _0 - t1;
|
|
241
241
|
bvirt = _0 - _i;
|
|
242
|
-
u[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
242
|
+
u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
243
243
|
u3 = _j + _i;
|
|
244
244
|
bvirt = u3 - _j;
|
|
245
|
-
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
246
|
-
u[3] = u3;
|
|
247
|
-
const C1len = sum(4, B, 4, u, C1);
|
|
245
|
+
u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
246
|
+
u$2[3] = u3;
|
|
247
|
+
const C1len = sum(4, B, 4, u$2, C1);
|
|
248
248
|
|
|
249
249
|
s1 = acx * bcytail;
|
|
250
250
|
c = splitter * acx;
|
|
@@ -264,18 +264,18 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
264
264
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
265
265
|
_i = s0 - t0;
|
|
266
266
|
bvirt = s0 - _i;
|
|
267
|
-
u[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
267
|
+
u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
268
268
|
_j = s1 + _i;
|
|
269
269
|
bvirt = _j - s1;
|
|
270
270
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
271
271
|
_i = _0 - t1;
|
|
272
272
|
bvirt = _0 - _i;
|
|
273
|
-
u[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
273
|
+
u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
274
274
|
u3 = _j + _i;
|
|
275
275
|
bvirt = u3 - _j;
|
|
276
|
-
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
277
|
-
u[3] = u3;
|
|
278
|
-
const C2len = sum(C1len, C1, 4, u, C2);
|
|
276
|
+
u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
277
|
+
u$2[3] = u3;
|
|
278
|
+
const C2len = sum(C1len, C1, 4, u$2, C2);
|
|
279
279
|
|
|
280
280
|
s1 = acxtail * bcytail;
|
|
281
281
|
c = splitter * acxtail;
|
|
@@ -295,18 +295,18 @@ function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
|
|
|
295
295
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
296
296
|
_i = s0 - t0;
|
|
297
297
|
bvirt = s0 - _i;
|
|
298
|
-
u[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
298
|
+
u$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
299
299
|
_j = s1 + _i;
|
|
300
300
|
bvirt = _j - s1;
|
|
301
301
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
302
302
|
_i = _0 - t1;
|
|
303
303
|
bvirt = _0 - _i;
|
|
304
|
-
u[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
304
|
+
u$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
305
305
|
u3 = _j + _i;
|
|
306
306
|
bvirt = u3 - _j;
|
|
307
|
-
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
308
|
-
u[3] = u3;
|
|
309
|
-
const Dlen = sum(C2len, C2, 4, u, D);
|
|
307
|
+
u$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
308
|
+
u$2[3] = u3;
|
|
309
|
+
const Dlen = sum(C2len, C2, 4, u$2, D);
|
|
310
310
|
|
|
311
311
|
return D[Dlen - 1];
|
|
312
312
|
}
|
|
@@ -332,31 +332,31 @@ const o3derrboundA = (7 + 56 * epsilon) * epsilon;
|
|
|
332
332
|
const o3derrboundB = (3 + 28 * epsilon) * epsilon;
|
|
333
333
|
const o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon;
|
|
334
334
|
|
|
335
|
-
const bc = vec(4);
|
|
336
|
-
const ca = vec(4);
|
|
337
|
-
const ab = vec(4);
|
|
335
|
+
const bc$2 = vec(4);
|
|
336
|
+
const ca$1 = vec(4);
|
|
337
|
+
const ab$2 = vec(4);
|
|
338
338
|
const at_b = vec(4);
|
|
339
339
|
const at_c = vec(4);
|
|
340
340
|
const bt_c = vec(4);
|
|
341
341
|
const bt_a = vec(4);
|
|
342
342
|
const ct_a = vec(4);
|
|
343
343
|
const ct_b = vec(4);
|
|
344
|
-
const bct = vec(8);
|
|
345
|
-
const cat = vec(8);
|
|
346
|
-
const abt = vec(8);
|
|
344
|
+
const bct$1 = vec(8);
|
|
345
|
+
const cat$1 = vec(8);
|
|
346
|
+
const abt$1 = vec(8);
|
|
347
347
|
const u$1 = vec(4);
|
|
348
348
|
|
|
349
|
-
const _8 = vec(8);
|
|
350
|
-
const _8b = vec(8);
|
|
351
|
-
const _16 = vec(8);
|
|
349
|
+
const _8$2 = vec(8);
|
|
350
|
+
const _8b$1 = vec(8);
|
|
351
|
+
const _16$2 = vec(8);
|
|
352
352
|
const _12 = vec(12);
|
|
353
353
|
|
|
354
|
-
let fin = vec(192);
|
|
355
|
-
let fin2 = vec(192);
|
|
354
|
+
let fin$2 = vec(192);
|
|
355
|
+
let fin2$1 = vec(192);
|
|
356
356
|
|
|
357
|
-
function finadd(finlen, alen, a) {
|
|
358
|
-
finlen = sum(finlen, fin, alen, a, fin2);
|
|
359
|
-
const tmp = fin; fin = fin2; fin2 = tmp;
|
|
357
|
+
function finadd$1(finlen, alen, a) {
|
|
358
|
+
finlen = sum(finlen, fin$2, alen, a, fin2$1);
|
|
359
|
+
const tmp = fin$2; fin$2 = fin2$1; fin2$1 = tmp;
|
|
360
360
|
return finlen;
|
|
361
361
|
}
|
|
362
362
|
|
|
@@ -504,7 +504,7 @@ function tailadd(finlen, a, b, k, z) {
|
|
|
504
504
|
u3 = _j + _k;
|
|
505
505
|
u$1[2] = _k - (u3 - _j);
|
|
506
506
|
u$1[3] = u3;
|
|
507
|
-
finlen = finadd(finlen, 4, u$1);
|
|
507
|
+
finlen = finadd$1(finlen, 4, u$1);
|
|
508
508
|
if (z !== 0) {
|
|
509
509
|
c = splitter * z;
|
|
510
510
|
bhi = c - (c - z);
|
|
@@ -525,7 +525,7 @@ function tailadd(finlen, a, b, k, z) {
|
|
|
525
525
|
u3 = _j + _k;
|
|
526
526
|
u$1[2] = _k - (u3 - _j);
|
|
527
527
|
u$1[3] = u3;
|
|
528
|
-
finlen = finadd(finlen, 4, u$1);
|
|
528
|
+
finlen = finadd$1(finlen, 4, u$1);
|
|
529
529
|
}
|
|
530
530
|
return finlen;
|
|
531
531
|
}
|
|
@@ -565,17 +565,17 @@ function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent
|
|
|
565
565
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
566
566
|
_i = s0 - t0;
|
|
567
567
|
bvirt = s0 - _i;
|
|
568
|
-
bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
568
|
+
bc$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
569
569
|
_j = s1 + _i;
|
|
570
570
|
bvirt = _j - s1;
|
|
571
571
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
572
572
|
_i = _0 - t1;
|
|
573
573
|
bvirt = _0 - _i;
|
|
574
|
-
bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
574
|
+
bc$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
575
575
|
u3 = _j + _i;
|
|
576
576
|
bvirt = u3 - _j;
|
|
577
|
-
bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
578
|
-
bc[3] = u3;
|
|
577
|
+
bc$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
578
|
+
bc$2[3] = u3;
|
|
579
579
|
s1 = cdx * ady;
|
|
580
580
|
c = splitter * cdx;
|
|
581
581
|
ahi = c - (c - cdx);
|
|
@@ -594,17 +594,17 @@ function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent
|
|
|
594
594
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
595
595
|
_i = s0 - t0;
|
|
596
596
|
bvirt = s0 - _i;
|
|
597
|
-
ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
597
|
+
ca$1[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
598
598
|
_j = s1 + _i;
|
|
599
599
|
bvirt = _j - s1;
|
|
600
600
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
601
601
|
_i = _0 - t1;
|
|
602
602
|
bvirt = _0 - _i;
|
|
603
|
-
ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
603
|
+
ca$1[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
604
604
|
u3 = _j + _i;
|
|
605
605
|
bvirt = u3 - _j;
|
|
606
|
-
ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
607
|
-
ca[3] = u3;
|
|
606
|
+
ca$1[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
607
|
+
ca$1[3] = u3;
|
|
608
608
|
s1 = adx * bdy;
|
|
609
609
|
c = splitter * adx;
|
|
610
610
|
ahi = c - (c - adx);
|
|
@@ -623,25 +623,25 @@ function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent
|
|
|
623
623
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
624
624
|
_i = s0 - t0;
|
|
625
625
|
bvirt = s0 - _i;
|
|
626
|
-
ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
626
|
+
ab$2[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
627
627
|
_j = s1 + _i;
|
|
628
628
|
bvirt = _j - s1;
|
|
629
629
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
630
630
|
_i = _0 - t1;
|
|
631
631
|
bvirt = _0 - _i;
|
|
632
|
-
ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
632
|
+
ab$2[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
633
633
|
u3 = _j + _i;
|
|
634
634
|
bvirt = u3 - _j;
|
|
635
|
-
ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
636
|
-
ab[3] = u3;
|
|
635
|
+
ab$2[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
636
|
+
ab$2[3] = u3;
|
|
637
637
|
|
|
638
638
|
finlen = sum(
|
|
639
639
|
sum(
|
|
640
|
-
scale(4, bc, adz, _8), _8,
|
|
641
|
-
scale(4, ca, bdz, _8b), _8b, _16), _16,
|
|
642
|
-
scale(4, ab, cdz, _8), _8, fin);
|
|
640
|
+
scale(4, bc$2, adz, _8$2), _8$2,
|
|
641
|
+
scale(4, ca$1, bdz, _8b$1), _8b$1, _16$2), _16$2,
|
|
642
|
+
scale(4, ab$2, cdz, _8$2), _8$2, fin$2);
|
|
643
643
|
|
|
644
|
-
let det = estimate(finlen, fin);
|
|
644
|
+
let det = estimate(finlen, fin$2);
|
|
645
645
|
let errbound = o3derrboundB * permanent;
|
|
646
646
|
if (det >= errbound || -det >= errbound) {
|
|
647
647
|
return det;
|
|
@@ -685,26 +685,26 @@ function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent
|
|
|
685
685
|
const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);
|
|
686
686
|
const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);
|
|
687
687
|
|
|
688
|
-
const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct);
|
|
689
|
-
finlen = finadd(finlen, scale(bctlen, bct, adz, _16), _16);
|
|
688
|
+
const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct$1);
|
|
689
|
+
finlen = finadd$1(finlen, scale(bctlen, bct$1, adz, _16$2), _16$2);
|
|
690
690
|
|
|
691
|
-
const catlen = sum(ct_len, ct_a, at_len, at_c, cat);
|
|
692
|
-
finlen = finadd(finlen, scale(catlen, cat, bdz, _16), _16);
|
|
691
|
+
const catlen = sum(ct_len, ct_a, at_len, at_c, cat$1);
|
|
692
|
+
finlen = finadd$1(finlen, scale(catlen, cat$1, bdz, _16$2), _16$2);
|
|
693
693
|
|
|
694
|
-
const abtlen = sum(at_len, at_b, bt_len, bt_a, abt);
|
|
695
|
-
finlen = finadd(finlen, scale(abtlen, abt, cdz, _16), _16);
|
|
694
|
+
const abtlen = sum(at_len, at_b, bt_len, bt_a, abt$1);
|
|
695
|
+
finlen = finadd$1(finlen, scale(abtlen, abt$1, cdz, _16$2), _16$2);
|
|
696
696
|
|
|
697
697
|
if (adztail !== 0) {
|
|
698
|
-
finlen = finadd(finlen, scale(4, bc, adztail, _12), _12);
|
|
699
|
-
finlen = finadd(finlen, scale(bctlen, bct, adztail, _16), _16);
|
|
698
|
+
finlen = finadd$1(finlen, scale(4, bc$2, adztail, _12), _12);
|
|
699
|
+
finlen = finadd$1(finlen, scale(bctlen, bct$1, adztail, _16$2), _16$2);
|
|
700
700
|
}
|
|
701
701
|
if (bdztail !== 0) {
|
|
702
|
-
finlen = finadd(finlen, scale(4, ca, bdztail, _12), _12);
|
|
703
|
-
finlen = finadd(finlen, scale(catlen, cat, bdztail, _16), _16);
|
|
702
|
+
finlen = finadd$1(finlen, scale(4, ca$1, bdztail, _12), _12);
|
|
703
|
+
finlen = finadd$1(finlen, scale(catlen, cat$1, bdztail, _16$2), _16$2);
|
|
704
704
|
}
|
|
705
705
|
if (cdztail !== 0) {
|
|
706
|
-
finlen = finadd(finlen, scale(4, ab, cdztail, _12), _12);
|
|
707
|
-
finlen = finadd(finlen, scale(abtlen, abt, cdztail, _16), _16);
|
|
706
|
+
finlen = finadd$1(finlen, scale(4, ab$2, cdztail, _12), _12);
|
|
707
|
+
finlen = finadd$1(finlen, scale(abtlen, abt$1, cdztail, _16$2), _16$2);
|
|
708
708
|
}
|
|
709
709
|
|
|
710
710
|
if (adxtail !== 0) {
|
|
@@ -732,7 +732,7 @@ function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent
|
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
734
|
|
|
735
|
-
return fin[finlen - 1];
|
|
735
|
+
return fin$2[finlen - 1];
|
|
736
736
|
}
|
|
737
737
|
|
|
738
738
|
function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
|
|
@@ -794,12 +794,12 @@ const iccerrboundB = (4 + 48 * epsilon) * epsilon;
|
|
|
794
794
|
const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon;
|
|
795
795
|
|
|
796
796
|
const bc$1 = vec(4);
|
|
797
|
-
const ca
|
|
797
|
+
const ca = vec(4);
|
|
798
798
|
const ab$1 = vec(4);
|
|
799
799
|
const aa = vec(4);
|
|
800
800
|
const bb = vec(4);
|
|
801
801
|
const cc = vec(4);
|
|
802
|
-
const u
|
|
802
|
+
const u = vec(4);
|
|
803
803
|
const v = vec(4);
|
|
804
804
|
const axtbc = vec(8);
|
|
805
805
|
const aytbc = vec(8);
|
|
@@ -807,9 +807,9 @@ const bxtca = vec(8);
|
|
|
807
807
|
const bytca = vec(8);
|
|
808
808
|
const cxtab = vec(8);
|
|
809
809
|
const cytab = vec(8);
|
|
810
|
-
const abt
|
|
811
|
-
const bct
|
|
812
|
-
const cat
|
|
810
|
+
const abt = vec(8);
|
|
811
|
+
const bct = vec(8);
|
|
812
|
+
const cat = vec(8);
|
|
813
813
|
const abtt = vec(4);
|
|
814
814
|
const bctt = vec(4);
|
|
815
815
|
const catt = vec(4);
|
|
@@ -820,15 +820,15 @@ const _16b = vec(16);
|
|
|
820
820
|
const _16c = vec(16);
|
|
821
821
|
const _32 = vec(32);
|
|
822
822
|
const _32b = vec(32);
|
|
823
|
-
const _48 = vec(48);
|
|
823
|
+
const _48$1 = vec(48);
|
|
824
824
|
const _64 = vec(64);
|
|
825
825
|
|
|
826
826
|
let fin$1 = vec(1152);
|
|
827
|
-
let fin2
|
|
827
|
+
let fin2 = vec(1152);
|
|
828
828
|
|
|
829
|
-
function finadd
|
|
830
|
-
finlen = sum(finlen, fin$1, a, alen, fin2
|
|
831
|
-
const tmp = fin$1; fin$1 = fin2
|
|
829
|
+
function finadd(finlen, a, alen) {
|
|
830
|
+
finlen = sum(finlen, fin$1, a, alen, fin2);
|
|
831
|
+
const tmp = fin$1; fin$1 = fin2; fin2 = tmp;
|
|
832
832
|
return finlen;
|
|
833
833
|
}
|
|
834
834
|
|
|
@@ -896,17 +896,17 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
896
896
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
897
897
|
_i = s0 - t0;
|
|
898
898
|
bvirt = s0 - _i;
|
|
899
|
-
ca
|
|
899
|
+
ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
900
900
|
_j = s1 + _i;
|
|
901
901
|
bvirt = _j - s1;
|
|
902
902
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
903
903
|
_i = _0 - t1;
|
|
904
904
|
bvirt = _0 - _i;
|
|
905
|
-
ca
|
|
905
|
+
ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
906
906
|
u3 = _j + _i;
|
|
907
907
|
bvirt = u3 - _j;
|
|
908
|
-
ca
|
|
909
|
-
ca
|
|
908
|
+
ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
909
|
+
ca[3] = u3;
|
|
910
910
|
s1 = adx * bdy;
|
|
911
911
|
c = splitter * adx;
|
|
912
912
|
ahi = c - (c - adx);
|
|
@@ -943,8 +943,8 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
943
943
|
scale(scale(4, bc$1, adx, _8$1), _8$1, adx, _16$1), _16$1,
|
|
944
944
|
scale(scale(4, bc$1, ady, _8$1), _8$1, ady, _16b), _16b, _32), _32,
|
|
945
945
|
sum(
|
|
946
|
-
scale(scale(4, ca
|
|
947
|
-
scale(scale(4, ca
|
|
946
|
+
scale(scale(4, ca, bdx, _8$1), _8$1, bdx, _16$1), _16$1,
|
|
947
|
+
scale(scale(4, ca, bdy, _8$1), _8$1, bdy, _16b), _16b, _32b), _32b, _64), _64,
|
|
948
948
|
sum(
|
|
949
949
|
scale(scale(4, ab$1, cdx, _8$1), _8$1, cdx, _16$1), _16$1,
|
|
950
950
|
scale(scale(4, ab$1, cdy, _8$1), _8$1, cdy, _16b), _16b, _32), _32, fin$1);
|
|
@@ -1061,45 +1061,45 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1061
1061
|
|
|
1062
1062
|
if (adxtail !== 0) {
|
|
1063
1063
|
axtbclen = scale(4, bc$1, adxtail, axtbc);
|
|
1064
|
-
finlen = finadd
|
|
1064
|
+
finlen = finadd(finlen, sum_three(
|
|
1065
1065
|
scale(axtbclen, axtbc, 2 * adx, _16$1), _16$1,
|
|
1066
1066
|
scale(scale(4, cc, adxtail, _8$1), _8$1, bdy, _16b), _16b,
|
|
1067
|
-
scale(scale(4, bb, adxtail, _8$1), _8$1, -cdy, _16c), _16c, _32, _48), _48);
|
|
1067
|
+
scale(scale(4, bb, adxtail, _8$1), _8$1, -cdy, _16c), _16c, _32, _48$1), _48$1);
|
|
1068
1068
|
}
|
|
1069
1069
|
if (adytail !== 0) {
|
|
1070
1070
|
aytbclen = scale(4, bc$1, adytail, aytbc);
|
|
1071
|
-
finlen = finadd
|
|
1071
|
+
finlen = finadd(finlen, sum_three(
|
|
1072
1072
|
scale(aytbclen, aytbc, 2 * ady, _16$1), _16$1,
|
|
1073
1073
|
scale(scale(4, bb, adytail, _8$1), _8$1, cdx, _16b), _16b,
|
|
1074
|
-
scale(scale(4, cc, adytail, _8$1), _8$1, -bdx, _16c), _16c, _32, _48), _48);
|
|
1074
|
+
scale(scale(4, cc, adytail, _8$1), _8$1, -bdx, _16c), _16c, _32, _48$1), _48$1);
|
|
1075
1075
|
}
|
|
1076
1076
|
if (bdxtail !== 0) {
|
|
1077
|
-
bxtcalen = scale(4, ca
|
|
1078
|
-
finlen = finadd
|
|
1077
|
+
bxtcalen = scale(4, ca, bdxtail, bxtca);
|
|
1078
|
+
finlen = finadd(finlen, sum_three(
|
|
1079
1079
|
scale(bxtcalen, bxtca, 2 * bdx, _16$1), _16$1,
|
|
1080
1080
|
scale(scale(4, aa, bdxtail, _8$1), _8$1, cdy, _16b), _16b,
|
|
1081
|
-
scale(scale(4, cc, bdxtail, _8$1), _8$1, -ady, _16c), _16c, _32, _48), _48);
|
|
1081
|
+
scale(scale(4, cc, bdxtail, _8$1), _8$1, -ady, _16c), _16c, _32, _48$1), _48$1);
|
|
1082
1082
|
}
|
|
1083
1083
|
if (bdytail !== 0) {
|
|
1084
|
-
bytcalen = scale(4, ca
|
|
1085
|
-
finlen = finadd
|
|
1084
|
+
bytcalen = scale(4, ca, bdytail, bytca);
|
|
1085
|
+
finlen = finadd(finlen, sum_three(
|
|
1086
1086
|
scale(bytcalen, bytca, 2 * bdy, _16$1), _16$1,
|
|
1087
1087
|
scale(scale(4, cc, bdytail, _8$1), _8$1, adx, _16b), _16b,
|
|
1088
|
-
scale(scale(4, aa, bdytail, _8$1), _8$1, -cdx, _16c), _16c, _32, _48), _48);
|
|
1088
|
+
scale(scale(4, aa, bdytail, _8$1), _8$1, -cdx, _16c), _16c, _32, _48$1), _48$1);
|
|
1089
1089
|
}
|
|
1090
1090
|
if (cdxtail !== 0) {
|
|
1091
1091
|
cxtablen = scale(4, ab$1, cdxtail, cxtab);
|
|
1092
|
-
finlen = finadd
|
|
1092
|
+
finlen = finadd(finlen, sum_three(
|
|
1093
1093
|
scale(cxtablen, cxtab, 2 * cdx, _16$1), _16$1,
|
|
1094
1094
|
scale(scale(4, bb, cdxtail, _8$1), _8$1, ady, _16b), _16b,
|
|
1095
|
-
scale(scale(4, aa, cdxtail, _8$1), _8$1, -bdy, _16c), _16c, _32, _48), _48);
|
|
1095
|
+
scale(scale(4, aa, cdxtail, _8$1), _8$1, -bdy, _16c), _16c, _32, _48$1), _48$1);
|
|
1096
1096
|
}
|
|
1097
1097
|
if (cdytail !== 0) {
|
|
1098
1098
|
cytablen = scale(4, ab$1, cdytail, cytab);
|
|
1099
|
-
finlen = finadd
|
|
1099
|
+
finlen = finadd(finlen, sum_three(
|
|
1100
1100
|
scale(cytablen, cytab, 2 * cdy, _16$1), _16$1,
|
|
1101
1101
|
scale(scale(4, aa, cdytail, _8$1), _8$1, bdx, _16b), _16b,
|
|
1102
|
-
scale(scale(4, bb, cdytail, _8$1), _8$1, -adx, _16c), _16c, _32, _48), _48);
|
|
1102
|
+
scale(scale(4, bb, cdytail, _8$1), _8$1, -adx, _16c), _16c, _32, _48$1), _48$1);
|
|
1103
1103
|
}
|
|
1104
1104
|
|
|
1105
1105
|
if (adxtail !== 0 || adytail !== 0) {
|
|
@@ -1122,17 +1122,17 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1122
1122
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
1123
1123
|
_i = s0 + t0;
|
|
1124
1124
|
bvirt = _i - s0;
|
|
1125
|
-
u
|
|
1125
|
+
u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
|
|
1126
1126
|
_j = s1 + _i;
|
|
1127
1127
|
bvirt = _j - s1;
|
|
1128
1128
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
1129
1129
|
_i = _0 + t1;
|
|
1130
1130
|
bvirt = _i - _0;
|
|
1131
|
-
u
|
|
1131
|
+
u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
|
|
1132
1132
|
u3 = _j + _i;
|
|
1133
1133
|
bvirt = u3 - _j;
|
|
1134
|
-
u
|
|
1135
|
-
u
|
|
1134
|
+
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1135
|
+
u[3] = u3;
|
|
1136
1136
|
s1 = cdxtail * -bdy;
|
|
1137
1137
|
c = splitter * cdxtail;
|
|
1138
1138
|
ahi = c - (c - cdxtail);
|
|
@@ -1162,7 +1162,7 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1162
1162
|
bvirt = u3 - _j;
|
|
1163
1163
|
v[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1164
1164
|
v[3] = u3;
|
|
1165
|
-
bctlen = sum(4, u
|
|
1165
|
+
bctlen = sum(4, u, 4, v, bct);
|
|
1166
1166
|
s1 = bdxtail * cdytail;
|
|
1167
1167
|
c = splitter * bdxtail;
|
|
1168
1168
|
ahi = c - (c - bdxtail);
|
|
@@ -1194,38 +1194,38 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1194
1194
|
bctt[3] = u3;
|
|
1195
1195
|
bcttlen = 4;
|
|
1196
1196
|
} else {
|
|
1197
|
-
bct
|
|
1197
|
+
bct[0] = 0;
|
|
1198
1198
|
bctlen = 1;
|
|
1199
1199
|
bctt[0] = 0;
|
|
1200
1200
|
bcttlen = 1;
|
|
1201
1201
|
}
|
|
1202
1202
|
if (adxtail !== 0) {
|
|
1203
|
-
const len = scale(bctlen, bct
|
|
1204
|
-
finlen = finadd
|
|
1203
|
+
const len = scale(bctlen, bct, adxtail, _16c);
|
|
1204
|
+
finlen = finadd(finlen, sum(
|
|
1205
1205
|
scale(axtbclen, axtbc, adxtail, _16$1), _16$1,
|
|
1206
|
-
scale(len, _16c, 2 * adx, _32), _32, _48), _48);
|
|
1206
|
+
scale(len, _16c, 2 * adx, _32), _32, _48$1), _48$1);
|
|
1207
1207
|
|
|
1208
1208
|
const len2 = scale(bcttlen, bctt, adxtail, _8$1);
|
|
1209
|
-
finlen = finadd
|
|
1209
|
+
finlen = finadd(finlen, sum_three(
|
|
1210
1210
|
scale(len2, _8$1, 2 * adx, _16$1), _16$1,
|
|
1211
1211
|
scale(len2, _8$1, adxtail, _16b), _16b,
|
|
1212
1212
|
scale(len, _16c, adxtail, _32), _32, _32b, _64), _64);
|
|
1213
1213
|
|
|
1214
1214
|
if (bdytail !== 0) {
|
|
1215
|
-
finlen = finadd
|
|
1215
|
+
finlen = finadd(finlen, scale(scale(4, cc, adxtail, _8$1), _8$1, bdytail, _16$1), _16$1);
|
|
1216
1216
|
}
|
|
1217
1217
|
if (cdytail !== 0) {
|
|
1218
|
-
finlen = finadd
|
|
1218
|
+
finlen = finadd(finlen, scale(scale(4, bb, -adxtail, _8$1), _8$1, cdytail, _16$1), _16$1);
|
|
1219
1219
|
}
|
|
1220
1220
|
}
|
|
1221
1221
|
if (adytail !== 0) {
|
|
1222
|
-
const len = scale(bctlen, bct
|
|
1223
|
-
finlen = finadd
|
|
1222
|
+
const len = scale(bctlen, bct, adytail, _16c);
|
|
1223
|
+
finlen = finadd(finlen, sum(
|
|
1224
1224
|
scale(aytbclen, aytbc, adytail, _16$1), _16$1,
|
|
1225
|
-
scale(len, _16c, 2 * ady, _32), _32, _48), _48);
|
|
1225
|
+
scale(len, _16c, 2 * ady, _32), _32, _48$1), _48$1);
|
|
1226
1226
|
|
|
1227
1227
|
const len2 = scale(bcttlen, bctt, adytail, _8$1);
|
|
1228
|
-
finlen = finadd
|
|
1228
|
+
finlen = finadd(finlen, sum_three(
|
|
1229
1229
|
scale(len2, _8$1, 2 * ady, _16$1), _16$1,
|
|
1230
1230
|
scale(len2, _8$1, adytail, _16b), _16b,
|
|
1231
1231
|
scale(len, _16c, adytail, _32), _32, _32b, _64), _64);
|
|
@@ -1251,17 +1251,17 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1251
1251
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
1252
1252
|
_i = s0 + t0;
|
|
1253
1253
|
bvirt = _i - s0;
|
|
1254
|
-
u
|
|
1254
|
+
u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
|
|
1255
1255
|
_j = s1 + _i;
|
|
1256
1256
|
bvirt = _j - s1;
|
|
1257
1257
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
1258
1258
|
_i = _0 + t1;
|
|
1259
1259
|
bvirt = _i - _0;
|
|
1260
|
-
u
|
|
1260
|
+
u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
|
|
1261
1261
|
u3 = _j + _i;
|
|
1262
1262
|
bvirt = u3 - _j;
|
|
1263
|
-
u
|
|
1264
|
-
u
|
|
1263
|
+
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1264
|
+
u[3] = u3;
|
|
1265
1265
|
n1 = -cdy;
|
|
1266
1266
|
n0 = -cdytail;
|
|
1267
1267
|
s1 = adxtail * n1;
|
|
@@ -1293,7 +1293,7 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1293
1293
|
bvirt = u3 - _j;
|
|
1294
1294
|
v[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1295
1295
|
v[3] = u3;
|
|
1296
|
-
catlen = sum(4, u
|
|
1296
|
+
catlen = sum(4, u, 4, v, cat);
|
|
1297
1297
|
s1 = cdxtail * adytail;
|
|
1298
1298
|
c = splitter * cdxtail;
|
|
1299
1299
|
ahi = c - (c - cdxtail);
|
|
@@ -1325,38 +1325,38 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1325
1325
|
catt[3] = u3;
|
|
1326
1326
|
cattlen = 4;
|
|
1327
1327
|
} else {
|
|
1328
|
-
cat
|
|
1328
|
+
cat[0] = 0;
|
|
1329
1329
|
catlen = 1;
|
|
1330
1330
|
catt[0] = 0;
|
|
1331
1331
|
cattlen = 1;
|
|
1332
1332
|
}
|
|
1333
1333
|
if (bdxtail !== 0) {
|
|
1334
|
-
const len = scale(catlen, cat
|
|
1335
|
-
finlen = finadd
|
|
1334
|
+
const len = scale(catlen, cat, bdxtail, _16c);
|
|
1335
|
+
finlen = finadd(finlen, sum(
|
|
1336
1336
|
scale(bxtcalen, bxtca, bdxtail, _16$1), _16$1,
|
|
1337
|
-
scale(len, _16c, 2 * bdx, _32), _32, _48), _48);
|
|
1337
|
+
scale(len, _16c, 2 * bdx, _32), _32, _48$1), _48$1);
|
|
1338
1338
|
|
|
1339
1339
|
const len2 = scale(cattlen, catt, bdxtail, _8$1);
|
|
1340
|
-
finlen = finadd
|
|
1340
|
+
finlen = finadd(finlen, sum_three(
|
|
1341
1341
|
scale(len2, _8$1, 2 * bdx, _16$1), _16$1,
|
|
1342
1342
|
scale(len2, _8$1, bdxtail, _16b), _16b,
|
|
1343
1343
|
scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
|
|
1344
1344
|
|
|
1345
1345
|
if (cdytail !== 0) {
|
|
1346
|
-
finlen = finadd
|
|
1346
|
+
finlen = finadd(finlen, scale(scale(4, aa, bdxtail, _8$1), _8$1, cdytail, _16$1), _16$1);
|
|
1347
1347
|
}
|
|
1348
1348
|
if (adytail !== 0) {
|
|
1349
|
-
finlen = finadd
|
|
1349
|
+
finlen = finadd(finlen, scale(scale(4, cc, -bdxtail, _8$1), _8$1, adytail, _16$1), _16$1);
|
|
1350
1350
|
}
|
|
1351
1351
|
}
|
|
1352
1352
|
if (bdytail !== 0) {
|
|
1353
|
-
const len = scale(catlen, cat
|
|
1354
|
-
finlen = finadd
|
|
1353
|
+
const len = scale(catlen, cat, bdytail, _16c);
|
|
1354
|
+
finlen = finadd(finlen, sum(
|
|
1355
1355
|
scale(bytcalen, bytca, bdytail, _16$1), _16$1,
|
|
1356
|
-
scale(len, _16c, 2 * bdy, _32), _32, _48), _48);
|
|
1356
|
+
scale(len, _16c, 2 * bdy, _32), _32, _48$1), _48$1);
|
|
1357
1357
|
|
|
1358
1358
|
const len2 = scale(cattlen, catt, bdytail, _8$1);
|
|
1359
|
-
finlen = finadd
|
|
1359
|
+
finlen = finadd(finlen, sum_three(
|
|
1360
1360
|
scale(len2, _8$1, 2 * bdy, _16$1), _16$1,
|
|
1361
1361
|
scale(len2, _8$1, bdytail, _16b), _16b,
|
|
1362
1362
|
scale(len, _16c, bdytail, _32), _32, _32b, _64), _64);
|
|
@@ -1382,17 +1382,17 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1382
1382
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
1383
1383
|
_i = s0 + t0;
|
|
1384
1384
|
bvirt = _i - s0;
|
|
1385
|
-
u
|
|
1385
|
+
u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
|
|
1386
1386
|
_j = s1 + _i;
|
|
1387
1387
|
bvirt = _j - s1;
|
|
1388
1388
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
1389
1389
|
_i = _0 + t1;
|
|
1390
1390
|
bvirt = _i - _0;
|
|
1391
|
-
u
|
|
1391
|
+
u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
|
|
1392
1392
|
u3 = _j + _i;
|
|
1393
1393
|
bvirt = u3 - _j;
|
|
1394
|
-
u
|
|
1395
|
-
u
|
|
1394
|
+
u[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1395
|
+
u[3] = u3;
|
|
1396
1396
|
n1 = -ady;
|
|
1397
1397
|
n0 = -adytail;
|
|
1398
1398
|
s1 = bdxtail * n1;
|
|
@@ -1424,7 +1424,7 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1424
1424
|
bvirt = u3 - _j;
|
|
1425
1425
|
v[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1426
1426
|
v[3] = u3;
|
|
1427
|
-
abtlen = sum(4, u
|
|
1427
|
+
abtlen = sum(4, u, 4, v, abt);
|
|
1428
1428
|
s1 = adxtail * bdytail;
|
|
1429
1429
|
c = splitter * adxtail;
|
|
1430
1430
|
ahi = c - (c - adxtail);
|
|
@@ -1456,38 +1456,38 @@ function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
|
|
|
1456
1456
|
abtt[3] = u3;
|
|
1457
1457
|
abttlen = 4;
|
|
1458
1458
|
} else {
|
|
1459
|
-
abt
|
|
1459
|
+
abt[0] = 0;
|
|
1460
1460
|
abtlen = 1;
|
|
1461
1461
|
abtt[0] = 0;
|
|
1462
1462
|
abttlen = 1;
|
|
1463
1463
|
}
|
|
1464
1464
|
if (cdxtail !== 0) {
|
|
1465
|
-
const len = scale(abtlen, abt
|
|
1466
|
-
finlen = finadd
|
|
1465
|
+
const len = scale(abtlen, abt, cdxtail, _16c);
|
|
1466
|
+
finlen = finadd(finlen, sum(
|
|
1467
1467
|
scale(cxtablen, cxtab, cdxtail, _16$1), _16$1,
|
|
1468
|
-
scale(len, _16c, 2 * cdx, _32), _32, _48), _48);
|
|
1468
|
+
scale(len, _16c, 2 * cdx, _32), _32, _48$1), _48$1);
|
|
1469
1469
|
|
|
1470
1470
|
const len2 = scale(abttlen, abtt, cdxtail, _8$1);
|
|
1471
|
-
finlen = finadd
|
|
1471
|
+
finlen = finadd(finlen, sum_three(
|
|
1472
1472
|
scale(len2, _8$1, 2 * cdx, _16$1), _16$1,
|
|
1473
1473
|
scale(len2, _8$1, cdxtail, _16b), _16b,
|
|
1474
1474
|
scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
|
|
1475
1475
|
|
|
1476
1476
|
if (adytail !== 0) {
|
|
1477
|
-
finlen = finadd
|
|
1477
|
+
finlen = finadd(finlen, scale(scale(4, bb, cdxtail, _8$1), _8$1, adytail, _16$1), _16$1);
|
|
1478
1478
|
}
|
|
1479
1479
|
if (bdytail !== 0) {
|
|
1480
|
-
finlen = finadd
|
|
1480
|
+
finlen = finadd(finlen, scale(scale(4, aa, -cdxtail, _8$1), _8$1, bdytail, _16$1), _16$1);
|
|
1481
1481
|
}
|
|
1482
1482
|
}
|
|
1483
1483
|
if (cdytail !== 0) {
|
|
1484
|
-
const len = scale(abtlen, abt
|
|
1485
|
-
finlen = finadd
|
|
1484
|
+
const len = scale(abtlen, abt, cdytail, _16c);
|
|
1485
|
+
finlen = finadd(finlen, sum(
|
|
1486
1486
|
scale(cytablen, cytab, cdytail, _16$1), _16$1,
|
|
1487
|
-
scale(len, _16c, 2 * cdy, _32), _32, _48), _48);
|
|
1487
|
+
scale(len, _16c, 2 * cdy, _32), _32, _48$1), _48$1);
|
|
1488
1488
|
|
|
1489
1489
|
const len2 = scale(abttlen, abtt, cdytail, _8$1);
|
|
1490
|
-
finlen = finadd
|
|
1490
|
+
finlen = finadd(finlen, sum_three(
|
|
1491
1491
|
scale(len2, _8$1, 2 * cdy, _16$1), _16$1,
|
|
1492
1492
|
scale(len2, _8$1, cdytail, _16b), _16b,
|
|
1493
1493
|
scale(len, _16c, cdytail, _32), _32, _32b, _64), _64);
|
|
@@ -1557,8 +1557,8 @@ const isperrboundA = (16 + 224 * epsilon) * epsilon;
|
|
|
1557
1557
|
const isperrboundB = (5 + 72 * epsilon) * epsilon;
|
|
1558
1558
|
const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon;
|
|
1559
1559
|
|
|
1560
|
-
const ab
|
|
1561
|
-
const bc
|
|
1560
|
+
const ab = vec(4);
|
|
1561
|
+
const bc = vec(4);
|
|
1562
1562
|
const cd = vec(4);
|
|
1563
1563
|
const de = vec(4);
|
|
1564
1564
|
const ea = vec(4);
|
|
@@ -1589,12 +1589,12 @@ const cddet = vec(2304);
|
|
|
1589
1589
|
const cdedet = vec(3456);
|
|
1590
1590
|
const deter = vec(5760);
|
|
1591
1591
|
|
|
1592
|
-
const _8
|
|
1593
|
-
const _8b
|
|
1592
|
+
const _8 = vec(8);
|
|
1593
|
+
const _8b = vec(8);
|
|
1594
1594
|
const _8c = vec(8);
|
|
1595
|
-
const _16
|
|
1595
|
+
const _16 = vec(16);
|
|
1596
1596
|
const _24 = vec(24);
|
|
1597
|
-
const _48
|
|
1597
|
+
const _48 = vec(48);
|
|
1598
1598
|
const _48b = vec(48);
|
|
1599
1599
|
const _96 = vec(96);
|
|
1600
1600
|
const _192 = vec(192);
|
|
@@ -1605,14 +1605,14 @@ const _768 = vec(768);
|
|
|
1605
1605
|
|
|
1606
1606
|
function sum_three_scale(a, b, c, az, bz, cz, out) {
|
|
1607
1607
|
return sum_three(
|
|
1608
|
-
scale(4, a, az, _8
|
|
1609
|
-
scale(4, b, bz, _8b
|
|
1610
|
-
scale(4, c, cz, _8c), _8c, _16
|
|
1608
|
+
scale(4, a, az, _8), _8,
|
|
1609
|
+
scale(4, b, bz, _8b), _8b,
|
|
1610
|
+
scale(4, c, cz, _8c), _8c, _16, out);
|
|
1611
1611
|
}
|
|
1612
1612
|
|
|
1613
1613
|
function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {
|
|
1614
1614
|
const len = sum(
|
|
1615
|
-
sum(alen, a, blen, b, _48
|
|
1615
|
+
sum(alen, a, blen, b, _48), _48,
|
|
1616
1616
|
negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96);
|
|
1617
1617
|
|
|
1618
1618
|
return sum_three(
|
|
@@ -1642,17 +1642,17 @@ function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
1642
1642
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
1643
1643
|
_i = s0 - t0;
|
|
1644
1644
|
bvirt = s0 - _i;
|
|
1645
|
-
ab
|
|
1645
|
+
ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
1646
1646
|
_j = s1 + _i;
|
|
1647
1647
|
bvirt = _j - s1;
|
|
1648
1648
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
1649
1649
|
_i = _0 - t1;
|
|
1650
1650
|
bvirt = _0 - _i;
|
|
1651
|
-
ab
|
|
1651
|
+
ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
1652
1652
|
u3 = _j + _i;
|
|
1653
1653
|
bvirt = u3 - _j;
|
|
1654
|
-
ab
|
|
1655
|
-
ab
|
|
1654
|
+
ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1655
|
+
ab[3] = u3;
|
|
1656
1656
|
s1 = bx * cy;
|
|
1657
1657
|
c = splitter * bx;
|
|
1658
1658
|
ahi = c - (c - bx);
|
|
@@ -1671,17 +1671,17 @@ function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
1671
1671
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
1672
1672
|
_i = s0 - t0;
|
|
1673
1673
|
bvirt = s0 - _i;
|
|
1674
|
-
bc
|
|
1674
|
+
bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
1675
1675
|
_j = s1 + _i;
|
|
1676
1676
|
bvirt = _j - s1;
|
|
1677
1677
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
1678
1678
|
_i = _0 - t1;
|
|
1679
1679
|
bvirt = _0 - _i;
|
|
1680
|
-
bc
|
|
1680
|
+
bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
1681
1681
|
u3 = _j + _i;
|
|
1682
1682
|
bvirt = u3 - _j;
|
|
1683
|
-
bc
|
|
1684
|
-
bc
|
|
1683
|
+
bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1684
|
+
bc[3] = u3;
|
|
1685
1685
|
s1 = cx * dy;
|
|
1686
1686
|
c = splitter * cx;
|
|
1687
1687
|
ahi = c - (c - cx);
|
|
@@ -1915,13 +1915,13 @@ function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
1915
1915
|
eb[2] = _j - (u3 - bvirt) + (_i - bvirt);
|
|
1916
1916
|
eb[3] = u3;
|
|
1917
1917
|
|
|
1918
|
-
const abclen = sum_three_scale(ab
|
|
1919
|
-
const bcdlen = sum_three_scale(bc
|
|
1918
|
+
const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);
|
|
1919
|
+
const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);
|
|
1920
1920
|
const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);
|
|
1921
1921
|
const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);
|
|
1922
|
-
const eablen = sum_three_scale(ea, ab
|
|
1923
|
-
const abdlen = sum_three_scale(ab
|
|
1924
|
-
const bcelen = sum_three_scale(bc
|
|
1922
|
+
const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);
|
|
1923
|
+
const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);
|
|
1924
|
+
const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);
|
|
1925
1925
|
const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);
|
|
1926
1926
|
const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);
|
|
1927
1927
|
const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);
|
|
@@ -1940,14 +1940,14 @@ function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
1940
1940
|
const xdet = vec(96);
|
|
1941
1941
|
const ydet = vec(96);
|
|
1942
1942
|
const zdet = vec(96);
|
|
1943
|
-
const fin
|
|
1943
|
+
const fin = vec(1152);
|
|
1944
1944
|
|
|
1945
1945
|
function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {
|
|
1946
1946
|
const len = sum_three_scale(a, b, c, az, bz, cz, _24);
|
|
1947
1947
|
return sum_three(
|
|
1948
|
-
scale(scale(len, _24, x, _48
|
|
1949
|
-
scale(scale(len, _24, y, _48
|
|
1950
|
-
scale(scale(len, _24, z, _48
|
|
1948
|
+
scale(scale(len, _24, x, _48), _48, x, xdet), xdet,
|
|
1949
|
+
scale(scale(len, _24, y, _48), _48, y, ydet), ydet,
|
|
1950
|
+
scale(scale(len, _24, z, _48), _48, z, zdet), zdet, _192, out);
|
|
1951
1951
|
}
|
|
1952
1952
|
|
|
1953
1953
|
function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {
|
|
@@ -1990,17 +1990,17 @@ function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
1990
1990
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
1991
1991
|
_i = s0 - t0;
|
|
1992
1992
|
bvirt = s0 - _i;
|
|
1993
|
-
ab
|
|
1993
|
+
ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
1994
1994
|
_j = s1 + _i;
|
|
1995
1995
|
bvirt = _j - s1;
|
|
1996
1996
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
1997
1997
|
_i = _0 - t1;
|
|
1998
1998
|
bvirt = _0 - _i;
|
|
1999
|
-
ab
|
|
1999
|
+
ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
2000
2000
|
ab3 = _j + _i;
|
|
2001
2001
|
bvirt = ab3 - _j;
|
|
2002
|
-
ab
|
|
2003
|
-
ab
|
|
2002
|
+
ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);
|
|
2003
|
+
ab[3] = ab3;
|
|
2004
2004
|
s1 = bex * cey;
|
|
2005
2005
|
c = splitter * bex;
|
|
2006
2006
|
ahi = c - (c - bex);
|
|
@@ -2019,17 +2019,17 @@ function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
2019
2019
|
t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
|
|
2020
2020
|
_i = s0 - t0;
|
|
2021
2021
|
bvirt = s0 - _i;
|
|
2022
|
-
bc
|
|
2022
|
+
bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
|
|
2023
2023
|
_j = s1 + _i;
|
|
2024
2024
|
bvirt = _j - s1;
|
|
2025
2025
|
_0 = s1 - (_j - bvirt) + (_i - bvirt);
|
|
2026
2026
|
_i = _0 - t1;
|
|
2027
2027
|
bvirt = _0 - _i;
|
|
2028
|
-
bc
|
|
2028
|
+
bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
|
|
2029
2029
|
bc3 = _j + _i;
|
|
2030
2030
|
bvirt = bc3 - _j;
|
|
2031
|
-
bc
|
|
2032
|
-
bc
|
|
2031
|
+
bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);
|
|
2032
|
+
bc[3] = bc3;
|
|
2033
2033
|
s1 = cex * dey;
|
|
2034
2034
|
c = splitter * cex;
|
|
2035
2035
|
ahi = c - (c - cex);
|
|
@@ -2149,13 +2149,13 @@ function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, e
|
|
|
2149
2149
|
|
|
2150
2150
|
const finlen = sum(
|
|
2151
2151
|
sum(
|
|
2152
|
-
negate(liftadapt(bc
|
|
2152
|
+
negate(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,
|
|
2153
2153
|
liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,
|
|
2154
2154
|
sum(
|
|
2155
|
-
negate(liftadapt(da, ab
|
|
2156
|
-
liftadapt(ab
|
|
2155
|
+
negate(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,
|
|
2156
|
+
liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);
|
|
2157
2157
|
|
|
2158
|
-
let det = estimate(finlen, fin
|
|
2158
|
+
let det = estimate(finlen, fin);
|
|
2159
2159
|
let errbound = isperrboundB * permanent;
|
|
2160
2160
|
if (det >= errbound || -det >= errbound) {
|
|
2161
2161
|
return det;
|