vislite 0.7.1 → 0.8.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG +28 -2
  2. package/README.md +144 -135
  3. package/lib/Buffer/index.umd.d.ts +3 -0
  4. package/lib/Buffer/index.umd.js +2 -2
  5. package/lib/Buffer/index.umd.min.d.ts +3 -0
  6. package/lib/Buffer/index.umd.min.js +2 -2
  7. package/lib/Canvas/index.umd.d.ts +3 -0
  8. package/lib/Canvas/index.umd.js +26 -2
  9. package/lib/Canvas/index.umd.min.d.ts +3 -0
  10. package/lib/Canvas/index.umd.min.js +3 -3
  11. package/lib/Cardinal/index.umd.d.ts +3 -0
  12. package/lib/Cardinal/index.umd.js +2 -2
  13. package/lib/Cardinal/index.umd.min.d.ts +3 -0
  14. package/lib/Cardinal/index.umd.min.js +2 -2
  15. package/lib/Eoap/index.umd.d.ts +3 -0
  16. package/lib/Eoap/index.umd.js +2 -2
  17. package/lib/Eoap/index.umd.min.d.ts +3 -0
  18. package/lib/Eoap/index.umd.min.js +2 -2
  19. package/lib/Geometry/index.umd.d.ts +3 -0
  20. package/lib/Geometry/index.umd.js +61 -11
  21. package/lib/Geometry/index.umd.min.d.ts +3 -0
  22. package/lib/Geometry/index.umd.min.js +3 -3
  23. package/lib/Hermite/index.umd.d.ts +3 -0
  24. package/lib/Hermite/index.umd.js +2 -2
  25. package/lib/Hermite/index.umd.min.d.ts +3 -0
  26. package/lib/Hermite/index.umd.min.js +2 -2
  27. package/lib/Matrix4/index.umd.d.ts +3 -0
  28. package/lib/Matrix4/index.umd.js +2 -2
  29. package/lib/Matrix4/index.umd.min.d.ts +3 -0
  30. package/lib/Matrix4/index.umd.min.js +2 -2
  31. package/lib/Mercator/index.umd.d.ts +3 -0
  32. package/lib/Mercator/index.umd.js +2 -2
  33. package/lib/Mercator/index.umd.min.d.ts +3 -0
  34. package/lib/Mercator/index.umd.min.js +2 -2
  35. package/lib/OralCanvas/index.es.d.ts +3 -0
  36. package/lib/OralCanvas/index.es.js +26 -2
  37. package/lib/OralCanvas/index.es.min.d.ts +3 -0
  38. package/lib/OralCanvas/index.es.min.js +3 -3
  39. package/lib/OralWebGL/index.es.d.ts +3 -0
  40. package/lib/OralWebGL/index.es.js +26 -8
  41. package/lib/OralWebGL/index.es.min.d.ts +3 -0
  42. package/lib/OralWebGL/index.es.min.js +3 -3
  43. package/lib/SVG/index.umd.d.ts +3 -0
  44. package/lib/SVG/index.umd.js +2 -2
  45. package/lib/SVG/index.umd.min.d.ts +3 -0
  46. package/lib/SVG/index.umd.min.js +2 -2
  47. package/lib/Shader/index.umd.d.ts +3 -0
  48. package/lib/Shader/index.umd.js +2 -2
  49. package/lib/Shader/index.umd.min.d.ts +3 -0
  50. package/lib/Shader/index.umd.min.js +2 -2
  51. package/lib/Texture/index.umd.d.ts +3 -0
  52. package/lib/Texture/index.umd.js +2 -2
  53. package/lib/Texture/index.umd.min.d.ts +3 -0
  54. package/lib/Texture/index.umd.min.js +2 -2
  55. package/lib/TreeLayout/index.umd.d.ts +3 -0
  56. package/lib/TreeLayout/index.umd.js +2 -2
  57. package/lib/TreeLayout/index.umd.min.d.ts +3 -0
  58. package/lib/TreeLayout/index.umd.min.js +2 -2
  59. package/lib/WebGL/index.umd.d.ts +3 -0
  60. package/lib/WebGL/index.umd.js +27 -9
  61. package/lib/WebGL/index.umd.min.d.ts +3 -0
  62. package/lib/WebGL/index.umd.min.js +3 -3
  63. package/lib/animation/index.umd.d.ts +3 -0
  64. package/lib/animation/index.umd.js +2 -2
  65. package/lib/animation/index.umd.min.d.ts +3 -0
  66. package/lib/animation/index.umd.min.js +2 -2
  67. package/lib/formatColor/index.umd.d.ts +3 -0
  68. package/lib/formatColor/index.umd.js +2 -2
  69. package/lib/formatColor/index.umd.min.d.ts +3 -0
  70. package/lib/formatColor/index.umd.min.js +2 -2
  71. package/lib/getLoopColors/index.umd.d.ts +3 -0
  72. package/lib/getLoopColors/index.umd.js +2 -2
  73. package/lib/getLoopColors/index.umd.min.d.ts +3 -0
  74. package/lib/getLoopColors/index.umd.min.js +2 -2
  75. package/lib/getWebGLContext/index.umd.d.ts +3 -0
  76. package/lib/getWebGLContext/index.umd.js +25 -7
  77. package/lib/getWebGLContext/index.umd.min.d.ts +3 -0
  78. package/lib/getWebGLContext/index.umd.min.js +3 -3
  79. package/lib/index.umd.js +112 -20
  80. package/lib/index.umd.min.js +3 -3
  81. package/lib/move/index.umd.d.ts +3 -0
  82. package/lib/move/index.umd.js +2 -2
  83. package/lib/move/index.umd.min.d.ts +3 -0
  84. package/lib/move/index.umd.min.js +2 -2
  85. package/lib/resizeObserver/index.umd.d.ts +3 -0
  86. package/lib/resizeObserver/index.umd.js +2 -2
  87. package/lib/resizeObserver/index.umd.min.d.ts +3 -0
  88. package/lib/resizeObserver/index.umd.min.js +2 -2
  89. package/lib/rotate/index.umd.d.ts +3 -0
  90. package/lib/rotate/index.umd.js +2 -2
  91. package/lib/rotate/index.umd.min.d.ts +3 -0
  92. package/lib/rotate/index.umd.min.js +2 -2
  93. package/lib/ruler/index.umd.d.ts +3 -0
  94. package/lib/ruler/index.umd.js +2 -2
  95. package/lib/ruler/index.umd.min.d.ts +3 -0
  96. package/lib/ruler/index.umd.min.js +2 -2
  97. package/lib/scale/index.umd.d.ts +3 -0
  98. package/lib/scale/index.umd.js +2 -2
  99. package/lib/scale/index.umd.min.d.ts +3 -0
  100. package/lib/scale/index.umd.min.js +2 -2
  101. package/lib/throttle/index.umd.d.ts +3 -0
  102. package/lib/throttle/index.umd.js +2 -2
  103. package/lib/throttle/index.umd.min.d.ts +3 -0
  104. package/lib/throttle/index.umd.min.js +2 -2
  105. package/lib/viewHandler/index.umd.d.ts +3 -0
  106. package/lib/viewHandler/index.umd.js +2 -2
  107. package/lib/viewHandler/index.umd.min.d.ts +3 -0
  108. package/lib/viewHandler/index.umd.min.js +2 -2
  109. package/package/getWebGLContext/index.ts +40 -39
  110. package/package.json +1 -1
  111. package/src/Canvas.ts +2 -2
  112. package/src/Geometry.ts +65 -1
  113. package/src/WebGL.ts +66 -66
  114. package/src/common/canvas/painter.ts +26 -0
  115. package/src/common/geometry/prism-horizontal.ts +50 -35
  116. package/src/common/geometry/prism-vertical.ts +55 -40
  117. package/src/common/geometry/tool/circle.ts +17 -11
  118. package/src/common/geometry/tool/rotateLine.ts +48 -35
  119. package/src/common/webgl/getWebGLContext.ts +45 -28
  120. package/src/common/webgl/index.ts +227 -226
  121. package/src/common/webgl/shader.ts +75 -75
  122. package/types/Canvas.d.ts +318 -308
  123. package/types/Geometry.d.ts +132 -65
  124. package/types/Object3D.d.ts +114 -114
  125. package/types/Shader.d.ts +23 -23
  126. package/types/WebGLOption.d.ts +14 -7
  127. package/types/getWebGLContext.d.ts +4 -2
  128. package/uni-app/drawImage.js +18 -0
  129. package/uni-app/ui-canvas.vue +10 -1
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
- function t(t,r,i){if(i||2===arguments.length)for(var e,o=0,n=r.length;o<n;o++)!e&&o in r||(e||(e=Array.prototype.slice.call(r,0,o)),e[o]=r[o]);return t.concat(e||Array.prototype.slice.call(r))}function r(t,r,i){void 0===i&&(i={});for(var e=["experimental-webgl","webkit-3d","moz-webgl"],o=t.getContext("webgl",i),n=0;n<e.length;n++){try{o=t.getContext(e[n],i)}catch(t){}if(o)break}if(!o)throw new Error("Non canvas or browser does not support webgl.");var a=o.canvas.width,_=o.canvas.height,u=a*r,s=_*r;return o.viewport(.5*(a-u),.5*(_-s),u,s),o.depthFunc(o.LEQUAL),o.enable(o.DEPTH_TEST),o}function i(t){var r=t.drawingBufferWidth,i=t.drawingBufferHeight,e=new Uint8Array(4*r*i);return t.readPixels(0,0,r,i,t.RGBA,t.UNSIGNED_BYTE,e),function(t,o){return"rgba("+e[4*((o=i-o)*r+t)]+","+e[4*(o*r+t)+1]+","+e[4*(o*r+t)+2]+","+e[4*(o*r+t)+3]+")"}}"function"==typeof SuppressedError&&SuppressedError;var e=function(t,r){for(var i=[],e=0;e<4;e++)for(var o=0;o<r.length/4;o++)i[4*o+e]=t[e]*r[4*o]+t[e+4]*r[4*o+1]+t[e+8]*r[4*o+2]+t[e+12]*r[4*o+3];return i},o=[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=o),this.name="Matrix4",this.__matrix4=t}return t.prototype.setValue=function(t){return void 0===t&&(t=o),this.__matrix4=t,this},t.prototype.move=function(t,r,i,o){return void 0===o&&(o=0),this.__matrix4=e(function(t,r,i,e){void 0===e&&(e=0);var o=Math.sqrt(r*r+i*i+e*e);return[1,0,0,0,0,1,0,0,0,0,1,0,r*t/o,i*t/o,e*t/o,1]}(t,r,i,o),this.__matrix4),this},t.prototype.rotate=function(t,r,i,o,n,a,_){var u=function(t,r,i,e,o,n){if("number"==typeof t&&"number"==typeof r){if("number"!=typeof i?(i=0,e=t,o=r,n=1):"number"==typeof e&&"number"==typeof o&&"number"==typeof n||(e=t,o=r,n=i,t=0,r=0,i=0),t==e&&r==o&&i==n)throw new Error("It's not a legitimate ray!");var a=Math.sqrt((e-t)*(e-t)+(o-r)*(o-r)),_=0!=a?(o-r)/a:1,u=0!=a?(e-t)/a:0,s=(e-t)*u+(o-r)*_,m=n-i,l=Math.sqrt(s*s+m*m),p=0!=l?m/l:1,v=0!=l?s/l:0;return[[_,p*u,u*v,0,-u,_*p,_*v,0,0,-v,p,0,r*u-t*_,i*v-t*u*p-r*_*p,-t*u*v-r*_*v-i*p,1],[_,-u,0,0,p*u,p*_,-v,0,u*v,_*v,p,0,t,r,i,1]]}throw new Error("a1 and b1 is required!")}(r,i,o,n,a,_);return this.__matrix4=e(e(e(u[1],function(t){var r=Math.sin(t),i=Math.cos(t);return[i,r,0,0,-r,i,0,0,0,0,1,0,0,0,0,1]}(t)),u[0]),this.__matrix4),this},t.prototype.scale=function(t,r,i,o,n,a){return void 0===o&&(o=0),void 0===n&&(n=0),void 0===a&&(a=0),this.__matrix4=e(function(t,r,i,e,o,n){return void 0===e&&(e=0),void 0===o&&(o=0),void 0===n&&(n=0),[t,0,0,0,0,r,0,0,0,0,i,0,e-e*t,o-o*r,n-n*i,1]}(t,r,i,o,n,a),this.__matrix4),this},t.prototype.multiply=function(t,r){return void 0===r&&(r=!1),this.__matrix4=r?e(this.__matrix4,t):e(t,this.__matrix4),this},t.prototype.use=function(t,r,i,o){return void 0===i&&(i=0),void 0===o&&(o=1),e(this.__matrix4,[t,r,i,o])},t.prototype.value=function(){return this.__matrix4},t}(),a=function(){function t(t,r){void 0===r&&(r=!1),this.__painter=t,this.__isElement=r,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=r?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,r,i,e){var o=i?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(o,r,e)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,r,i,e){return void 0===e&&(e=0),function(t,r,i,e,o,n,a){t.vertexAttribPointer(r,i,e,a,o,n),t.enableVertexAttribArray(r)}(this.__painter,t,r,this.__painter.FLOAT,i*this.__fsize,e*this.__fsize,!1),this},t}(),_=function(){function t(t,r,i){void 0===i&&(i=0),this.__painter=t,this.__type={"2d":t.TEXTURE_2D,cube:t.TEXTURE_CUBE_MAP}[r],this.__texture=function(t,r,i){var e=t.createTexture();return t.activeTexture(t["TEXTURE"+i]),t.bindTexture(r,e),e}(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,r,i,e,o,n){t.texImage2D(r,i,e,e,o,n)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t),this},t.prototype.useCube=function(t,r,i){return function(t,r,i,e,o,n,a,_,u){for(var s,m=[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<m.length;l++)n[l]&&(s=m[l],t.texImage2D(s,i,e,a,_,0,e,o,null),t.bindTexture(r,u),t.texImage2D(s,i,e,e,o,n[l]));t.generateMipmap(r)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t,r,i,this.__texture),this},t}(),u={};function s(t,r,i){var e=t+"-"+i;return u[e]||(u[e]=new _(r,i)),u[e]}var m=function(t,r,i){var e=t.createShader(r);if(null==e)throw new Error("Unable to create shader!");if(t.shaderSource(e,i),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(e));return e},l=function(){function t(t){this.__painter=t}return t.prototype.use=function(){return this.__painter.useProgram(this.program),this},t.prototype.compile=function(t,r){return this.program=function(t,r,i){var e=m(t,t.VERTEX_SHADER,r),o=m(t,t.FRAGMENT_SHADER,i),n=t.createProgram();if(t.attachShader(n,e),t.attachShader(n,o),t.linkProgram(n),!t.getProgramParameter(n,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(n));return n}(this.__painter,t,r),this},t}(),p="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}",v="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}",c="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}",d="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}",h="precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}",g="precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}",f="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}",y="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}",E={};function x(t,r,i,e,o){var n,_,u,m,x,b,A,T,w,R,P,U,C,S,L,z,I,F,M,B,N,D,G,X,O=function(t,r,i){var e,o,n=t+(i.material.color?"1":"0")+(i.material.colors?"1":"0")+(i.material.image?"1":"0")+(i.material.cube?"1":"0");if(E[n])return E[n].use();var a=(e={},e[t+"1000"]=p,e[t+"0100"]=v,e[t+"0010"]=c,e[t+"0001"]=d,e)[n].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"),_=(o={},o[t+"1000"]=h,o[t+"0100"]=g,o[t+"0010"]=f,o[t+"0001"]=y,o)[n],u=new l(r).compile(a,_).use();return E[n]=u,u}(t,r,i);if(new a(r).use().write(i.geometry.attributes.position.array).divide(r.getAttribLocation(O.program,"a_position"),i.geometry.attributes.position.itemSize,i.geometry.attributes.position.itemSize,0),r.uniformMatrix4fv(r.getUniformLocation(O.program,"u_matrix_world"),!1,o.matrix),r.uniformMatrix4fv(r.getUniformLocation(O.program,"u_matrix_proporion"),!1,o.proporion),r.uniformMatrix4fv(r.getUniformLocation(O.program,"u_matrix_mesh"),!1,e.matrix),i.geometry.attributes.normal&&new a(r).use().write(i.geometry.attributes.normal.array).divide(r.getAttribLocation(O.program,"a_normal"),i.geometry.attributes.normal.itemSize,i.geometry.attributes.normal.itemSize,0),"color"in i.material&&r.uniform4f(r.getUniformLocation(O.program,"u_color"),null===(n=i.material.color)||void 0===n?void 0:n.r,null===(_=i.material.color)||void 0===_?void 0:_.g,null===(u=i.material.color)||void 0===u?void 0:u.b,null===(m=i.material.color)||void 0===m?void 0:m.alpha),"colors"in i.material)new a(r).use().write(null===(x=i.material.colors)||void 0===x?void 0:x.array).divide(r.getAttribLocation(O.program,"a_color"),null===(b=i.material.colors)||void 0===b?void 0:b.itemSize,null===(A=i.material.colors)||void 0===A?void 0:A.itemSize,0);else if("cube"in i.material){var Y=(null===(w=null===(T=i.material.cube)||void 0===T?void 0:T.right)||void 0===w?void 0:w.image.value).width;r.uniform1i(r.getUniformLocation(O.program,"u_texture"),0),s(t,r,"cube").useCube([null===(P=null===(R=i.material.cube)||void 0===R?void 0:R.right)||void 0===P?void 0:P.image.value,null===(C=null===(U=i.material.cube)||void 0===U?void 0:U.left)||void 0===C?void 0:C.image.value,null===(L=null===(S=i.material.cube)||void 0===S?void 0:S.top)||void 0===L?void 0:L.image.value,null===(I=null===(z=i.material.cube)||void 0===z?void 0:z.bottom)||void 0===I?void 0:I.image.value,null===(M=null===(F=i.material.cube)||void 0===F?void 0:F.far)||void 0===M?void 0:M.image.value,null===(N=null===(B=i.material.cube)||void 0===B?void 0:B.near)||void 0===N?void 0:N.image.value],Y,Y)}else"image"in i.material&&(r.uniform1i(r.getUniformLocation(O.program,"u_sampler"),0),new a(r).use().write(null===(D=i.geometry.attributes.uv)||void 0===D?void 0:D.array).divide(r.getAttribLocation(O.program,"a_textcoord"),null===(G=i.geometry.attributes.uv)||void 0===G?void 0:G.itemSize,2,0),s(t,r,"2d").useImage(null===(X=i.material.image)||void 0===X?void 0:X.value));i.geometry.index?(new a(r,!0).use().write(i.geometry.index.array),r.drawElements(r[i.geometry.type],i.geometry.index.count,r.UNSIGNED_BYTE,0)):r.drawArrays(r[i.geometry.type],0,i.geometry.attributes.position.count)}var b=!1,A=function(){function e(t,i){this.name="WebGL",this.__getColor=function(t,r){return"rgba(0,0,0,1)"},this.__regionList={},this.__regionAssemble=function(t,r,i,e){for(var o=[],n=0;n<e;n++)o[n]=t;return function(){for(var n=0;n<e;n++){if(o[n]+i<r){o[n]=+(o[n]+i).toFixed(7);break}n<e-1&&(o[n]=t)}return 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=r(t,10),i&&(this.__regionPainter=r(i,10,{}));var e=this.painter.canvas.width/this.painter.canvas.height,o=1,a=1;e>1?o=1/e:a=e;var _=Math.min(o,a);this.__proporion=[o,0,0,0,0,a,0,0,0,0,_,0,0,0,0,1]}return e.prototype.matrix=function(t){return new n(t)},e.prototype.getMatrix=function(){return this.__scene.matrix},e.prototype.getObject3D=function(){return this.__scene.children},e.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 r=0;r<this.__scene.children.length;r++)this.draw(this.__scene.children[r],t);return this},e.prototype.draw=function(t,r){var e;void 0===r&&(r=!1),r||(b=!0);var o={matrix:null===(e=t.matrix)||void 0===e?void 0:e.value()},n={matrix:this.__scene.matrix.value(),proporion:this.__proporion};this.setRegion(t.region);for(var a=0;a<t.mesh.length;a++)r?this.__regionPainter&&(x("painter"+this.__unique,this.__regionPainter,{geometry:t.mesh[a].geometry,material:{color:{r:this.__regionColor[0],g:this.__regionColor[1],b:this.__regionColor[2],alpha:this.__regionColor[3]}}},o,n),this.__getColor=i(this.__regionPainter)):x("region"+this.__unique,this.painter,t.mesh[a],o,n)},e.prototype.render=function(t){"matrix"in t||(t.matrix=new n),"region"in t||(t.region="");for(var r=0;r<t.mesh.length;r++){var i=t.mesh[r];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)},e.prototype.setRegion=function(r){return this.__regionName=r+"",r?(null==this.__regionList[r]&&(this.__regionList[r]=t(t([],this.__regionAssemble(),!0),[1],!1)),this.__regionColor=this.__regionList[r]):this.__regionColor=[0,0,0,1],this},e.prototype.getRegion=function(t,r){var i=this;return b&&this.review(!0),b=!1,new Promise((function(e){var o=i.__getColor(t,r);for(var n in i.__regionList){var a=i.__regionList[n];if("rgba("+255*a[0]+","+255*a[1]+","+255*a[2]+","+255*a[3]+")"==o){e(n);break}}e("")}))},e}();export{A as default};
11
+ function t(t,r,i){if(i||2===arguments.length)for(var e,o=0,n=r.length;o<n;o++)!e&&o in r||(e||(e=Array.prototype.slice.call(r,0,o)),e[o]=r[o]);return t.concat(e||Array.prototype.slice.call(r))}function r(t,r,i,e){void 0===i&&(i={}),void 0===e&&(e="scaleToFill");for(var o=["experimental-webgl","webkit-3d","moz-webgl"],n=t.getContext("webgl",i),a=0;a<o.length;a++){try{n=t.getContext(o[a],i)}catch(t){}if(n)break}if(!n)throw new Error("Non canvas or browser does not support webgl.");var _=n.canvas.width,s=n.canvas.height,u=r,m=r;"aspectFit"==e?_>s?u*=s/_:s>_&&(m*=_/s):"aspectFill"==e&&(_>s?m*=_/s:s>_&&(u*=s/_));var l=_*u,p=s*m;return n.viewport(.5*(_-l),.5*(s-p),l,p),n.depthFunc(n.LEQUAL),n.enable(n.DEPTH_TEST),n}function i(t){var r=t.drawingBufferWidth,i=t.drawingBufferHeight,e=new Uint8Array(4*r*i);return t.readPixels(0,0,r,i,t.RGBA,t.UNSIGNED_BYTE,e),function(t,o){return"rgba("+e[4*((o=i-o)*r+t)]+","+e[4*(o*r+t)+1]+","+e[4*(o*r+t)+2]+","+e[4*(o*r+t)+3]+")"}}"function"==typeof SuppressedError&&SuppressedError;var e=function(t,r){for(var i=[],e=0;e<4;e++)for(var o=0;o<r.length/4;o++)i[4*o+e]=t[e]*r[4*o]+t[e+4]*r[4*o+1]+t[e+8]*r[4*o+2]+t[e+12]*r[4*o+3];return i},o=[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=o),this.name="Matrix4",this.__matrix4=t}return t.prototype.setValue=function(t){return void 0===t&&(t=o),this.__matrix4=t,this},t.prototype.move=function(t,r,i,o){return void 0===o&&(o=0),this.__matrix4=e(function(t,r,i,e){void 0===e&&(e=0);var o=Math.sqrt(r*r+i*i+e*e);return[1,0,0,0,0,1,0,0,0,0,1,0,r*t/o,i*t/o,e*t/o,1]}(t,r,i,o),this.__matrix4),this},t.prototype.rotate=function(t,r,i,o,n,a,_){var s=function(t,r,i,e,o,n){if("number"==typeof t&&"number"==typeof r){if("number"!=typeof i?(i=0,e=t,o=r,n=1):"number"==typeof e&&"number"==typeof o&&"number"==typeof n||(e=t,o=r,n=i,t=0,r=0,i=0),t==e&&r==o&&i==n)throw new Error("It's not a legitimate ray!");var a=Math.sqrt((e-t)*(e-t)+(o-r)*(o-r)),_=0!=a?(o-r)/a:1,s=0!=a?(e-t)/a:0,u=(e-t)*s+(o-r)*_,m=n-i,l=Math.sqrt(u*u+m*m),p=0!=l?m/l:1,v=0!=l?u/l:0;return[[_,p*s,s*v,0,-s,_*p,_*v,0,0,-v,p,0,r*s-t*_,i*v-t*s*p-r*_*p,-t*s*v-r*_*v-i*p,1],[_,-s,0,0,p*s,p*_,-v,0,s*v,_*v,p,0,t,r,i,1]]}throw new Error("a1 and b1 is required!")}(r,i,o,n,a,_);return this.__matrix4=e(e(e(s[1],function(t){var r=Math.sin(t),i=Math.cos(t);return[i,r,0,0,-r,i,0,0,0,0,1,0,0,0,0,1]}(t)),s[0]),this.__matrix4),this},t.prototype.scale=function(t,r,i,o,n,a){return void 0===o&&(o=0),void 0===n&&(n=0),void 0===a&&(a=0),this.__matrix4=e(function(t,r,i,e,o,n){return void 0===e&&(e=0),void 0===o&&(o=0),void 0===n&&(n=0),[t,0,0,0,0,r,0,0,0,0,i,0,e-e*t,o-o*r,n-n*i,1]}(t,r,i,o,n,a),this.__matrix4),this},t.prototype.multiply=function(t,r){return void 0===r&&(r=!1),this.__matrix4=r?e(this.__matrix4,t):e(t,this.__matrix4),this},t.prototype.use=function(t,r,i,o){return void 0===i&&(i=0),void 0===o&&(o=1),e(this.__matrix4,[t,r,i,o])},t.prototype.value=function(){return this.__matrix4},t}(),a=function(){function t(t,r){void 0===r&&(r=!1),this.__painter=t,this.__isElement=r,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=r?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,r,i,e){var o=i?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(o,r,e)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,r,i,e){return void 0===e&&(e=0),function(t,r,i,e,o,n,a){t.vertexAttribPointer(r,i,e,a,o,n),t.enableVertexAttribArray(r)}(this.__painter,t,r,this.__painter.FLOAT,i*this.__fsize,e*this.__fsize,!1),this},t}(),_=function(){function t(t,r,i){void 0===i&&(i=0),this.__painter=t,this.__type={"2d":t.TEXTURE_2D,cube:t.TEXTURE_CUBE_MAP}[r],this.__texture=function(t,r,i){var e=t.createTexture();return t.activeTexture(t["TEXTURE"+i]),t.bindTexture(r,e),e}(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,r,i,e,o,n){t.texImage2D(r,i,e,e,o,n)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t),this},t.prototype.useCube=function(t,r,i){return function(t,r,i,e,o,n,a,_,s){for(var u,m=[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<m.length;l++)n[l]&&(u=m[l],t.texImage2D(u,i,e,a,_,0,e,o,null),t.bindTexture(r,s),t.texImage2D(u,i,e,e,o,n[l]));t.generateMipmap(r)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t,r,i,this.__texture),this},t}(),s={};function u(t,r,i){var e=t+"-"+i;return s[e]||(s[e]=new _(r,i)),s[e]}var m=function(t,r,i){var e=t.createShader(r);if(null==e)throw new Error("Unable to create shader!");if(t.shaderSource(e,i),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(e));return e},l=function(){function t(t){this.__painter=t}return t.prototype.use=function(){return this.__painter.useProgram(this.program),this},t.prototype.compile=function(t,r){return this.program=function(t,r,i){var e=m(t,t.VERTEX_SHADER,r),o=m(t,t.FRAGMENT_SHADER,i),n=t.createProgram();if(t.attachShader(n,e),t.attachShader(n,o),t.linkProgram(n),!t.getProgramParameter(n,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(n));return n}(this.__painter,t,r),this},t}(),p="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}",v="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}",c="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}",d="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}",h="precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}",g="precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}",f="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}",y="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}",E={};function x(t,r,i,e,o){var n,_,s,m,x,b,T,A,w,R,P,U,C,S,L,F,z,I,M,B,N,D,G,X,O=function(t,r,i){var e,o,n=t+(i.material.color?"1":"0")+(i.material.colors?"1":"0")+(i.material.image?"1":"0")+(i.material.cube?"1":"0");if(E[n])return E[n].use();var a=(e={},e[t+"1000"]=p,e[t+"0100"]=v,e[t+"0010"]=c,e[t+"0001"]=d,e)[n].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"),_=(o={},o[t+"1000"]=h,o[t+"0100"]=g,o[t+"0010"]=f,o[t+"0001"]=y,o)[n],s=new l(r).compile(a,_).use();return E[n]=s,s}(t,r,i);if(new a(r).use().write(i.geometry.attributes.position.array).divide(r.getAttribLocation(O.program,"a_position"),i.geometry.attributes.position.itemSize,i.geometry.attributes.position.itemSize,0),r.uniformMatrix4fv(r.getUniformLocation(O.program,"u_matrix_world"),!1,o.matrix),r.uniformMatrix4fv(r.getUniformLocation(O.program,"u_matrix_proporion"),!1,o.proporion),r.uniformMatrix4fv(r.getUniformLocation(O.program,"u_matrix_mesh"),!1,e.matrix),i.geometry.attributes.normal&&new a(r).use().write(i.geometry.attributes.normal.array).divide(r.getAttribLocation(O.program,"a_normal"),i.geometry.attributes.normal.itemSize,i.geometry.attributes.normal.itemSize,0),"color"in i.material&&r.uniform4f(r.getUniformLocation(O.program,"u_color"),null===(n=i.material.color)||void 0===n?void 0:n.r,null===(_=i.material.color)||void 0===_?void 0:_.g,null===(s=i.material.color)||void 0===s?void 0:s.b,null===(m=i.material.color)||void 0===m?void 0:m.alpha),"colors"in i.material)new a(r).use().write(null===(x=i.material.colors)||void 0===x?void 0:x.array).divide(r.getAttribLocation(O.program,"a_color"),null===(b=i.material.colors)||void 0===b?void 0:b.itemSize,null===(T=i.material.colors)||void 0===T?void 0:T.itemSize,0);else if("cube"in i.material){var Y=(null===(w=null===(A=i.material.cube)||void 0===A?void 0:A.right)||void 0===w?void 0:w.image.value).width;r.uniform1i(r.getUniformLocation(O.program,"u_texture"),0),u(t,r,"cube").useCube([null===(P=null===(R=i.material.cube)||void 0===R?void 0:R.right)||void 0===P?void 0:P.image.value,null===(C=null===(U=i.material.cube)||void 0===U?void 0:U.left)||void 0===C?void 0:C.image.value,null===(L=null===(S=i.material.cube)||void 0===S?void 0:S.top)||void 0===L?void 0:L.image.value,null===(z=null===(F=i.material.cube)||void 0===F?void 0:F.bottom)||void 0===z?void 0:z.image.value,null===(M=null===(I=i.material.cube)||void 0===I?void 0:I.far)||void 0===M?void 0:M.image.value,null===(N=null===(B=i.material.cube)||void 0===B?void 0:B.near)||void 0===N?void 0:N.image.value],Y,Y)}else"image"in i.material&&(r.uniform1i(r.getUniformLocation(O.program,"u_sampler"),0),new a(r).use().write(null===(D=i.geometry.attributes.uv)||void 0===D?void 0:D.array).divide(r.getAttribLocation(O.program,"a_textcoord"),null===(G=i.geometry.attributes.uv)||void 0===G?void 0:G.itemSize,2,0),u(t,r,"2d").useImage(null===(X=i.material.image)||void 0===X?void 0:X.value));i.geometry.index?(new a(r,!0).use().write(i.geometry.index.array),r.drawElements(r[i.geometry.type],i.geometry.index.count,r.UNSIGNED_BYTE,0)):r.drawArrays(r[i.geometry.type],0,i.geometry.attributes.position.count)}var b=!1,T=function(){function e(t,i,e){this.name="WebGL",this.__getColor=function(t,r){return"rgba(0,0,0,1)"},this.__regionList={},this.__regionAssemble=function(t,r,i,e){for(var o=[],n=0;n<e;n++)o[n]=t;return function(){for(var n=0;n<e;n++){if(o[n]+i<r){o[n]=+(o[n]+i).toFixed(7);break}n<e-1&&(o[n]=t)}return 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=r(t,10,{},e),i&&(this.__regionPainter=r(i,10,{},e));var o=this.painter.canvas.width/this.painter.canvas.height,a=1,_=1;o>1?a=1/o:_=o;var s=Math.min(a,_);this.__proporion=[a,0,0,0,0,_,0,0,0,0,s,0,0,0,0,1]}return e.prototype.matrix=function(t){return new n(t)},e.prototype.getMatrix=function(){return this.__scene.matrix},e.prototype.getObject3D=function(){return this.__scene.children},e.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 r=0;r<this.__scene.children.length;r++)this.draw(this.__scene.children[r],t);return this},e.prototype.draw=function(t,r){var e;void 0===r&&(r=!1),r||(b=!0);var o={matrix:null===(e=t.matrix)||void 0===e?void 0:e.value()},n={matrix:this.__scene.matrix.value(),proporion:this.__proporion};this.setRegion(t.region);for(var a=0;a<t.mesh.length;a++)r?this.__regionPainter&&(x("painter"+this.__unique,this.__regionPainter,{geometry:t.mesh[a].geometry,material:{color:{r:this.__regionColor[0],g:this.__regionColor[1],b:this.__regionColor[2],alpha:this.__regionColor[3]}}},o,n),this.__getColor=i(this.__regionPainter)):x("region"+this.__unique,this.painter,t.mesh[a],o,n)},e.prototype.render=function(t){"matrix"in t||(t.matrix=new n),"region"in t||(t.region="");for(var r=0;r<t.mesh.length;r++){var i=t.mesh[r];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)},e.prototype.setRegion=function(r){return this.__regionName=r+"",r?(null==this.__regionList[r]&&(this.__regionList[r]=t(t([],this.__regionAssemble(),!0),[1],!1)),this.__regionColor=this.__regionList[r]):this.__regionColor=[0,0,0,1],this},e.prototype.getRegion=function(t,r){var i=this;return b&&this.review(!0),b=!1,new Promise((function(e){var o=i.__getColor(t,r);for(var n in i.__regionList){var a=i.__regionList[n];if("rgba("+255*a[0]+","+255*a[1]+","+255*a[2]+","+255*a[3]+")"==o){e(n);break}}e("")}))},e}();export{T as default};
@@ -0,0 +1,3 @@
1
+ import { SVG } from "../../types/index"
2
+
3
+ export default SVG
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { SVG } from "../../types/index"
2
+
3
+ export default SVG
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var t,e;t=this,e=function(){"use strict";var t=function(e,i){return t=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])},t(e,i)};"function"==typeof SuppressedError&&SuppressedError;var e=["href","title","show","type","role","actuate"];function i(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}var n=function(t,i,n){e.indexOf(i)>-1?t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+i,n+""):t.setAttribute(i,n+"")},r=n;function o(t,e){n(t,"stroke",e.strokeStyle),n(t,"fill",e.fillStyle),n(t,"stroke-dasharray",e.lineDash.join(","))}function s(t,e){n(t,"fill",e.fillStyle)}function u(t,e){n(t,"stroke",e.strokeStyle),n(t,"fill","none"),n(t,"stroke-dasharray",e.lineDash.join(","))}var h=function(t,e,i,n,r){var o=Math.cos(i),s=Math.sin(i);return[+((n-t)*o-(r-e)*s+t).toFixed(7),+((n-t)*s+(r-e)*o+e).toFixed(7)]},a=function(t){var e=t.getElementsByTagName("defs");if(e.length<=0){var n=i("defs");return t.appendChild(n),n}return e[0]},_=function(t,e,i,n,o){if("text"!==t.nodeName.toLowerCase())throw new Error("Need a <text> !");r(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}),r(t,"x",i),r(t,"y",n),"number"==typeof o&&r(t,"transform","rotate("+(o%=360)+","+i+","+n+")")},l=function(t,e,i,n){if("circle"!==t.nodeName.toLowerCase())throw new Error("Need a <circle> !");r(t,"cx",e),r(t,"cy",i),r(t,"r",n)},c=function(t,e){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");r(t,"d",e)},f=function(t,e,i,n,o){if("rect"!==t.nodeName.toLowerCase())throw new Error("Need a <rect> !");o<0&&(i-=o*=-1),n<0&&(e-=n*=-1),r(t,"x",e),r(t,"y",i),r(t,"width",n),r(t,"height",o)},p=function(t,e,i,n,o,s,u,a){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");if(u=u/180*Math.PI,a=a/180*Math.PI,u%=2*Math.PI,o>s){var _=o;o=s,s=_}a>=1.999999*Math.PI||a<=1.999999*-Math.PI?a=1.999999*Math.PI:a%=2*Math.PI,function(t,e,i,n,r,o,s){e<0&&(t+=e,e*=-1);var u,a=[];u=h(0,0,t,r,0),a[0]=u[0],a[1]=u[1],u=h(0,0,e,u[0],u[1]),a[2]=u[0],a[3]=u[1],u=h(0,0,t,o,0),a[4]=u[0],a[5]=u[1],u=h(0,0,e,u[0],u[1]),a[6]=u[0],a[7]=u[1],s(t,t+e,a[0]+i,a[1]+n,a[4]+i,a[5]+n,a[2]+i,a[3]+n,a[6]+i,a[7]+n,.5*(o-r))}(u,a,i,n,o,s,(function(i,n,u,h,a,_,l,c,f,p,d){var y=n-i>Math.PI?1:0,E="M"+u+" "+h;d<0&&(d=-d),E+="A"+o+" "+o+" 0 "+y+" 1 "+l+" "+c,"round"==e.arcEndCap?E+="A"+d+" "+d+" 0 1 0 "+f+" "+p:"-round"==e.arcEndCap?E+="A"+d+" "+d+" 0 1 1 "+f+" "+p:E+="L"+f+" "+p,E+="A"+s+" "+s+" 0 "+y+" 0 "+a+" "+_,"round"==e.arcStartCap?E+="A"+d+" "+d+" 0 1 0 "+u+" "+h:"-round"==e.arcStartCap?E+="A"+d+" "+d+" 0 1 1 "+u+" "+h:E+="L"+u+" "+h,"butt"==e.arcStartCap&&(E+="Z"),r(t,"d",E)}))};function d(t,e,i,n,r){var o=Math.cos(i),s=Math.sin(i);return[(n-t)*o-(r-e)*s+t,(n-t)*s+(r-e)*o+e]}var y={"font-size":"fontSize","font-family":"fontFamily","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},E=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[y[t]||t];for(var e in t){var i=y[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=i(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,i){return e.indexOf(i)>-1&&(i="xlink:"+i),t.getAttribute(i)}(this.__useEl,t);for(var i in t)r(this.__useEl,i,t[i]);return this},t.prototype.fillText=function(t,e,i,n){return void 0===n&&(n=0),_(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,s(this.__useEl,this.__config),this},t.prototype.strokeText=function(t,e,i,n){return void 0===n&&(n=0),_(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,u(this.__useEl,this.__config),this},t.prototype.fullText=function(t,e,i,n){return void 0===n&&(n=0),_(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,o(this.__useEl,this.__config),this},t.prototype.fillArc=function(t,e,i,n,r,o){return p(this.__useEl,this.__config,t,e,i,n,r,o),s(this.__useEl,this.__config),this},t.prototype.strokeArc=function(t,e,i,n,r,o){return p(this.__useEl,this.__config,t,e,i,n,r,o),u(this.__useEl,this.__config),this},t.prototype.fullArc=function(t,e,i,n,r,s){return p(this.__useEl,this.__config,t,e,i,n,r,s),o(this.__useEl,this.__config),this},t.prototype.fillCircle=function(t,e,i){return l(this.__useEl,t,e,i),s(this.__useEl,this.__config),this},t.prototype.strokeCircle=function(t,e,i){return l(this.__useEl,t,e,i),u(this.__useEl,this.__config),this},t.prototype.fullCircle=function(t,e,i){return l(this.__useEl,t,e,i),o(this.__useEl,this.__config),this},t.prototype.fillRect=function(t,e,i,n){return f(this.__useEl,t,e,i,n),s(this.__useEl,this.__config),this},t.prototype.strokeRect=function(t,e,i,n){return f(this.__useEl,t,e,i,n),u(this.__useEl,this.__config),this},t.prototype.fullRect=function(t,e,i,n){return f(this.__useEl,t,e,i,n),o(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),s(this.__useEl,this.__config),this},t.prototype.stroke=function(){return c(this.__useEl,this.__path),u(this.__useEl,this.__config),this},t.prototype.full=function(){return c(this.__useEl,this.__path),o(this.__useEl,this.__config),this},t.prototype.arc=function(t,e,i,n,r){var o=d(t,e,n/180*Math.PI,t+i,e),s=d(t,e,(n+r)/180*Math.PI,t+i,e);return""==this.__path?this.__path+="M"+o[0]+","+o[1]:o[0]==this.__currentPosition[0]&&o[1]==this.__currentPosition[1]||(this.__path+="L"+o[0]+","+o[1]),this.__path+="A"+i+","+i+" 0 "+(r>180||r<-180?1:0)+","+(r>0?1:0)+" "+s[0]+","+s[1],this},t.prototype.quadraticCurveTo=function(t,e,i,n){return this.__path+="Q"+t+" "+e+","+i+" "+n,this},t.prototype.bezierCurveTo=function(t,e,i,n,r,o){return this.__path+="C"+t+" "+e+","+i+" "+n+","+r+" "+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,n,o){return function(t,e,n,o,s){var u=a(t),h="vislite-lg-"+(new Date).valueOf()+"-"+Math.random(),_=i("linearGradient");u.appendChild(_),r(_,"id",h),r(_,"x1",e+"%"),r(_,"y1",n+"%"),r(_,"x2",o+"%"),r(_,"y2",s+"%");var l={value:function(){return"url(#"+h+")"},setColor:function(t,e){var n=i("stop");return _.appendChild(n),r(n,"offset",100*t+"%"),r(n,"style","stop-color:"+e+";"),l}};return l}(this.__svg,t,e,n,o)},t.prototype.createRadialGradient=function(t,e,n){return function(t,e,n,o){var s=a(t),u="vislite-rg-"+(new Date).valueOf()+"-"+Math.random(),h=i("radialGradient");s.appendChild(h),r(h,"id",u),r(h,"cx",e+"%"),r(h,"cy",n+"%"),r(h,"r",o+"%");var _={value:function(){return"url(#"+u+")"},setColor:function(t,e){var n=i("stop");return h.appendChild(n),r(n,"offset",100*t+"%"),r(n,"style","stop-color:"+e+";"),_}};return _}(this.__svg,t,e,n)},t}();return function(e){function i(t){if(!t)throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.");var i=t.clientWidth,n=t.clientHeight,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.appendChild(r),r.setAttribute("width",i+""),r.setAttribute("height",n+""),r.setAttribute("viewBox","0 0 "+i+" "+n),e.call(this,r)||this}return function(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}(i,e),i}(E)},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_SVG=e();
@@ -0,0 +1,3 @@
1
+ import { Shader } from "../../types/index"
2
+
3
+ export default Shader
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { Shader } from "../../types/index"
2
+
3
+ export default Shader
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var t,n;t=this,n=function(){"use strict";var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])},t(n,e)};"function"==typeof SuppressedError&&SuppressedError;var n=function(t,n,e){var o=t.createShader(n);if(null==o)throw new Error("Unable to create shader!");if(t.shaderSource(o,e),t.compileShader(o),!t.getShaderParameter(o,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(o));return o},e=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,o){var r=n(t,t.VERTEX_SHADER,e),i=n(t,t.FRAGMENT_SHADER,o),a=t.createProgram();if(t.attachShader(a,r),t.attachShader(a,i),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(a));return a}(this.__painter,t,e),this},t}(),o=function(n){function e(){return null!==n&&n.apply(this,arguments)||this}return function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=n}t(n,e),n.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}(e,n),e.prototype.compile=function(t,e){return e?n.prototype.compile.call(this,t,e):n.prototype.compile.call(this,{color:"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}",colors:"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}",image:"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}",cube:"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}"}[t],{color:"precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}",colors:"precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}",image:"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}",cube:"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}"}[t]),this},e}(e);return o},"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_Shader=n();
@@ -0,0 +1,3 @@
1
+ import { Texture } from "../../types/index"
2
+
3
+ export default Texture
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { Texture } from "../../types/index"
2
+
3
+ export default Texture
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var e,t;e=this,t=function(){"use strict";return function(){function e(e,t,_){void 0===_&&(_=0),this.__painter=e,this.__type={"2d":e.TEXTURE_2D,cube:e.TEXTURE_CUBE_MAP}[t],this.__texture=function(e,t,_){var E=e.createTexture();return e.activeTexture(e["TEXTURE"+_]),e.bindTexture(t,E),E}(e,this.__type,_),e.texParameteri(this.__type,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(this.__type,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(this.__type,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(this.__type,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}return e.prototype.useImage=function(e){return function(e,t,_,E,i,T){e.texImage2D(t,_,E,E,i,T)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,e),this},e.prototype.useCube=function(e,t,_){return function(e,t,_,E,i,T,r,n,u){for(var a,s=[e.TEXTURE_CUBE_MAP_POSITIVE_X,e.TEXTURE_CUBE_MAP_NEGATIVE_X,e.TEXTURE_CUBE_MAP_POSITIVE_Y,e.TEXTURE_CUBE_MAP_NEGATIVE_Y,e.TEXTURE_CUBE_MAP_POSITIVE_Z,e.TEXTURE_CUBE_MAP_NEGATIVE_Z],p=0;p<s.length;p++)T[p]&&(a=s[p],e.texImage2D(a,_,E,r,n,0,E,i,null),e.bindTexture(t,u),e.texImage2D(a,_,E,E,i,T[p]));e.generateMipmap(t)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,e,t,_,this.__texture),this},e}()},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VISLite_Texture=t();
@@ -0,0 +1,3 @@
1
+ import { TreeLayout } from "../../types/index"
2
+
3
+ export default TreeLayout
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { TreeLayout } from "../../types/index"
2
+
3
+ export default TreeLayout
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var t,e;t=this,e=function(){"use strict";var t=function(e,o){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])},t(e,o)};function e(t,e){for(var o in t)e[o]=t[o];return e}"function"==typeof SuppressedError&&SuppressedError;var o,n=function(){function t(t){void 0===t&&(t={}),this.name="Tree",this.__config=e(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,o){var n=function(t,e){var o,n,i={},r=e.root(t);o=n=e.id(r),i[o]={data:r,pid:null,id:o,isOpen:!0,show:!0,children:[]};var p=1;return function n(r,s){var d=e.children(r,t);p+=d?d.length:0;for(var _=0;d&&_<d.length;_++)o=e.id(d[_]),i[s].children.push(o),i[o]={data:d[_],pid:s,id:o,isOpen:!0,show:!0,children:[]},n(d[_],o)}(r,o),{rid:n,value:i,num:p}}(t,e),i=n.value,r=n.rid;if(1==n.num)return i[r].left=.5,i[r].top=.5,i[r].show=!0,{deep:1,node:i,root:r,size:1};var p=[],s=0,d=0;for(var _ in o[r]?(i[r].left=.5,i[r].top=.5,i[r].show=!0,s=1):function t(e,n){n>d&&(d=n);var r=0;if(!o[e.id])for(r=0;r<e.children.length;r++)t(i[e.children[r]],n+1);if(i[e.id].left=n+.5,0==r?(null==p[n]&&(p[n]=-.5),null==p[n-1]&&(p[n-1]=-.5),i[e.id].top=p[n]+1,p[n]+1+.5*(i[e.pid].children.length-1)-1<p[n-1]&&(i[e.id].top=p[n-1]+1-.5*(i[e.pid].children.length-1))):i[e.id].top=.5*(i[e.children[0]].top+i[e.children[r-1]].top),i[e.id].top<=p[n])var _=p[n]+1-i[e.id].top((function t(e,o){i[e].top+=_,p[o]<i[e].top&&(p[o]=i[e].top);for(var n=0;n<i[e].children.length;n++)t(i[e].children[n],o+1)}))(e.id,n);p[n]=i[e.id].top,i[e.id].top+.5>s&&(s=i[e.id].top+.5)}(i[r],0),o)o[_]&&(i[_].isOpen=!1,function t(e,o,n){for(var r=0;r<i[e].children.length;r++)i[i[e].children[r]].left=o,i[i[e].children[r]].top=n,i[i[e].children[r]].show=!1,t(i[e].children[r],o,n)}(_,i[_].left,i[_].top));return{node:i,root:r,size:s,deep:d+1}}(t,this.__config,e)},t}(),i=[];function r(t,e,o,n,i){var r=Math.cos(o),p=Math.sin(o);return[(n-t)*r-(i-e)*p+t,(n-t)*p+(i-e)*r+e]}var p=function(n){function p(){var t=null!==n&&n.apply(this,arguments)||this;return t.name="TreeLayout",t.__option={offsetX:0,offsetY:0,duration:500,type:"plain",direction:"LR",x:100,y:100,width:100,height:100,radius:100},t.__noOpens={},t}return function(e,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function n(){this.constructor=e}t(e,o),e.prototype=null===o?Object.create(o):(n.prototype=o.prototype,new n)}(p,n),p.prototype.setOption=function(t){return e(t,this.__option),this},p.prototype.use=function(t,e){void 0===e&&(e={});var o=n.prototype.use.call(this,t,e);if(0!=this.__option.offsetX||0!=this.__option.offsetY)for(var i in o.node)if(!o.node[i].show){var p=0,s=i;do{s=o.node[s].pid,p++}while(!o.node[s].show);o.node[i].left+=this.__option.offsetX*p,o.node[i].top+=this.__option.offsetY*p}if("rect"==this.__option.type){if("LR"==this.__option.direction||"RL"==this.__option.direction){var d=this.__option.height/o.size,_=this.__option.width/(o.deep-1),h=this.__option.y-.5*this.__option.height,f="LR"==this.__option.direction?1:-1;for(var i in o.node)1==o.deep?(o.node[i].left=this.__option.x+.5*this.__option.width*f,o.node[i].top=this.__option.y):(o.node[i].left=this.__option.x+(o.node[i].left-.5)*_*f,o.node[i].top=o.node[i].top*d+h)}else if("TB"==this.__option.direction||"BT"==this.__option.direction)for(var i in d=this.__option.width/o.size,_=this.__option.height/(o.deep-1),h=this.__option.x-.5*this.__option.width,f="TB"==this.__option.direction?1:-1,o.node)if(1==o.deep)o.node[i].left=this.__option.x,o.node[i].top=this.__option.y+.5*this.__option.height*f;else{var u=o.node[i].left;o.node[i].left=o.node[i].top*d+h,o.node[i].top=this.__option.y+(u-.5)*_*f}}else if("circle"==this.__option.type){var l=this.__option.x,c=this.__option.y,a=2*Math.PI/o.size,v=this.__option.radius/(o.deep-1);for(var i in o.node)if(.5==o.node[i].left)o.node[i].left=l,o.node[i].top=c;else{var y=r(l,c,a*o.node[i].top,l+(o.node[i].left-.5)*v,c);o.node[i].left=y[0],o.node[i].top=y[1]}}return o},p.prototype.bind=function(t,e,o){return void 0===o&&(o={}),this.__rback=e,this.__oralTree=t,this.__noOpens=o,this.__preTree=this.use(this.__oralTree,this.__noOpens),this.__rback(this.__preTree),this},p.prototype.unbind=function(){return this.__rback=function(){return null},this.__oralTree=null,this.__preTree=null,this.__noOpens={},this},p.prototype.doUpdate=function(){var t=this,e=this.use(this.__oralTree,this.__noOpens),n=JSON.parse(JSON.stringify(e));!function(t,e,n){void 0===e&&(e=400),void 0===n&&(n=function(){});var r={timer:function(t,e,o){if(!t)throw new Error("Tick is required!");var n=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return i.push({id:n,createTime:new Date,tick:t,duration:e,callback:o}),r.start(),n},start:function(){o||(o=setInterval(r.tick,13))},tick:function(){var t,e,o,n,p,s,d,_=i;for((i=[]).length=0,e=0;e<_.length;e++)t=(p=_[e]).createTime,o=p.tick,s=p.duration,n=p.callback,o(d=(d=(+(new Date).valueOf()-t.valueOf())/s)>1?1:d),d<1&&p.id?i.push(p):n(d);i.length<=0&&r.stop()},stop:function(){o&&(clearInterval(o),o=null)}};r.timer((function(e){t(e)}),e,n)}((function(o){if(t.__preTree)for(var i in n.node)(e.node[i].show||t.__preTree.node[i].show)&&(n.node[i].show=!0,n.node[i].left=t.__preTree.node[i].left+(e.node[i].left-t.__preTree.node[i].left)*o,n.node[i].top=t.__preTree.node[i].top+(e.node[i].top-t.__preTree.node[i].top)*o);t.__rback(n)}),this.__option.duration,(function(){t.__preTree=e,t.__rback(t.__preTree)}))},p.prototype.closeNode=function(t){return this.__preTree?(this.__noOpens[t]=!0,this.doUpdate(),this):this},p.prototype.openNode=function(t){return this.__preTree?(this.__noOpens[t]=!1,this.doUpdate(),this):this},p.prototype.toggleNode=function(t){return this.__preTree?(this.__noOpens[t]=!this.__noOpens[t],this.doUpdate(),this):this},p}(n);return p},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_TreeLayout=e();
@@ -0,0 +1,3 @@
1
+ import { WebGL } from "../../types/index"
2
+
3
+ export default WebGL
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -60,8 +60,9 @@
60
60
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
61
61
  };
62
62
 
63
- function getWebGLContext (canvas, scale, opts) {
63
+ function getWebGLContext (canvas, scale, opts, mode) {
64
64
  if (opts === void 0) { opts = {}; }
65
+ if (mode === void 0) { mode = "scaleToFill"; }
65
66
  var names = ["experimental-webgl", "webkit-3d", "moz-webgl"];
66
67
  var painter = canvas.getContext("webgl", opts);
67
68
  for (var i = 0; i < names.length; i++) {
@@ -75,8 +76,25 @@
75
76
  if (!painter)
76
77
  throw new Error('Non canvas or browser does not support webgl.');
77
78
  var width = painter.canvas.width, height = painter.canvas.height;
78
- var viewWidth = width * scale;
79
- var viewHeight = height * scale;
79
+ var scaleX = scale, scaleY = scale;
80
+ if (mode == "aspectFit") {
81
+ if (width > height) {
82
+ scaleX *= height / width;
83
+ }
84
+ else if (height > width) {
85
+ scaleY *= width / height;
86
+ }
87
+ }
88
+ else if (mode == "aspectFill") {
89
+ if (width > height) {
90
+ scaleY *= width / height;
91
+ }
92
+ else if (height > width) {
93
+ scaleX *= height / width;
94
+ }
95
+ }
96
+ var viewWidth = width * scaleX;
97
+ var viewHeight = height * scaleY;
80
98
  painter.viewport((width - viewWidth) * 0.5, (height - viewHeight) * 0.5, viewWidth, viewHeight);
81
99
  painter.depthFunc(painter.LEQUAL);
82
100
  painter.enable(painter.DEPTH_TEST);
@@ -480,7 +498,7 @@
480
498
  var needUpdate = false;
481
499
  var scale = 10;
482
500
  var WebGL$1 = (function () {
483
- function WebGL(ViewCanvas, RegionCanvas) {
501
+ function WebGL(ViewCanvas, RegionCanvas, mode) {
484
502
  this.name = "WebGL";
485
503
  this.__getColor = function (x, y) { return "rgba(0,0,0,1)"; };
486
504
  this.__regionList = {};
@@ -497,9 +515,9 @@
497
515
  ])
498
516
  };
499
517
  this.__unique = new Date().valueOf();
500
- this.painter = getWebGLContext(ViewCanvas, scale);
518
+ this.painter = getWebGLContext(ViewCanvas, scale, {}, mode);
501
519
  if (RegionCanvas) {
502
- this.__regionPainter = getWebGLContext(RegionCanvas, scale, {});
520
+ this.__regionPainter = getWebGLContext(RegionCanvas, scale, {}, mode);
503
521
  }
504
522
  var proportion = this.painter.canvas.width / this.painter.canvas.height;
505
523
  var xProportion = 1;
@@ -684,7 +702,7 @@
684
702
  canvas.setAttribute('height', height + "");
685
703
  }
686
704
  }
687
- return _super.call(this, ViewCanvas, RegionCanvas) || this;
705
+ return _super.call(this, ViewCanvas, RegionCanvas, option.mode) || this;
688
706
  }
689
707
  return WebGL;
690
708
  }(WebGL$1));
@@ -0,0 +1,3 @@
1
+ import { WebGL } from "../../types/index"
2
+
3
+ export default WebGL
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
- var t,r;t=this,r=function(){"use strict";var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])},t(r,e)};function r(t,r,e){if(e||2===arguments.length)for(var i,o=0,n=r.length;o<n;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return t.concat(i||Array.prototype.slice.call(r))}function e(t,r,e){void 0===e&&(e={});for(var i=["experimental-webgl","webkit-3d","moz-webgl"],o=t.getContext("webgl",e),n=0;n<i.length;n++){try{o=t.getContext(i[n],e)}catch(t){}if(o)break}if(!o)throw new Error("Non canvas or browser does not support webgl.");var a=o.canvas.width,s=o.canvas.height,u=a*r,_=s*r;return o.viewport(.5*(a-u),.5*(s-_),u,_),o.depthFunc(o.LEQUAL),o.enable(o.DEPTH_TEST),o}function i(t){var r=t.drawingBufferWidth,e=t.drawingBufferHeight,i=new Uint8Array(4*r*e);return t.readPixels(0,0,r,e,t.RGBA,t.UNSIGNED_BYTE,i),function(t,o){return"rgba("+i[4*((o=e-o)*r+t)]+","+i[4*(o*r+t)+1]+","+i[4*(o*r+t)+2]+","+i[4*(o*r+t)+3]+")"}}"function"==typeof SuppressedError&&SuppressedError;var o=function(t,r){for(var e=[],i=0;i<4;i++)for(var o=0;o<r.length/4;o++)e[4*o+i]=t[i]*r[4*o]+t[i+4]*r[4*o+1]+t[i+8]*r[4*o+2]+t[i+12]*r[4*o+3];return e},n=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],a=function(){function t(t){void 0===t&&(t=n),this.name="Matrix4",this.__matrix4=t}return t.prototype.setValue=function(t){return void 0===t&&(t=n),this.__matrix4=t,this},t.prototype.move=function(t,r,e,i){return void 0===i&&(i=0),this.__matrix4=o(function(t,r,e,i){void 0===i&&(i=0);var o=Math.sqrt(r*r+e*e+i*i);return[1,0,0,0,0,1,0,0,0,0,1,0,r*t/o,e*t/o,i*t/o,1]}(t,r,e,i),this.__matrix4),this},t.prototype.rotate=function(t,r,e,i,n,a,s){var u=function(t,r,e,i,o,n){if("number"==typeof t&&"number"==typeof r){if("number"!=typeof e?(e=0,i=t,o=r,n=1):"number"==typeof i&&"number"==typeof o&&"number"==typeof n||(i=t,o=r,n=e,t=0,r=0,e=0),t==i&&r==o&&e==n)throw new Error("It's not a legitimate ray!");var a=Math.sqrt((i-t)*(i-t)+(o-r)*(o-r)),s=0!=a?(o-r)/a:1,u=0!=a?(i-t)/a:0,_=(i-t)*u+(o-r)*s,m=n-e,l=Math.sqrt(_*_+m*m),p=0!=l?m/l:1,c=0!=l?_/l:0;return[[s,p*u,u*c,0,-u,s*p,s*c,0,0,-c,p,0,r*u-t*s,e*c-t*u*p-r*s*p,-t*u*c-r*s*c-e*p,1],[s,-u,0,0,p*u,p*s,-c,0,u*c,s*c,p,0,t,r,e,1]]}throw new Error("a1 and b1 is required!")}(r,e,i,n,a,s);return this.__matrix4=o(o(o(u[1],function(t){var r=Math.sin(t),e=Math.cos(t);return[e,r,0,0,-r,e,0,0,0,0,1,0,0,0,0,1]}(t)),u[0]),this.__matrix4),this},t.prototype.scale=function(t,r,e,i,n,a){return void 0===i&&(i=0),void 0===n&&(n=0),void 0===a&&(a=0),this.__matrix4=o(function(t,r,e,i,o,n){return void 0===i&&(i=0),void 0===o&&(o=0),void 0===n&&(n=0),[t,0,0,0,0,r,0,0,0,0,e,0,i-i*t,o-o*r,n-n*e,1]}(t,r,e,i,n,a),this.__matrix4),this},t.prototype.multiply=function(t,r){return void 0===r&&(r=!1),this.__matrix4=r?o(this.__matrix4,t):o(t,this.__matrix4),this},t.prototype.use=function(t,r,e,i){return void 0===e&&(e=0),void 0===i&&(i=1),o(this.__matrix4,[t,r,e,i])},t.prototype.value=function(){return this.__matrix4},t}(),s=function(){function t(t,r){void 0===r&&(r=!1),this.__painter=t,this.__isElement=r,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=r?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,r,e,i){var o=e?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(o,r,i)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,r,e,i){return void 0===i&&(i=0),function(t,r,e,i,o,n,a){t.vertexAttribPointer(r,e,i,a,o,n),t.enableVertexAttribArray(r)}(this.__painter,t,r,this.__painter.FLOAT,e*this.__fsize,i*this.__fsize,!1),this},t}(),u=function(){function t(t,r,e){void 0===e&&(e=0),this.__painter=t,this.__type={"2d":t.TEXTURE_2D,cube:t.TEXTURE_CUBE_MAP}[r],this.__texture=function(t,r,e){var i=t.createTexture();return t.activeTexture(t["TEXTURE"+e]),t.bindTexture(r,i),i}(t,this.__type,e),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,r,e,i,o,n){t.texImage2D(r,e,i,i,o,n)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t),this},t.prototype.useCube=function(t,r,e){return function(t,r,e,i,o,n,a,s,u){for(var _,m=[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<m.length;l++)n[l]&&(_=m[l],t.texImage2D(_,e,i,a,s,0,i,o,null),t.bindTexture(r,u),t.texImage2D(_,e,i,i,o,n[l]));t.generateMipmap(r)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t,r,e,this.__texture),this},t}(),_={};function m(t,r,e){var i=t+"-"+e;return _[i]||(_[i]=new u(r,e)),_[i]}var l=function(t,r,e){var i=t.createShader(r);if(null==i)throw new Error("Unable to create shader!");if(t.shaderSource(i,e),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(i));return i},p=function(){function t(t){this.__painter=t}return t.prototype.use=function(){return this.__painter.useProgram(this.program),this},t.prototype.compile=function(t,r){return this.program=function(t,r,e){var i=l(t,t.VERTEX_SHADER,r),o=l(t,t.FRAGMENT_SHADER,e),n=t.createProgram();if(t.attachShader(n,i),t.attachShader(n,o),t.linkProgram(n),!t.getProgramParameter(n,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(n));return n}(this.__painter,t,r),this},t}(),c="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}",v="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}",d="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}",h="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}",g="precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}",f="precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}",y="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}",E="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}",b={};function x(t,r,e,i,o){var n,a,u,_,l,x,w,T,A,R,P,U,L,C,S,I,z,M,F,B,N,D,G,O,X=function(t,r,e){var i,o,n=t+(e.material.color?"1":"0")+(e.material.colors?"1":"0")+(e.material.image?"1":"0")+(e.material.cube?"1":"0");if(b[n])return b[n].use();var a=(i={},i[t+"1000"]=c,i[t+"0100"]=v,i[t+"0010"]=d,i[t+"0001"]=h,i)[n].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=(o={},o[t+"1000"]=g,o[t+"0100"]=f,o[t+"0010"]=y,o[t+"0001"]=E,o)[n],u=new p(r).compile(a,s).use();return b[n]=u,u}(t,r,e);if(new s(r).use().write(e.geometry.attributes.position.array).divide(r.getAttribLocation(X.program,"a_position"),e.geometry.attributes.position.itemSize,e.geometry.attributes.position.itemSize,0),r.uniformMatrix4fv(r.getUniformLocation(X.program,"u_matrix_world"),!1,o.matrix),r.uniformMatrix4fv(r.getUniformLocation(X.program,"u_matrix_proporion"),!1,o.proporion),r.uniformMatrix4fv(r.getUniformLocation(X.program,"u_matrix_mesh"),!1,i.matrix),e.geometry.attributes.normal&&new s(r).use().write(e.geometry.attributes.normal.array).divide(r.getAttribLocation(X.program,"a_normal"),e.geometry.attributes.normal.itemSize,e.geometry.attributes.normal.itemSize,0),"color"in e.material&&r.uniform4f(r.getUniformLocation(X.program,"u_color"),null===(n=e.material.color)||void 0===n?void 0:n.r,null===(a=e.material.color)||void 0===a?void 0:a.g,null===(u=e.material.color)||void 0===u?void 0:u.b,null===(_=e.material.color)||void 0===_?void 0:_.alpha),"colors"in e.material)new s(r).use().write(null===(l=e.material.colors)||void 0===l?void 0:l.array).divide(r.getAttribLocation(X.program,"a_color"),null===(x=e.material.colors)||void 0===x?void 0:x.itemSize,null===(w=e.material.colors)||void 0===w?void 0:w.itemSize,0);else if("cube"in e.material){var V=(null===(A=null===(T=e.material.cube)||void 0===T?void 0:T.right)||void 0===A?void 0:A.image.value).width;r.uniform1i(r.getUniformLocation(X.program,"u_texture"),0),m(t,r,"cube").useCube([null===(P=null===(R=e.material.cube)||void 0===R?void 0:R.right)||void 0===P?void 0:P.image.value,null===(L=null===(U=e.material.cube)||void 0===U?void 0:U.left)||void 0===L?void 0:L.image.value,null===(S=null===(C=e.material.cube)||void 0===C?void 0:C.top)||void 0===S?void 0:S.image.value,null===(z=null===(I=e.material.cube)||void 0===I?void 0:I.bottom)||void 0===z?void 0:z.image.value,null===(F=null===(M=e.material.cube)||void 0===M?void 0:M.far)||void 0===F?void 0:F.image.value,null===(N=null===(B=e.material.cube)||void 0===B?void 0:B.near)||void 0===N?void 0:N.image.value],V,V)}else"image"in e.material&&(r.uniform1i(r.getUniformLocation(X.program,"u_sampler"),0),new s(r).use().write(null===(D=e.geometry.attributes.uv)||void 0===D?void 0:D.array).divide(r.getAttribLocation(X.program,"a_textcoord"),null===(G=e.geometry.attributes.uv)||void 0===G?void 0:G.itemSize,2,0),m(t,r,"2d").useImage(null===(O=e.material.image)||void 0===O?void 0:O.value));e.geometry.index?(new s(r,!0).use().write(e.geometry.index.array),r.drawElements(r[e.geometry.type],e.geometry.index.count,r.UNSIGNED_BYTE,0)):r.drawArrays(r[e.geometry.type],0,e.geometry.attributes.position.count)}var w=!1,T=function(){function t(t,r){this.name="WebGL",this.__getColor=function(t,r){return"rgba(0,0,0,1)"},this.__regionList={},this.__regionAssemble=function(t,r,e,i){for(var o=[],n=0;n<i;n++)o[n]=t;return function(){for(var n=0;n<i;n++){if(o[n]+e<r){o[n]=+(o[n]+e).toFixed(7);break}n<i-1&&(o[n]=t)}return o}}(0,1,.2,3),this.__regionName="",this.__regionColor=[0,0,0,1],this.__scene={children:[],matrix:new a([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,10])},this.__unique=(new Date).valueOf(),this.painter=e(t,10),r&&(this.__regionPainter=e(r,10,{}));var i=this.painter.canvas.width/this.painter.canvas.height,o=1,n=1;i>1?o=1/i:n=i;var s=Math.min(o,n);this.__proporion=[o,0,0,0,0,n,0,0,0,0,s,0,0,0,0,1]}return t.prototype.matrix=function(t){return new a(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 r=0;r<this.__scene.children.length;r++)this.draw(this.__scene.children[r],t);return this},t.prototype.draw=function(t,r){var e;void 0===r&&(r=!1),r||(w=!0);var o={matrix:null===(e=t.matrix)||void 0===e?void 0:e.value()},n={matrix:this.__scene.matrix.value(),proporion:this.__proporion};this.setRegion(t.region);for(var a=0;a<t.mesh.length;a++)r?this.__regionPainter&&(x("painter"+this.__unique,this.__regionPainter,{geometry:t.mesh[a].geometry,material:{color:{r:this.__regionColor[0],g:this.__regionColor[1],b:this.__regionColor[2],alpha:this.__regionColor[3]}}},o,n),this.__getColor=i(this.__regionPainter)):x("region"+this.__unique,this.painter,t.mesh[a],o,n)},t.prototype.render=function(t){"matrix"in t||(t.matrix=new a),"region"in t||(t.region="");for(var r=0;r<t.mesh.length;r++){var e=t.mesh[r];e.geometry.attributes.normal&&Array.isArray(e.geometry.attributes.normal.array)&&(e.geometry.attributes.normal.array=new Float32Array(e.geometry.attributes.normal.array)),e.geometry.attributes.position&&Array.isArray(e.geometry.attributes.position.array)&&(e.geometry.attributes.position.array=new Float32Array(e.geometry.attributes.position.array)),e.geometry.attributes.uv&&Array.isArray(e.geometry.attributes.uv.array)&&(e.geometry.attributes.uv.array=new Float32Array(e.geometry.attributes.uv.array)),e.geometry.index&&Array.isArray(e.geometry.index.array)&&(e.geometry.index.array=new Uint8Array(e.geometry.index.array)),e.material.colors&&Array.isArray(e.material.colors.array)&&(e.material.colors.array=new Float32Array(e.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]=r(r([],this.__regionAssemble(),!0),[1],!1)),this.__regionColor=this.__regionList[t]):this.__regionColor=[0,0,0,1],this},t.prototype.getRegion=function(t,r){var e=this;return w&&this.review(!0),w=!1,new Promise((function(i){var o=e.__getColor(t,r);for(var n in e.__regionList){var a=e.__regionList[n];if("rgba("+255*a[0]+","+255*a[1]+","+255*a[2]+","+255*a[3]+")"==o){i(n);break}}i("")}))},t}();return function(r){function e(t,e){if(void 0===e&&(e={}),!t)throw new Error("VISLite WebGL:The mount point requires an HTMLElement type but encountered null.");e=function(t,r){for(var e in t)r[e]=t[e];return r}(e,{region:!0});var i,o=t.clientWidth,n=t.clientHeight,a=null,s=t;s._vislite_canvas_?(i=s._vislite_canvas_[0],a=s._vislite_canvas_[1]):(e.region&&(a=document.createElement("canvas"),t.appendChild(a),a.style.position="absolute",a.style.zIndex="-1",a.style.opacity="0"),i=document.createElement("canvas"),t.appendChild(i),s._vislite_canvas_=[i,a],t.setAttribute("vislite","WebGL"));for(var u=0,_=[i,a];u<_.length;u++){var m=_[u];m&&(m.style.width=o+"px",m.setAttribute("width",o+""),m.style.height=n+"px",m.setAttribute("height",n+""))}return r.call(this,i,a)||this}return function(r,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=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}(e,r),e}(T)},"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_WebGL=r();
11
+ var t,r;t=this,r=function(){"use strict";var t=function(r,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])},t(r,e)};function r(t,r,e){if(e||2===arguments.length)for(var i,o=0,n=r.length;o<n;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return t.concat(i||Array.prototype.slice.call(r))}function e(t,r,e,i){void 0===e&&(e={}),void 0===i&&(i="scaleToFill");for(var o=["experimental-webgl","webkit-3d","moz-webgl"],n=t.getContext("webgl",e),a=0;a<o.length;a++){try{n=t.getContext(o[a],e)}catch(t){}if(n)break}if(!n)throw new Error("Non canvas or browser does not support webgl.");var s=n.canvas.width,u=n.canvas.height,_=r,m=r;"aspectFit"==i?s>u?_*=u/s:u>s&&(m*=s/u):"aspectFill"==i&&(s>u?m*=s/u:u>s&&(_*=u/s));var l=s*_,p=u*m;return n.viewport(.5*(s-l),.5*(u-p),l,p),n.depthFunc(n.LEQUAL),n.enable(n.DEPTH_TEST),n}function i(t){var r=t.drawingBufferWidth,e=t.drawingBufferHeight,i=new Uint8Array(4*r*e);return t.readPixels(0,0,r,e,t.RGBA,t.UNSIGNED_BYTE,i),function(t,o){return"rgba("+i[4*((o=e-o)*r+t)]+","+i[4*(o*r+t)+1]+","+i[4*(o*r+t)+2]+","+i[4*(o*r+t)+3]+")"}}"function"==typeof SuppressedError&&SuppressedError;var o=function(t,r){for(var e=[],i=0;i<4;i++)for(var o=0;o<r.length/4;o++)e[4*o+i]=t[i]*r[4*o]+t[i+4]*r[4*o+1]+t[i+8]*r[4*o+2]+t[i+12]*r[4*o+3];return e},n=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],a=function(){function t(t){void 0===t&&(t=n),this.name="Matrix4",this.__matrix4=t}return t.prototype.setValue=function(t){return void 0===t&&(t=n),this.__matrix4=t,this},t.prototype.move=function(t,r,e,i){return void 0===i&&(i=0),this.__matrix4=o(function(t,r,e,i){void 0===i&&(i=0);var o=Math.sqrt(r*r+e*e+i*i);return[1,0,0,0,0,1,0,0,0,0,1,0,r*t/o,e*t/o,i*t/o,1]}(t,r,e,i),this.__matrix4),this},t.prototype.rotate=function(t,r,e,i,n,a,s){var u=function(t,r,e,i,o,n){if("number"==typeof t&&"number"==typeof r){if("number"!=typeof e?(e=0,i=t,o=r,n=1):"number"==typeof i&&"number"==typeof o&&"number"==typeof n||(i=t,o=r,n=e,t=0,r=0,e=0),t==i&&r==o&&e==n)throw new Error("It's not a legitimate ray!");var a=Math.sqrt((i-t)*(i-t)+(o-r)*(o-r)),s=0!=a?(o-r)/a:1,u=0!=a?(i-t)/a:0,_=(i-t)*u+(o-r)*s,m=n-e,l=Math.sqrt(_*_+m*m),p=0!=l?m/l:1,c=0!=l?_/l:0;return[[s,p*u,u*c,0,-u,s*p,s*c,0,0,-c,p,0,r*u-t*s,e*c-t*u*p-r*s*p,-t*u*c-r*s*c-e*p,1],[s,-u,0,0,p*u,p*s,-c,0,u*c,s*c,p,0,t,r,e,1]]}throw new Error("a1 and b1 is required!")}(r,e,i,n,a,s);return this.__matrix4=o(o(o(u[1],function(t){var r=Math.sin(t),e=Math.cos(t);return[e,r,0,0,-r,e,0,0,0,0,1,0,0,0,0,1]}(t)),u[0]),this.__matrix4),this},t.prototype.scale=function(t,r,e,i,n,a){return void 0===i&&(i=0),void 0===n&&(n=0),void 0===a&&(a=0),this.__matrix4=o(function(t,r,e,i,o,n){return void 0===i&&(i=0),void 0===o&&(o=0),void 0===n&&(n=0),[t,0,0,0,0,r,0,0,0,0,e,0,i-i*t,o-o*r,n-n*e,1]}(t,r,e,i,n,a),this.__matrix4),this},t.prototype.multiply=function(t,r){return void 0===r&&(r=!1),this.__matrix4=r?o(this.__matrix4,t):o(t,this.__matrix4),this},t.prototype.use=function(t,r,e,i){return void 0===e&&(e=0),void 0===i&&(i=1),o(this.__matrix4,[t,r,e,i])},t.prototype.value=function(){return this.__matrix4},t}(),s=function(){function t(t,r){void 0===r&&(r=!1),this.__painter=t,this.__isElement=r,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=r?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,r,e,i){var o=e?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(o,r,i)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,r,e,i){return void 0===i&&(i=0),function(t,r,e,i,o,n,a){t.vertexAttribPointer(r,e,i,a,o,n),t.enableVertexAttribArray(r)}(this.__painter,t,r,this.__painter.FLOAT,e*this.__fsize,i*this.__fsize,!1),this},t}(),u=function(){function t(t,r,e){void 0===e&&(e=0),this.__painter=t,this.__type={"2d":t.TEXTURE_2D,cube:t.TEXTURE_CUBE_MAP}[r],this.__texture=function(t,r,e){var i=t.createTexture();return t.activeTexture(t["TEXTURE"+e]),t.bindTexture(r,i),i}(t,this.__type,e),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,r,e,i,o,n){t.texImage2D(r,e,i,i,o,n)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t),this},t.prototype.useCube=function(t,r,e){return function(t,r,e,i,o,n,a,s,u){for(var _,m=[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<m.length;l++)n[l]&&(_=m[l],t.texImage2D(_,e,i,a,s,0,i,o,null),t.bindTexture(r,u),t.texImage2D(_,e,i,i,o,n[l]));t.generateMipmap(r)}(this.__painter,this.__type,0,this.__painter.RGBA,this.__painter.UNSIGNED_BYTE,t,r,e,this.__texture),this},t}(),_={};function m(t,r,e){var i=t+"-"+e;return _[i]||(_[i]=new u(r,e)),_[i]}var l=function(t,r,e){var i=t.createShader(r);if(null==i)throw new Error("Unable to create shader!");if(t.shaderSource(i,e),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS))throw new Error("Failed to compile shader:"+t.getShaderInfoLog(i));return i},p=function(){function t(t){this.__painter=t}return t.prototype.use=function(){return this.__painter.useProgram(this.program),this},t.prototype.compile=function(t,r){return this.program=function(t,r,e){var i=l(t,t.VERTEX_SHADER,r),o=l(t,t.FRAGMENT_SHADER,e),n=t.createProgram();if(t.attachShader(n,i),t.attachShader(n,o),t.linkProgram(n),!t.getProgramParameter(n,t.LINK_STATUS))throw new Error("Failed to link program: "+t.getProgramInfoLog(n));return n}(this.__painter,t,r),this},t}(),c="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}",v="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}",d="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}",h="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}",g="precision mediump float;\n\nuniform vec4 u_color;\n\nvoid main()\n{\n gl_FragColor = u_color;\n}",f="precision mediump float;\n\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_FragColor = v_color;\n}",y="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}",E="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}",b={};function x(t,r,e,i,o){var n,a,u,_,l,x,T,w,A,R,P,U,L,C,S,I,z,F,M,B,N,D,G,O,X=function(t,r,e){var i,o,n=t+(e.material.color?"1":"0")+(e.material.colors?"1":"0")+(e.material.image?"1":"0")+(e.material.cube?"1":"0");if(b[n])return b[n].use();var a=(i={},i[t+"1000"]=c,i[t+"0100"]=v,i[t+"0010"]=d,i[t+"0001"]=h,i)[n].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=(o={},o[t+"1000"]=g,o[t+"0100"]=f,o[t+"0010"]=y,o[t+"0001"]=E,o)[n],u=new p(r).compile(a,s).use();return b[n]=u,u}(t,r,e);if(new s(r).use().write(e.geometry.attributes.position.array).divide(r.getAttribLocation(X.program,"a_position"),e.geometry.attributes.position.itemSize,e.geometry.attributes.position.itemSize,0),r.uniformMatrix4fv(r.getUniformLocation(X.program,"u_matrix_world"),!1,o.matrix),r.uniformMatrix4fv(r.getUniformLocation(X.program,"u_matrix_proporion"),!1,o.proporion),r.uniformMatrix4fv(r.getUniformLocation(X.program,"u_matrix_mesh"),!1,i.matrix),e.geometry.attributes.normal&&new s(r).use().write(e.geometry.attributes.normal.array).divide(r.getAttribLocation(X.program,"a_normal"),e.geometry.attributes.normal.itemSize,e.geometry.attributes.normal.itemSize,0),"color"in e.material&&r.uniform4f(r.getUniformLocation(X.program,"u_color"),null===(n=e.material.color)||void 0===n?void 0:n.r,null===(a=e.material.color)||void 0===a?void 0:a.g,null===(u=e.material.color)||void 0===u?void 0:u.b,null===(_=e.material.color)||void 0===_?void 0:_.alpha),"colors"in e.material)new s(r).use().write(null===(l=e.material.colors)||void 0===l?void 0:l.array).divide(r.getAttribLocation(X.program,"a_color"),null===(x=e.material.colors)||void 0===x?void 0:x.itemSize,null===(T=e.material.colors)||void 0===T?void 0:T.itemSize,0);else if("cube"in e.material){var V=(null===(A=null===(w=e.material.cube)||void 0===w?void 0:w.right)||void 0===A?void 0:A.image.value).width;r.uniform1i(r.getUniformLocation(X.program,"u_texture"),0),m(t,r,"cube").useCube([null===(P=null===(R=e.material.cube)||void 0===R?void 0:R.right)||void 0===P?void 0:P.image.value,null===(L=null===(U=e.material.cube)||void 0===U?void 0:U.left)||void 0===L?void 0:L.image.value,null===(S=null===(C=e.material.cube)||void 0===C?void 0:C.top)||void 0===S?void 0:S.image.value,null===(z=null===(I=e.material.cube)||void 0===I?void 0:I.bottom)||void 0===z?void 0:z.image.value,null===(M=null===(F=e.material.cube)||void 0===F?void 0:F.far)||void 0===M?void 0:M.image.value,null===(N=null===(B=e.material.cube)||void 0===B?void 0:B.near)||void 0===N?void 0:N.image.value],V,V)}else"image"in e.material&&(r.uniform1i(r.getUniformLocation(X.program,"u_sampler"),0),new s(r).use().write(null===(D=e.geometry.attributes.uv)||void 0===D?void 0:D.array).divide(r.getAttribLocation(X.program,"a_textcoord"),null===(G=e.geometry.attributes.uv)||void 0===G?void 0:G.itemSize,2,0),m(t,r,"2d").useImage(null===(O=e.material.image)||void 0===O?void 0:O.value));e.geometry.index?(new s(r,!0).use().write(e.geometry.index.array),r.drawElements(r[e.geometry.type],e.geometry.index.count,r.UNSIGNED_BYTE,0)):r.drawArrays(r[e.geometry.type],0,e.geometry.attributes.position.count)}var T=!1,w=function(){function t(t,r,i){this.name="WebGL",this.__getColor=function(t,r){return"rgba(0,0,0,1)"},this.__regionList={},this.__regionAssemble=function(t,r,e,i){for(var o=[],n=0;n<i;n++)o[n]=t;return function(){for(var n=0;n<i;n++){if(o[n]+e<r){o[n]=+(o[n]+e).toFixed(7);break}n<i-1&&(o[n]=t)}return o}}(0,1,.2,3),this.__regionName="",this.__regionColor=[0,0,0,1],this.__scene={children:[],matrix:new a([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,10])},this.__unique=(new Date).valueOf(),this.painter=e(t,10,{},i),r&&(this.__regionPainter=e(r,10,{},i));var o=this.painter.canvas.width/this.painter.canvas.height,n=1,s=1;o>1?n=1/o:s=o;var u=Math.min(n,s);this.__proporion=[n,0,0,0,0,s,0,0,0,0,u,0,0,0,0,1]}return t.prototype.matrix=function(t){return new a(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 r=0;r<this.__scene.children.length;r++)this.draw(this.__scene.children[r],t);return this},t.prototype.draw=function(t,r){var e;void 0===r&&(r=!1),r||(T=!0);var o={matrix:null===(e=t.matrix)||void 0===e?void 0:e.value()},n={matrix:this.__scene.matrix.value(),proporion:this.__proporion};this.setRegion(t.region);for(var a=0;a<t.mesh.length;a++)r?this.__regionPainter&&(x("painter"+this.__unique,this.__regionPainter,{geometry:t.mesh[a].geometry,material:{color:{r:this.__regionColor[0],g:this.__regionColor[1],b:this.__regionColor[2],alpha:this.__regionColor[3]}}},o,n),this.__getColor=i(this.__regionPainter)):x("region"+this.__unique,this.painter,t.mesh[a],o,n)},t.prototype.render=function(t){"matrix"in t||(t.matrix=new a),"region"in t||(t.region="");for(var r=0;r<t.mesh.length;r++){var e=t.mesh[r];e.geometry.attributes.normal&&Array.isArray(e.geometry.attributes.normal.array)&&(e.geometry.attributes.normal.array=new Float32Array(e.geometry.attributes.normal.array)),e.geometry.attributes.position&&Array.isArray(e.geometry.attributes.position.array)&&(e.geometry.attributes.position.array=new Float32Array(e.geometry.attributes.position.array)),e.geometry.attributes.uv&&Array.isArray(e.geometry.attributes.uv.array)&&(e.geometry.attributes.uv.array=new Float32Array(e.geometry.attributes.uv.array)),e.geometry.index&&Array.isArray(e.geometry.index.array)&&(e.geometry.index.array=new Uint8Array(e.geometry.index.array)),e.material.colors&&Array.isArray(e.material.colors.array)&&(e.material.colors.array=new Float32Array(e.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]=r(r([],this.__regionAssemble(),!0),[1],!1)),this.__regionColor=this.__regionList[t]):this.__regionColor=[0,0,0,1],this},t.prototype.getRegion=function(t,r){var e=this;return T&&this.review(!0),T=!1,new Promise((function(i){var o=e.__getColor(t,r);for(var n in e.__regionList){var a=e.__regionList[n];if("rgba("+255*a[0]+","+255*a[1]+","+255*a[2]+","+255*a[3]+")"==o){i(n);break}}i("")}))},t}();return function(r){function e(t,e){if(void 0===e&&(e={}),!t)throw new Error("VISLite WebGL:The mount point requires an HTMLElement type but encountered null.");e=function(t,r){for(var e in t)r[e]=t[e];return r}(e,{region:!0});var i,o=t.clientWidth,n=t.clientHeight,a=null,s=t;s._vislite_canvas_?(i=s._vislite_canvas_[0],a=s._vislite_canvas_[1]):(e.region&&(a=document.createElement("canvas"),t.appendChild(a),a.style.position="absolute",a.style.zIndex="-1",a.style.opacity="0"),i=document.createElement("canvas"),t.appendChild(i),s._vislite_canvas_=[i,a],t.setAttribute("vislite","WebGL"));for(var u=0,_=[i,a];u<_.length;u++){var m=_[u];m&&(m.style.width=o+"px",m.setAttribute("width",o+""),m.style.height=n+"px",m.setAttribute("height",n+""))}return r.call(this,i,a,e.mode)||this}return function(r,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=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}(e,r),e}(w)},"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_WebGL=r();
@@ -0,0 +1,3 @@
1
+ import { animation } from "../../types/index"
2
+
3
+ export default animation
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { animation } from "../../types/index"
2
+
3
+ export default animation
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var e,t;e=this,t=function(){"use strict";var e,t=[];return function(i,n,r){void 0===n&&(n=400),void 0===r&&(r=function(){});var o={timer:function(e,i,n){if(!e)throw new Error("Tick is required!");var r=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return t.push({id:r,createTime:new Date,tick:e,duration:i,callback:n}),o.start(),r},start:function(){e||(e=setInterval(o.tick,13))},tick:function(){var e,i,n,r,a,u,f,c=t;for((t=[]).length=0,i=0;i<c.length;i++)e=(a=c[i]).createTime,n=a.tick,u=a.duration,r=a.callback,n(f=(f=(+(new Date).valueOf()-e.valueOf())/u)>1?1:f),f<1&&a.id?t.push(a):r(f);t.length<=0&&o.stop()},stop:function(){e&&(clearInterval(e),e=null)}},a=o.timer((function(e){i(e)}),n,r);return function(){var e;for(e in t)if(t[e].id==a)return void(t[e].id=void 0)}}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VISLite_animation=t();
@@ -0,0 +1,3 @@
1
+ import { formatColor } from "../../types/index"
2
+
3
+ export default formatColor
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { formatColor } from "../../types/index"
2
+
3
+ export default formatColor
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var e,t;e=this,t=function(){"use strict";var e=function(e){var t=e.toString(16);return 1==t.length?"0"+t:t};return function(t,o){var c=document.getElementsByTagName("head")[0];c.style.color=t;for(var n=(document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(c,null):c.currentStyle).getPropertyValue("color").replace(/rgba?\(/,"").replace(")","").split(","),r=0;r<n.length;r++)n[r]=+n[r];switch(n.push(1),o){case"3d":return[n[0]/255,n[1]/255,n[2]/255,n[3]];case"rgba":return"rgba(".concat(n[0],", ").concat(n[1],", ").concat(n[2],", ").concat(n[3],")");case"rgb":return"rgb(".concat(n[0],", ").concat(n[1],", ").concat(n[2],")");case"hexAlpha":return"#".concat(e(n[0])).concat(e(n[1])).concat(e(n[2])).concat(e(+(255*n[3]).toFixed(0)));case"hex":return"#".concat(e(n[0])).concat(e(n[1])).concat(e(n[2]))}throw new Error("Unsupported color format: "+o)}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).VISLite_formatColor=t();
@@ -0,0 +1,3 @@
1
+ import { getLoopColors } from "../../types/index"
2
+
3
+ export default getLoopColors
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.7.1
2
+ * VISLite JavaScript Library v0.8.0-alpha.0
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 Jan 20 2024 00:04:36 GMT+0800 (中国标准时间)
9
+ * Publish Date: Tue Feb 13 2024 21:00:43 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -0,0 +1,3 @@
1
+ import { getLoopColors } from "../../types/index"
2
+
3
+ export default getLoopColors