@mui/x-charts-vendor 7.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -0
- package/d3-color.d.ts +5 -0
- package/d3-color.js +7 -0
- package/d3-delaunay.d.ts +5 -0
- package/d3-delaunay.js +7 -0
- package/d3-interpolate.d.ts +5 -0
- package/d3-interpolate.js +7 -0
- package/d3-scale.d.ts +5 -0
- package/d3-scale.js +7 -0
- package/d3-shape.d.ts +5 -0
- package/d3-shape.js +7 -0
- package/d3-time.d.ts +5 -0
- package/d3-time.js +7 -0
- package/es/d3-array.js +6 -0
- package/es/d3-color.js +6 -0
- package/es/d3-delaunay.js +6 -0
- package/es/d3-format.js +6 -0
- package/es/d3-interpolate.js +6 -0
- package/es/d3-path.js +6 -0
- package/es/d3-scale.js +6 -0
- package/es/d3-shape.js +6 -0
- package/es/d3-time-format.js +6 -0
- package/es/d3-time.js +6 -0
- package/es/delaunator.js +6 -0
- package/es/internmap.js +6 -0
- package/es/robust-predicates.js +6 -0
- package/lib/d3-array.js +6 -0
- package/lib/d3-color.js +6 -0
- package/lib/d3-delaunay.js +6 -0
- package/lib/d3-format.js +6 -0
- package/lib/d3-interpolate.js +6 -0
- package/lib/d3-path.js +6 -0
- package/lib/d3-scale.js +6 -0
- package/lib/d3-shape.js +6 -0
- package/lib/d3-time-format.js +6 -0
- package/lib/d3-time.js +6 -0
- package/lib/delaunator.js +6 -0
- package/lib/internmap.js +6 -0
- package/lib/robust-predicates.js +6 -0
- package/lib-vendor/d3-array/LICENSE +13 -0
- package/lib-vendor/d3-array/dist/d3-array.js +1349 -0
- package/lib-vendor/d3-array/dist/d3-array.min.js +777 -0
- package/lib-vendor/d3-array/src/array.js +9 -0
- package/lib-vendor/d3-array/src/ascending.js +9 -0
- package/lib-vendor/d3-array/src/bin.js +126 -0
- package/lib-vendor/d3-array/src/bisect.js +15 -0
- package/lib-vendor/d3-array/src/bisector.js +59 -0
- package/lib-vendor/d3-array/src/blur.js +122 -0
- package/lib-vendor/d3-array/src/constant.js +9 -0
- package/lib-vendor/d3-array/src/count.js +24 -0
- package/lib-vendor/d3-array/src/cross.js +35 -0
- package/lib-vendor/d3-array/src/cumsum.js +11 -0
- package/lib-vendor/d3-array/src/descending.js +9 -0
- package/lib-vendor/d3-array/src/deviation.js +12 -0
- package/lib-vendor/d3-array/src/difference.js +16 -0
- package/lib-vendor/d3-array/src/disjoint.js +24 -0
- package/lib-vendor/d3-array/src/every.js +16 -0
- package/lib-vendor/d3-array/src/extent.js +35 -0
- package/lib-vendor/d3-array/src/filter.js +17 -0
- package/lib-vendor/d3-array/src/fsum.js +77 -0
- package/lib-vendor/d3-array/src/greatest.js +31 -0
- package/lib-vendor/d3-array/src/greatestIndex.js +23 -0
- package/lib-vendor/d3-array/src/group.js +67 -0
- package/lib-vendor/d3-array/src/groupSort.js +15 -0
- package/lib-vendor/d3-array/src/identity.js +9 -0
- package/lib-vendor/d3-array/src/index.js +539 -0
- package/lib-vendor/d3-array/src/intersection.js +23 -0
- package/lib-vendor/d3-array/src/least.js +31 -0
- package/lib-vendor/d3-array/src/leastIndex.js +23 -0
- package/lib-vendor/d3-array/src/map.js +11 -0
- package/lib-vendor/d3-array/src/max.js +24 -0
- package/lib-vendor/d3-array/src/maxIndex.js +26 -0
- package/lib-vendor/d3-array/src/mean.js +25 -0
- package/lib-vendor/d3-array/src/median.js +16 -0
- package/lib-vendor/d3-array/src/merge.js +14 -0
- package/lib-vendor/d3-array/src/min.js +24 -0
- package/lib-vendor/d3-array/src/minIndex.js +26 -0
- package/lib-vendor/d3-array/src/mode.js +33 -0
- package/lib-vendor/d3-array/src/nice.js +23 -0
- package/lib-vendor/d3-array/src/number.js +26 -0
- package/lib-vendor/d3-array/src/pairs.js +21 -0
- package/lib-vendor/d3-array/src/permute.js +9 -0
- package/lib-vendor/d3-array/src/quantile.js +55 -0
- package/lib-vendor/d3-array/src/quickselect.js +47 -0
- package/lib-vendor/d3-array/src/range.js +16 -0
- package/lib-vendor/d3-array/src/rank.js +30 -0
- package/lib-vendor/d3-array/src/reduce.js +28 -0
- package/lib-vendor/d3-array/src/reverse.js +10 -0
- package/lib-vendor/d3-array/src/scan.js +12 -0
- package/lib-vendor/d3-array/src/shuffle.js +20 -0
- package/lib-vendor/d3-array/src/some.js +16 -0
- package/lib-vendor/d3-array/src/sort.js +45 -0
- package/lib-vendor/d3-array/src/subset.js +11 -0
- package/lib-vendor/d3-array/src/sum.js +24 -0
- package/lib-vendor/d3-array/src/superset.js +28 -0
- package/lib-vendor/d3-array/src/threshold/freedmanDiaconis.js +14 -0
- package/lib-vendor/d3-array/src/threshold/scott.js +14 -0
- package/lib-vendor/d3-array/src/threshold/sturges.js +11 -0
- package/lib-vendor/d3-array/src/ticks.js +60 -0
- package/lib-vendor/d3-array/src/transpose.js +20 -0
- package/lib-vendor/d3-array/src/union.js +16 -0
- package/lib-vendor/d3-array/src/variance.js +31 -0
- package/lib-vendor/d3-array/src/zip.js +11 -0
- package/lib-vendor/d3-color/LICENSE +13 -0
- package/lib-vendor/d3-color/dist/d3-color.js +532 -0
- package/lib-vendor/d3-color/dist/d3-color.min.js +446 -0
- package/lib-vendor/d3-color/src/color.js +366 -0
- package/lib-vendor/d3-color/src/cubehelix.js +61 -0
- package/lib-vendor/d3-color/src/define.js +16 -0
- package/lib-vendor/d3-color/src/index.js +59 -0
- package/lib-vendor/d3-color/src/lab.js +117 -0
- package/lib-vendor/d3-color/src/math.js +8 -0
- package/lib-vendor/d3-delaunay/LICENSE +14 -0
- package/lib-vendor/d3-delaunay/dist/d3-delaunay.js +1398 -0
- package/lib-vendor/d3-delaunay/dist/d3-delaunay.min.js +853 -0
- package/lib-vendor/d3-delaunay/src/delaunay.js +282 -0
- package/lib-vendor/d3-delaunay/src/index.js +20 -0
- package/lib-vendor/d3-delaunay/src/path.js +43 -0
- package/lib-vendor/d3-delaunay/src/polygon.js +24 -0
- package/lib-vendor/d3-delaunay/src/voronoi.js +390 -0
- package/lib-vendor/d3-format/LICENSE +13 -0
- package/lib-vendor/d3-format/dist/d3-format.js +313 -0
- package/lib-vendor/d3-format/dist/d3-format.min.js +193 -0
- package/lib-vendor/d3-format/src/defaultLocale.js +23 -0
- package/lib-vendor/d3-format/src/exponent.js +10 -0
- package/lib-vendor/d3-format/src/formatDecimal.js +23 -0
- package/lib-vendor/d3-format/src/formatGroup.js +22 -0
- package/lib-vendor/d3-format/src/formatNumerals.js +13 -0
- package/lib-vendor/d3-format/src/formatPrefixAuto.js +18 -0
- package/lib-vendor/d3-format/src/formatRounded.js +14 -0
- package/lib-vendor/d3-format/src/formatSpecifier.js +42 -0
- package/lib-vendor/d3-format/src/formatTrim.js +25 -0
- package/lib-vendor/d3-format/src/formatTypes.js +25 -0
- package/lib-vendor/d3-format/src/identity.js +9 -0
- package/lib-vendor/d3-format/src/index.js +68 -0
- package/lib-vendor/d3-format/src/locale.js +152 -0
- package/lib-vendor/d3-format/src/precisionFixed.js +11 -0
- package/lib-vendor/d3-format/src/precisionPrefix.js +11 -0
- package/lib-vendor/d3-format/src/precisionRound.js +12 -0
- package/lib-vendor/d3-interpolate/LICENSE +13 -0
- package/lib-vendor/d3-interpolate/dist/d3-interpolate.js +543 -0
- package/lib-vendor/d3-interpolate/dist/d3-interpolate.min.js +362 -0
- package/lib-vendor/d3-interpolate/src/array.js +28 -0
- package/lib-vendor/d3-interpolate/src/basis.js +23 -0
- package/lib-vendor/d3-interpolate/src/basisClosed.js +18 -0
- package/lib-vendor/d3-interpolate/src/color.js +33 -0
- package/lib-vendor/d3-interpolate/src/constant.js +8 -0
- package/lib-vendor/d3-interpolate/src/cubehelix.js +32 -0
- package/lib-vendor/d3-interpolate/src/date.js +12 -0
- package/lib-vendor/d3-interpolate/src/discrete.js +12 -0
- package/lib-vendor/d3-interpolate/src/hcl.js +27 -0
- package/lib-vendor/d3-interpolate/src/hsl.js +27 -0
- package/lib-vendor/d3-interpolate/src/hue.js +14 -0
- package/lib-vendor/d3-interpolate/src/index.js +191 -0
- package/lib-vendor/d3-interpolate/src/lab.js +22 -0
- package/lib-vendor/d3-interpolate/src/number.js +11 -0
- package/lib-vendor/d3-interpolate/src/numberArray.js +20 -0
- package/lib-vendor/d3-interpolate/src/object.js +26 -0
- package/lib-vendor/d3-interpolate/src/piecewise.js +20 -0
- package/lib-vendor/d3-interpolate/src/quantize.js +11 -0
- package/lib-vendor/d3-interpolate/src/rgb.js +59 -0
- package/lib-vendor/d3-interpolate/src/round.js +11 -0
- package/lib-vendor/d3-interpolate/src/string.js +75 -0
- package/lib-vendor/d3-interpolate/src/transform/decompose.js +31 -0
- package/lib-vendor/d3-interpolate/src/transform/index.js +83 -0
- package/lib-vendor/d3-interpolate/src/transform/parse.js +25 -0
- package/lib-vendor/d3-interpolate/src/value.js +23 -0
- package/lib-vendor/d3-interpolate/src/zoom.js +66 -0
- package/lib-vendor/d3-path/LICENSE +13 -0
- package/lib-vendor/d3-path/dist/d3-path.js +161 -0
- package/lib-vendor/d3-path/dist/d3-path.min.js +92 -0
- package/lib-vendor/d3-path/src/index.js +24 -0
- package/lib-vendor/d3-path/src/path.js +158 -0
- package/lib-vendor/d3-scale/LICENSE +13 -0
- package/lib-vendor/d3-scale/dist/d3-scale.js +944 -0
- package/lib-vendor/d3-scale/dist/d3-scale.min.js +690 -0
- package/lib-vendor/d3-scale/src/band.js +87 -0
- package/lib-vendor/d3-scale/src/colors.js +11 -0
- package/lib-vendor/d3-scale/src/constant.js +11 -0
- package/lib-vendor/d3-scale/src/continuous.js +116 -0
- package/lib-vendor/d3-scale/src/diverging.js +91 -0
- package/lib-vendor/d3-scale/src/identity.js +27 -0
- package/lib-vendor/d3-scale/src/index.js +193 -0
- package/lib-vendor/d3-scale/src/init.js +38 -0
- package/lib-vendor/d3-scale/src/linear.js +67 -0
- package/lib-vendor/d3-scale/src/log.js +123 -0
- package/lib-vendor/d3-scale/src/nice.js +21 -0
- package/lib-vendor/d3-scale/src/number.js +9 -0
- package/lib-vendor/d3-scale/src/ordinal.js +44 -0
- package/lib-vendor/d3-scale/src/pow.js +44 -0
- package/lib-vendor/d3-scale/src/quantile.js +48 -0
- package/lib-vendor/d3-scale/src/quantize.js +46 -0
- package/lib-vendor/d3-scale/src/radial.js +53 -0
- package/lib-vendor/d3-scale/src/sequential.js +90 -0
- package/lib-vendor/d3-scale/src/sequentialQuantile.js +38 -0
- package/lib-vendor/d3-scale/src/symlog.js +35 -0
- package/lib-vendor/d3-scale/src/threshold.js +34 -0
- package/lib-vendor/d3-scale/src/tickFormat.js +37 -0
- package/lib-vendor/d3-scale/src/time.js +62 -0
- package/lib-vendor/d3-scale/src/utcTime.js +13 -0
- package/lib-vendor/d3-shape/LICENSE +13 -0
- package/lib-vendor/d3-shape/dist/d3-shape.js +2004 -0
- package/lib-vendor/d3-shape/dist/d3-shape.min.js +1389 -0
- package/lib-vendor/d3-shape/src/arc.js +250 -0
- package/lib-vendor/d3-shape/src/area.js +98 -0
- package/lib-vendor/d3-shape/src/areaRadial.js +42 -0
- package/lib-vendor/d3-shape/src/array.js +12 -0
- package/lib-vendor/d3-shape/src/constant.js +11 -0
- package/lib-vendor/d3-shape/src/curve/basis.js +62 -0
- package/lib-vendor/d3-shape/src/curve/basisClosed.js +70 -0
- package/lib-vendor/d3-shape/src/curve/basisOpen.js +54 -0
- package/lib-vendor/d3-shape/src/curve/bump.js +81 -0
- package/lib-vendor/d3-shape/src/curve/bundle.js +50 -0
- package/lib-vendor/d3-shape/src/curve/cardinal.js +69 -0
- package/lib-vendor/d3-shape/src/curve/cardinalClosed.js +76 -0
- package/lib-vendor/d3-shape/src/curve/cardinalOpen.js +60 -0
- package/lib-vendor/d3-shape/src/curve/catmullRom.js +92 -0
- package/lib-vendor/d3-shape/src/curve/catmullRomClosed.js +83 -0
- package/lib-vendor/d3-shape/src/curve/catmullRomOpen.js +67 -0
- package/lib-vendor/d3-shape/src/curve/linear.js +42 -0
- package/lib-vendor/d3-shape/src/curve/linearClosed.js +28 -0
- package/lib-vendor/d3-shape/src/curve/monotone.js +121 -0
- package/lib-vendor/d3-shape/src/curve/natural.js +67 -0
- package/lib-vendor/d3-shape/src/curve/radial.js +37 -0
- package/lib-vendor/d3-shape/src/curve/step.js +63 -0
- package/lib-vendor/d3-shape/src/descending.js +9 -0
- package/lib-vendor/d3-shape/src/identity.js +9 -0
- package/lib-vendor/d3-shape/src/index.js +436 -0
- package/lib-vendor/d3-shape/src/line.js +52 -0
- package/lib-vendor/d3-shape/src/lineRadial.js +24 -0
- package/lib-vendor/d3-shape/src/link.js +70 -0
- package/lib-vendor/d3-shape/src/math.js +26 -0
- package/lib-vendor/d3-shape/src/noop.js +7 -0
- package/lib-vendor/d3-shape/src/offset/diverging.js +20 -0
- package/lib-vendor/d3-shape/src/offset/expand.js +16 -0
- package/lib-vendor/d3-shape/src/offset/none.js +15 -0
- package/lib-vendor/d3-shape/src/offset/silhouette.js +16 -0
- package/lib-vendor/d3-shape/src/offset/wiggle.js +30 -0
- package/lib-vendor/d3-shape/src/order/appearance.js +23 -0
- package/lib-vendor/d3-shape/src/order/ascending.js +23 -0
- package/lib-vendor/d3-shape/src/order/descending.js +11 -0
- package/lib-vendor/d3-shape/src/order/insideOut.js +31 -0
- package/lib-vendor/d3-shape/src/order/none.js +12 -0
- package/lib-vendor/d3-shape/src/order/reverse.js +11 -0
- package/lib-vendor/d3-shape/src/path.js +22 -0
- package/lib-vendor/d3-shape/src/pie.js +79 -0
- package/lib-vendor/d3-shape/src/point.js +13 -0
- package/lib-vendor/d3-shape/src/pointRadial.js +9 -0
- package/lib-vendor/d3-shape/src/stack.js +55 -0
- package/lib-vendor/d3-shape/src/symbol/asterisk.js +21 -0
- package/lib-vendor/d3-shape/src/symbol/circle.js +14 -0
- package/lib-vendor/d3-shape/src/symbol/cross.js +25 -0
- package/lib-vendor/d3-shape/src/symbol/diamond.js +20 -0
- package/lib-vendor/d3-shape/src/symbol/diamond2.js +17 -0
- package/lib-vendor/d3-shape/src/symbol/plus.js +16 -0
- package/lib-vendor/d3-shape/src/symbol/square.js +14 -0
- package/lib-vendor/d3-shape/src/symbol/square2.js +17 -0
- package/lib-vendor/d3-shape/src/symbol/star.js +28 -0
- package/lib-vendor/d3-shape/src/symbol/times.js +16 -0
- package/lib-vendor/d3-shape/src/symbol/triangle.js +17 -0
- package/lib-vendor/d3-shape/src/symbol/triangle2.js +19 -0
- package/lib-vendor/d3-shape/src/symbol/wye.js +32 -0
- package/lib-vendor/d3-shape/src/symbol.js +50 -0
- package/lib-vendor/d3-time/LICENSE +13 -0
- package/lib-vendor/d3-time/dist/d3-time.js +367 -0
- package/lib-vendor/d3-time/dist/d3-time.min.js +190 -0
- package/lib-vendor/d3-time/src/day.js +30 -0
- package/lib-vendor/d3-time/src/duration.js +13 -0
- package/lib-vendor/d3-time/src/hour.js +28 -0
- package/lib-vendor/d3-time/src/index.js +417 -0
- package/lib-vendor/d3-time/src/interval.js +61 -0
- package/lib-vendor/d3-time/src/millisecond.js +29 -0
- package/lib-vendor/d3-time/src/minute.js +28 -0
- package/lib-vendor/d3-time/src/month.js +29 -0
- package/lib-vendor/d3-time/src/second.js +18 -0
- package/lib-vendor/d3-time/src/ticks.js +41 -0
- package/lib-vendor/d3-time/src/week.js +56 -0
- package/lib-vendor/d3-time/src/year.js +51 -0
- package/lib-vendor/d3-time-format/LICENSE +13 -0
- package/lib-vendor/d3-time-format/dist/d3-time-format.js +648 -0
- package/lib-vendor/d3-time-format/dist/d3-time-format.min.js +528 -0
- package/lib-vendor/d3-time-format/src/defaultLocale.js +32 -0
- package/lib-vendor/d3-time-format/src/index.js +60 -0
- package/lib-vendor/d3-time-format/src/isoFormat.js +13 -0
- package/lib-vendor/d3-time-format/src/isoParse.js +14 -0
- package/lib-vendor/d3-time-format/src/locale.js +606 -0
- package/lib-vendor/delaunator/LICENSE +15 -0
- package/lib-vendor/delaunator/delaunator.js +688 -0
- package/lib-vendor/delaunator/delaunator.min.js +316 -0
- package/lib-vendor/delaunator/index.js +440 -0
- package/lib-vendor/internmap/LICENSE +13 -0
- package/lib-vendor/internmap/dist/internmap.js +93 -0
- package/lib-vendor/internmap/dist/internmap.min.js +81 -0
- package/lib-vendor/internmap/src/index.js +87 -0
- package/lib-vendor/robust-predicates/LICENSE +24 -0
- package/lib-vendor/robust-predicates/esm/incircle.js +667 -0
- package/lib-vendor/robust-predicates/esm/insphere.js +693 -0
- package/lib-vendor/robust-predicates/esm/orient2d.js +174 -0
- package/lib-vendor/robust-predicates/esm/orient3d.js +422 -0
- package/lib-vendor/robust-predicates/esm/util.js +147 -0
- package/lib-vendor/robust-predicates/index.js +57 -0
- package/lib-vendor/robust-predicates/umd/incircle.js +798 -0
- package/lib-vendor/robust-predicates/umd/incircle.min.js +170 -0
- package/lib-vendor/robust-predicates/umd/insphere.js +828 -0
- package/lib-vendor/robust-predicates/umd/insphere.min.js +223 -0
- package/lib-vendor/robust-predicates/umd/orient2d.js +260 -0
- package/lib-vendor/robust-predicates/umd/orient2d.min.js +69 -0
- package/lib-vendor/robust-predicates/umd/orient3d.js +550 -0
- package/lib-vendor/robust-predicates/umd/orient3d.min.js +133 -0
- package/lib-vendor/robust-predicates/umd/predicates.js +2073 -0
- package/lib-vendor/robust-predicates/umd/predicates.min.js +468 -0
- package/package.json +63 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
!function (t, i) {
|
|
4
|
+
"object" == typeof exports && "undefined" != typeof module ? module.exports = i() : "function" == typeof define && define.amd ? define(i) : (t = "undefined" != typeof globalThis ? globalThis : t || self).Delaunator = i();
|
|
5
|
+
}(this, function () {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const t = 11102230246251565e-32,
|
|
9
|
+
i = 134217729,
|
|
10
|
+
s = (3 + 8 * t) * t;
|
|
11
|
+
function e(t, i, s, e, n) {
|
|
12
|
+
let h,
|
|
13
|
+
r,
|
|
14
|
+
l,
|
|
15
|
+
o,
|
|
16
|
+
a = i[0],
|
|
17
|
+
f = e[0],
|
|
18
|
+
c = 0,
|
|
19
|
+
u = 0;
|
|
20
|
+
f > a == f > -a ? (h = a, a = i[++c]) : (h = f, f = e[++u]);
|
|
21
|
+
let _ = 0;
|
|
22
|
+
if (c < t && u < s) for (f > a == f > -a ? (r = a + h, l = h - (r - a), a = i[++c]) : (r = f + h, l = h - (r - f), f = e[++u]), h = r, 0 !== l && (n[_++] = l); c < t && u < s;) f > a == f > -a ? (r = h + a, o = r - h, l = h - (r - o) + (a - o), a = i[++c]) : (r = h + f, o = r - h, l = h - (r - o) + (f - o), f = e[++u]), h = r, 0 !== l && (n[_++] = l);
|
|
23
|
+
for (; c < t;) r = h + a, o = r - h, l = h - (r - o) + (a - o), a = i[++c], h = r, 0 !== l && (n[_++] = l);
|
|
24
|
+
for (; u < s;) r = h + f, o = r - h, l = h - (r - o) + (f - o), f = e[++u], h = r, 0 !== l && (n[_++] = l);
|
|
25
|
+
return 0 === h && 0 !== _ || (n[_++] = h), _;
|
|
26
|
+
}
|
|
27
|
+
function n(t) {
|
|
28
|
+
return new Float64Array(t);
|
|
29
|
+
}
|
|
30
|
+
const h = 22204460492503146e-32,
|
|
31
|
+
r = 11093356479670487e-47,
|
|
32
|
+
l = n(4),
|
|
33
|
+
o = n(8),
|
|
34
|
+
a = n(12),
|
|
35
|
+
f = n(16),
|
|
36
|
+
c = n(4);
|
|
37
|
+
function u(t, n, u, _, d, g) {
|
|
38
|
+
const y = (n - g) * (u - d),
|
|
39
|
+
w = (t - d) * (_ - g),
|
|
40
|
+
b = y - w,
|
|
41
|
+
A = Math.abs(y + w);
|
|
42
|
+
return Math.abs(b) >= 33306690738754716e-32 * A ? b : -function (t, n, u, _, d, g, y) {
|
|
43
|
+
let w, b, A, k, M, p, x, S, T, z, U, m, K, L, v, F, P, E;
|
|
44
|
+
const H = t - d,
|
|
45
|
+
I = u - d,
|
|
46
|
+
N = n - g,
|
|
47
|
+
j = _ - g;
|
|
48
|
+
L = H * j, p = i * H, x = p - (p - H), S = H - x, p = i * j, T = p - (p - j), z = j - T, v = S * z - (L - x * T - S * T - x * z), F = N * I, p = i * N, x = p - (p - N), S = N - x, p = i * I, T = p - (p - I), z = I - T, P = S * z - (F - x * T - S * T - x * z), U = v - P, M = v - U, l[0] = v - (U + M) + (M - P), m = L + U, M = m - L, K = L - (m - M) + (U - M), U = K - F, M = K - U, l[1] = K - (U + M) + (M - F), E = m + U, M = E - m, l[2] = m - (E - M) + (U - M), l[3] = E;
|
|
49
|
+
let q = function (t, i) {
|
|
50
|
+
let s = i[0];
|
|
51
|
+
for (let e = 1; e < t; e++) s += i[e];
|
|
52
|
+
return s;
|
|
53
|
+
}(4, l),
|
|
54
|
+
D = h * y;
|
|
55
|
+
if (q >= D || -q >= D) return q;
|
|
56
|
+
if (M = t - H, w = t - (H + M) + (M - d), M = u - I, A = u - (I + M) + (M - d), M = n - N, b = n - (N + M) + (M - g), M = _ - j, k = _ - (j + M) + (M - g), 0 === w && 0 === b && 0 === A && 0 === k) return q;
|
|
57
|
+
if (D = r * y + s * Math.abs(q), q += H * k + j * w - (N * A + I * b), q >= D || -q >= D) return q;
|
|
58
|
+
L = w * j, p = i * w, x = p - (p - w), S = w - x, p = i * j, T = p - (p - j), z = j - T, v = S * z - (L - x * T - S * T - x * z), F = b * I, p = i * b, x = p - (p - b), S = b - x, p = i * I, T = p - (p - I), z = I - T, P = S * z - (F - x * T - S * T - x * z), U = v - P, M = v - U, c[0] = v - (U + M) + (M - P), m = L + U, M = m - L, K = L - (m - M) + (U - M), U = K - F, M = K - U, c[1] = K - (U + M) + (M - F), E = m + U, M = E - m, c[2] = m - (E - M) + (U - M), c[3] = E;
|
|
59
|
+
const B = e(4, l, 4, c, o);
|
|
60
|
+
L = H * k, p = i * H, x = p - (p - H), S = H - x, p = i * k, T = p - (p - k), z = k - T, v = S * z - (L - x * T - S * T - x * z), F = N * A, p = i * N, x = p - (p - N), S = N - x, p = i * A, T = p - (p - A), z = A - T, P = S * z - (F - x * T - S * T - x * z), U = v - P, M = v - U, c[0] = v - (U + M) + (M - P), m = L + U, M = m - L, K = L - (m - M) + (U - M), U = K - F, M = K - U, c[1] = K - (U + M) + (M - F), E = m + U, M = E - m, c[2] = m - (E - M) + (U - M), c[3] = E;
|
|
61
|
+
const C = e(B, o, 4, c, a);
|
|
62
|
+
L = w * k, p = i * w, x = p - (p - w), S = w - x, p = i * k, T = p - (p - k), z = k - T, v = S * z - (L - x * T - S * T - x * z), F = b * A, p = i * b, x = p - (p - b), S = b - x, p = i * A, T = p - (p - A), z = A - T, P = S * z - (F - x * T - S * T - x * z), U = v - P, M = v - U, c[0] = v - (U + M) + (M - P), m = L + U, M = m - L, K = L - (m - M) + (U - M), U = K - F, M = K - U, c[1] = K - (U + M) + (M - F), E = m + U, M = E - m, c[2] = m - (E - M) + (U - M), c[3] = E;
|
|
63
|
+
const G = e(C, a, 4, c, f);
|
|
64
|
+
return f[G - 1];
|
|
65
|
+
}(t, n, u, _, d, g, A);
|
|
66
|
+
}
|
|
67
|
+
const _ = Math.pow(2, -52),
|
|
68
|
+
d = new Uint32Array(512);
|
|
69
|
+
class g {
|
|
70
|
+
static from(t, i = M, s = p) {
|
|
71
|
+
const e = t.length,
|
|
72
|
+
n = new Float64Array(2 * e);
|
|
73
|
+
for (let h = 0; h < e; h++) {
|
|
74
|
+
const e = t[h];
|
|
75
|
+
n[2 * h] = i(e), n[2 * h + 1] = s(e);
|
|
76
|
+
}
|
|
77
|
+
return new g(n);
|
|
78
|
+
}
|
|
79
|
+
constructor(t) {
|
|
80
|
+
const i = t.length >> 1;
|
|
81
|
+
if (i > 0 && "number" != typeof t[0]) throw new Error("Expected coords to contain numbers.");
|
|
82
|
+
this.coords = t;
|
|
83
|
+
const s = Math.max(2 * i - 5, 0);
|
|
84
|
+
this._triangles = new Uint32Array(3 * s), this._halfedges = new Int32Array(3 * s), this._hashSize = Math.ceil(Math.sqrt(i)), this._hullPrev = new Uint32Array(i), this._hullNext = new Uint32Array(i), this._hullTri = new Uint32Array(i), this._hullHash = new Int32Array(this._hashSize), this._ids = new Uint32Array(i), this._dists = new Float64Array(i), this.update();
|
|
85
|
+
}
|
|
86
|
+
update() {
|
|
87
|
+
const {
|
|
88
|
+
coords: t,
|
|
89
|
+
_hullPrev: i,
|
|
90
|
+
_hullNext: s,
|
|
91
|
+
_hullTri: e,
|
|
92
|
+
_hullHash: n
|
|
93
|
+
} = this,
|
|
94
|
+
h = t.length >> 1;
|
|
95
|
+
let r = 1 / 0,
|
|
96
|
+
l = 1 / 0,
|
|
97
|
+
o = -1 / 0,
|
|
98
|
+
a = -1 / 0;
|
|
99
|
+
for (let i = 0; i < h; i++) {
|
|
100
|
+
const s = t[2 * i],
|
|
101
|
+
e = t[2 * i + 1];
|
|
102
|
+
s < r && (r = s), e < l && (l = e), s > o && (o = s), e > a && (a = e), this._ids[i] = i;
|
|
103
|
+
}
|
|
104
|
+
const f = (r + o) / 2,
|
|
105
|
+
c = (l + a) / 2;
|
|
106
|
+
let d, g, w;
|
|
107
|
+
for (let i = 0, s = 1 / 0; i < h; i++) {
|
|
108
|
+
const e = y(f, c, t[2 * i], t[2 * i + 1]);
|
|
109
|
+
e < s && (d = i, s = e);
|
|
110
|
+
}
|
|
111
|
+
const k = t[2 * d],
|
|
112
|
+
M = t[2 * d + 1];
|
|
113
|
+
for (let i = 0, s = 1 / 0; i < h; i++) {
|
|
114
|
+
if (i === d) continue;
|
|
115
|
+
const e = y(k, M, t[2 * i], t[2 * i + 1]);
|
|
116
|
+
e < s && e > 0 && (g = i, s = e);
|
|
117
|
+
}
|
|
118
|
+
let p = t[2 * g],
|
|
119
|
+
x = t[2 * g + 1],
|
|
120
|
+
S = 1 / 0;
|
|
121
|
+
for (let i = 0; i < h; i++) {
|
|
122
|
+
if (i === d || i === g) continue;
|
|
123
|
+
const s = b(k, M, p, x, t[2 * i], t[2 * i + 1]);
|
|
124
|
+
s < S && (w = i, S = s);
|
|
125
|
+
}
|
|
126
|
+
let T = t[2 * w],
|
|
127
|
+
z = t[2 * w + 1];
|
|
128
|
+
if (S === 1 / 0) {
|
|
129
|
+
for (let i = 0; i < h; i++) this._dists[i] = t[2 * i] - t[0] || t[2 * i + 1] - t[1];
|
|
130
|
+
A(this._ids, this._dists, 0, h - 1);
|
|
131
|
+
const i = new Uint32Array(h);
|
|
132
|
+
let s = 0;
|
|
133
|
+
for (let t = 0, e = -1 / 0; t < h; t++) {
|
|
134
|
+
const n = this._ids[t],
|
|
135
|
+
h = this._dists[n];
|
|
136
|
+
h > e && (i[s++] = n, e = h);
|
|
137
|
+
}
|
|
138
|
+
return this.hull = i.subarray(0, s), this.triangles = new Uint32Array(0), void (this.halfedges = new Uint32Array(0));
|
|
139
|
+
}
|
|
140
|
+
if (u(k, M, p, x, T, z) < 0) {
|
|
141
|
+
const t = g,
|
|
142
|
+
i = p,
|
|
143
|
+
s = x;
|
|
144
|
+
g = w, p = T, x = z, w = t, T = i, z = s;
|
|
145
|
+
}
|
|
146
|
+
const U = function (t, i, s, e, n, h) {
|
|
147
|
+
const r = s - t,
|
|
148
|
+
l = e - i,
|
|
149
|
+
o = n - t,
|
|
150
|
+
a = h - i,
|
|
151
|
+
f = r * r + l * l,
|
|
152
|
+
c = o * o + a * a,
|
|
153
|
+
u = .5 / (r * a - l * o);
|
|
154
|
+
return {
|
|
155
|
+
x: t + (a * f - l * c) * u,
|
|
156
|
+
y: i + (r * c - o * f) * u
|
|
157
|
+
};
|
|
158
|
+
}(k, M, p, x, T, z);
|
|
159
|
+
this._cx = U.x, this._cy = U.y;
|
|
160
|
+
for (let i = 0; i < h; i++) this._dists[i] = y(t[2 * i], t[2 * i + 1], U.x, U.y);
|
|
161
|
+
A(this._ids, this._dists, 0, h - 1), this._hullStart = d;
|
|
162
|
+
let m = 3;
|
|
163
|
+
s[d] = i[w] = g, s[g] = i[d] = w, s[w] = i[g] = d, e[d] = 0, e[g] = 1, e[w] = 2, n.fill(-1), n[this._hashKey(k, M)] = d, n[this._hashKey(p, x)] = g, n[this._hashKey(T, z)] = w, this.trianglesLen = 0, this._addTriangle(d, g, w, -1, -1, -1);
|
|
164
|
+
for (let h, r, l = 0; l < this._ids.length; l++) {
|
|
165
|
+
const o = this._ids[l],
|
|
166
|
+
a = t[2 * o],
|
|
167
|
+
f = t[2 * o + 1];
|
|
168
|
+
if (l > 0 && Math.abs(a - h) <= _ && Math.abs(f - r) <= _) continue;
|
|
169
|
+
if (h = a, r = f, o === d || o === g || o === w) continue;
|
|
170
|
+
let c = 0;
|
|
171
|
+
for (let t = 0, i = this._hashKey(a, f); t < this._hashSize && (c = n[(i + t) % this._hashSize], -1 === c || c === s[c]); t++);
|
|
172
|
+
c = i[c];
|
|
173
|
+
let y,
|
|
174
|
+
b = c;
|
|
175
|
+
for (; y = s[b], u(a, f, t[2 * b], t[2 * b + 1], t[2 * y], t[2 * y + 1]) >= 0;) if (b = y, b === c) {
|
|
176
|
+
b = -1;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
if (-1 === b) continue;
|
|
180
|
+
let A = this._addTriangle(b, o, s[b], -1, -1, e[b]);
|
|
181
|
+
e[o] = this._legalize(A + 2), e[b] = A, m++;
|
|
182
|
+
let k = s[b];
|
|
183
|
+
for (; y = s[k], u(a, f, t[2 * k], t[2 * k + 1], t[2 * y], t[2 * y + 1]) < 0;) A = this._addTriangle(k, o, y, e[o], -1, e[k]), e[o] = this._legalize(A + 2), s[k] = k, m--, k = y;
|
|
184
|
+
if (b === c) for (; y = i[b], u(a, f, t[2 * y], t[2 * y + 1], t[2 * b], t[2 * b + 1]) < 0;) A = this._addTriangle(y, o, b, -1, e[b], e[y]), this._legalize(A + 2), e[y] = A, s[b] = b, m--, b = y;
|
|
185
|
+
this._hullStart = i[o] = b, s[b] = i[k] = o, s[o] = k, n[this._hashKey(a, f)] = o, n[this._hashKey(t[2 * b], t[2 * b + 1])] = b;
|
|
186
|
+
}
|
|
187
|
+
this.hull = new Uint32Array(m);
|
|
188
|
+
for (let t = 0, i = this._hullStart; t < m; t++) this.hull[t] = i, i = s[i];
|
|
189
|
+
this.triangles = this._triangles.subarray(0, this.trianglesLen), this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
|
|
190
|
+
}
|
|
191
|
+
_hashKey(t, i) {
|
|
192
|
+
return Math.floor(function (t, i) {
|
|
193
|
+
const s = t / (Math.abs(t) + Math.abs(i));
|
|
194
|
+
return (i > 0 ? 3 - s : 1 + s) / 4;
|
|
195
|
+
}(t - this._cx, i - this._cy) * this._hashSize) % this._hashSize;
|
|
196
|
+
}
|
|
197
|
+
_legalize(t) {
|
|
198
|
+
const {
|
|
199
|
+
_triangles: i,
|
|
200
|
+
_halfedges: s,
|
|
201
|
+
coords: e
|
|
202
|
+
} = this;
|
|
203
|
+
let n = 0,
|
|
204
|
+
h = 0;
|
|
205
|
+
for (;;) {
|
|
206
|
+
const r = s[t],
|
|
207
|
+
l = t - t % 3;
|
|
208
|
+
if (h = l + (t + 2) % 3, -1 === r) {
|
|
209
|
+
if (0 === n) break;
|
|
210
|
+
t = d[--n];
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
const o = r - r % 3,
|
|
214
|
+
a = l + (t + 1) % 3,
|
|
215
|
+
f = o + (r + 2) % 3,
|
|
216
|
+
c = i[h],
|
|
217
|
+
u = i[t],
|
|
218
|
+
_ = i[a],
|
|
219
|
+
g = i[f];
|
|
220
|
+
if (w(e[2 * c], e[2 * c + 1], e[2 * u], e[2 * u + 1], e[2 * _], e[2 * _ + 1], e[2 * g], e[2 * g + 1])) {
|
|
221
|
+
i[t] = g, i[r] = c;
|
|
222
|
+
const e = s[f];
|
|
223
|
+
if (-1 === e) {
|
|
224
|
+
let i = this._hullStart;
|
|
225
|
+
do {
|
|
226
|
+
if (this._hullTri[i] === f) {
|
|
227
|
+
this._hullTri[i] = t;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
i = this._hullPrev[i];
|
|
231
|
+
} while (i !== this._hullStart);
|
|
232
|
+
}
|
|
233
|
+
this._link(t, e), this._link(r, s[h]), this._link(h, f);
|
|
234
|
+
const l = o + (r + 1) % 3;
|
|
235
|
+
n < d.length && (d[n++] = l);
|
|
236
|
+
} else {
|
|
237
|
+
if (0 === n) break;
|
|
238
|
+
t = d[--n];
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return h;
|
|
242
|
+
}
|
|
243
|
+
_link(t, i) {
|
|
244
|
+
this._halfedges[t] = i, -1 !== i && (this._halfedges[i] = t);
|
|
245
|
+
}
|
|
246
|
+
_addTriangle(t, i, s, e, n, h) {
|
|
247
|
+
const r = this.trianglesLen;
|
|
248
|
+
return this._triangles[r] = t, this._triangles[r + 1] = i, this._triangles[r + 2] = s, this._link(r, e), this._link(r + 1, n), this._link(r + 2, h), this.trianglesLen += 3, r;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
function y(t, i, s, e) {
|
|
252
|
+
const n = t - s,
|
|
253
|
+
h = i - e;
|
|
254
|
+
return n * n + h * h;
|
|
255
|
+
}
|
|
256
|
+
function w(t, i, s, e, n, h, r, l) {
|
|
257
|
+
const o = t - r,
|
|
258
|
+
a = i - l,
|
|
259
|
+
f = s - r,
|
|
260
|
+
c = e - l,
|
|
261
|
+
u = n - r,
|
|
262
|
+
_ = h - l,
|
|
263
|
+
d = f * f + c * c,
|
|
264
|
+
g = u * u + _ * _;
|
|
265
|
+
return o * (c * g - d * _) - a * (f * g - d * u) + (o * o + a * a) * (f * _ - c * u) < 0;
|
|
266
|
+
}
|
|
267
|
+
function b(t, i, s, e, n, h) {
|
|
268
|
+
const r = s - t,
|
|
269
|
+
l = e - i,
|
|
270
|
+
o = n - t,
|
|
271
|
+
a = h - i,
|
|
272
|
+
f = r * r + l * l,
|
|
273
|
+
c = o * o + a * a,
|
|
274
|
+
u = .5 / (r * a - l * o),
|
|
275
|
+
_ = (a * f - l * c) * u,
|
|
276
|
+
d = (r * c - o * f) * u;
|
|
277
|
+
return _ * _ + d * d;
|
|
278
|
+
}
|
|
279
|
+
function A(t, i, s, e) {
|
|
280
|
+
if (e - s <= 20) for (let n = s + 1; n <= e; n++) {
|
|
281
|
+
const e = t[n],
|
|
282
|
+
h = i[e];
|
|
283
|
+
let r = n - 1;
|
|
284
|
+
for (; r >= s && i[t[r]] > h;) t[r + 1] = t[r--];
|
|
285
|
+
t[r + 1] = e;
|
|
286
|
+
} else {
|
|
287
|
+
let n = s + 1,
|
|
288
|
+
h = e;
|
|
289
|
+
k(t, s + e >> 1, n), i[t[s]] > i[t[e]] && k(t, s, e), i[t[n]] > i[t[e]] && k(t, n, e), i[t[s]] > i[t[n]] && k(t, s, n);
|
|
290
|
+
const r = t[n],
|
|
291
|
+
l = i[r];
|
|
292
|
+
for (;;) {
|
|
293
|
+
do {
|
|
294
|
+
n++;
|
|
295
|
+
} while (i[t[n]] < l);
|
|
296
|
+
do {
|
|
297
|
+
h--;
|
|
298
|
+
} while (i[t[h]] > l);
|
|
299
|
+
if (h < n) break;
|
|
300
|
+
k(t, n, h);
|
|
301
|
+
}
|
|
302
|
+
t[s + 1] = t[h], t[h] = r, e - n + 1 >= h - s ? (A(t, i, n, e), A(t, i, s, h - 1)) : (A(t, i, s, h - 1), A(t, i, n, e));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
function k(t, i, s) {
|
|
306
|
+
const e = t[i];
|
|
307
|
+
t[i] = t[s], t[s] = e;
|
|
308
|
+
}
|
|
309
|
+
function M(t) {
|
|
310
|
+
return t[0];
|
|
311
|
+
}
|
|
312
|
+
function p(t) {
|
|
313
|
+
return t[1];
|
|
314
|
+
}
|
|
315
|
+
return g;
|
|
316
|
+
});
|