vislite 0.5.2 → 0.6.0-alpha.2
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/.editorconfig +18 -18
- package/.eslintrc.js +24 -0
- package/AUTHORS.txt +6 -6
- package/CHANGELOG +15 -1
- package/LICENSE +20 -20
- package/README.md +41 -2
- package/lib/Buffer/index.umd.js +2 -2
- package/lib/Buffer/index.umd.min.js +2 -2
- package/lib/Canvas/index.umd.js +19 -8
- package/lib/Canvas/index.umd.min.js +3 -3
- package/lib/Cardinal/index.umd.js +2 -2
- package/lib/Cardinal/index.umd.min.js +2 -2
- package/lib/Eoap/index.umd.js +2 -2
- package/lib/Eoap/index.umd.min.js +2 -2
- package/lib/Geometry/index.umd.js +7 -4
- package/lib/Geometry/index.umd.min.js +2 -2
- package/lib/Hermite/index.umd.js +2 -2
- package/lib/Hermite/index.umd.min.js +2 -2
- package/lib/Matrix4/index.umd.js +14 -8
- package/lib/Matrix4/index.umd.min.js +3 -3
- package/lib/Mercator/index.umd.js +2 -2
- package/lib/Mercator/index.umd.min.js +2 -2
- package/lib/OralCanvas/index.es.js +14 -6
- package/lib/OralCanvas/index.es.min.js +3 -3
- package/lib/OralWebGL/index.es.js +27 -19
- package/lib/OralWebGL/index.es.min.js +3 -3
- package/lib/SVG/index.umd.js +6 -4
- package/lib/SVG/index.umd.min.js +2 -2
- package/lib/Shader/index.umd.js +10 -10
- package/lib/Shader/index.umd.min.js +3 -3
- package/lib/Texture/index.umd.js +4 -3
- package/lib/Texture/index.umd.min.js +2 -2
- package/lib/TreeLayout/index.umd.js +8 -5
- package/lib/TreeLayout/index.umd.min.js +2 -2
- package/lib/WebGL/index.umd.js +27 -19
- package/lib/WebGL/index.umd.min.js +3 -3
- package/lib/animation/index.umd.js +4 -3
- package/lib/animation/index.umd.min.js +2 -2
- package/lib/formatColor/index.umd.js +2 -2
- package/lib/formatColor/index.umd.min.js +2 -2
- package/lib/getLoopColors/index.umd.js +2 -2
- package/lib/getLoopColors/index.umd.min.js +2 -2
- package/lib/getWebGLContext/index.umd.js +4 -3
- package/lib/getWebGLContext/index.umd.min.js +2 -2
- package/lib/index.umd.js +73 -34
- package/lib/index.umd.min.js +3 -3
- package/lib/move/index.umd.js +2 -2
- package/lib/move/index.umd.min.js +2 -2
- package/lib/resizeObserver/index.umd.js +4 -3
- package/lib/resizeObserver/index.umd.min.js +2 -2
- package/lib/rotate/index.umd.js +2 -2
- package/lib/rotate/index.umd.min.js +2 -2
- package/lib/ruler/index.umd.js +14 -2
- package/lib/ruler/index.umd.min.js +3 -3
- package/lib/scale/index.umd.js +2 -2
- package/lib/scale/index.umd.min.js +2 -2
- package/lib/throttle/index.umd.js +2 -2
- package/lib/throttle/index.umd.min.js +2 -2
- package/lib/viewHandler/index.umd.js +4 -4
- package/lib/viewHandler/index.umd.min.js +3 -3
- package/miniprogram/ui-canvas/index.js +107 -107
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/Buffer/index.ts +2 -2
- package/package/Canvas/index.ts +2 -2
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Geometry/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +2 -2
- package/package/OralCanvas/index.ts +2 -2
- package/package/OralWebGL/index.ts +2 -2
- package/package/SVG/index.ts +2 -2
- package/package/Shader/index.ts +39 -39
- package/package/Texture/index.ts +2 -2
- package/package/TreeLayout/index.ts +1 -1
- package/package/WebGL/index.ts +2 -2
- package/package/animation/index.ts +2 -2
- package/package/formatColor/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/getWebGLContext/index.ts +39 -39
- package/package/index.ts +76 -76
- package/package/move/index.ts +2 -2
- package/package/resizeObserver/index.ts +2 -2
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/scale/index.ts +2 -2
- package/package/throttle/index.ts +2 -2
- package/package/viewHandler/index.ts +2 -2
- package/package.json +6 -2
- package/src/Canvas.ts +70 -67
- package/src/Eoap.ts +66 -66
- package/src/Geometry.ts +82 -82
- package/src/Matrix4/index.ts +17 -9
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +27 -27
- package/src/SVG.ts +24 -24
- package/src/WebGL.ts +66 -66
- package/src/animation.ts +98 -98
- package/src/common/assemble.ts +22 -22
- package/src/common/canvas/arc.ts +51 -50
- package/src/common/canvas/config.ts +158 -158
- package/src/common/canvas/gradient.ts +29 -29
- package/src/common/canvas/index.ts +149 -140
- package/src/common/canvas/painter.ts +417 -426
- package/src/common/canvas/texts.ts +18 -18
- package/src/common/geometry/prism-horizontal.ts +35 -33
- package/src/common/geometry/prism-vertical.ts +40 -40
- package/src/common/geometry/sphere-fragment.ts +40 -39
- package/src/common/geometry/tool/circle.ts +11 -11
- package/src/common/mergeOption.ts +6 -6
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +186 -186
- package/src/common/svg/dictionary.ts +1 -1
- package/src/common/svg/gradient.ts +63 -63
- package/src/common/svg/index.ts +356 -356
- package/src/common/svg/tool.ts +44 -44
- package/src/common/tree/index.ts +25 -25
- package/src/common/tree/toInnerTree.ts +57 -56
- package/src/common/tree/toPlainTree.ts +132 -131
- package/src/common/webgl/buffer.ts +79 -79
- package/src/common/webgl/doDraw.ts +108 -108
- package/src/common/webgl/getColorFactory.ts +26 -26
- package/src/common/webgl/getShader.ts +48 -48
- package/src/common/webgl/getTexture.ts +11 -11
- package/src/common/webgl/getWebGLContext.ts +28 -27
- package/src/common/webgl/index.ts +224 -223
- package/src/common/webgl/shader.ts +75 -75
- package/src/common/webgl/texture.ts +97 -96
- package/src/formatColor.ts +44 -44
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +110 -110
- package/src/interpolation/Hermite.ts +65 -65
- package/src/{TreeLayout/index.ts → layout/TreeLayout.ts} +21 -21
- package/src/move.ts +7 -7
- package/src/resizeObserver.ts +37 -36
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +41 -19
- package/src/scale.ts +6 -6
- package/src/shader/fsColor.c +7 -7
- package/src/shader/fsColors.c +7 -7
- package/src/shader/fsCube.c +8 -8
- package/src/shader/fsImage.c +8 -8
- package/src/shader/vsColor.c +17 -17
- package/src/shader/vsColors.c +13 -13
- package/src/shader/vsCube.c +13 -13
- package/src/shader/vsImage.c +13 -13
- package/src/throttle.ts +52 -51
- package/src/viewHandler.ts +158 -158
- package/types/Buffer.d.ts +23 -23
- package/types/Canvas.d.ts +8 -0
- package/types/CanvasConfig.d.ts +106 -106
- package/types/CanvasOption.d.ts +8 -7
- package/types/CanvasOpts.d.ts +10 -0
- package/types/Cardinal.d.ts +13 -13
- package/types/Geometry.d.ts +40 -40
- package/types/GeometryOption.d.ts +11 -11
- package/types/GeometryResult.d.ts +18 -18
- package/types/Gradient.d.ts +14 -14
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +9 -9
- package/types/Matrix4.d.ts +5 -0
- package/types/Object3D.d.ts +114 -114
- package/types/SVG.d.ts +238 -238
- package/types/SVGConfig.d.ts +76 -76
- package/types/Scene3D.d.ts +6 -6
- package/types/Shader.d.ts +21 -21
- package/types/Texture.d.ts +16 -16
- package/types/Tree.d.ts +69 -69
- package/types/TreeConfig.d.ts +24 -24
- package/types/TreeLayout.d.ts +54 -54
- package/types/TreeOption.d.ts +48 -48
- package/types/WebGL.d.ts +38 -38
- package/types/WebGLOption.d.ts +7 -7
- package/types/animation.d.ts +6 -6
- package/types/formatColor.d.ts +2 -2
- package/types/getLoopColors.d.ts +2 -2
- package/types/getWebGLContext.d.ts +2 -2
- package/types/index.d.ts +175 -175
- package/types/move.d.ts +2 -2
- package/types/painterConfig.d.ts +2 -2
- package/types/resizeObserver.d.ts +2 -2
- package/types/rotate.d.ts +2 -2
- package/types/ruler.d.ts +7 -7
- package/types/scale.d.ts +2 -2
- package/types/throttle.d.ts +4 -4
- package/types/throttleOption.d.ts +21 -21
- package/types/viewHandler.d.ts +13 -13
- package/uni-app/ui-canvas.vue +239 -206
package/lib/index.umd.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.6.0-alpha.2
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
* Publish Date:
|
|
9
|
+
* Publish Date: Sun Dec 17 2023 12:58:48 GMT+0800 (中国标准时间)
|
|
10
10
|
*/
|
|
11
11
|
(function (global, factory) {
|
|
12
12
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -190,17 +190,23 @@
|
|
|
190
190
|
matrix4[i + 12] * param[j * 4 + 3];
|
|
191
191
|
return newParam;
|
|
192
192
|
};
|
|
193
|
+
var __initMatrix4 = [
|
|
194
|
+
1, 0, 0, 0,
|
|
195
|
+
0, 1, 0, 0,
|
|
196
|
+
0, 0, 1, 0,
|
|
197
|
+
0, 0, 0, 1
|
|
198
|
+
];
|
|
193
199
|
var Matrix4 = (function () {
|
|
194
200
|
function Matrix4(initMatrix4) {
|
|
195
|
-
if (initMatrix4 === void 0) { initMatrix4 =
|
|
196
|
-
1, 0, 0, 0,
|
|
197
|
-
0, 1, 0, 0,
|
|
198
|
-
0, 0, 1, 0,
|
|
199
|
-
0, 0, 0, 1
|
|
200
|
-
]; }
|
|
201
|
+
if (initMatrix4 === void 0) { initMatrix4 = __initMatrix4; }
|
|
201
202
|
this.name = 'Matrix4';
|
|
202
203
|
this.__matrix4 = initMatrix4;
|
|
203
204
|
}
|
|
205
|
+
Matrix4.prototype.setValue = function (initMatrix4) {
|
|
206
|
+
if (initMatrix4 === void 0) { initMatrix4 = __initMatrix4; }
|
|
207
|
+
this.__matrix4 = initMatrix4;
|
|
208
|
+
return this;
|
|
209
|
+
};
|
|
204
210
|
Matrix4.prototype.move = function (dis, a, b, c) {
|
|
205
211
|
if (c === void 0) { c = 0; }
|
|
206
212
|
this.__matrix4 = _multiply(_move(dis, a, b, c), this.__matrix4);
|
|
@@ -361,7 +367,8 @@
|
|
|
361
367
|
}
|
|
362
368
|
},
|
|
363
369
|
"tick": function () {
|
|
364
|
-
var createTime, flag, tick, callback, timer, duration, passTime
|
|
370
|
+
var createTime, flag, tick, callback, timer, duration, passTime;
|
|
371
|
+
var timers = $timers;
|
|
365
372
|
$timers = [];
|
|
366
373
|
$timers.length = 0;
|
|
367
374
|
for (flag = 0; flag < timers.length; flag++) {
|
|
@@ -528,6 +535,18 @@
|
|
|
528
535
|
}
|
|
529
536
|
}
|
|
530
537
|
}
|
|
538
|
+
for (var index = 0; index < rulerArray.length; index++) {
|
|
539
|
+
var valStr = rulerArray[index] + "";
|
|
540
|
+
if (/\./.test(valStr)) {
|
|
541
|
+
if (/9{7,}$/.test(valStr)) {
|
|
542
|
+
valStr = valStr.replace(/9{7,}$/, '');
|
|
543
|
+
rulerArray[index] = +(valStr.substring(0, valStr.length - 1) + ((+valStr[valStr.length - 1]) + 1));
|
|
544
|
+
}
|
|
545
|
+
else if (/0{7,}\d$/.test(valStr)) {
|
|
546
|
+
rulerArray[index] = +(valStr.replace(/0{7,}\d$/, ''));
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
}
|
|
531
550
|
return rulerArray;
|
|
532
551
|
}
|
|
533
552
|
|
|
@@ -628,7 +647,8 @@
|
|
|
628
647
|
beginA += rotateA;
|
|
629
648
|
rotateA *= -1;
|
|
630
649
|
}
|
|
631
|
-
var temp = []
|
|
650
|
+
var temp = [];
|
|
651
|
+
var p;
|
|
632
652
|
p = rotate(0, 0, beginA, r1, 0);
|
|
633
653
|
temp[0] = p[0];
|
|
634
654
|
temp[1] = p[1];
|
|
@@ -726,7 +746,8 @@
|
|
|
726
746
|
deg = deg % (Math.PI * 2);
|
|
727
747
|
}
|
|
728
748
|
arc(beginDeg, deg, cx, cy, r1, r2, function (beginA, endA, begInnerX, begInnerY, begOuterX, begOuterY, endInnerX, endInnerY, endOuterX, endOuterY, r) {
|
|
729
|
-
var f = endA - beginA > Math.PI ? 1 : 0
|
|
749
|
+
var f = endA - beginA > Math.PI ? 1 : 0;
|
|
750
|
+
var d = "M" + begInnerX + " " + begInnerY;
|
|
730
751
|
if (r < 0)
|
|
731
752
|
r = -r;
|
|
732
753
|
d +=
|
|
@@ -1529,8 +1550,9 @@
|
|
|
1529
1550
|
};
|
|
1530
1551
|
var Canvas$1 = (function (_super) {
|
|
1531
1552
|
__extends(Canvas, _super);
|
|
1532
|
-
function Canvas(ViewCanvas, RegionCanvas) {
|
|
1533
|
-
|
|
1553
|
+
function Canvas(ViewCanvas, RegionCanvas, opts) {
|
|
1554
|
+
if (opts === void 0) { opts = {}; }
|
|
1555
|
+
var _this = _super.call(this, ViewCanvas, opts, RegionCanvas ? new Painter(RegionCanvas, {
|
|
1534
1556
|
willReadFrequently: true,
|
|
1535
1557
|
}) : null, true) || this;
|
|
1536
1558
|
_this.name = "Canvas";
|
|
@@ -1570,7 +1592,7 @@
|
|
|
1570
1592
|
};
|
|
1571
1593
|
Canvas.prototype.getRegion = function (x, y) {
|
|
1572
1594
|
var _this = this;
|
|
1573
|
-
return new Promise(function (resolve
|
|
1595
|
+
return new Promise(function (resolve) {
|
|
1574
1596
|
var imgData = _this.__region ? _this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
|
|
1575
1597
|
data: [0, 0, 0, 0]
|
|
1576
1598
|
};
|
|
@@ -1615,6 +1637,12 @@
|
|
|
1615
1637
|
if (isRegion === void 0) { isRegion = false; }
|
|
1616
1638
|
return isRegion ? (this.__region ? this.__region.painter : null) : this.painter;
|
|
1617
1639
|
};
|
|
1640
|
+
Canvas.prototype.getInfo = function () {
|
|
1641
|
+
return {
|
|
1642
|
+
width: this.painter.canvas.width,
|
|
1643
|
+
height: this.painter.canvas.height
|
|
1644
|
+
};
|
|
1645
|
+
};
|
|
1618
1646
|
Canvas.prototype.createLinearGradient = function (x0, y0, x1, y1) {
|
|
1619
1647
|
return linearGradient(this.painter, x0, y0, x1, y1);
|
|
1620
1648
|
};
|
|
@@ -1652,7 +1680,8 @@
|
|
|
1652
1680
|
throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");
|
|
1653
1681
|
}
|
|
1654
1682
|
option = mergeOption(option, {
|
|
1655
|
-
region: true
|
|
1683
|
+
region: true,
|
|
1684
|
+
willReadFrequently: false
|
|
1656
1685
|
});
|
|
1657
1686
|
var width = el.clientWidth, height = el.clientHeight;
|
|
1658
1687
|
var ViewCanvas, RegionCanvas;
|
|
@@ -1679,7 +1708,9 @@
|
|
|
1679
1708
|
canvas.setAttribute('height', height + "");
|
|
1680
1709
|
}
|
|
1681
1710
|
}
|
|
1682
|
-
_this = _super.call(this, ViewCanvas, RegionCanvas
|
|
1711
|
+
_this = _super.call(this, ViewCanvas, RegionCanvas, {
|
|
1712
|
+
willReadFrequently: option.willReadFrequently
|
|
1713
|
+
}) || this;
|
|
1683
1714
|
_this.__canvas = ViewCanvas;
|
|
1684
1715
|
return _this;
|
|
1685
1716
|
}
|
|
@@ -1694,7 +1725,8 @@
|
|
|
1694
1725
|
|
|
1695
1726
|
function getWebGLContext$1 (canvas, scale, opts) {
|
|
1696
1727
|
if (opts === void 0) { opts = {}; }
|
|
1697
|
-
var names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"]
|
|
1728
|
+
var names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"];
|
|
1729
|
+
var painter = null;
|
|
1698
1730
|
for (var i = 0; i < names.length; i++) {
|
|
1699
1731
|
try {
|
|
1700
1732
|
painter = canvas.getContext(names[i], opts);
|
|
@@ -1781,7 +1813,8 @@
|
|
|
1781
1813
|
painter.TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
|
1782
1814
|
painter.TEXTURE_CUBE_MAP_POSITIVE_Z,
|
|
1783
1815
|
painter.TEXTURE_CUBE_MAP_NEGATIVE_Z
|
|
1784
|
-
]
|
|
1816
|
+
];
|
|
1817
|
+
var target;
|
|
1785
1818
|
for (var i = 0; i < types.length; i++) {
|
|
1786
1819
|
if (images[i]) {
|
|
1787
1820
|
target = types[i];
|
|
@@ -1862,21 +1895,21 @@
|
|
|
1862
1895
|
return ShaderObject;
|
|
1863
1896
|
}());
|
|
1864
1897
|
|
|
1865
|
-
var vsColor = "attribute vec4 a_position;\
|
|
1898
|
+
var vsColor = "attribute vec4 a_position;\nuniform mat4 u_matrix;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n\n // 把原生的WebGL使用的左手坐标系变成了右手坐标系\n temp.z = -1.0 * temp.z;\n\n // 表示眼睛距离vec4(0.0,0.0,1.0)的距离\n float dist = 4.0;\n\n // 使用投影直接计算\n // 为保证纹理和相对位置正确\n // x、y、z的改变满足线性变换\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n}";
|
|
1866
1899
|
|
|
1867
|
-
var vsColors = "attribute vec4 a_position;\
|
|
1900
|
+
var vsColors = "attribute vec4 a_position;\nuniform mat4 u_matrix;\nattribute vec4 a_color;\nvarying vec4 v_color;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n temp.z = -1.0 * temp.z;\n float dist = 4.0;\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n\n v_color = a_color;\n}";
|
|
1868
1901
|
|
|
1869
|
-
var vsImage = "attribute vec4 a_position;\
|
|
1902
|
+
var vsImage = "attribute vec4 a_position;\nuniform mat4 u_matrix;\nattribute vec2 a_textcoord;\nvarying vec2 v_textcoord;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n temp.z = -1.0 * temp.z;\n float dist = 4.0;\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n\n v_textcoord = a_textcoord;\n}";
|
|
1870
1903
|
|
|
1871
|
-
var vsCube = "attribute vec4 a_position;\
|
|
1904
|
+
var vsCube = "attribute vec4 a_position;\nuniform mat4 u_matrix;\nattribute vec4 a_normal;\nvarying vec3 v_normal;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n temp.z = -1.0 * temp.z;\n float dist = 4.0;\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n\n v_normal = normalize(vec3(a_normal));\n}";
|
|
1872
1905
|
|
|
1873
|
-
var fsColor = "precision mediump float;\
|
|
1906
|
+
var fsColor = "precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}";
|
|
1874
1907
|
|
|
1875
|
-
var fsColors = "precision mediump float;\
|
|
1908
|
+
var fsColors = "precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}";
|
|
1876
1909
|
|
|
1877
|
-
var fsImage = "precision mediump float;\
|
|
1910
|
+
var fsImage = "precision mediump float;\n\nuniform sampler2D u_sampler;\nvarying vec2 v_textcoord;\n\nvoid main()\n{\n gl_FragColor = texture2D(u_sampler, v_textcoord);\n}";
|
|
1878
1911
|
|
|
1879
|
-
var fsCube = "precision mediump float;\
|
|
1912
|
+
var fsCube = "precision mediump float;\n\nvarying vec3 v_normal;\nuniform samplerCube u_texture;\n\nvoid main()\n{\n gl_FragColor = textureCube(u_texture, normalize(v_normal));\n}";
|
|
1880
1913
|
|
|
1881
1914
|
var shaders = {};
|
|
1882
1915
|
function getShader (type, painter, mesh) {
|
|
@@ -2100,7 +2133,7 @@
|
|
|
2100
2133
|
if (needUpdate)
|
|
2101
2134
|
this.review(true);
|
|
2102
2135
|
needUpdate = false;
|
|
2103
|
-
return new Promise(function (resolve
|
|
2136
|
+
return new Promise(function (resolve) {
|
|
2104
2137
|
var rgba = _this.__getColor(x, y);
|
|
2105
2138
|
for (var key in _this.__regionList) {
|
|
2106
2139
|
var currentRGBA = _this.__regionList[key];
|
|
@@ -2348,13 +2381,13 @@
|
|
|
2348
2381
|
el.addEventListener("mousedown", function (event) {
|
|
2349
2382
|
mouseP = mousePosition(el, event);
|
|
2350
2383
|
});
|
|
2351
|
-
el.addEventListener("mouseup", function (
|
|
2384
|
+
el.addEventListener("mouseup", function () {
|
|
2352
2385
|
mouseP = null;
|
|
2353
2386
|
});
|
|
2354
2387
|
el.addEventListener("mousemove", function (event) {
|
|
2355
2388
|
doMove(event);
|
|
2356
2389
|
});
|
|
2357
|
-
el.addEventListener("touchend", function (
|
|
2390
|
+
el.addEventListener("touchend", function () {
|
|
2358
2391
|
mouseP = null;
|
|
2359
2392
|
});
|
|
2360
2393
|
el.addEventListener("touchstart", function (event) {
|
|
@@ -2385,7 +2418,8 @@
|
|
|
2385
2418
|
}
|
|
2386
2419
|
|
|
2387
2420
|
var observer;
|
|
2388
|
-
var attrValueToCallback = {}
|
|
2421
|
+
var attrValueToCallback = {};
|
|
2422
|
+
var uniqueid = 0;
|
|
2389
2423
|
function resizeObserver (el, callback) {
|
|
2390
2424
|
try {
|
|
2391
2425
|
if (!observer) {
|
|
@@ -2459,7 +2493,8 @@
|
|
|
2459
2493
|
|
|
2460
2494
|
var toInnerTree = (function (initTree, config) {
|
|
2461
2495
|
var tempTree = {};
|
|
2462
|
-
var temp = config.root(initTree)
|
|
2496
|
+
var temp = config.root(initTree);
|
|
2497
|
+
var id, rid;
|
|
2463
2498
|
id = rid = config.id(temp);
|
|
2464
2499
|
tempTree[id] = {
|
|
2465
2500
|
"data": temp,
|
|
@@ -2510,7 +2545,8 @@
|
|
|
2510
2545
|
};
|
|
2511
2546
|
}
|
|
2512
2547
|
else {
|
|
2513
|
-
var beforeDis_1 = []
|
|
2548
|
+
var beforeDis_1 = [];
|
|
2549
|
+
var size_1 = 0, maxDeep_1 = 0;
|
|
2514
2550
|
if (noOpens[rootid]) {
|
|
2515
2551
|
alltreedata[rootid].left = 0.5;
|
|
2516
2552
|
alltreedata[rootid].top = 0.5;
|
|
@@ -2762,7 +2798,9 @@
|
|
|
2762
2798
|
beginX = x + radius;
|
|
2763
2799
|
beginZ = z;
|
|
2764
2800
|
}
|
|
2765
|
-
var point = [beginX, beginZ]
|
|
2801
|
+
var point = [beginX, beginZ];
|
|
2802
|
+
var points = [];
|
|
2803
|
+
var deg = Math.PI * 2 / num;
|
|
2766
2804
|
for (var i = 0; i < num; i++) {
|
|
2767
2805
|
points.push(x, y, z);
|
|
2768
2806
|
if (normal)
|
|
@@ -2807,7 +2845,8 @@
|
|
|
2807
2845
|
}
|
|
2808
2846
|
|
|
2809
2847
|
function sphereFragment (normal, cx, cy, cz, radius, num, index) {
|
|
2810
|
-
var points = [cx, cy + radius, cz], deg = Math.PI * 2 / num
|
|
2848
|
+
var points = [cx, cy + radius, cz], deg = Math.PI * 2 / num;
|
|
2849
|
+
var point;
|
|
2811
2850
|
if (normal)
|
|
2812
2851
|
points.push(0, radius, 0);
|
|
2813
2852
|
var copy2 = function () {
|
package/lib/index.umd.min.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.6.0-alpha.2
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
* Publish Date:
|
|
9
|
+
* Publish Date: Sun Dec 17 2023 12:58:48 GMT+0800 (中国标准时间)
|
|
10
10
|
*/
|
|
11
|
-
var t,e;t=this,e=function(){"use strict";var t=function(){function t(t){void 0===t&&(t=.5),this.name="Hermite",this.__u=t}return t.prototype.setP=function(t,e,i,r,n,o){if(!(t<i))throw new Error("The point x-position should be increamented!");this.__a=t,this.__b=i;var s=this.__u*n,a=this.__u*o;return e/=i-t,r/=i-t,this.__MR=[2*e-2*r+s+a,3*r-3*e-2*s-a,s,e],this},t.prototype.use=function(t){if(this.__MR){var e=(t-this.__a)/(this.__b-this.__a),i=e*e;return(e*i*this.__MR[0]+i*this.__MR[1]+e*this.__MR[2]+this.__MR[3])*(this.__b-this.__a)}throw new Error("You shoud first set the position!")},t}(),e=function(){function e(t){void 0===t&&(t=0),this.name="Cardinal",this.__t=t}return e.prototype.setP=function(e){this.__HS={x:[],h:[]};var i,r,n=(e[1][1]-e[0][1])/(e[1][0]-e[0][0]);for(this.__HS.x[0]=e[0][0],i=1;i<e.length;i++){if(e[i][0]<=e[i-1][0])throw new Error("The point position should be increamented!");this.__HS.x[i]=e[i][0],r=i<e.length-1?e[i+1][1]>e[i][1]&&e[i-1][1]>e[i][1]||e[i+1][1]<e[i][1]&&e[i-1][1]<e[i][1]||e[i+1][1]==e[i][1]||e[i-1][1]==e[i][1]?0:(e[i+1][1]-e[i-1][1])/(e[i+1][0]-e[i-1][0]):(e[i][1]-e[i-1][1])/(e[i][0]-e[i-1][0]),this.__HS.h[i-1]=new t(.5*(1-this.__t)).setP(e[i-1][0],e[i-1][1],e[i][0],e[i][1],n,r),n=r}return this},e.prototype.use=function(t){if(this.__HS){for(this.__i=-1;this.__i+1<this.__HS.x.length&&(t>this.__HS.x[this.__i+1]||-1==this.__i&&t>=this.__HS.x[this.__i+1]);)this.__i+=1;return this.__i<0?this.__HS.h[0].use(this.__HS.x[0]):this.__i>=this.__HS.h.length?this.__HS.h[this.__HS.h.length-1].use(this.__HS.x[this.__HS.x.length-1]):this.__HS.h[this.__i].use(t)}throw new Error("You shoud first set the position!")},e}(),i=function(t,e){for(var i=[],r=0;r<4;r++)for(var n=0;n<e.length/4;n++)i[4*n+r]=t[r]*e[4*n]+t[r+4]*e[4*n+1]+t[r+8]*e[4*n+2]+t[r+12]*e[4*n+3];return i},r=function(){function t(t){void 0===t&&(t=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this.name="Matrix4",this.__matrix4=t}return t.prototype.move=function(t,e,r,n){return void 0===n&&(n=0),this.__matrix4=i(function(t,e,i,r){void 0===r&&(r=0);var n=Math.sqrt(e*e+i*i+r*r);return[1,0,0,0,0,1,0,0,0,0,1,0,e*t/n,i*t/n,r*t/n,1]}(t,e,r,n),this.__matrix4),this},t.prototype.rotate=function(t,e,r,n,o,s,a){var _=function(t,e,i,r,n,o){if("number"==typeof t&&"number"==typeof e){if("number"!=typeof i?(i=0,r=t,n=e,o=1):"number"==typeof r&&"number"==typeof n&&"number"==typeof o||(r=t,n=e,o=i,t=0,e=0,i=0),t==r&&e==n&&i==o)throw new Error("It's not a legitimate ray!");var s=Math.sqrt((r-t)*(r-t)+(n-e)*(n-e)),a=0!=s?(n-e)/s:1,_=0!=s?(r-t)/s:0,h=(r-t)*_+(n-e)*a,u=o-i,l=Math.sqrt(h*h+u*u),p=0!=l?u/l:1,c=0!=l?h/l:0;return[[a,p*_,_*c,0,-_,a*p,a*c,0,0,-c,p,0,e*_-t*a,i*c-t*_*p-e*a*p,-t*_*c-e*a*c-i*p,1],[a,-_,0,0,p*_,p*a,-c,0,_*c,a*c,p,0,t,e,i,1]]}throw new Error("a1 and b1 is required!")}(e,r,n,o,s,a);return this.__matrix4=i(i(i(_[1],function(t){var e=Math.sin(t),i=Math.cos(t);return[i,e,0,0,-e,i,0,0,0,0,1,0,0,0,0,1]}(t)),_[0]),this.__matrix4),this},t.prototype.scale=function(t,e,r,n,o,s){return void 0===n&&(n=0),void 0===o&&(o=0),void 0===s&&(s=0),this.__matrix4=i(function(t,e,i,r,n,o){return void 0===r&&(r=0),void 0===n&&(n=0),void 0===o&&(o=0),[t,0,0,0,0,e,0,0,0,0,i,0,r-r*t,n-n*e,o-o*i,1]}(t,e,r,n,o,s),this.__matrix4),this},t.prototype.multiply=function(t,e){return void 0===e&&(e=!1),this.__matrix4=e?i(this.__matrix4,t):i(t,this.__matrix4),this},t.prototype.use=function(t,e,r,n){return void 0===r&&(r=0),void 0===n&&(n=1),i(this.__matrix4,[t,e,r,n])},t.prototype.value=function(){return this.__matrix4},t}();function n(t,e,i,r,n){var o=Math.cos(i),s=Math.sin(i);return[(r-t)*o-(n-e)*s+t,(r-t)*s+(n-e)*o+e]}var o,s=function(t){var e=t.toString(16);return 1==e.length?"0"+e:e},a=[];function _(t,e,i){void 0===e&&(e=400),void 0===i&&(i=function(){});var r={timer:function(t,e,i){if(!t)throw new Error("Tick is required!");var n=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return a.push({id:n,createTime:new Date,tick:t,duration:e,callback:i}),r.start(),n},start:function(){o||(o=setInterval(r.tick,13))},tick:function(){var t,e,i,n,o,s,_,h=a;for((a=[]).length=0,e=0;e<h.length;e++)t=(o=h[e]).createTime,i=o.tick,s=o.duration,n=o.callback,i(_=(_=(+(new Date).valueOf()-t.valueOf())/s)>1?1:_),_<1&&o.id?a.push(o):n(_);a.length<=0&&r.stop()},stop:function(){o&&(clearInterval(o),o=null)}},n=r.timer((function(e){t(e)}),e,i);return function(){var t;for(t in a)if(a[t].id==n)return void(a[t].id=void 0)}}var h=function(t,e){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},h(t,e)};function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}h(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function l(t,e,i){if(i||2===arguments.length)for(var r,n=0,o=e.length;n<o;n++)!r&&n in e||(r||(r=Array.prototype.slice.call(e,0,n)),r[n]=e[n]);return t.concat(r||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var p=["href","title","show","type","role","actuate"];function c(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}var f=function(t,e,i){p.indexOf(e)>-1?t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+e,i+""):t.setAttribute(e,i+"")},d=f;function g(t,e){f(t,"stroke",e.strokeStyle),f(t,"fill",e.fillStyle),f(t,"stroke-dasharray",e.lineDash.join(","))}function v(t,e){f(t,"fill",e.fillStyle)}function m(t,e){f(t,"stroke",e.strokeStyle),f(t,"fill","none"),f(t,"stroke-dasharray",e.lineDash.join(","))}var y=function(t,e,i,r,n){var o=Math.cos(i),s=Math.sin(i);return[+((r-t)*o-(n-e)*s+t).toFixed(7),+((r-t)*s+(n-e)*o+e).toFixed(7)]};function E(t,e,i,r,n,o,s){e<0&&(t+=e,e*=-1);var a,_=[];a=y(0,0,t,n,0),_[0]=a[0],_[1]=a[1],a=y(0,0,e,a[0],a[1]),_[2]=a[0],_[3]=a[1],a=y(0,0,t,o,0),_[4]=a[0],_[5]=a[1],a=y(0,0,e,a[0],a[1]),_[6]=a[0],_[7]=a[1],s(t,t+e,_[0]+i,_[1]+r,_[4]+i,_[5]+r,_[2]+i,_[3]+r,_[6]+i,_[7]+r,.5*(o-n))}var x=function(t){var e=t.getElementsByTagName("defs");if(e.length<=0){var i=c("defs");return t.appendChild(i),i}return e[0]},b=function(t,e,i,r,n){if("text"!==t.nodeName.toLowerCase())throw new Error("Need a <text> !");d(t,"dy",{top:.5*e.fontSize,middle:0,bottom:.5*-e.fontSize}[e.textBaseline]),function(t,e){for(var i in e)t.style[i]=e[i]}(t,{"text-anchor":{left:"start",right:"end",center:"middle"}[e.textAlign],"dominant-baseline":"central","font-size":e.fontSize+"px","font-family":e.fontFamily}),d(t,"x",i),d(t,"y",r),"number"==typeof n&&d(t,"transform","rotate("+(n%=360)+","+i+","+r+")")},w=function(t,e,i,r){if("circle"!==t.nodeName.toLowerCase())throw new Error("Need a <circle> !");d(t,"cx",e),d(t,"cy",i),d(t,"r",r)},T=function(t,e){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");d(t,"d",e)},C=function(t,e,i,r,n){if("rect"!==t.nodeName.toLowerCase())throw new Error("Need a <rect> !");n<0&&(i-=n*=-1),r<0&&(e-=r*=-1),d(t,"x",e),d(t,"y",i),d(t,"width",r),d(t,"height",n)},P=function(t,e,i,r,n,o,s,a){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");if(s=s/180*Math.PI,a=a/180*Math.PI,s%=2*Math.PI,n>o){var _=n;n=o,o=_}a>=1.999999*Math.PI||a<=1.999999*-Math.PI?a=1.999999*Math.PI:a%=2*Math.PI,E(s,a,i,r,n,o,(function(i,r,s,a,_,h,u,l,p,c,f){var g=r-i>Math.PI?1:0,v="M"+s+" "+a;f<0&&(f=-f),v+="A"+n+" "+n+" 0 "+g+" 1 "+u+" "+l,"round"==e.arcEndCap?v+="A"+f+" "+f+" 0 1 0 "+p+" "+c:"-round"==e.arcEndCap?v+="A"+f+" "+f+" 0 1 1 "+p+" "+c:v+="L"+p+" "+c,v+="A"+o+" "+o+" 0 "+g+" 0 "+_+" "+h,"round"==e.arcStartCap?v+="A"+f+" "+f+" 0 1 0 "+s+" "+a:"-round"==e.arcStartCap?v+="A"+f+" "+f+" 0 1 1 "+s+" "+a:v+="L"+s+" "+a,"butt"==e.arcStartCap&&(v+="Z"),d(t,"d",v)}))},R={"font-size":"fontSize","font-family":"fontFamily","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},S=function(){function t(t){this.name="SVG",this.__config={fillStyle:"#000",strokeStyle:"#000",lineWidth:1,textAlign:"left",textBaseline:"middle",fontSize:16,fontFamily:"sans-serif",arcStartCap:"butt",arcEndCap:"butt",lineDash:[]},this.__path="",this.__currentPosition=[],this.__svg=t}return t.prototype.config=function(t){if("object"!=typeof t)return this.__config[R[t]||t];for(var e in t){var i=R[e]||e;this.__config[i]=t[e]}return this},t.prototype.useEl=function(t){return this.__useEl=t,this},t.prototype.getEl=function(){return this.__useEl},t.prototype.appendEl=function(t,e){return e=e||this.__svg,"string"==typeof t&&(t=c(t)),e.appendChild(t),this.__useEl=t,this},t.prototype.appendBoard=function(t,e){var i=t;if("string"==typeof t&&(i={text:"text",path:"path",arc:"path",circle:"circle",rect:"rect"}[t]||""),""==i)throw new Error("Unsupported drawing method:"+t);return this.appendEl(i,e)},t.prototype.remove=function(){if(!this.__useEl)throw new Error("Currently, no node can be deleted.");return this.__useEl.parentNode.removeChild(this.__useEl),this},t.prototype.attr=function(t){if(!this.__useEl)throw new Error("Currently, no node can be modified or viewed.");if("object"!=typeof t)return function(t,e){return p.indexOf(e)>-1&&(e="xlink:"+e),t.getAttribute(e)}(this.__useEl,t);for(var e in t)d(this.__useEl,e,t[e]);return this},t.prototype.fillText=function(t,e,i,r){return void 0===r&&(r=0),b(this.__useEl,this.__config,e,i,r),this.__useEl.textContent=t,v(this.__useEl,this.__config),this},t.prototype.strokeText=function(t,e,i,r){return void 0===r&&(r=0),b(this.__useEl,this.__config,e,i,r),this.__useEl.textContent=t,m(this.__useEl,this.__config),this},t.prototype.fullText=function(t,e,i,r){return void 0===r&&(r=0),b(this.__useEl,this.__config,e,i,r),this.__useEl.textContent=t,g(this.__useEl,this.__config),this},t.prototype.fillArc=function(t,e,i,r,n,o){return P(this.__useEl,this.__config,t,e,i,r,n,o),v(this.__useEl,this.__config),this},t.prototype.strokeArc=function(t,e,i,r,n,o){return P(this.__useEl,this.__config,t,e,i,r,n,o),m(this.__useEl,this.__config),this},t.prototype.fullArc=function(t,e,i,r,n,o){return P(this.__useEl,this.__config,t,e,i,r,n,o),g(this.__useEl,this.__config),this},t.prototype.fillCircle=function(t,e,i){return w(this.__useEl,t,e,i),v(this.__useEl,this.__config),this},t.prototype.strokeCircle=function(t,e,i){return w(this.__useEl,t,e,i),m(this.__useEl,this.__config),this},t.prototype.fullCircle=function(t,e,i){return w(this.__useEl,t,e,i),g(this.__useEl,this.__config),this},t.prototype.fillRect=function(t,e,i,r){return C(this.__useEl,t,e,i,r),v(this.__useEl,this.__config),this},t.prototype.strokeRect=function(t,e,i,r){return C(this.__useEl,t,e,i,r),m(this.__useEl,this.__config),this},t.prototype.fullRect=function(t,e,i,r){return C(this.__useEl,t,e,i,r),g(this.__useEl,this.__config),this},t.prototype.beginPath=function(){return this.__currentPosition=[],this.__path="",this},t.prototype.closePath=function(){return this.__path+="Z",this},t.prototype.moveTo=function(t,e){return this.__currentPosition=[t,e],this.__path+="M"+t+" "+e,this},t.prototype.lineTo=function(t,e){return this.__currentPosition=[t,e],this.__path+=(""==this.__path?"M":"L")+t+" "+e,this},t.prototype.fill=function(){return T(this.__useEl,this.__path),v(this.__useEl,this.__config),this},t.prototype.stroke=function(){return T(this.__useEl,this.__path),m(this.__useEl,this.__config),this},t.prototype.full=function(){return T(this.__useEl,this.__path),g(this.__useEl,this.__config),this},t.prototype.arc=function(t,e,i,r,o){var s=n(t,e,r/180*Math.PI,t+i,e),a=n(t,e,(r+o)/180*Math.PI,t+i,e);return""==this.__path?this.__path+="M"+s[0]+","+s[1]:s[0]==this.__currentPosition[0]&&s[1]==this.__currentPosition[1]||(this.__path+="L"+s[0]+","+s[1]),this.__path+="A"+i+","+i+" 0 "+(o>180||o<-180?1:0)+","+(o>0?1:0)+" "+a[0]+","+a[1],this},t.prototype.quadraticCurveTo=function(t,e,i,r){return this.__path+="Q"+t+" "+e+","+i+" "+r,this},t.prototype.bezierCurveTo=function(t,e,i,r,n,o){return this.__path+="C"+t+" "+e+","+i+" "+r+","+n+" "+o,this},t.prototype.bind=function(t,e){return this.__useEl.addEventListener(t,(function(t){e.call(this,t,this)}),!1),this},t.prototype.createLinearGradient=function(t,e,i,r){return function(t,e,i,r,n){var o=x(t),s="vislite-lg-"+(new Date).valueOf()+"-"+Math.random(),a=c("linearGradient");o.appendChild(a),d(a,"id",s),d(a,"x1",e+"%"),d(a,"y1",i+"%"),d(a,"x2",r+"%"),d(a,"y2",n+"%");var _={value:function(){return"url(#"+s+")"},setColor:function(t,e){var i=c("stop");return a.appendChild(i),d(i,"offset",100*t+"%"),d(i,"style","stop-color:"+e+";"),_}};return _}(this.__svg,t,e,i,r)},t.prototype.createRadialGradient=function(t,e,i){return function(t,e,i,r){var n=x(t),o="vislite-rg-"+(new Date).valueOf()+"-"+Math.random(),s=c("radialGradient");n.appendChild(s),d(s,"id",o),d(s,"cx",e+"%"),d(s,"cy",i+"%"),d(s,"r",r+"%");var a={value:function(){return"url(#"+o+")"},setColor:function(t,e){var i=c("stop");return s.appendChild(i),d(i,"offset",100*t+"%"),d(i,"style","stop-color:"+e+";"),a}};return a}(this.__svg,t,e,i)},t}(),A=function(t){function e(e){if(!e)throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.");var i=e.clientWidth,r=e.clientHeight,n=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.appendChild(n),n.setAttribute("width",i+""),n.setAttribute("height",r+""),n.setAttribute("viewBox","0 0 "+i+" "+r),t.call(this,n)||this}return u(e,t),e}(S),M=function(t,e,i,r,n){return t.beginPath(),t.translate(i,r),t.rotate(n),t.font=e.fontStyle+" "+e.fontWeight+" "+e.fontSize+"px "+e.fontFamily,t},L=function(t,e,i,r,n,o,s,a){if(n>o){var _=n;n=o,o=_}return s%=2*Math.PI,a>=1.999999*Math.PI||a<=1.999999*-Math.PI?a=2*Math.PI:a%=2*Math.PI,E(s,a,i,r,n,o,(function(s,a,_,h,u,l,p,c,f,d,g){g<0&&(g=-g),t.beginPath(),t.moveTo(_,h),t.arc(i,r,n,s,a,!1),"round"==e.arcEndCap?t.arc(.5*(p+f),.5*(c+d),g,a-Math.PI,a,!0):"-round"==e.arcEndCap?t.arc(.5*(p+f),.5*(c+d),g,a-Math.PI,a,!1):t.lineTo(f,d),t.arc(i,r,o,a,s,!0),"round"==e.arcStartCap?t.arc(.5*(_+u),.5*(h+l),g,s,s-Math.PI,!0):"-round"==e.arcStartCap?t.arc(.5*(_+u),.5*(h+l),g,s,s-Math.PI,!1):t.lineTo(_,h)})),"butt"==e.arcStartCap&&t.closePath(),t},I=function(t,e,i,r){return t.beginPath(),t.moveTo(e+r,i),t.arc(e,i,r,0,2*Math.PI),t},k=function(t,e,i,r,n){return t.beginPath(),t.rect(e,i,r,n),t};function z(t,e,i,r,n){for(var o=0,s="",a=0;a<e.length;a++)t.measureText(s+e[a]).width>i||/\n$/.test(s)?(n(s,((o+=1)-.5)*r),s=e[a]):a==e.length-1?(o+=1,n(s+e[a],(o-.5)*r)):s+=e[a];return o*r}var U=function(){function t(t,e,i,r){void 0===e&&(e={}),void 0===r&&(r=!1),this.__region=null,this.__onlyRegion=!1,this.__specialConfig={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",e),this.__region=i,this.__isPainter=r,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,e){if(this.__region&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,e),this.__isPainter&&this.__onlyRegion)return this;if("lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(e);else if(t in this.__specialConfig)"fontSize"==t&&(e=Math.round(e)),this.__specialConfig[t]=e;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=e}return this},t.prototype.fillText=function(t,e,i,r){return void 0===r&&(r=0),this.__region&&this.__region.fillText(t,e,i,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),M(this.painter,this.__specialConfig,e,i,r).fillText(t,0,0),this.painter.restore()),this},t.prototype.strokeText=function(t,e,i,r){return void 0===r&&(r=0),this.__region&&this.__region.strokeText(t,e,i,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),M(this.painter,this.__specialConfig,e,i,r).strokeText(t,0,0),this.painter.restore()),this},t.prototype.fullText=function(t,e,i,r){return void 0===r&&(r=0),this.__region&&this.__region.fullText(t,e,i,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),M(this.painter,this.__specialConfig,e,i,r),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore()),this},t.prototype.fillTexts=function(t,e,i,r,n,o){var s=this;void 0===n&&(n=1.2),void 0===o&&(o=0);var a=0;if(this.__region&&(a=this.__region.fillTexts(t,e,i,r,n)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),M(this.painter,this.__specialConfig,e,i,o);var _=z(this.painter,t,r,this.__specialConfig.fontSize*n,(function(t,e){s.painter.fillText(t,0,e)}));return this.painter.restore(),_},t.prototype.strokeTexts=function(t,e,i,r,n,o){var s=this;void 0===n&&(n=1.2),void 0===o&&(o=0);var a=0;if(this.__region&&(a=this.__region.fillTexts(t,e,i,r,n)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),M(this.painter,this.__specialConfig,e,i,o);var _=z(this.painter,t,r,this.__specialConfig.fontSize*n,(function(t,e){s.painter.strokeText(t,0,e)}));return this.painter.restore(),_},t.prototype.fullTexts=function(t,e,i,r,n,o){var s=this;void 0===n&&(n=1.2),void 0===o&&(o=0);var a=0;if(this.__region&&(a=this.__region.fillTexts(t,e,i,r,n)),this.__isPainter&&this.__onlyRegion)return a;this.painter.save(),M(this.painter,this.__specialConfig,e,i,o);var _=z(this.painter,t,r,this.__specialConfig.fontSize*n,(function(t,e){s.painter.fillText(t,0,e),s.painter.strokeText(t,0,e)}));return this.painter.restore(),_},t.prototype.beginPath=function(){return this.__region&&this.__region.beginPath(),this.__isPainter&&this.__onlyRegion||this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&this.__region.closePath(),this.__isPainter&&this.__onlyRegion||this.painter.closePath(),this},t.prototype.moveTo=function(t,e){return this.__region&&this.__region.moveTo(t,e),this.__isPainter&&this.__onlyRegion||this.painter.moveTo(Math.round(t)+.5,Math.round(e)+.5),this},t.prototype.lineTo=function(t,e){return this.__region&&this.__region.lineTo(t,e),this.__isPainter&&this.__onlyRegion||this.painter.lineTo(Math.round(t)+.5,Math.round(e)+.5),this},t.prototype.arc=function(t,e,i,r,n){return this.__region&&this.__region.arc(t,e,i,r,n),this.__isPainter&&this.__onlyRegion||this.painter.arc(t,e,i,r,r+n,n<0),this},t.prototype.fill=function(){return this.__region&&this.__region.fill(),this.__isPainter&&this.__onlyRegion||this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&this.__region.stroke(),this.__isPainter&&this.__onlyRegion||this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&this.__region.full(),this.__isPainter&&this.__onlyRegion||(this.painter.fill(),this.painter.stroke()),this},t.prototype.save=function(){return this.__region&&this.__region.save(),this.__isPainter&&this.__onlyRegion||this.painter.save(),this},t.prototype.restore=function(){return this.__region&&this.__region.restore(),this.__isPainter&&this.__onlyRegion||this.painter.restore(),this},t.prototype.clip=function(){return this.__region&&this.__region.clip(),this.__isPainter&&this.__onlyRegion||this.painter.clip(),this},t.prototype.quadraticCurveTo=function(t,e,i,r){return this.__region&&this.__region.quadraticCurveTo(t,e,i,r),this.__isPainter&&this.__onlyRegion||this.painter.quadraticCurveTo(t,e,i,r),this},t.prototype.bezierCurveTo=function(t,e,i,r,n,o){return this.__region&&this.__region.bezierCurveTo(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||this.painter.bezierCurveTo(t,e,i,r,n,o),this},t.prototype.clearRect=function(t,e,i,r){return this.__region&&this.__region.clearRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||this.painter.clearRect(t,e,i,r),this},t.prototype.fillArc=function(t,e,i,r,n,o){return this.__region&&this.__region.fillArc(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||L(this.painter,this.__specialConfig,t,e,i,r,n,o).fill(),this},t.prototype.strokeArc=function(t,e,i,r,n,o){return this.__region&&this.__region.strokeArc(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||L(this.painter,this.__specialConfig,t,e,i,r,n,o).stroke(),this},t.prototype.fullArc=function(t,e,i,r,n,o){return this.__region&&this.__region.fullArc(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||(L(this.painter,this.__specialConfig,t,e,i,r,n,o),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillCircle=function(t,e,i){return this.__region&&this.__region.fillCircle(t,e,i),this.__isPainter&&this.__onlyRegion||I(this.painter,t,e,i).fill(),this},t.prototype.strokeCircle=function(t,e,i){return this.__region&&this.__region.strokeCircle(t,e,i),this.__isPainter&&this.__onlyRegion||I(this.painter,t,e,i).stroke(),this},t.prototype.fullCircle=function(t,e,i){return this.__region&&this.__region.fullCircle(t,e,i),this.__isPainter&&this.__onlyRegion||(I(this.painter,t,e,i),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillRect=function(t,e,i,r){return this.__region&&this.__region.fillRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||k(this.painter,t,e,i,r).fill(),this},t.prototype.strokeRect=function(t,e,i,r){return this.__region&&this.__region.strokeRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||k(this.painter,t,e,i,r).stroke(),this},t.prototype.fullRect=function(t,e,i,r){return this.__region&&this.__region.fullRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||(k(this.painter,t,e,i,r),this.painter.fill(),this.painter.stroke()),this},t.prototype.draw=function(){},t}();function N(t,e,i,r){for(var n=[],o=0;o<r;o++)n[o]=t;return function(){for(var o=0;o<r;o++){if(n[o]+i<e){n[o]=+(n[o]+i).toFixed(7);break}o<r-1&&(n[o]=t)}return n}}var O={"font-size":"fontSize","font-family":"fontFamily","font-weight":"fontWeight","font-style":"fontStyle","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},B=function(t){function e(e,i){var r=t.call(this,e,{},i?new U(i,{willReadFrequently:!0}):null,!0)||this;return r.name="Canvas",r.__regionList={},r.__regionAssemble=N(0,255,10,3),r.setRegion(""),r}return u(e,t),e.prototype.config=function(t){for(var e in t){var i=O[e]||e;this.useConfig(i,t[e])}return this},e.prototype.onlyRegion=function(t){return this.__onlyRegion=t,this},e.prototype.setRegion=function(t){if(this.__region)if(t){if(null==this.__regionList[t]){var e=this.__regionAssemble();this.__regionList[t]="rgb("+e[0]+","+e[1]+","+e[2]+")"}this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])}else this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000");return this},e.prototype.getRegion=function(t,e){var i=this;return new Promise((function(r,n){var o=i.__region?i.__region.painter.getImageData(t-.5,e-.5,1,1):{data:[0,0,0,0]},s=o.data,a=function(){if(i.__region)for(var t in i.__regionList)if("rgb("+s[0]+","+s[1]+","+s[2]+")"==i.__regionList[t]){r(t);break}r("")};s?a():o.then((function(t){s=t,a()}))}))},e.prototype.textWidth=function(t){this.painter.save(),M(this.painter,this.__specialConfig,0,0,0);var e=this.painter.measureText(t+"").width;return this.painter.restore(),e},e.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region?this.__region.painter:null:this.painter},e.prototype.createLinearGradient=function(t,e,i,r){return function(t,e,i,r,n){var o=t.createLinearGradient(e,i,r,n),s={value:function(){return o},setColor:function(t,e){return o.addColorStop(t,e),s}};return s}(this.painter,t,e,i,r)},e.prototype.createRadialGradient=function(t,e,i){return function(t,e,i,r){var n=t.createRadialGradient(e,i,0,e,i,r),o={value:function(){return n},setColor:function(t,e){return n.addColorStop(t,e),o}};return o}(this.painter,t,e,i)},e.prototype.getColor=function(t,e){var i=this.painter.getImageData(t-.5,e-.5,1,1).data;return"rgba("+i[0]+","+i[1]+","+i[2]+","+i[3]+")"},e}(U);function F(t,e){for(var i in t)e[i]=t[i];return e}var D=function(t){function e(e,i){void 0===i&&(i={});var r=this;if(!e)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");i=F(i,{region:!0});var n,o,s=e.clientWidth,a=e.clientHeight,_=e;_._vislite_canvas_?(n=_._vislite_canvas_[0],o=_._vislite_canvas_[1]):(n=document.createElement("canvas"),e.appendChild(n),i.region&&(o=document.createElement("canvas")),_._vislite_canvas_=[n,o],e.setAttribute("vislite","Canvas"));for(var h=0,u=[n,o];h<u.length;h++){var l=u[h];l&&(l.style.width=s+"px",l.setAttribute("width",s+""),l.style.height=a+"px",l.setAttribute("height",a+""))}return(r=t.call(this,n,o)||this).__canvas=n,r}return u(e,t),e.prototype.toDataURL=function(){var t=this;return new Promise((function(e){e(t.__canvas.toDataURL())}))},e}(B);function G(t,e,i){void 0===i&&(i={});for(var r=["webgl","experimental-webgl","webkit-3d","moz-webgl"],n=null,o=0;o<r.length;o++){try{n=t.getContext(r[o],i)}catch(t){}if(n)break}if(!n)throw new Error("Non canvas or browser does not support webgl.");var s=n.canvas.width,a=n.canvas.height,_=s*e,h=a*e;return n.viewport(.5*(s-_),.5*(a-h),_,h),n.depthFunc(n.LEQUAL),n.enable(n.DEPTH_TEST),n}function H(t){var e=t.drawingBufferWidth,i=t.drawingBufferHeight,r=new Uint8Array(4*e*i);return t.readPixels(0,0,e,i,t.RGBA,t.UNSIGNED_BYTE,r),function(t,n){return"rgba("+r[4*((n=i-n)*e+t)]+","+r[4*(n*e+t)+1]+","+r[4*(n*e+t)+2]+","+r[4*(n*e+t)+3]+")"}}var W=function(){function t(t,e){void 0===e&&(e=!1),this.__painter=t,this.__isElement=e,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=e?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER}return t.prototype.use=function(){return this.__painter.bindBuffer(this.__type,this.__buffer),this},t.prototype.write=function(t){return function(t,e,i,r){var n=i?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(n,e,r)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,e,i,r){return void 0===r&&(r=0),function(t,e,i,r,n,o,s){t.vertexAttribPointer(e,i,r,s,n,o),t.enableVertexAttribArray(e)}(this.__painter,t,e,this.__painter.FLOAT,i*this.__fsize,r*this.__fsize,!1),this},t}(),V=function(){function t(t,e,i){void 0===i&&(i=0),this.__painter=t,this.__type={"2d":t.TEXTURE_2D,cube:t.TEXTURE_CUBE_MAP}[e],this.__texture=function(t,e,i){var r=t.createTexture();return t.activeTexture(t["TEXTURE"+i]),t.bindTexture(e,r),r}(t,this.__type,i),t.texParameteri(this.__type,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(this.__type,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(this.__type,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(this.__type,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE)}return t.prototype.useImage=function(t){return function(t,e,i,r,n,o){t.texImage2D(e,i,r,r,n,o)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t),this},t.prototype.useCube=function(t,e,i){return function(t,e,i,r,n,o,s,a,_){for(var h,u=[t.TEXTURE_CUBE_MAP_POSITIVE_X,t.TEXTURE_CUBE_MAP_NEGATIVE_X,t.TEXTURE_CUBE_MAP_POSITIVE_Y,t.TEXTURE_CUBE_MAP_NEGATIVE_Y,t.TEXTURE_CUBE_MAP_POSITIVE_Z,t.TEXTURE_CUBE_MAP_NEGATIVE_Z],l=0;l<u.length;l++)o[l]&&(h=u[l],t.texImage2D(h,i,r,s,a,0,r,n,null),t.bindTexture(e,_),t.texImage2D(h,i,r,r,n,o[l]));t.generateMipmap(e)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t,e,i,this.__texture),this},t}(),X={};function q(t,e,i){var r=t+"-"+i;return X[r]||(X[r]=new V(e,i)),X[r]}var Y=function(t,e,i){var r=t.createShader(e);if(null==r)throw new Error("Unable to create shader!");if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(r));return r},j=function(){function t(t){this.__painter=t}return t.prototype.use=function(){return this.__painter.useProgram(this.program),this},t.prototype.compile=function(t,e){return this.program=function(t,e,i){var r=Y(t,t.VERTEX_SHADER,e),n=Y(t,t.FRAGMENT_SHADER,i),o=t.createProgram();if(t.attachShader(o,r),t.attachShader(o,n),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(o));return o}(this.__painter,t,e),this},t}(),Z="attribute vec4 a_position;\r\nuniform mat4 u_matrix;\r\n\r\nvoid main()\r\n{\r\n vec4 temp = u_matrix * a_position;\r\n\r\n // 把原生的WebGL使用的左手坐标系变成了右手坐标系\r\n temp.z = -1.0 * temp.z;\r\n\r\n // 表示眼睛距离vec4(0.0,0.0,1.0)的距离\r\n float dist = 4.0;\r\n\r\n // 使用投影直接计算\r\n // 为保证纹理和相对位置正确\r\n // x、y、z的改变满足线性变换\r\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\r\n}",J="attribute vec4 a_position;\r\nuniform mat4 u_matrix;\r\nattribute vec4 a_color;\r\nvarying vec4 v_color;\r\n\r\nvoid main()\r\n{\r\n vec4 temp = u_matrix * a_position;\r\n temp.z = -1.0 * temp.z;\r\n float dist = 4.0;\r\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\r\n\r\n v_color = a_color;\r\n}",Q="attribute vec4 a_position;\r\nuniform mat4 u_matrix;\r\nattribute vec2 a_textcoord;\r\nvarying vec2 v_textcoord;\r\n\r\nvoid main()\r\n{\r\n vec4 temp = u_matrix * a_position;\r\n temp.z = -1.0 * temp.z;\r\n float dist = 4.0;\r\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\r\n\r\n v_textcoord = a_textcoord;\r\n}",K="attribute vec4 a_position;\r\nuniform mat4 u_matrix;\r\nattribute vec4 a_normal;\r\nvarying vec3 v_normal;\r\n\r\nvoid main()\r\n{\r\n vec4 temp = u_matrix * a_position;\r\n temp.z = -1.0 * temp.z;\r\n float dist = 4.0;\r\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\r\n\r\n v_normal = normalize(vec3(a_normal));\r\n}",$="precision mediump float;\r\n\r\nuniform vec4 u_color;\r\n\r\nvoid main()\r\n{\r\n gl_FragColor = u_color;\r\n}",tt="precision mediump float;\r\n\r\nvarying vec4 v_color;\r\n\r\nvoid main()\r\n{\r\n gl_FragColor = v_color;\r\n}",et="precision mediump float;\r\n\r\nuniform sampler2D u_sampler;\r\nvarying vec2 v_textcoord;\r\n\r\nvoid main()\r\n{\r\n gl_FragColor = texture2D(u_sampler, v_textcoord);\r\n}",it="precision mediump float;\r\n\r\nvarying vec3 v_normal;\r\nuniform samplerCube u_texture;\r\n\r\nvoid main()\r\n{\r\n gl_FragColor = textureCube(u_texture, normalize(v_normal));\r\n}",rt={};function nt(t,e,i,r,n){var o=function(t,e,i){var r,n,o=t+(i.material.color?"1":"0")+(i.material.colors?"1":"0")+(i.material.image?"1":"0")+(i.material.cube?"1":"0");if(rt[o])return rt[o].use();var s=(r={},r[t+"1000"]=Z,r[t+"0100"]=J,r[t+"0010"]=Q,r[t+"0001"]=K,r)[o].replace(/uniform +mat4 +u_matrix;/,"\n uniform mat4 u_matrix_world;\n uniform mat4 u_matrix_mesh;\n uniform mat4 u_matrix_proporion;").replace(/u_matrix +\* +a_position/,"u_matrix_proporion * u_matrix_world * u_matrix_mesh * a_position"),a=(n={},n[t+"1000"]=$,n[t+"0100"]=tt,n[t+"0010"]=et,n[t+"0001"]=it,n)[o],_=new j(e).compile(s,a).use();return rt[o]=_,_}(t,e,i);if(new W(e).use().write(i.geometry.attributes.position.array).divide(e.getAttribLocation(o.program,"a_position"),i.geometry.attributes.position.itemSize,i.geometry.attributes.position.itemSize,0),e.uniformMatrix4fv(e.getUniformLocation(o.program,"u_matrix_world"),!1,n.matrix),e.uniformMatrix4fv(e.getUniformLocation(o.program,"u_matrix_proporion"),!1,n.proporion),e.uniformMatrix4fv(e.getUniformLocation(o.program,"u_matrix_mesh"),!1,r.matrix),i.geometry.attributes.normal&&new W(e).use().write(i.geometry.attributes.normal.array).divide(e.getAttribLocation(o.program,"a_normal"),i.geometry.attributes.normal.itemSize,i.geometry.attributes.normal.itemSize,0),"color"in i.material&&e.uniform4f(e.getUniformLocation(o.program,"u_color"),i.material.color.r,i.material.color.g,i.material.color.b,i.material.color.alpha),"colors"in i.material)new W(e).use().write(i.material.colors.array).divide(e.getAttribLocation(o.program,"a_color"),i.material.colors.itemSize,i.material.colors.itemSize,0);else if("cube"in i.material){var s=i.material.cube.right.image.value.width;e.uniform1i(e.getUniformLocation(o.program,"u_texture"),0),q(t,e,"cube").useCube([i.material.cube.right.image.value,i.material.cube.left.image.value,i.material.cube.top.image.value,i.material.cube.bottom.image.value,i.material.cube.far.image.value,i.material.cube.near.image.value],s,s)}else"image"in i.material&&(e.uniform1i(e.getUniformLocation(o.program,"u_sampler"),0),new W(e).use().write(i.geometry.attributes.uv.array).divide(e.getAttribLocation(o.program,"a_textcoord"),i.geometry.attributes.uv.itemSize,2,0),q(t,e,"2d").useImage(i.material.image.value));i.geometry.index?(new W(e,!0).use().write(i.geometry.index.array),e.drawElements(e[i.geometry.type],i.geometry.index.count,e.UNSIGNED_BYTE,0)):e.drawArrays(e[i.geometry.type],0,i.geometry.attributes.position.count)}var ot,st=!1,at=function(){function t(t,e){this.name="WebGL",this.__getColor=function(t,e){return"rgba(0,0,0,1)"},this.__regionList={},this.__regionAssemble=N(0,1,.2,3),this.__regionName="",this.__regionColor=[0,0,0,1],this.__scene={children:[],matrix:new r([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,10])},this.__unique=(new Date).valueOf(),this.painter=G(t,10),e&&(this.__regionPainter=G(e,10,{}));var i=this.painter.canvas.width/this.painter.canvas.height,n=1,o=1;i>1?n=1/i:o=i;var s=Math.min(n,o);this.__proporion=[n,0,0,0,0,o,0,0,0,0,s,0,0,0,0,1]}return t.prototype.matrix=function(t){return new r(t)},t.prototype.getMatrix=function(){return this.__scene.matrix},t.prototype.getObject3D=function(){return this.__scene.children},t.prototype.review=function(t){void 0===t&&(t=!1),t?this.__regionPainter&&(this.__regionPainter.clearColor(1,1,1,1),this.__regionPainter.clear(this.__regionPainter.COLOR_BUFFER_BIT)):(this.painter.clearColor(1,1,1,1),this.painter.clear(this.painter.COLOR_BUFFER_BIT));for(var e=0;e<this.__scene.children.length;e++)this.draw(this.__scene.children[e],t);return this},t.prototype.draw=function(t,e){void 0===e&&(e=!1),e||(st=!0);var i={matrix:t.matrix.value()},r={matrix:this.__scene.matrix.value(),proporion:this.__proporion};this.setRegion(t.region);for(var n=0;n<t.mesh.length;n++)e?this.__regionPainter&&(nt("painter"+this.__unique,this.__regionPainter,{geometry:t.mesh[n].geometry,material:{color:{r:this.__regionColor[0],g:this.__regionColor[1],b:this.__regionColor[2],alpha:this.__regionColor[3]}}},i,r),this.__getColor=H(this.__regionPainter)):nt("region"+this.__unique,this.painter,t.mesh[n],i,r)},t.prototype.render=function(t){"matrix"in t||(t.matrix=new r),"region"in t||(t.region="");for(var e=0;e<t.mesh.length;e++){var i=t.mesh[e];i.geometry.attributes.normal&&Array.isArray(i.geometry.attributes.normal.array)&&(i.geometry.attributes.normal.array=new Float32Array(i.geometry.attributes.normal.array)),i.geometry.attributes.position&&Array.isArray(i.geometry.attributes.position.array)&&(i.geometry.attributes.position.array=new Float32Array(i.geometry.attributes.position.array)),i.geometry.attributes.uv&&Array.isArray(i.geometry.attributes.uv.array)&&(i.geometry.attributes.uv.array=new Float32Array(i.geometry.attributes.uv.array)),i.geometry.index&&Array.isArray(i.geometry.index.array)&&(i.geometry.index.array=new Uint8Array(i.geometry.index.array)),i.material.colors&&Array.isArray(i.material.colors.array)&&(i.material.colors.array=new Float32Array(i.material.colors.array))}this.__scene.children.push(t),this.draw(t)},t.prototype.setRegion=function(t){return this.__regionName=t+"",t?(null==this.__regionList[t]&&(this.__regionList[t]=l(l([],this.__regionAssemble(),!0),[1],!1)),this.__regionColor=this.__regionList[t]):this.__regionColor=[0,0,0,1],this},t.prototype.getRegion=function(t,e){var i=this;return st&&this.review(!0),st=!1,new Promise((function(r,n){var o=i.__getColor(t,e);for(var s in i.__regionList){var a=i.__regionList[s];if("rgba("+255*a[0]+","+255*a[1]+","+255*a[2]+","+255*a[3]+")"==o){r(s);break}}r("")}))},t}(),_t=function(t){function e(e,i){if(void 0===i&&(i={}),!e)throw new Error("VISLite WebGL:The mount point requires an HTMLElement type but encountered null.");i=F(i,{region:!0});var r,n,o=e.clientWidth,s=e.clientHeight,a=e;a._vislite_canvas_?(r=a._vislite_canvas_[0],n=a._vislite_canvas_[1]):(i.region&&(n=document.createElement("canvas"),e.appendChild(n),n.style.position="absolute",n.style.zIndex="-1",n.style.opacity="0"),r=document.createElement("canvas"),e.appendChild(r),a._vislite_canvas_=[r,n],e.setAttribute("vislite","WebGL"));for(var _=0,h=[r,n];_<h.length;_++){var u=h[_];u&&(u.style.width=o+"px",u.setAttribute("width",o+""),u.style.height=s+"px",u.setAttribute("height",s+""))}return t.call(this,r,n)||this}return u(e,t),e}(at),ht=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return u(e,t),e.prototype.compile=function(e,i){return i?t.prototype.compile.call(this,e,i):t.prototype.compile.call(this,{color:Z,colors:J,image:Q,cube:K}[e],{color:$,colors:tt,image:et,cube:it}[e]),this},e}(j),ut=function(t,e,i,r){var n=Math.cos(t),o=Math.sin(t);return[e*n-i*o,e*o+i*n,r]},lt=function(){function t(t,e){void 0===t&&(t=7),void 0===e&&(e=[107,36]),this.name="Eoap",this.__scale=t,this.__center=e}return t.prototype.use=function(t,e){var i,r,n,o,s,a,_=(i=(360-e)/180*Math.PI,r=100*this.__scale,n=0,o=0,s=Math.cos(i),a=Math.sin(i),[o*a+r*s,n,o*s-r*a]);return _=ut(t/180*Math.PI,_[0],_[1],_[2]),_=ut((90-this.__center[0])/180*Math.PI,_[0],_[1],_[2]),_=function(t,e,i,r){var n=Math.cos(t),o=Math.sin(t);return[e,i*n-r*o,i*o+r*n]}((90-this.__center[1])/180*Math.PI,_[0],_[1],_[2]),[-_[0],_[1],_[2]]},t}(),pt=function(t,e){void 0===t&&(t=7),void 0===e&&(e=[107,36]),this.name="Mercator";var i=100*t*Math.PI/180,r=i*e[0],n=-1*i*e[1];this.use=function(t,e){return[.8*(i*t-r),-1*i*e-n,0]}},ct=function(t,e){var i=t.getBoundingClientRect();return{x:e.clientX-i.left,y:e.clientY-i.top}},ft={},dt=0,gt=function(){function t(t){void 0===t&&(t={}),this.name="Tree",this.__config=F(t,{root:function(t){return t},children:function(t){return t.children},id:function(t){return t.name}})}return t.prototype.use=function(t,e){return void 0===e&&(e={}),function(t,e,i){var r=function(t,e){var i,r,n={},o=e.root(t);i=r=e.id(o),n[i]={data:o,pid:null,id:i,isOpen:!0,show:!0,children:[]};var s=1;return function r(o,a){var _=e.children(o,t);s+=_?_.length:0;for(var h=0;_&&h<_.length;h++)i=e.id(_[h]),n[a].children.push(i),n[i]={data:_[h],pid:a,id:i,isOpen:!0,show:!0,children:[]},r(_[h],i)}(o,i),{rid:r,value:n,num:s}}(t,e),n=r.value,o=r.rid;if(1==r.num)return n[o].left=.5,n[o].top=.5,n[o].show=!0,{deep:1,node:n,root:o,size:1};var s=[],a=0,_=0;for(var h in i[o]?(n[o].left=.5,n[o].top=.5,n[o].show=!0,a=1):function t(e,r){r>_&&(_=r);var o=0;if(!i[e.id])for(o=0;o<e.children.length;o++)t(n[e.children[o]],r+1);if(n[e.id].left=r+.5,0==o?(null==s[r]&&(s[r]=-.5),null==s[r-1]&&(s[r-1]=-.5),n[e.id].top=s[r]+1,s[r]+1+.5*(n[e.pid].children.length-1)-1<s[r-1]&&(n[e.id].top=s[r-1]+1-.5*(n[e.pid].children.length-1))):n[e.id].top=.5*(n[e.children[0]].top+n[e.children[o-1]].top),n[e.id].top<=s[r])var h=s[r]+1-n[e.id].top((function t(e,i){n[e].top+=h,s[i]<n[e].top&&(s[i]=n[e].top);for(var r=0;r<n[e].children.length;r++)t(n[e].children[r],i+1)}))(e.id,r);s[r]=n[e.id].top,n[e.id].top+.5>a&&(a=n[e.id].top+.5)}(n[o],0),i)i[h]&&(n[h].isOpen=!1,function t(e,i,r){for(var o=0;o<n[e].children.length;o++)n[n[e].children[o]].left=i,n[n[e].children[o]].top=r,n[n[e].children[o]].show=!1,t(n[e].children[o],i,r)}(h,n[h].left,n[h].top));return{node:n,root:o,size:a,deep:_+1}}(t,this.__config,e)},t}(),vt=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name="TreeLayout",e.__option={offsetX:0,offsetY:0,duration:500,type:"plain",direction:"LR",x:100,y:100,width:100,height:100,radius:100},e.__noOpens={},e}return u(e,t),e.prototype.setOption=function(t){return F(t,this.__option),this},e.prototype.use=function(e,i){void 0===i&&(i={});var r=t.prototype.use.call(this,e,i);if(0!=this.__option.offsetX||0!=this.__option.offsetY)for(var o in r.node)if(!r.node[o].show){var s=0,a=o;do{a=r.node[a].pid,s++}while(!r.node[a].show);r.node[o].left+=this.__option.offsetX*s,r.node[o].top+=this.__option.offsetY*s}if("rect"==this.__option.type){if("LR"==this.__option.direction||"RL"==this.__option.direction){var _=this.__option.height/r.size,h=this.__option.width/(r.deep-1),u=this.__option.y-.5*this.__option.height,l="LR"==this.__option.direction?1:-1;for(var o in r.node)1==r.deep?(r.node[o].left=this.__option.x+.5*this.__option.width*l,r.node[o].top=this.__option.y):(r.node[o].left=this.__option.x+(r.node[o].left-.5)*h*l,r.node[o].top=r.node[o].top*_+u)}else if("TB"==this.__option.direction||"BT"==this.__option.direction)for(var o in _=this.__option.width/r.size,h=this.__option.height/(r.deep-1),u=this.__option.x-.5*this.__option.width,l="TB"==this.__option.direction?1:-1,r.node)if(1==r.deep)r.node[o].left=this.__option.x,r.node[o].top=this.__option.y+.5*this.__option.height*l;else{var p=r.node[o].left;r.node[o].left=r.node[o].top*_+u,r.node[o].top=this.__option.y+(p-.5)*h*l}}else if("circle"==this.__option.type){var c=this.__option.x,f=this.__option.y,d=2*Math.PI/r.size,g=this.__option.radius/(r.deep-1);for(var o in r.node)if(.5==r.node[o].left)r.node[o].left=c,r.node[o].top=f;else{var v=n(c,f,d*r.node[o].top,c+(r.node[o].left-.5)*g,f);r.node[o].left=v[0],r.node[o].top=v[1]}}return r},e.prototype.bind=function(t,e,i){return void 0===i&&(i={}),this.__rback=e,this.__oralTree=t,this.__noOpens=i,this.__preTree=this.use(this.__oralTree,this.__noOpens),this.__rback(this.__preTree),this},e.prototype.unbind=function(){return this.__rback=null,this.__oralTree=null,this.__preTree=null,this.__noOpens={},this},e.prototype.doUpdate=function(){var t=this,e=this.use(this.__oralTree,this.__noOpens),i=JSON.parse(JSON.stringify(e));_((function(r){for(var n in i.node)(e.node[n].show||t.__preTree.node[n].show)&&(i.node[n].show=!0,i.node[n].left=t.__preTree.node[n].left+(e.node[n].left-t.__preTree.node[n].left)*r,i.node[n].top=t.__preTree.node[n].top+(e.node[n].top-t.__preTree.node[n].top)*r);t.__rback(i)}),this.__option.duration,(function(){t.__preTree=e,t.__rback(t.__preTree)}))},e.prototype.closeNode=function(t){if(this.__preTree)return this.__noOpens[t]=!0,this.doUpdate(),this},e.prototype.openNode=function(t){if(this.__preTree)return this.__noOpens[t]=!1,this.doUpdate(),this},e.prototype.toggleNode=function(t){if(this.__preTree)return this.__noOpens[t]=!this.__noOpens[t],this.doUpdate(),this},e}(gt),mt=function(t,e){var i=Math.ceil(2*Math.PI/Math.asin(t/e)*2);return isNaN(i)||i<12?12:i};function yt(t,e,i,r,o,s,a){var _,h;if(4==s){var u=o/1.414;_=e+u,h=r+u}else _=e+o,h=r;for(var l=[_,h],p=[],c=2*Math.PI/s,f=0;f<s;f++)p.push(e,i,r),t&&p.push(0,a,0),p.push(l[0],i,l[1]),t&&p.push(0,a,0),l=n(e,r,c*(f+1),_,h),p.push(l[0],i,l[1]),t&&p.push(0,a,0);return p}function Et(t,e,i,r,o,s,a){var _,h=[e,i+o,r],u=2*Math.PI/s;t&&h.push(0,o,0);for(var l=function(){h.push.apply(h,h.slice(h.length-(t?12:6)))},p=1;p<.5*s;p++){_=n(e,i,u*p,e,i+o),p>1&&l();var c=n(e,r,u*a,_[0],r);h.push(c[0],_[1],c[1]),t&&h.push(c[0]-e,_[1]-i,c[1]-r),p>1&&l();var f=n(e,r,u*(a+1),_[0],r);h.push(f[0],_[1],f[1]),t&&h.push(f[0]-e,f[1]-i,f[1]-r)}return l(),h.push(e,i-o,r),t&&h.push(0,-o,0),h}var xt=function(){function t(t){void 0===t&&(t={}),this.name="Geometry",this.__option=F(t,{precision:.1,normal:!1})}return t.prototype.config=function(t){for(var e in t)this.__option[e]=t[e];return this},t.prototype.cylinder=function(t,e,i,r,n){var o=mt(this.__option.precision,r);return this.prism(t,e,i,r,n,o)},t.prototype.prism=function(t,e,i,r,o,s){var a,_,h,u=[{points:[],length:0,method:"TRIANGLES"}];return(a=u[0].points).push.apply(a,yt(this.__option.normal,t,e,i,r,s,o>0?-1:1)),(_=u[0].points).push.apply(_,yt(this.__option.normal,t,e+o,i,r,s,o>0?1:-1)),(h=u[0].points).push.apply(h,function(t,e,i,r,o,s,a){var _,h=[];_=4==a?n(e,r,.25*Math.PI,e-o,r):[e+o,r];for(var u,p=2*Math.PI/a,c=2*Math.PI/(2*a),f=[],d=0;d<a;d++){if(u=n.apply(void 0,l([e,r,p],_,!1)),t){var g=n.apply(void 0,l([e,r,c],_,!1));f=[g[0],0,g[1]]}h.push.apply(h,l([_[0],i,_[1]],f,!1)),h.push.apply(h,l([_[0],i+s,_[1]],f,!1)),h.push.apply(h,l([u[0],i+s,u[1]],f,!1)),h.push.apply(h,l([_[0],i,_[1]],f,!1)),h.push.apply(h,l([u[0],i,u[1]],f,!1)),h.push.apply(h,l([u[0],i+s,u[1]],f,!1)),_=u}return h}(this.__option.normal,t,e,i,r,o,s)),u[0].length=12*s,u},t.prototype.sphere=function(t,e,i,r){for(var n,o=mt(this.__option.precision,r),s=[{points:[],length:0,method:"TRIANGLES"}],a=0;a<o;a++)(n=s[0].points).push.apply(n,Et(this.__option.normal,t,e,i,r,o,a));return s[0].length=s[0].points.length/(this.__option.normal?6:3),s},t}(),bt={Cardinal:e,Hermite:t,Matrix4:r,rotate:n,move:function(t,e,i,r,n){var o=Math.sqrt(t*t+e*e);return[t*i/o+r,e*i/o+n]},scale:function(t,e,i,r,n){return[i*(r-t)+t,i*(n-e)+e]},getLoopColors:function(t,e){void 0===e&&(e=1);var i=["rgba(84,112,198,"+e+")","rgba(145,204,117,"+e+")","rgba(250,200,88,"+e+")","rgba(238,102,102,"+e+")","rgba(115,192,222,"+e+")","rgba(59,162,114,"+e+")","rgba(252,132,82,"+e+")","rgba(154,96,180,"+e+")","rgba(234,124,204,"+e+")"],r=[];if(t<=i.length)return i;if(t%i.length==0)for(var n=0;n<t/i.length;n++)r=r.concat(i);else{for(var o=1;o<t/i.length;o++)r=r.concat(i);if(t%i.length==1)r=r.concat(i[4]);else for(var s=0;s<t%i.length;s++)r=r.concat(i[s])}return r},formatColor:function(t,e){var i=document.getElementsByTagName("head")[0];i.style.color=t;for(var r=(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(i,null):i.currentStyle).getPropertyValue("color").replace(/rgba?\(/,"").replace(")","").split(","),n=0;n<r.length;n++)r[n]=+r[n];switch(r.push(1),e){case"3d":return[r[0]/255,r[1]/255,r[2]/255,r[3]];case"rgba":return"rgba(".concat(r[0],", ").concat(r[1],", ").concat(r[2],", ").concat(r[3],")");case"rgb":return"rgb(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")");case"hexAlpha":return"#".concat(s(r[0])).concat(s(r[1])).concat(s(r[2])).concat(s(+(255*r[3]).toFixed(0)));case"hex":return"#".concat(s(r[0])).concat(s(r[1])).concat(s(r[2]))}throw new Error("Unsupported color format: "+e)},animation:_,ruler:function(t,e,i,r){if(t<e){var n=e;e=t,t=n}else if(t==e)return[t];var o=function(t){for(var e=t<100&&t>-100?10:.1,i=-1,r=t;10==e?r>=-100&&r<=100:r<=-100||r>=100;)i+=1,r*=e;if(10==e)return Math.pow(10,i);for(var n="0.",o=1;o<i;o++)n+="0";return+(n+"1")}(t-e),s=Math.ceil((t-e)*o/i),a=function(i){var r=({3:2,4:5,6:5,7:5,8:10,9:10,11:10,12:10,13:15,14:15,16:15,17:15,18:20,19:20,21:20,22:20,23:25,24:25,26:25,27:25}[s+i]||s+i)/o,n=Math.floor(e/r)*r,a=[];a.push(n);for(var _=1;a[a.length-1]<t;_++)a.push(n+r*_);return a},_=a(0),h=function(){for(var t=[],i=_[_.length-1]-r.max,n=0;n<_.length;n++)n+1<_.length&&_[n+1]-i<e||t.push(_[n]-i);return t},u=function(){for(var e=[],i=_[0]-r.min,n=0;n<_.length&&(e[n]=_[n]-i,!(t<=e[n]));n++);return e};if(r){if("max"in r&&"min"in r&&r.max>=t&&r.min<=e){var l=function(){if(_[0]>=r.min&&_[_.length-1]<=r.max)return!0;var t=h();if(t[0]>=r.min&&t[t.length-1]<=r.max)return _=t,!0;var e=u();return e[0]>=r.min&&e[t.length-1]<=r.max?(_=e,!0):void 0};if(l())return _;for(var p=1;p<100;p++){if(_=a(p),l())return _;if(_=a(-p),l())return _}}"max"in r&&r.max>=t?r.max<_[_.length-1]&&(_=h()):"min"in r&&r.min<=e&&r.min>_[0]&&(_=u())}return _},SVG:A,Canvas:D,WebGL:_t,getWebGLContext:function(t,e){if(void 0===e&&(e=1),!t)throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.");var i,r=t.clientWidth,n=t.clientHeight,o=t;return o._vislite_canvas_?i=o._vislite_canvas_:(i=document.createElement("canvas"),t.appendChild(i),o._vislite_canvas_=i,t.setAttribute("vislite","WebGL")),i.style.width=r+"px",i.setAttribute("width",r+""),i.style.height=n+"px",i.setAttribute("height",n+""),G(i,e)},Shader:ht,Texture:V,Buffer:W,Eoap:lt,Mercator:pt,viewHandler:function(t){var e=document.getElementsByTagName("body")[0];e.addEventListener("keydown",(function(e){var i=function(t){return{37:"left",38:"up",39:"right",40:"down"}[t.keyCode||t.which]}(e);"up"==i?t({type:"lookUp",normal:[],value:.1,event:e}):"down"==i?t({type:"lookDown",normal:[],value:.1,event:e}):"left"==i?t({type:"lookLeft",normal:[],value:.1,event:e}):"right"==i&&t({type:"lookRight",normal:[],value:.1,event:e})}));var i=null,r=function(r){if(null==i)t({type:"hover",normal:[],value:0,event:r});else{var n=ct(e,r),o=[n.x-i.x,n.y-i.y],s=[o[1],o[0],0];if(0==s[0]&&0==s[1])return;t({type:"rotate",normal:s,value:.01*(Math.abs(n.x-i.x)+Math.abs(n.y-i.y)),event:r}),i=n}};e.addEventListener("mousedown",(function(t){i=ct(e,t)})),e.addEventListener("mouseup",(function(t){i=null})),e.addEventListener("mousemove",(function(t){r(t)})),e.addEventListener("touchend",(function(t){i=null})),e.addEventListener("touchstart",(function(t){i=ct(e,t)})),e.addEventListener("touchmove",(function(t){r(t.touches[0])}));var n=function(e,i){0!=e&&t({type:"scale",value:e<0?.899:1.101,normal:[],event:i})};e.addEventListener("mousewheel",(function(t){n(t.wheelDelta,t)})),window.addEventListener&&window.addEventListener("DOMMouseScroll",(function(t){n(-1*t.detail,t)}),!1)},resizeObserver:function(t,e){try{return ot||(ot=new ResizeObserver((function(t){for(var e=0,i=t;e<i.length;e++){var r=i[e];ft[r.target._resize_observer_]()}}))),dt++,t._resize_observer_=dt,ft[dt]=e,ot.observe(t),function(){ot&&(ot.unobserve(t),delete ft[t._resize_observer_])}}catch(t){e(),console.error("ResizeObserver undefined!")}},throttle:function(t,e){void 0===e&&(e={}),e=F(e,{time:200,keep:!1,opportunity:"end"});var i,r=!1,n=!1,o=!1;return function(){var s=this;if(i=arguments,r)n=!0,o=!0;else{"end"!=e.opportunity&&t.apply(s,i),r=!0;var a=setInterval((function(){n?e.keep||t.apply(s,i):("begin"!=e.opportunity&&(o||"end"==e.opportunity)&&t.apply(s,i),r=!1,o=!1,clearInterval(a)),n=!1}),e.time)}}},TreeLayout:vt,Geometry:xt};return bt},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite=e();
|
|
11
|
+
var t,e;t=this,e=function(){"use strict";var t=function(){function t(t){void 0===t&&(t=.5),this.name="Hermite",this.__u=t}return t.prototype.setP=function(t,e,i,r,n,o){if(!(t<i))throw new Error("The point x-position should be increamented!");this.__a=t,this.__b=i;var a=this.__u*n,s=this.__u*o;return e/=i-t,r/=i-t,this.__MR=[2*e-2*r+a+s,3*r-3*e-2*a-s,a,e],this},t.prototype.use=function(t){if(this.__MR){var e=(t-this.__a)/(this.__b-this.__a),i=e*e;return(e*i*this.__MR[0]+i*this.__MR[1]+e*this.__MR[2]+this.__MR[3])*(this.__b-this.__a)}throw new Error("You shoud first set the position!")},t}(),e=function(){function e(t){void 0===t&&(t=0),this.name="Cardinal",this.__t=t}return e.prototype.setP=function(e){this.__HS={x:[],h:[]};var i,r,n=(e[1][1]-e[0][1])/(e[1][0]-e[0][0]);for(this.__HS.x[0]=e[0][0],i=1;i<e.length;i++){if(e[i][0]<=e[i-1][0])throw new Error("The point position should be increamented!");this.__HS.x[i]=e[i][0],r=i<e.length-1?e[i+1][1]>e[i][1]&&e[i-1][1]>e[i][1]||e[i+1][1]<e[i][1]&&e[i-1][1]<e[i][1]||e[i+1][1]==e[i][1]||e[i-1][1]==e[i][1]?0:(e[i+1][1]-e[i-1][1])/(e[i+1][0]-e[i-1][0]):(e[i][1]-e[i-1][1])/(e[i][0]-e[i-1][0]),this.__HS.h[i-1]=new t(.5*(1-this.__t)).setP(e[i-1][0],e[i-1][1],e[i][0],e[i][1],n,r),n=r}return this},e.prototype.use=function(t){if(this.__HS){for(this.__i=-1;this.__i+1<this.__HS.x.length&&(t>this.__HS.x[this.__i+1]||-1==this.__i&&t>=this.__HS.x[this.__i+1]);)this.__i+=1;return this.__i<0?this.__HS.h[0].use(this.__HS.x[0]):this.__i>=this.__HS.h.length?this.__HS.h[this.__HS.h.length-1].use(this.__HS.x[this.__HS.x.length-1]):this.__HS.h[this.__i].use(t)}throw new Error("You shoud first set the position!")},e}(),i=function(t,e){for(var i=[],r=0;r<4;r++)for(var n=0;n<e.length/4;n++)i[4*n+r]=t[r]*e[4*n]+t[r+4]*e[4*n+1]+t[r+8]*e[4*n+2]+t[r+12]*e[4*n+3];return i},r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],n=function(){function t(t){void 0===t&&(t=r),this.name="Matrix4",this.__matrix4=t}return t.prototype.setValue=function(t){return void 0===t&&(t=r),this.__matrix4=t,this},t.prototype.move=function(t,e,r,n){return void 0===n&&(n=0),this.__matrix4=i(function(t,e,i,r){void 0===r&&(r=0);var n=Math.sqrt(e*e+i*i+r*r);return[1,0,0,0,0,1,0,0,0,0,1,0,e*t/n,i*t/n,r*t/n,1]}(t,e,r,n),this.__matrix4),this},t.prototype.rotate=function(t,e,r,n,o,a,s){var _=function(t,e,i,r,n,o){if("number"==typeof t&&"number"==typeof e){if("number"!=typeof i?(i=0,r=t,n=e,o=1):"number"==typeof r&&"number"==typeof n&&"number"==typeof o||(r=t,n=e,o=i,t=0,e=0,i=0),t==r&&e==n&&i==o)throw new Error("It's not a legitimate ray!");var a=Math.sqrt((r-t)*(r-t)+(n-e)*(n-e)),s=0!=a?(n-e)/a:1,_=0!=a?(r-t)/a:0,h=(r-t)*_+(n-e)*s,u=o-i,l=Math.sqrt(h*h+u*u),p=0!=l?u/l:1,c=0!=l?h/l:0;return[[s,p*_,_*c,0,-_,s*p,s*c,0,0,-c,p,0,e*_-t*s,i*c-t*_*p-e*s*p,-t*_*c-e*s*c-i*p,1],[s,-_,0,0,p*_,p*s,-c,0,_*c,s*c,p,0,t,e,i,1]]}throw new Error("a1 and b1 is required!")}(e,r,n,o,a,s);return this.__matrix4=i(i(i(_[1],function(t){var e=Math.sin(t),i=Math.cos(t);return[i,e,0,0,-e,i,0,0,0,0,1,0,0,0,0,1]}(t)),_[0]),this.__matrix4),this},t.prototype.scale=function(t,e,r,n,o,a){return void 0===n&&(n=0),void 0===o&&(o=0),void 0===a&&(a=0),this.__matrix4=i(function(t,e,i,r,n,o){return void 0===r&&(r=0),void 0===n&&(n=0),void 0===o&&(o=0),[t,0,0,0,0,e,0,0,0,0,i,0,r-r*t,n-n*e,o-o*i,1]}(t,e,r,n,o,a),this.__matrix4),this},t.prototype.multiply=function(t,e){return void 0===e&&(e=!1),this.__matrix4=e?i(this.__matrix4,t):i(t,this.__matrix4),this},t.prototype.use=function(t,e,r,n){return void 0===r&&(r=0),void 0===n&&(n=1),i(this.__matrix4,[t,e,r,n])},t.prototype.value=function(){return this.__matrix4},t}();function o(t,e,i,r,n){var o=Math.cos(i),a=Math.sin(i);return[(r-t)*o-(n-e)*a+t,(r-t)*a+(n-e)*o+e]}var a,s=function(t){var e=t.toString(16);return 1==e.length?"0"+e:e},_=[];function h(t,e,i){void 0===e&&(e=400),void 0===i&&(i=function(){});var r={timer:function(t,e,i){if(!t)throw new Error("Tick is required!");var n=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return _.push({id:n,createTime:new Date,tick:t,duration:e,callback:i}),r.start(),n},start:function(){a||(a=setInterval(r.tick,13))},tick:function(){var t,e,i,n,o,a,s,h=_;for((_=[]).length=0,e=0;e<h.length;e++)t=(o=h[e]).createTime,i=o.tick,a=o.duration,n=o.callback,i(s=(s=(+(new Date).valueOf()-t.valueOf())/a)>1?1:s),s<1&&o.id?_.push(o):n(s);_.length<=0&&r.stop()},stop:function(){a&&(clearInterval(a),a=null)}},n=r.timer((function(e){t(e)}),e,i);return function(){var t;for(t in _)if(_[t].id==n)return void(_[t].id=void 0)}}var u=function(t,e){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},u(t,e)};function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}u(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function p(t,e,i){if(i||2===arguments.length)for(var r,n=0,o=e.length;n<o;n++)!r&&n in e||(r||(r=Array.prototype.slice.call(e,0,n)),r[n]=e[n]);return t.concat(r||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var c=["href","title","show","type","role","actuate"];function f(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}var d=function(t,e,i){c.indexOf(e)>-1?t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+e,i+""):t.setAttribute(e,i+"")},g=d;function v(t,e){d(t,"stroke",e.strokeStyle),d(t,"fill",e.fillStyle),d(t,"stroke-dasharray",e.lineDash.join(","))}function m(t,e){d(t,"fill",e.fillStyle)}function y(t,e){d(t,"stroke",e.strokeStyle),d(t,"fill","none"),d(t,"stroke-dasharray",e.lineDash.join(","))}var E=function(t,e,i,r,n){var o=Math.cos(i),a=Math.sin(i);return[+((r-t)*o-(n-e)*a+t).toFixed(7),+((r-t)*a+(n-e)*o+e).toFixed(7)]};function x(t,e,i,r,n,o,a){e<0&&(t+=e,e*=-1);var s,_=[];s=E(0,0,t,n,0),_[0]=s[0],_[1]=s[1],s=E(0,0,e,s[0],s[1]),_[2]=s[0],_[3]=s[1],s=E(0,0,t,o,0),_[4]=s[0],_[5]=s[1],s=E(0,0,e,s[0],s[1]),_[6]=s[0],_[7]=s[1],a(t,t+e,_[0]+i,_[1]+r,_[4]+i,_[5]+r,_[2]+i,_[3]+r,_[6]+i,_[7]+r,.5*(o-n))}var b=function(t){var e=t.getElementsByTagName("defs");if(e.length<=0){var i=f("defs");return t.appendChild(i),i}return e[0]},w=function(t,e,i,r,n){if("text"!==t.nodeName.toLowerCase())throw new Error("Need a <text> !");g(t,"dy",{top:.5*e.fontSize,middle:0,bottom:.5*-e.fontSize}[e.textBaseline]),function(t,e){for(var i in e)t.style[i]=e[i]}(t,{"text-anchor":{left:"start",right:"end",center:"middle"}[e.textAlign],"dominant-baseline":"central","font-size":e.fontSize+"px","font-family":e.fontFamily}),g(t,"x",i),g(t,"y",r),"number"==typeof n&&g(t,"transform","rotate("+(n%=360)+","+i+","+r+")")},T=function(t,e,i,r){if("circle"!==t.nodeName.toLowerCase())throw new Error("Need a <circle> !");g(t,"cx",e),g(t,"cy",i),g(t,"r",r)},C=function(t,e){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");g(t,"d",e)},P=function(t,e,i,r,n){if("rect"!==t.nodeName.toLowerCase())throw new Error("Need a <rect> !");n<0&&(i-=n*=-1),r<0&&(e-=r*=-1),g(t,"x",e),g(t,"y",i),g(t,"width",r),g(t,"height",n)},R=function(t,e,i,r,n,o,a,s){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");if(a=a/180*Math.PI,s=s/180*Math.PI,a%=2*Math.PI,n>o){var _=n;n=o,o=_}s>=1.999999*Math.PI||s<=1.999999*-Math.PI?s=1.999999*Math.PI:s%=2*Math.PI,x(a,s,i,r,n,o,(function(i,r,a,s,_,h,u,l,p,c,f){var d=r-i>Math.PI?1:0,v="M"+a+" "+s;f<0&&(f=-f),v+="A"+n+" "+n+" 0 "+d+" 1 "+u+" "+l,"round"==e.arcEndCap?v+="A"+f+" "+f+" 0 1 0 "+p+" "+c:"-round"==e.arcEndCap?v+="A"+f+" "+f+" 0 1 1 "+p+" "+c:v+="L"+p+" "+c,v+="A"+o+" "+o+" 0 "+d+" 0 "+_+" "+h,"round"==e.arcStartCap?v+="A"+f+" "+f+" 0 1 0 "+a+" "+s:"-round"==e.arcStartCap?v+="A"+f+" "+f+" 0 1 1 "+a+" "+s:v+="L"+a+" "+s,"butt"==e.arcStartCap&&(v+="Z"),g(t,"d",v)}))},S={"font-size":"fontSize","font-family":"fontFamily","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},A=function(){function t(t){this.name="SVG",this.__config={fillStyle:"#000",strokeStyle:"#000",lineWidth:1,textAlign:"left",textBaseline:"middle",fontSize:16,fontFamily:"sans-serif",arcStartCap:"butt",arcEndCap:"butt",lineDash:[]},this.__path="",this.__currentPosition=[],this.__svg=t}return t.prototype.config=function(t){if("object"!=typeof t)return this.__config[S[t]||t];for(var e in t){var i=S[e]||e;this.__config[i]=t[e]}return this},t.prototype.useEl=function(t){return this.__useEl=t,this},t.prototype.getEl=function(){return this.__useEl},t.prototype.appendEl=function(t,e){return e=e||this.__svg,"string"==typeof t&&(t=f(t)),e.appendChild(t),this.__useEl=t,this},t.prototype.appendBoard=function(t,e){var i=t;if("string"==typeof t&&(i={text:"text",path:"path",arc:"path",circle:"circle",rect:"rect"}[t]||""),""==i)throw new Error("Unsupported drawing method:"+t);return this.appendEl(i,e)},t.prototype.remove=function(){if(!this.__useEl)throw new Error("Currently, no node can be deleted.");return this.__useEl.parentNode.removeChild(this.__useEl),this},t.prototype.attr=function(t){if(!this.__useEl)throw new Error("Currently, no node can be modified or viewed.");if("object"!=typeof t)return function(t,e){return c.indexOf(e)>-1&&(e="xlink:"+e),t.getAttribute(e)}(this.__useEl,t);for(var e in t)g(this.__useEl,e,t[e]);return this},t.prototype.fillText=function(t,e,i,r){return void 0===r&&(r=0),w(this.__useEl,this.__config,e,i,r),this.__useEl.textContent=t,m(this.__useEl,this.__config),this},t.prototype.strokeText=function(t,e,i,r){return void 0===r&&(r=0),w(this.__useEl,this.__config,e,i,r),this.__useEl.textContent=t,y(this.__useEl,this.__config),this},t.prototype.fullText=function(t,e,i,r){return void 0===r&&(r=0),w(this.__useEl,this.__config,e,i,r),this.__useEl.textContent=t,v(this.__useEl,this.__config),this},t.prototype.fillArc=function(t,e,i,r,n,o){return R(this.__useEl,this.__config,t,e,i,r,n,o),m(this.__useEl,this.__config),this},t.prototype.strokeArc=function(t,e,i,r,n,o){return R(this.__useEl,this.__config,t,e,i,r,n,o),y(this.__useEl,this.__config),this},t.prototype.fullArc=function(t,e,i,r,n,o){return R(this.__useEl,this.__config,t,e,i,r,n,o),v(this.__useEl,this.__config),this},t.prototype.fillCircle=function(t,e,i){return T(this.__useEl,t,e,i),m(this.__useEl,this.__config),this},t.prototype.strokeCircle=function(t,e,i){return T(this.__useEl,t,e,i),y(this.__useEl,this.__config),this},t.prototype.fullCircle=function(t,e,i){return T(this.__useEl,t,e,i),v(this.__useEl,this.__config),this},t.prototype.fillRect=function(t,e,i,r){return P(this.__useEl,t,e,i,r),m(this.__useEl,this.__config),this},t.prototype.strokeRect=function(t,e,i,r){return P(this.__useEl,t,e,i,r),y(this.__useEl,this.__config),this},t.prototype.fullRect=function(t,e,i,r){return P(this.__useEl,t,e,i,r),v(this.__useEl,this.__config),this},t.prototype.beginPath=function(){return this.__currentPosition=[],this.__path="",this},t.prototype.closePath=function(){return this.__path+="Z",this},t.prototype.moveTo=function(t,e){return this.__currentPosition=[t,e],this.__path+="M"+t+" "+e,this},t.prototype.lineTo=function(t,e){return this.__currentPosition=[t,e],this.__path+=(""==this.__path?"M":"L")+t+" "+e,this},t.prototype.fill=function(){return C(this.__useEl,this.__path),m(this.__useEl,this.__config),this},t.prototype.stroke=function(){return C(this.__useEl,this.__path),y(this.__useEl,this.__config),this},t.prototype.full=function(){return C(this.__useEl,this.__path),v(this.__useEl,this.__config),this},t.prototype.arc=function(t,e,i,r,n){var a=o(t,e,r/180*Math.PI,t+i,e),s=o(t,e,(r+n)/180*Math.PI,t+i,e);return""==this.__path?this.__path+="M"+a[0]+","+a[1]:a[0]==this.__currentPosition[0]&&a[1]==this.__currentPosition[1]||(this.__path+="L"+a[0]+","+a[1]),this.__path+="A"+i+","+i+" 0 "+(n>180||n<-180?1:0)+","+(n>0?1:0)+" "+s[0]+","+s[1],this},t.prototype.quadraticCurveTo=function(t,e,i,r){return this.__path+="Q"+t+" "+e+","+i+" "+r,this},t.prototype.bezierCurveTo=function(t,e,i,r,n,o){return this.__path+="C"+t+" "+e+","+i+" "+r+","+n+" "+o,this},t.prototype.bind=function(t,e){return this.__useEl.addEventListener(t,(function(t){e.call(this,t,this)}),!1),this},t.prototype.createLinearGradient=function(t,e,i,r){return function(t,e,i,r,n){var o=b(t),a="vislite-lg-"+(new Date).valueOf()+"-"+Math.random(),s=f("linearGradient");o.appendChild(s),g(s,"id",a),g(s,"x1",e+"%"),g(s,"y1",i+"%"),g(s,"x2",r+"%"),g(s,"y2",n+"%");var _={value:function(){return"url(#"+a+")"},setColor:function(t,e){var i=f("stop");return s.appendChild(i),g(i,"offset",100*t+"%"),g(i,"style","stop-color:"+e+";"),_}};return _}(this.__svg,t,e,i,r)},t.prototype.createRadialGradient=function(t,e,i){return function(t,e,i,r){var n=b(t),o="vislite-rg-"+(new Date).valueOf()+"-"+Math.random(),a=f("radialGradient");n.appendChild(a),g(a,"id",o),g(a,"cx",e+"%"),g(a,"cy",i+"%"),g(a,"r",r+"%");var s={value:function(){return"url(#"+o+")"},setColor:function(t,e){var i=f("stop");return a.appendChild(i),g(i,"offset",100*t+"%"),g(i,"style","stop-color:"+e+";"),s}};return s}(this.__svg,t,e,i)},t}(),M=function(t){function e(e){if(!e)throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.");var i=e.clientWidth,r=e.clientHeight,n=document.createElementNS("http://www.w3.org/2000/svg","svg");return e.appendChild(n),n.setAttribute("width",i+""),n.setAttribute("height",r+""),n.setAttribute("viewBox","0 0 "+i+" "+r),t.call(this,n)||this}return l(e,t),e}(A),L=function(t,e,i,r,n){return t.beginPath(),t.translate(i,r),t.rotate(n),t.font=e.fontStyle+" "+e.fontWeight+" "+e.fontSize+"px "+e.fontFamily,t},I=function(t,e,i,r,n,o,a,s){if(n>o){var _=n;n=o,o=_}return a%=2*Math.PI,s>=1.999999*Math.PI||s<=1.999999*-Math.PI?s=2*Math.PI:s%=2*Math.PI,x(a,s,i,r,n,o,(function(a,s,_,h,u,l,p,c,f,d,g){g<0&&(g=-g),t.beginPath(),t.moveTo(_,h),t.arc(i,r,n,a,s,!1),"round"==e.arcEndCap?t.arc(.5*(p+f),.5*(c+d),g,s-Math.PI,s,!0):"-round"==e.arcEndCap?t.arc(.5*(p+f),.5*(c+d),g,s-Math.PI,s,!1):t.lineTo(f,d),t.arc(i,r,o,s,a,!0),"round"==e.arcStartCap?t.arc(.5*(_+u),.5*(h+l),g,a,a-Math.PI,!0):"-round"==e.arcStartCap?t.arc(.5*(_+u),.5*(h+l),g,a,a-Math.PI,!1):t.lineTo(_,h)})),"butt"==e.arcStartCap&&t.closePath(),t},k=function(t,e,i,r){return t.beginPath(),t.moveTo(e+r,i),t.arc(e,i,r,0,2*Math.PI),t},z=function(t,e,i,r,n){return t.beginPath(),t.rect(e,i,r,n),t};function U(t,e,i,r,n){for(var o=0,a="",s=0;s<e.length;s++)t.measureText(a+e[s]).width>i||/\n$/.test(a)?(n(a,((o+=1)-.5)*r),a=e[s]):s==e.length-1?(o+=1,n(a+e[s],(o-.5)*r)):a+=e[s];return o*r}var N=function(){function t(t,e,i,r){void 0===e&&(e={}),void 0===r&&(r=!1),this.__region=null,this.__onlyRegion=!1,this.__specialConfig={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",e),this.__region=i,this.__isPainter=r,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,e){if(this.__region&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,e),this.__isPainter&&this.__onlyRegion)return this;if("lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(e);else if(t in this.__specialConfig)"fontSize"==t&&(e=Math.round(e)),this.__specialConfig[t]=e;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=e}return this},t.prototype.fillText=function(t,e,i,r){return void 0===r&&(r=0),this.__region&&this.__region.fillText(t,e,i,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),L(this.painter,this.__specialConfig,e,i,r).fillText(t,0,0),this.painter.restore()),this},t.prototype.strokeText=function(t,e,i,r){return void 0===r&&(r=0),this.__region&&this.__region.strokeText(t,e,i,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),L(this.painter,this.__specialConfig,e,i,r).strokeText(t,0,0),this.painter.restore()),this},t.prototype.fullText=function(t,e,i,r){return void 0===r&&(r=0),this.__region&&this.__region.fullText(t,e,i,r),this.__isPainter&&this.__onlyRegion||(this.painter.save(),L(this.painter,this.__specialConfig,e,i,r),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore()),this},t.prototype.fillTexts=function(t,e,i,r,n,o){var a=this;void 0===n&&(n=1.2),void 0===o&&(o=0);var s=0;if(this.__region&&(s=this.__region.fillTexts(t,e,i,r,n)),this.__isPainter&&this.__onlyRegion)return s;this.painter.save(),L(this.painter,this.__specialConfig,e,i,o);var _=U(this.painter,t,r,this.__specialConfig.fontSize*n,(function(t,e){a.painter.fillText(t,0,e)}));return this.painter.restore(),_},t.prototype.strokeTexts=function(t,e,i,r,n,o){var a=this;void 0===n&&(n=1.2),void 0===o&&(o=0);var s=0;if(this.__region&&(s=this.__region.fillTexts(t,e,i,r,n)),this.__isPainter&&this.__onlyRegion)return s;this.painter.save(),L(this.painter,this.__specialConfig,e,i,o);var _=U(this.painter,t,r,this.__specialConfig.fontSize*n,(function(t,e){a.painter.strokeText(t,0,e)}));return this.painter.restore(),_},t.prototype.fullTexts=function(t,e,i,r,n,o){var a=this;void 0===n&&(n=1.2),void 0===o&&(o=0);var s=0;if(this.__region&&(s=this.__region.fillTexts(t,e,i,r,n)),this.__isPainter&&this.__onlyRegion)return s;this.painter.save(),L(this.painter,this.__specialConfig,e,i,o);var _=U(this.painter,t,r,this.__specialConfig.fontSize*n,(function(t,e){a.painter.fillText(t,0,e),a.painter.strokeText(t,0,e)}));return this.painter.restore(),_},t.prototype.beginPath=function(){return this.__region&&this.__region.beginPath(),this.__isPainter&&this.__onlyRegion||this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&this.__region.closePath(),this.__isPainter&&this.__onlyRegion||this.painter.closePath(),this},t.prototype.moveTo=function(t,e){return this.__region&&this.__region.moveTo(t,e),this.__isPainter&&this.__onlyRegion||this.painter.moveTo(Math.round(t)+.5,Math.round(e)+.5),this},t.prototype.lineTo=function(t,e){return this.__region&&this.__region.lineTo(t,e),this.__isPainter&&this.__onlyRegion||this.painter.lineTo(Math.round(t)+.5,Math.round(e)+.5),this},t.prototype.arc=function(t,e,i,r,n){return this.__region&&this.__region.arc(t,e,i,r,n),this.__isPainter&&this.__onlyRegion||this.painter.arc(t,e,i,r,r+n,n<0),this},t.prototype.fill=function(){return this.__region&&this.__region.fill(),this.__isPainter&&this.__onlyRegion||this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&this.__region.stroke(),this.__isPainter&&this.__onlyRegion||this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&this.__region.full(),this.__isPainter&&this.__onlyRegion||(this.painter.fill(),this.painter.stroke()),this},t.prototype.save=function(){return this.__region&&this.__region.save(),this.__isPainter&&this.__onlyRegion||this.painter.save(),this},t.prototype.restore=function(){return this.__region&&this.__region.restore(),this.__isPainter&&this.__onlyRegion||this.painter.restore(),this},t.prototype.clip=function(){return this.__region&&this.__region.clip(),this.__isPainter&&this.__onlyRegion||this.painter.clip(),this},t.prototype.quadraticCurveTo=function(t,e,i,r){return this.__region&&this.__region.quadraticCurveTo(t,e,i,r),this.__isPainter&&this.__onlyRegion||this.painter.quadraticCurveTo(t,e,i,r),this},t.prototype.bezierCurveTo=function(t,e,i,r,n,o){return this.__region&&this.__region.bezierCurveTo(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||this.painter.bezierCurveTo(t,e,i,r,n,o),this},t.prototype.clearRect=function(t,e,i,r){return this.__region&&this.__region.clearRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||this.painter.clearRect(t,e,i,r),this},t.prototype.fillArc=function(t,e,i,r,n,o){return this.__region&&this.__region.fillArc(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||I(this.painter,this.__specialConfig,t,e,i,r,n,o).fill(),this},t.prototype.strokeArc=function(t,e,i,r,n,o){return this.__region&&this.__region.strokeArc(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||I(this.painter,this.__specialConfig,t,e,i,r,n,o).stroke(),this},t.prototype.fullArc=function(t,e,i,r,n,o){return this.__region&&this.__region.fullArc(t,e,i,r,n,o),this.__isPainter&&this.__onlyRegion||(I(this.painter,this.__specialConfig,t,e,i,r,n,o),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillCircle=function(t,e,i){return this.__region&&this.__region.fillCircle(t,e,i),this.__isPainter&&this.__onlyRegion||k(this.painter,t,e,i).fill(),this},t.prototype.strokeCircle=function(t,e,i){return this.__region&&this.__region.strokeCircle(t,e,i),this.__isPainter&&this.__onlyRegion||k(this.painter,t,e,i).stroke(),this},t.prototype.fullCircle=function(t,e,i){return this.__region&&this.__region.fullCircle(t,e,i),this.__isPainter&&this.__onlyRegion||(k(this.painter,t,e,i),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillRect=function(t,e,i,r){return this.__region&&this.__region.fillRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||z(this.painter,t,e,i,r).fill(),this},t.prototype.strokeRect=function(t,e,i,r){return this.__region&&this.__region.strokeRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||z(this.painter,t,e,i,r).stroke(),this},t.prototype.fullRect=function(t,e,i,r){return this.__region&&this.__region.fullRect(t,e,i,r),this.__isPainter&&this.__onlyRegion||(z(this.painter,t,e,i,r),this.painter.fill(),this.painter.stroke()),this},t.prototype.draw=function(){},t}();function O(t,e,i,r){for(var n=[],o=0;o<r;o++)n[o]=t;return function(){for(var o=0;o<r;o++){if(n[o]+i<e){n[o]=+(n[o]+i).toFixed(7);break}o<r-1&&(n[o]=t)}return n}}var B={"font-size":"fontSize","font-family":"fontFamily","font-weight":"fontWeight","font-style":"fontStyle","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},F=function(t){function e(e,i,r){void 0===r&&(r={});var n=t.call(this,e,r,i?new N(i,{willReadFrequently:!0}):null,!0)||this;return n.name="Canvas",n.__regionList={},n.__regionAssemble=O(0,255,10,3),n.setRegion(""),n}return l(e,t),e.prototype.config=function(t){for(var e in t){var i=B[e]||e;this.useConfig(i,t[e])}return this},e.prototype.onlyRegion=function(t){return this.__onlyRegion=t,this},e.prototype.setRegion=function(t){if(this.__region)if(t){if(null==this.__regionList[t]){var e=this.__regionAssemble();this.__regionList[t]="rgb("+e[0]+","+e[1]+","+e[2]+")"}this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])}else this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000");return this},e.prototype.getRegion=function(t,e){var i=this;return new Promise((function(r){var n=i.__region?i.__region.painter.getImageData(t-.5,e-.5,1,1):{data:[0,0,0,0]},o=n.data,a=function(){if(i.__region)for(var t in i.__regionList)if("rgb("+o[0]+","+o[1]+","+o[2]+")"==i.__regionList[t]){r(t);break}r("")};o?a():n.then((function(t){o=t,a()}))}))},e.prototype.textWidth=function(t){this.painter.save(),L(this.painter,this.__specialConfig,0,0,0);var e=this.painter.measureText(t+"").width;return this.painter.restore(),e},e.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region?this.__region.painter:null:this.painter},e.prototype.getInfo=function(){return{width:this.painter.canvas.width,height:this.painter.canvas.height}},e.prototype.createLinearGradient=function(t,e,i,r){return function(t,e,i,r,n){var o=t.createLinearGradient(e,i,r,n),a={value:function(){return o},setColor:function(t,e){return o.addColorStop(t,e),a}};return a}(this.painter,t,e,i,r)},e.prototype.createRadialGradient=function(t,e,i){return function(t,e,i,r){var n=t.createRadialGradient(e,i,0,e,i,r),o={value:function(){return n},setColor:function(t,e){return n.addColorStop(t,e),o}};return o}(this.painter,t,e,i)},e.prototype.getColor=function(t,e){var i=this.painter.getImageData(t-.5,e-.5,1,1).data;return"rgba("+i[0]+","+i[1]+","+i[2]+","+i[3]+")"},e}(N);function D(t,e){for(var i in t)e[i]=t[i];return e}var G=function(t){function e(e,i){void 0===i&&(i={});var r=this;if(!e)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");i=D(i,{region:!0,willReadFrequently:!1});var n,o,a=e.clientWidth,s=e.clientHeight,_=e;_._vislite_canvas_?(n=_._vislite_canvas_[0],o=_._vislite_canvas_[1]):(n=document.createElement("canvas"),e.appendChild(n),i.region&&(o=document.createElement("canvas")),_._vislite_canvas_=[n,o],e.setAttribute("vislite","Canvas"));for(var h=0,u=[n,o];h<u.length;h++){var l=u[h];l&&(l.style.width=a+"px",l.setAttribute("width",a+""),l.style.height=s+"px",l.setAttribute("height",s+""))}return(r=t.call(this,n,o,{willReadFrequently:i.willReadFrequently})||this).__canvas=n,r}return l(e,t),e.prototype.toDataURL=function(){var t=this;return new Promise((function(e){e(t.__canvas.toDataURL())}))},e}(F);function H(t,e,i){void 0===i&&(i={});for(var r=["webgl","experimental-webgl","webkit-3d","moz-webgl"],n=null,o=0;o<r.length;o++){try{n=t.getContext(r[o],i)}catch(t){}if(n)break}if(!n)throw new Error("Non canvas or browser does not support webgl.");var a=n.canvas.width,s=n.canvas.height,_=a*e,h=s*e;return n.viewport(.5*(a-_),.5*(s-h),_,h),n.depthFunc(n.LEQUAL),n.enable(n.DEPTH_TEST),n}function W(t){var e=t.drawingBufferWidth,i=t.drawingBufferHeight,r=new Uint8Array(4*e*i);return t.readPixels(0,0,e,i,t.RGBA,t.UNSIGNED_BYTE,r),function(t,n){return"rgba("+r[4*((n=i-n)*e+t)]+","+r[4*(n*e+t)+1]+","+r[4*(n*e+t)+2]+","+r[4*(n*e+t)+3]+")"}}var q=function(){function t(t,e){void 0===e&&(e=!1),this.__painter=t,this.__isElement=e,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=e?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER}return t.prototype.use=function(){return this.__painter.bindBuffer(this.__type,this.__buffer),this},t.prototype.write=function(t){return function(t,e,i,r){var n=i?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(n,e,r)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,e,i,r){return void 0===r&&(r=0),function(t,e,i,r,n,o,a){t.vertexAttribPointer(e,i,r,a,n,o),t.enableVertexAttribArray(e)}(this.__painter,t,e,this.__painter.FLOAT,i*this.__fsize,r*this.__fsize,!1),this},t}(),V=function(){function t(t,e,i){void 0===i&&(i=0),this.__painter=t,this.__type={"2d":t.TEXTURE_2D,cube:t.TEXTURE_CUBE_MAP}[e],this.__texture=function(t,e,i){var r=t.createTexture();return t.activeTexture(t["TEXTURE"+i]),t.bindTexture(e,r),r}(t,this.__type,i),t.texParameteri(this.__type,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(this.__type,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(this.__type,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(this.__type,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE)}return t.prototype.useImage=function(t){return function(t,e,i,r,n,o){t.texImage2D(e,i,r,r,n,o)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t),this},t.prototype.useCube=function(t,e,i){return function(t,e,i,r,n,o,a,s,_){for(var h,u=[t.TEXTURE_CUBE_MAP_POSITIVE_X,t.TEXTURE_CUBE_MAP_NEGATIVE_X,t.TEXTURE_CUBE_MAP_POSITIVE_Y,t.TEXTURE_CUBE_MAP_NEGATIVE_Y,t.TEXTURE_CUBE_MAP_POSITIVE_Z,t.TEXTURE_CUBE_MAP_NEGATIVE_Z],l=0;l<u.length;l++)o[l]&&(h=u[l],t.texImage2D(h,i,r,a,s,0,r,n,null),t.bindTexture(e,_),t.texImage2D(h,i,r,r,n,o[l]));t.generateMipmap(e)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t,e,i,this.__texture),this},t}(),X={};function Y(t,e,i){var r=t+"-"+i;return X[r]||(X[r]=new V(e,i)),X[r]}var j=function(t,e,i){var r=t.createShader(e);if(null==r)throw new Error("Unable to create shader!");if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(r));return r},$=function(){function t(t){this.__painter=t}return t.prototype.use=function(){return this.__painter.useProgram(this.program),this},t.prototype.compile=function(t,e){return this.program=function(t,e,i){var r=j(t,t.VERTEX_SHADER,e),n=j(t,t.FRAGMENT_SHADER,i),o=t.createProgram();if(t.attachShader(o,r),t.attachShader(o,n),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(o));return o}(this.__painter,t,e),this},t}(),Z="attribute vec4 a_position;\nuniform mat4 u_matrix;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n\n // 把原生的WebGL使用的左手坐标系变成了右手坐标系\n temp.z = -1.0 * temp.z;\n\n // 表示眼睛距离vec4(0.0,0.0,1.0)的距离\n float dist = 4.0;\n\n // 使用投影直接计算\n // 为保证纹理和相对位置正确\n // x、y、z的改变满足线性变换\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n}",J="attribute vec4 a_position;\nuniform mat4 u_matrix;\nattribute vec4 a_color;\nvarying vec4 v_color;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n temp.z = -1.0 * temp.z;\n float dist = 4.0;\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n\n v_color = a_color;\n}",Q="attribute vec4 a_position;\nuniform mat4 u_matrix;\nattribute vec2 a_textcoord;\nvarying vec2 v_textcoord;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n temp.z = -1.0 * temp.z;\n float dist = 4.0;\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n\n v_textcoord = a_textcoord;\n}",K="attribute vec4 a_position;\nuniform mat4 u_matrix;\nattribute vec4 a_normal;\nvarying vec3 v_normal;\n\nvoid main()\n{\n vec4 temp = u_matrix * a_position;\n temp.z = -1.0 * temp.z;\n float dist = 4.0;\n gl_Position = vec4((dist + 1.0) * temp.x, (dist + 1.0) * temp.y, dist * (dist + temp.z) + 1.0 - dist * dist, temp.w * 2.0 * (dist + temp.z));\n\n v_normal = normalize(vec3(a_normal));\n}",tt="precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}",et="precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}",it="precision mediump float;\n\nuniform sampler2D u_sampler;\nvarying vec2 v_textcoord;\n\nvoid main()\n{\n gl_FragColor = texture2D(u_sampler, v_textcoord);\n}",rt="precision mediump float;\n\nvarying vec3 v_normal;\nuniform samplerCube u_texture;\n\nvoid main()\n{\n gl_FragColor = textureCube(u_texture, normalize(v_normal));\n}",nt={};function ot(t,e,i,r,n){var o=function(t,e,i){var r,n,o=t+(i.material.color?"1":"0")+(i.material.colors?"1":"0")+(i.material.image?"1":"0")+(i.material.cube?"1":"0");if(nt[o])return nt[o].use();var a=(r={},r[t+"1000"]=Z,r[t+"0100"]=J,r[t+"0010"]=Q,r[t+"0001"]=K,r)[o].replace(/uniform +mat4 +u_matrix;/,"\n uniform mat4 u_matrix_world;\n uniform mat4 u_matrix_mesh;\n uniform mat4 u_matrix_proporion;").replace(/u_matrix +\* +a_position/,"u_matrix_proporion * u_matrix_world * u_matrix_mesh * a_position"),s=(n={},n[t+"1000"]=tt,n[t+"0100"]=et,n[t+"0010"]=it,n[t+"0001"]=rt,n)[o],_=new $(e).compile(a,s).use();return nt[o]=_,_}(t,e,i);if(new q(e).use().write(i.geometry.attributes.position.array).divide(e.getAttribLocation(o.program,"a_position"),i.geometry.attributes.position.itemSize,i.geometry.attributes.position.itemSize,0),e.uniformMatrix4fv(e.getUniformLocation(o.program,"u_matrix_world"),!1,n.matrix),e.uniformMatrix4fv(e.getUniformLocation(o.program,"u_matrix_proporion"),!1,n.proporion),e.uniformMatrix4fv(e.getUniformLocation(o.program,"u_matrix_mesh"),!1,r.matrix),i.geometry.attributes.normal&&new q(e).use().write(i.geometry.attributes.normal.array).divide(e.getAttribLocation(o.program,"a_normal"),i.geometry.attributes.normal.itemSize,i.geometry.attributes.normal.itemSize,0),"color"in i.material&&e.uniform4f(e.getUniformLocation(o.program,"u_color"),i.material.color.r,i.material.color.g,i.material.color.b,i.material.color.alpha),"colors"in i.material)new q(e).use().write(i.material.colors.array).divide(e.getAttribLocation(o.program,"a_color"),i.material.colors.itemSize,i.material.colors.itemSize,0);else if("cube"in i.material){var a=i.material.cube.right.image.value.width;e.uniform1i(e.getUniformLocation(o.program,"u_texture"),0),Y(t,e,"cube").useCube([i.material.cube.right.image.value,i.material.cube.left.image.value,i.material.cube.top.image.value,i.material.cube.bottom.image.value,i.material.cube.far.image.value,i.material.cube.near.image.value],a,a)}else"image"in i.material&&(e.uniform1i(e.getUniformLocation(o.program,"u_sampler"),0),new q(e).use().write(i.geometry.attributes.uv.array).divide(e.getAttribLocation(o.program,"a_textcoord"),i.geometry.attributes.uv.itemSize,2,0),Y(t,e,"2d").useImage(i.material.image.value));i.geometry.index?(new q(e,!0).use().write(i.geometry.index.array),e.drawElements(e[i.geometry.type],i.geometry.index.count,e.UNSIGNED_BYTE,0)):e.drawArrays(e[i.geometry.type],0,i.geometry.attributes.position.count)}var at,st=!1,_t=function(){function t(t,e){this.name="WebGL",this.__getColor=function(t,e){return"rgba(0,0,0,1)"},this.__regionList={},this.__regionAssemble=O(0,1,.2,3),this.__regionName="",this.__regionColor=[0,0,0,1],this.__scene={children:[],matrix:new n([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,10])},this.__unique=(new Date).valueOf(),this.painter=H(t,10),e&&(this.__regionPainter=H(e,10,{}));var i=this.painter.canvas.width/this.painter.canvas.height,r=1,o=1;i>1?r=1/i:o=i;var a=Math.min(r,o);this.__proporion=[r,0,0,0,0,o,0,0,0,0,a,0,0,0,0,1]}return t.prototype.matrix=function(t){return new n(t)},t.prototype.getMatrix=function(){return this.__scene.matrix},t.prototype.getObject3D=function(){return this.__scene.children},t.prototype.review=function(t){void 0===t&&(t=!1),t?this.__regionPainter&&(this.__regionPainter.clearColor(1,1,1,1),this.__regionPainter.clear(this.__regionPainter.COLOR_BUFFER_BIT)):(this.painter.clearColor(1,1,1,1),this.painter.clear(this.painter.COLOR_BUFFER_BIT));for(var e=0;e<this.__scene.children.length;e++)this.draw(this.__scene.children[e],t);return this},t.prototype.draw=function(t,e){void 0===e&&(e=!1),e||(st=!0);var i={matrix:t.matrix.value()},r={matrix:this.__scene.matrix.value(),proporion:this.__proporion};this.setRegion(t.region);for(var n=0;n<t.mesh.length;n++)e?this.__regionPainter&&(ot("painter"+this.__unique,this.__regionPainter,{geometry:t.mesh[n].geometry,material:{color:{r:this.__regionColor[0],g:this.__regionColor[1],b:this.__regionColor[2],alpha:this.__regionColor[3]}}},i,r),this.__getColor=W(this.__regionPainter)):ot("region"+this.__unique,this.painter,t.mesh[n],i,r)},t.prototype.render=function(t){"matrix"in t||(t.matrix=new n),"region"in t||(t.region="");for(var e=0;e<t.mesh.length;e++){var i=t.mesh[e];i.geometry.attributes.normal&&Array.isArray(i.geometry.attributes.normal.array)&&(i.geometry.attributes.normal.array=new Float32Array(i.geometry.attributes.normal.array)),i.geometry.attributes.position&&Array.isArray(i.geometry.attributes.position.array)&&(i.geometry.attributes.position.array=new Float32Array(i.geometry.attributes.position.array)),i.geometry.attributes.uv&&Array.isArray(i.geometry.attributes.uv.array)&&(i.geometry.attributes.uv.array=new Float32Array(i.geometry.attributes.uv.array)),i.geometry.index&&Array.isArray(i.geometry.index.array)&&(i.geometry.index.array=new Uint8Array(i.geometry.index.array)),i.material.colors&&Array.isArray(i.material.colors.array)&&(i.material.colors.array=new Float32Array(i.material.colors.array))}this.__scene.children.push(t),this.draw(t)},t.prototype.setRegion=function(t){return this.__regionName=t+"",t?(null==this.__regionList[t]&&(this.__regionList[t]=p(p([],this.__regionAssemble(),!0),[1],!1)),this.__regionColor=this.__regionList[t]):this.__regionColor=[0,0,0,1],this},t.prototype.getRegion=function(t,e){var i=this;return st&&this.review(!0),st=!1,new Promise((function(r){var n=i.__getColor(t,e);for(var o in i.__regionList){var a=i.__regionList[o];if("rgba("+255*a[0]+","+255*a[1]+","+255*a[2]+","+255*a[3]+")"==n){r(o);break}}r("")}))},t}(),ht=function(t){function e(e,i){if(void 0===i&&(i={}),!e)throw new Error("VISLite WebGL:The mount point requires an HTMLElement type but encountered null.");i=D(i,{region:!0});var r,n,o=e.clientWidth,a=e.clientHeight,s=e;s._vislite_canvas_?(r=s._vislite_canvas_[0],n=s._vislite_canvas_[1]):(i.region&&(n=document.createElement("canvas"),e.appendChild(n),n.style.position="absolute",n.style.zIndex="-1",n.style.opacity="0"),r=document.createElement("canvas"),e.appendChild(r),s._vislite_canvas_=[r,n],e.setAttribute("vislite","WebGL"));for(var _=0,h=[r,n];_<h.length;_++){var u=h[_];u&&(u.style.width=o+"px",u.setAttribute("width",o+""),u.style.height=a+"px",u.setAttribute("height",a+""))}return t.call(this,r,n)||this}return l(e,t),e}(_t),ut=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return l(e,t),e.prototype.compile=function(e,i){return i?t.prototype.compile.call(this,e,i):t.prototype.compile.call(this,{color:Z,colors:J,image:Q,cube:K}[e],{color:tt,colors:et,image:it,cube:rt}[e]),this},e}($),lt=function(t,e,i,r){var n=Math.cos(t),o=Math.sin(t);return[e*n-i*o,e*o+i*n,r]},pt=function(){function t(t,e){void 0===t&&(t=7),void 0===e&&(e=[107,36]),this.name="Eoap",this.__scale=t,this.__center=e}return t.prototype.use=function(t,e){var i,r,n,o,a,s,_=(i=(360-e)/180*Math.PI,r=100*this.__scale,n=0,o=0,a=Math.cos(i),s=Math.sin(i),[o*s+r*a,n,o*a-r*s]);return _=lt(t/180*Math.PI,_[0],_[1],_[2]),_=lt((90-this.__center[0])/180*Math.PI,_[0],_[1],_[2]),_=function(t,e,i,r){var n=Math.cos(t),o=Math.sin(t);return[e,i*n-r*o,i*o+r*n]}((90-this.__center[1])/180*Math.PI,_[0],_[1],_[2]),[-_[0],_[1],_[2]]},t}(),ct=function(t,e){void 0===t&&(t=7),void 0===e&&(e=[107,36]),this.name="Mercator";var i=100*t*Math.PI/180,r=i*e[0],n=-1*i*e[1];this.use=function(t,e){return[.8*(i*t-r),-1*i*e-n,0]}},ft=function(t,e){var i=t.getBoundingClientRect();return{x:e.clientX-i.left,y:e.clientY-i.top}},dt={},gt=0,vt=function(){function t(t){void 0===t&&(t={}),this.name="Tree",this.__config=D(t,{root:function(t){return t},children:function(t){return t.children},id:function(t){return t.name}})}return t.prototype.use=function(t,e){return void 0===e&&(e={}),function(t,e,i){var r=function(t,e){var i,r,n={},o=e.root(t);i=r=e.id(o),n[i]={data:o,pid:null,id:i,isOpen:!0,show:!0,children:[]};var a=1;return function r(o,s){var _=e.children(o,t);a+=_?_.length:0;for(var h=0;_&&h<_.length;h++)i=e.id(_[h]),n[s].children.push(i),n[i]={data:_[h],pid:s,id:i,isOpen:!0,show:!0,children:[]},r(_[h],i)}(o,i),{rid:r,value:n,num:a}}(t,e),n=r.value,o=r.rid;if(1==r.num)return n[o].left=.5,n[o].top=.5,n[o].show=!0,{deep:1,node:n,root:o,size:1};var a=[],s=0,_=0;for(var h in i[o]?(n[o].left=.5,n[o].top=.5,n[o].show=!0,s=1):function t(e,r){r>_&&(_=r);var o=0;if(!i[e.id])for(o=0;o<e.children.length;o++)t(n[e.children[o]],r+1);if(n[e.id].left=r+.5,0==o?(null==a[r]&&(a[r]=-.5),null==a[r-1]&&(a[r-1]=-.5),n[e.id].top=a[r]+1,a[r]+1+.5*(n[e.pid].children.length-1)-1<a[r-1]&&(n[e.id].top=a[r-1]+1-.5*(n[e.pid].children.length-1))):n[e.id].top=.5*(n[e.children[0]].top+n[e.children[o-1]].top),n[e.id].top<=a[r])var h=a[r]+1-n[e.id].top((function t(e,i){n[e].top+=h,a[i]<n[e].top&&(a[i]=n[e].top);for(var r=0;r<n[e].children.length;r++)t(n[e].children[r],i+1)}))(e.id,r);a[r]=n[e.id].top,n[e.id].top+.5>s&&(s=n[e.id].top+.5)}(n[o],0),i)i[h]&&(n[h].isOpen=!1,function t(e,i,r){for(var o=0;o<n[e].children.length;o++)n[n[e].children[o]].left=i,n[n[e].children[o]].top=r,n[n[e].children[o]].show=!1,t(n[e].children[o],i,r)}(h,n[h].left,n[h].top));return{node:n,root:o,size:s,deep:_+1}}(t,this.__config,e)},t}(),mt=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name="TreeLayout",e.__option={offsetX:0,offsetY:0,duration:500,type:"plain",direction:"LR",x:100,y:100,width:100,height:100,radius:100},e.__noOpens={},e}return l(e,t),e.prototype.setOption=function(t){return D(t,this.__option),this},e.prototype.use=function(e,i){void 0===i&&(i={});var r=t.prototype.use.call(this,e,i);if(0!=this.__option.offsetX||0!=this.__option.offsetY)for(var n in r.node)if(!r.node[n].show){var a=0,s=n;do{s=r.node[s].pid,a++}while(!r.node[s].show);r.node[n].left+=this.__option.offsetX*a,r.node[n].top+=this.__option.offsetY*a}if("rect"==this.__option.type){if("LR"==this.__option.direction||"RL"==this.__option.direction){var _=this.__option.height/r.size,h=this.__option.width/(r.deep-1),u=this.__option.y-.5*this.__option.height,l="LR"==this.__option.direction?1:-1;for(var n in r.node)1==r.deep?(r.node[n].left=this.__option.x+.5*this.__option.width*l,r.node[n].top=this.__option.y):(r.node[n].left=this.__option.x+(r.node[n].left-.5)*h*l,r.node[n].top=r.node[n].top*_+u)}else if("TB"==this.__option.direction||"BT"==this.__option.direction)for(var n in _=this.__option.width/r.size,h=this.__option.height/(r.deep-1),u=this.__option.x-.5*this.__option.width,l="TB"==this.__option.direction?1:-1,r.node)if(1==r.deep)r.node[n].left=this.__option.x,r.node[n].top=this.__option.y+.5*this.__option.height*l;else{var p=r.node[n].left;r.node[n].left=r.node[n].top*_+u,r.node[n].top=this.__option.y+(p-.5)*h*l}}else if("circle"==this.__option.type){var c=this.__option.x,f=this.__option.y,d=2*Math.PI/r.size,g=this.__option.radius/(r.deep-1);for(var n in r.node)if(.5==r.node[n].left)r.node[n].left=c,r.node[n].top=f;else{var v=o(c,f,d*r.node[n].top,c+(r.node[n].left-.5)*g,f);r.node[n].left=v[0],r.node[n].top=v[1]}}return r},e.prototype.bind=function(t,e,i){return void 0===i&&(i={}),this.__rback=e,this.__oralTree=t,this.__noOpens=i,this.__preTree=this.use(this.__oralTree,this.__noOpens),this.__rback(this.__preTree),this},e.prototype.unbind=function(){return this.__rback=null,this.__oralTree=null,this.__preTree=null,this.__noOpens={},this},e.prototype.doUpdate=function(){var t=this,e=this.use(this.__oralTree,this.__noOpens),i=JSON.parse(JSON.stringify(e));h((function(r){for(var n in i.node)(e.node[n].show||t.__preTree.node[n].show)&&(i.node[n].show=!0,i.node[n].left=t.__preTree.node[n].left+(e.node[n].left-t.__preTree.node[n].left)*r,i.node[n].top=t.__preTree.node[n].top+(e.node[n].top-t.__preTree.node[n].top)*r);t.__rback(i)}),this.__option.duration,(function(){t.__preTree=e,t.__rback(t.__preTree)}))},e.prototype.closeNode=function(t){if(this.__preTree)return this.__noOpens[t]=!0,this.doUpdate(),this},e.prototype.openNode=function(t){if(this.__preTree)return this.__noOpens[t]=!1,this.doUpdate(),this},e.prototype.toggleNode=function(t){if(this.__preTree)return this.__noOpens[t]=!this.__noOpens[t],this.doUpdate(),this},e}(vt),yt=function(t,e){var i=Math.ceil(2*Math.PI/Math.asin(t/e)*2);return isNaN(i)||i<12?12:i};function Et(t,e,i,r,n,a,s){var _,h;if(4==a){var u=n/1.414;_=e+u,h=r+u}else _=e+n,h=r;for(var l=[_,h],p=[],c=2*Math.PI/a,f=0;f<a;f++)p.push(e,i,r),t&&p.push(0,s,0),p.push(l[0],i,l[1]),t&&p.push(0,s,0),l=o(e,r,c*(f+1),_,h),p.push(l[0],i,l[1]),t&&p.push(0,s,0);return p}function xt(t,e,i,r,n,a,s){var _,h=[e,i+n,r],u=2*Math.PI/a;t&&h.push(0,n,0);for(var l=function(){h.push.apply(h,h.slice(h.length-(t?12:6)))},p=1;p<.5*a;p++){_=o(e,i,u*p,e,i+n),p>1&&l();var c=o(e,r,u*s,_[0],r);h.push(c[0],_[1],c[1]),t&&h.push(c[0]-e,_[1]-i,c[1]-r),p>1&&l();var f=o(e,r,u*(s+1),_[0],r);h.push(f[0],_[1],f[1]),t&&h.push(f[0]-e,f[1]-i,f[1]-r)}return l(),h.push(e,i-n,r),t&&h.push(0,-n,0),h}var bt=function(){function t(t){void 0===t&&(t={}),this.name="Geometry",this.__option=D(t,{precision:.1,normal:!1})}return t.prototype.config=function(t){for(var e in t)this.__option[e]=t[e];return this},t.prototype.cylinder=function(t,e,i,r,n){var o=yt(this.__option.precision,r);return this.prism(t,e,i,r,n,o)},t.prototype.prism=function(t,e,i,r,n,a){var s,_,h,u=[{points:[],length:0,method:"TRIANGLES"}];return(s=u[0].points).push.apply(s,Et(this.__option.normal,t,e,i,r,a,n>0?-1:1)),(_=u[0].points).push.apply(_,Et(this.__option.normal,t,e+n,i,r,a,n>0?1:-1)),(h=u[0].points).push.apply(h,function(t,e,i,r,n,a,s){var _,h=[];_=4==s?o(e,r,.25*Math.PI,e-n,r):[e+n,r];for(var u,l=2*Math.PI/s,c=2*Math.PI/(2*s),f=[],d=0;d<s;d++){if(u=o.apply(void 0,p([e,r,l],_,!1)),t){var g=o.apply(void 0,p([e,r,c],_,!1));f=[g[0],0,g[1]]}h.push.apply(h,p([_[0],i,_[1]],f,!1)),h.push.apply(h,p([_[0],i+a,_[1]],f,!1)),h.push.apply(h,p([u[0],i+a,u[1]],f,!1)),h.push.apply(h,p([_[0],i,_[1]],f,!1)),h.push.apply(h,p([u[0],i,u[1]],f,!1)),h.push.apply(h,p([u[0],i+a,u[1]],f,!1)),_=u}return h}(this.__option.normal,t,e,i,r,n,a)),u[0].length=12*a,u},t.prototype.sphere=function(t,e,i,r){for(var n,o=yt(this.__option.precision,r),a=[{points:[],length:0,method:"TRIANGLES"}],s=0;s<o;s++)(n=a[0].points).push.apply(n,xt(this.__option.normal,t,e,i,r,o,s));return a[0].length=a[0].points.length/(this.__option.normal?6:3),a},t}(),wt={Cardinal:e,Hermite:t,Matrix4:n,rotate:o,move:function(t,e,i,r,n){var o=Math.sqrt(t*t+e*e);return[t*i/o+r,e*i/o+n]},scale:function(t,e,i,r,n){return[i*(r-t)+t,i*(n-e)+e]},getLoopColors:function(t,e){void 0===e&&(e=1);var i=["rgba(84,112,198,"+e+")","rgba(145,204,117,"+e+")","rgba(250,200,88,"+e+")","rgba(238,102,102,"+e+")","rgba(115,192,222,"+e+")","rgba(59,162,114,"+e+")","rgba(252,132,82,"+e+")","rgba(154,96,180,"+e+")","rgba(234,124,204,"+e+")"],r=[];if(t<=i.length)return i;if(t%i.length==0)for(var n=0;n<t/i.length;n++)r=r.concat(i);else{for(var o=1;o<t/i.length;o++)r=r.concat(i);if(t%i.length==1)r=r.concat(i[4]);else for(var a=0;a<t%i.length;a++)r=r.concat(i[a])}return r},formatColor:function(t,e){var i=document.getElementsByTagName("head")[0];i.style.color=t;for(var r=(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(i,null):i.currentStyle).getPropertyValue("color").replace(/rgba?\(/,"").replace(")","").split(","),n=0;n<r.length;n++)r[n]=+r[n];switch(r.push(1),e){case"3d":return[r[0]/255,r[1]/255,r[2]/255,r[3]];case"rgba":return"rgba(".concat(r[0],", ").concat(r[1],", ").concat(r[2],", ").concat(r[3],")");case"rgb":return"rgb(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")");case"hexAlpha":return"#".concat(s(r[0])).concat(s(r[1])).concat(s(r[2])).concat(s(+(255*r[3]).toFixed(0)));case"hex":return"#".concat(s(r[0])).concat(s(r[1])).concat(s(r[2]))}throw new Error("Unsupported color format: "+e)},animation:h,ruler:function(t,e,i,r){if(t<e){var n=e;e=t,t=n}else if(t==e)return[t];var o=function(t){for(var e=t<100&&t>-100?10:.1,i=-1,r=t;10==e?r>=-100&&r<=100:r<=-100||r>=100;)i+=1,r*=e;if(10==e)return Math.pow(10,i);for(var n="0.",o=1;o<i;o++)n+="0";return+(n+"1")}(t-e),a=Math.ceil((t-e)*o/i),s=function(i){var r=({3:2,4:5,6:5,7:5,8:10,9:10,11:10,12:10,13:15,14:15,16:15,17:15,18:20,19:20,21:20,22:20,23:25,24:25,26:25,27:25}[a+i]||a+i)/o,n=Math.floor(e/r)*r,s=[];s.push(n);for(var _=1;s[s.length-1]<t;_++)s.push(n+r*_);return s},_=s(0),h=function(){for(var t=[],i=_[_.length-1]-r.max,n=0;n<_.length;n++)n+1<_.length&&_[n+1]-i<e||t.push(_[n]-i);return t},u=function(){for(var e=[],i=_[0]-r.min,n=0;n<_.length&&(e[n]=_[n]-i,!(t<=e[n]));n++);return e};if(r){if("max"in r&&"min"in r&&r.max>=t&&r.min<=e){var l=function(){if(_[0]>=r.min&&_[_.length-1]<=r.max)return!0;var t=h();if(t[0]>=r.min&&t[t.length-1]<=r.max)return _=t,!0;var e=u();return e[0]>=r.min&&e[t.length-1]<=r.max?(_=e,!0):void 0};if(l())return _;for(var p=1;p<100;p++){if(_=s(p),l())return _;if(_=s(-p),l())return _}}"max"in r&&r.max>=t?r.max<_[_.length-1]&&(_=h()):"min"in r&&r.min<=e&&r.min>_[0]&&(_=u())}for(var c=0;c<_.length;c++){var f=_[c]+"";/\./.test(f)&&(/9{7,}$/.test(f)?(f=f.replace(/9{7,}$/,""),_[c]=+(f.substring(0,f.length-1)+(+f[f.length-1]+1))):/0{7,}\d$/.test(f)&&(_[c]=+f.replace(/0{7,}\d$/,"")))}return _},SVG:M,Canvas:G,WebGL:ht,getWebGLContext:function(t,e){if(void 0===e&&(e=1),!t)throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.");var i,r=t.clientWidth,n=t.clientHeight,o=t;return o._vislite_canvas_?i=o._vislite_canvas_:(i=document.createElement("canvas"),t.appendChild(i),o._vislite_canvas_=i,t.setAttribute("vislite","WebGL")),i.style.width=r+"px",i.setAttribute("width",r+""),i.style.height=n+"px",i.setAttribute("height",n+""),H(i,e)},Shader:ut,Texture:V,Buffer:q,Eoap:pt,Mercator:ct,viewHandler:function(t){var e=document.getElementsByTagName("body")[0];e.addEventListener("keydown",(function(e){var i=function(t){return{37:"left",38:"up",39:"right",40:"down"}[t.keyCode||t.which]}(e);"up"==i?t({type:"lookUp",normal:[],value:.1,event:e}):"down"==i?t({type:"lookDown",normal:[],value:.1,event:e}):"left"==i?t({type:"lookLeft",normal:[],value:.1,event:e}):"right"==i&&t({type:"lookRight",normal:[],value:.1,event:e})}));var i=null,r=function(r){if(null==i)t({type:"hover",normal:[],value:0,event:r});else{var n=ft(e,r),o=[n.x-i.x,n.y-i.y],a=[o[1],o[0],0];if(0==a[0]&&0==a[1])return;t({type:"rotate",normal:a,value:.01*(Math.abs(n.x-i.x)+Math.abs(n.y-i.y)),event:r}),i=n}};e.addEventListener("mousedown",(function(t){i=ft(e,t)})),e.addEventListener("mouseup",(function(){i=null})),e.addEventListener("mousemove",(function(t){r(t)})),e.addEventListener("touchend",(function(){i=null})),e.addEventListener("touchstart",(function(t){i=ft(e,t)})),e.addEventListener("touchmove",(function(t){r(t.touches[0])}));var n=function(e,i){0!=e&&t({type:"scale",value:e<0?.899:1.101,normal:[],event:i})};e.addEventListener("mousewheel",(function(t){n(t.wheelDelta,t)})),window.addEventListener&&window.addEventListener("DOMMouseScroll",(function(t){n(-1*t.detail,t)}),!1)},resizeObserver:function(t,e){try{return at||(at=new ResizeObserver((function(t){for(var e=0,i=t;e<i.length;e++){var r=i[e];dt[r.target._resize_observer_]()}}))),gt++,t._resize_observer_=gt,dt[gt]=e,at.observe(t),function(){at&&(at.unobserve(t),delete dt[t._resize_observer_])}}catch(t){e(),console.error("ResizeObserver undefined!")}},throttle:function(t,e){void 0===e&&(e={}),e=D(e,{time:200,keep:!1,opportunity:"end"});var i,r=!1,n=!1,o=!1;return function(){var a=this;if(i=arguments,r)n=!0,o=!0;else{"end"!=e.opportunity&&t.apply(a,i),r=!0;var s=setInterval((function(){n?e.keep||t.apply(a,i):("begin"!=e.opportunity&&(o||"end"==e.opportunity)&&t.apply(a,i),r=!1,o=!1,clearInterval(s)),n=!1}),e.time)}}},TreeLayout:mt,Geometry:bt};return wt},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite=e();
|
package/lib/move/index.umd.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.6.0-alpha.2
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
* Publish Date:
|
|
9
|
+
* Publish Date: Sun Dec 17 2023 12:58:48 GMT+0800 (中国标准时间)
|
|
10
10
|
*/
|
|
11
11
|
(function (global, factory) {
|
|
12
12
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.6.0-alpha.2
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
* Publish Date:
|
|
9
|
+
* Publish Date: Sun Dec 17 2023 12:58:48 GMT+0800 (中国标准时间)
|
|
10
10
|
*/
|
|
11
11
|
var e,t;e=this,t=function(){"use strict";return function(e,t,n,o,f){var i=Math.sqrt(e*e+t*t);return[e*n/i+o,t*n/i+f]}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VISLite_move=t();
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.6.0-alpha.2
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
* Publish Date:
|
|
9
|
+
* Publish Date: Sun Dec 17 2023 12:58:48 GMT+0800 (中国标准时间)
|
|
10
10
|
*/
|
|
11
11
|
(function (global, factory) {
|
|
12
12
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
})(this, (function () { 'use strict';
|
|
16
16
|
|
|
17
17
|
var observer;
|
|
18
|
-
var attrValueToCallback = {}
|
|
18
|
+
var attrValueToCallback = {};
|
|
19
|
+
var uniqueid = 0;
|
|
19
20
|
function resizeObserver (el, callback) {
|
|
20
21
|
try {
|
|
21
22
|
if (!observer) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* VISLite JavaScript Library v0.
|
|
2
|
+
* VISLite JavaScript Library v0.6.0-alpha.2
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright zxl20070701
|
|
6
6
|
* Released under the MIT license
|
|
7
7
|
* https://zxl20070701.github.io/notebook/home.html
|
|
8
8
|
*
|
|
9
|
-
* Publish Date:
|
|
9
|
+
* Publish Date: Sun Dec 17 2023 12:58:48 GMT+0800 (中国标准时间)
|
|
10
10
|
*/
|
|
11
11
|
var e,r;e=this,r=function(){"use strict";var e,r={},n=0;return function(o,t){try{return e||(e=new ResizeObserver((function(e){for(var n=0,o=e;n<o.length;n++){var t=o[n];r[t.target._resize_observer_]()}}))),n++,o._resize_observer_=n,r[n]=t,e.observe(o),function(){e&&(e.unobserve(o),delete r[o._resize_observer_])}}catch(e){t(),console.error("ResizeObserver undefined!")}}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e="undefined"!=typeof globalThis?globalThis:e||self).VISLite_resizeObserver=r();
|