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.
Files changed (194) hide show
  1. package/.editorconfig +18 -18
  2. package/.eslintrc.js +24 -0
  3. package/AUTHORS.txt +6 -6
  4. package/CHANGELOG +15 -1
  5. package/LICENSE +20 -20
  6. package/README.md +41 -2
  7. package/lib/Buffer/index.umd.js +2 -2
  8. package/lib/Buffer/index.umd.min.js +2 -2
  9. package/lib/Canvas/index.umd.js +19 -8
  10. package/lib/Canvas/index.umd.min.js +3 -3
  11. package/lib/Cardinal/index.umd.js +2 -2
  12. package/lib/Cardinal/index.umd.min.js +2 -2
  13. package/lib/Eoap/index.umd.js +2 -2
  14. package/lib/Eoap/index.umd.min.js +2 -2
  15. package/lib/Geometry/index.umd.js +7 -4
  16. package/lib/Geometry/index.umd.min.js +2 -2
  17. package/lib/Hermite/index.umd.js +2 -2
  18. package/lib/Hermite/index.umd.min.js +2 -2
  19. package/lib/Matrix4/index.umd.js +14 -8
  20. package/lib/Matrix4/index.umd.min.js +3 -3
  21. package/lib/Mercator/index.umd.js +2 -2
  22. package/lib/Mercator/index.umd.min.js +2 -2
  23. package/lib/OralCanvas/index.es.js +14 -6
  24. package/lib/OralCanvas/index.es.min.js +3 -3
  25. package/lib/OralWebGL/index.es.js +27 -19
  26. package/lib/OralWebGL/index.es.min.js +3 -3
  27. package/lib/SVG/index.umd.js +6 -4
  28. package/lib/SVG/index.umd.min.js +2 -2
  29. package/lib/Shader/index.umd.js +10 -10
  30. package/lib/Shader/index.umd.min.js +3 -3
  31. package/lib/Texture/index.umd.js +4 -3
  32. package/lib/Texture/index.umd.min.js +2 -2
  33. package/lib/TreeLayout/index.umd.js +8 -5
  34. package/lib/TreeLayout/index.umd.min.js +2 -2
  35. package/lib/WebGL/index.umd.js +27 -19
  36. package/lib/WebGL/index.umd.min.js +3 -3
  37. package/lib/animation/index.umd.js +4 -3
  38. package/lib/animation/index.umd.min.js +2 -2
  39. package/lib/formatColor/index.umd.js +2 -2
  40. package/lib/formatColor/index.umd.min.js +2 -2
  41. package/lib/getLoopColors/index.umd.js +2 -2
  42. package/lib/getLoopColors/index.umd.min.js +2 -2
  43. package/lib/getWebGLContext/index.umd.js +4 -3
  44. package/lib/getWebGLContext/index.umd.min.js +2 -2
  45. package/lib/index.umd.js +73 -34
  46. package/lib/index.umd.min.js +3 -3
  47. package/lib/move/index.umd.js +2 -2
  48. package/lib/move/index.umd.min.js +2 -2
  49. package/lib/resizeObserver/index.umd.js +4 -3
  50. package/lib/resizeObserver/index.umd.min.js +2 -2
  51. package/lib/rotate/index.umd.js +2 -2
  52. package/lib/rotate/index.umd.min.js +2 -2
  53. package/lib/ruler/index.umd.js +14 -2
  54. package/lib/ruler/index.umd.min.js +3 -3
  55. package/lib/scale/index.umd.js +2 -2
  56. package/lib/scale/index.umd.min.js +2 -2
  57. package/lib/throttle/index.umd.js +2 -2
  58. package/lib/throttle/index.umd.min.js +2 -2
  59. package/lib/viewHandler/index.umd.js +4 -4
  60. package/lib/viewHandler/index.umd.min.js +3 -3
  61. package/miniprogram/ui-canvas/index.js +107 -107
  62. package/miniprogram/ui-canvas/index.json +4 -4
  63. package/miniprogram/ui-canvas/index.wxml +4 -4
  64. package/miniprogram/ui-canvas/index.wxss +5 -5
  65. package/package/Buffer/index.ts +2 -2
  66. package/package/Canvas/index.ts +2 -2
  67. package/package/Cardinal/index.ts +2 -2
  68. package/package/Eoap/index.ts +2 -2
  69. package/package/Geometry/index.ts +2 -2
  70. package/package/Hermite/index.ts +2 -2
  71. package/package/Matrix4/index.ts +2 -2
  72. package/package/Mercator/index.ts +2 -2
  73. package/package/OralCanvas/index.ts +2 -2
  74. package/package/OralWebGL/index.ts +2 -2
  75. package/package/SVG/index.ts +2 -2
  76. package/package/Shader/index.ts +39 -39
  77. package/package/Texture/index.ts +2 -2
  78. package/package/TreeLayout/index.ts +1 -1
  79. package/package/WebGL/index.ts +2 -2
  80. package/package/animation/index.ts +2 -2
  81. package/package/formatColor/index.ts +2 -2
  82. package/package/getLoopColors/index.ts +2 -2
  83. package/package/getWebGLContext/index.ts +39 -39
  84. package/package/index.ts +76 -76
  85. package/package/move/index.ts +2 -2
  86. package/package/resizeObserver/index.ts +2 -2
  87. package/package/rotate/index.ts +2 -2
  88. package/package/ruler/index.ts +2 -2
  89. package/package/scale/index.ts +2 -2
  90. package/package/throttle/index.ts +2 -2
  91. package/package/viewHandler/index.ts +2 -2
  92. package/package.json +6 -2
  93. package/src/Canvas.ts +70 -67
  94. package/src/Eoap.ts +66 -66
  95. package/src/Geometry.ts +82 -82
  96. package/src/Matrix4/index.ts +17 -9
  97. package/src/Matrix4/move.ts +12 -12
  98. package/src/Matrix4/rotate.ts +15 -15
  99. package/src/Matrix4/scale.ts +11 -11
  100. package/src/Matrix4/transform.ts +64 -64
  101. package/src/Mercator.ts +27 -27
  102. package/src/SVG.ts +24 -24
  103. package/src/WebGL.ts +66 -66
  104. package/src/animation.ts +98 -98
  105. package/src/common/assemble.ts +22 -22
  106. package/src/common/canvas/arc.ts +51 -50
  107. package/src/common/canvas/config.ts +158 -158
  108. package/src/common/canvas/gradient.ts +29 -29
  109. package/src/common/canvas/index.ts +149 -140
  110. package/src/common/canvas/painter.ts +417 -426
  111. package/src/common/canvas/texts.ts +18 -18
  112. package/src/common/geometry/prism-horizontal.ts +35 -33
  113. package/src/common/geometry/prism-vertical.ts +40 -40
  114. package/src/common/geometry/sphere-fragment.ts +40 -39
  115. package/src/common/geometry/tool/circle.ts +11 -11
  116. package/src/common/mergeOption.ts +6 -6
  117. package/src/common/setStyle.ts +5 -5
  118. package/src/common/svg/config.ts +186 -186
  119. package/src/common/svg/dictionary.ts +1 -1
  120. package/src/common/svg/gradient.ts +63 -63
  121. package/src/common/svg/index.ts +356 -356
  122. package/src/common/svg/tool.ts +44 -44
  123. package/src/common/tree/index.ts +25 -25
  124. package/src/common/tree/toInnerTree.ts +57 -56
  125. package/src/common/tree/toPlainTree.ts +132 -131
  126. package/src/common/webgl/buffer.ts +79 -79
  127. package/src/common/webgl/doDraw.ts +108 -108
  128. package/src/common/webgl/getColorFactory.ts +26 -26
  129. package/src/common/webgl/getShader.ts +48 -48
  130. package/src/common/webgl/getTexture.ts +11 -11
  131. package/src/common/webgl/getWebGLContext.ts +28 -27
  132. package/src/common/webgl/index.ts +224 -223
  133. package/src/common/webgl/shader.ts +75 -75
  134. package/src/common/webgl/texture.ts +97 -96
  135. package/src/formatColor.ts +44 -44
  136. package/src/getLoopColors.ts +42 -42
  137. package/src/interpolation/Cardinal.ts +110 -110
  138. package/src/interpolation/Hermite.ts +65 -65
  139. package/src/{TreeLayout/index.ts → layout/TreeLayout.ts} +21 -21
  140. package/src/move.ts +7 -7
  141. package/src/resizeObserver.ts +37 -36
  142. package/src/rotate.ts +7 -7
  143. package/src/ruler.ts +41 -19
  144. package/src/scale.ts +6 -6
  145. package/src/shader/fsColor.c +7 -7
  146. package/src/shader/fsColors.c +7 -7
  147. package/src/shader/fsCube.c +8 -8
  148. package/src/shader/fsImage.c +8 -8
  149. package/src/shader/vsColor.c +17 -17
  150. package/src/shader/vsColors.c +13 -13
  151. package/src/shader/vsCube.c +13 -13
  152. package/src/shader/vsImage.c +13 -13
  153. package/src/throttle.ts +52 -51
  154. package/src/viewHandler.ts +158 -158
  155. package/types/Buffer.d.ts +23 -23
  156. package/types/Canvas.d.ts +8 -0
  157. package/types/CanvasConfig.d.ts +106 -106
  158. package/types/CanvasOption.d.ts +8 -7
  159. package/types/CanvasOpts.d.ts +10 -0
  160. package/types/Cardinal.d.ts +13 -13
  161. package/types/Geometry.d.ts +40 -40
  162. package/types/GeometryOption.d.ts +11 -11
  163. package/types/GeometryResult.d.ts +18 -18
  164. package/types/Gradient.d.ts +14 -14
  165. package/types/Hermite.d.ts +18 -18
  166. package/types/Map.d.ts +9 -9
  167. package/types/Matrix4.d.ts +5 -0
  168. package/types/Object3D.d.ts +114 -114
  169. package/types/SVG.d.ts +238 -238
  170. package/types/SVGConfig.d.ts +76 -76
  171. package/types/Scene3D.d.ts +6 -6
  172. package/types/Shader.d.ts +21 -21
  173. package/types/Texture.d.ts +16 -16
  174. package/types/Tree.d.ts +69 -69
  175. package/types/TreeConfig.d.ts +24 -24
  176. package/types/TreeLayout.d.ts +54 -54
  177. package/types/TreeOption.d.ts +48 -48
  178. package/types/WebGL.d.ts +38 -38
  179. package/types/WebGLOption.d.ts +7 -7
  180. package/types/animation.d.ts +6 -6
  181. package/types/formatColor.d.ts +2 -2
  182. package/types/getLoopColors.d.ts +2 -2
  183. package/types/getWebGLContext.d.ts +2 -2
  184. package/types/index.d.ts +175 -175
  185. package/types/move.d.ts +2 -2
  186. package/types/painterConfig.d.ts +2 -2
  187. package/types/resizeObserver.d.ts +2 -2
  188. package/types/rotate.d.ts +2 -2
  189. package/types/ruler.d.ts +7 -7
  190. package/types/scale.d.ts +2 -2
  191. package/types/throttle.d.ts +4 -4
  192. package/types/throttleOption.d.ts +21 -21
  193. package/types/viewHandler.d.ts +13 -13
  194. 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.5.2
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: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
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, timers = $timers;
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 = [], p;
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, d = "M" + begInnerX + " " + begInnerY;
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
- var _this = _super.call(this, ViewCanvas, {}, RegionCanvas ? new Painter(RegionCanvas, {
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, reject) {
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) || this;
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"], painter = null;
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
- ], target;
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;\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}";
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;\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}";
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;\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}";
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;\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}";
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;\r\n\r\nuniform vec4 u_color;\r\n\r\nvoid main()\r\n{\r\n gl_FragColor = u_color;\r\n}";
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;\r\n\r\nvarying vec4 v_color;\r\n\r\nvoid main()\r\n{\r\n gl_FragColor = v_color;\r\n}";
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;\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}";
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;\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}";
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, reject) {
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 (event) {
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 (event) {
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 = {}, uniqueid = 0;
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), id, rid;
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 = [], size_1 = 0, maxDeep_1 = 0;
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], points = [], deg = Math.PI * 2 / num;
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, point;
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 () {
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.5.2
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: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
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();
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.5.2
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: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
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.5.2
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: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
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.5.2
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: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
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 = {}, uniqueid = 0;
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.5.2
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: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
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();