vislite 0.5.0 → 0.5.2-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 (157) hide show
  1. package/.editorconfig +18 -18
  2. package/AUTHORS.txt +6 -6
  3. package/CHANGELOG +5 -0
  4. package/LICENSE +20 -20
  5. package/README.md +69 -69
  6. package/miniprogram/ui-canvas/index.js +107 -107
  7. package/miniprogram/ui-canvas/index.json +4 -4
  8. package/miniprogram/ui-canvas/index.wxml +4 -4
  9. package/miniprogram/ui-canvas/index.wxss +5 -5
  10. package/package/Buffer/index.ts +2 -2
  11. package/package/Canvas/index.ts +2 -2
  12. package/package/Cardinal/index.ts +2 -2
  13. package/package/Eoap/index.ts +2 -2
  14. package/package/Hermite/index.ts +2 -2
  15. package/package/Matrix4/index.ts +2 -2
  16. package/package/Mercator/index.ts +2 -2
  17. package/package/OralCanvas/index.ts +2 -2
  18. package/package/OralWebGL/index.ts +2 -2
  19. package/package/SVG/index.ts +2 -2
  20. package/package/Shader/index.ts +39 -39
  21. package/package/Texture/index.ts +2 -2
  22. package/package/TreeLayout/index.ts +2 -2
  23. package/package/WebGL/index.ts +2 -2
  24. package/package/animation/index.ts +2 -2
  25. package/package/formatColor/index.ts +2 -2
  26. package/package/getLoopColors/index.ts +2 -2
  27. package/package/getWebGLContext/index.ts +39 -39
  28. package/package/resizeObserver/index.ts +2 -2
  29. package/package/rotate/index.ts +2 -2
  30. package/package/ruler/index.ts +2 -2
  31. package/package/throttle/index.ts +2 -2
  32. package/package/viewHandler/index.ts +2 -2
  33. package/package.json +1 -1
  34. package/src/Canvas.ts +67 -67
  35. package/src/Matrix4/move.ts +12 -12
  36. package/src/Matrix4/rotate.ts +15 -15
  37. package/src/Matrix4/scale.ts +11 -11
  38. package/src/Matrix4/transform.ts +64 -64
  39. package/src/SVG.ts +24 -24
  40. package/src/WebGL.ts +66 -66
  41. package/src/animation.ts +98 -98
  42. package/src/common/assemble.ts +22 -22
  43. package/src/common/canvas/arc.ts +50 -50
  44. package/src/common/canvas/config.ts +158 -158
  45. package/src/common/canvas/gradient.ts +29 -29
  46. package/src/common/canvas/index.ts +168 -168
  47. package/src/common/canvas/painter.ts +426 -426
  48. package/src/common/canvas/texts.ts +18 -18
  49. package/src/common/mergeOption.ts +6 -6
  50. package/src/common/setStyle.ts +5 -5
  51. package/src/common/svg/config.ts +174 -174
  52. package/src/common/svg/tool.ts +44 -44
  53. package/src/common/tree/index.ts +25 -25
  54. package/src/common/tree/toInnerTree.ts +56 -56
  55. package/src/common/tree/toPlainTree.ts +131 -131
  56. package/src/common/webgl/buffer.ts +79 -79
  57. package/src/common/webgl/doDraw.ts +108 -108
  58. package/src/common/webgl/getColorFactory.ts +26 -26
  59. package/src/common/webgl/getShader.ts +48 -48
  60. package/src/common/webgl/getTexture.ts +11 -11
  61. package/src/common/webgl/getWebGLContext.ts +27 -27
  62. package/src/common/webgl/index.ts +223 -223
  63. package/src/common/webgl/shader.ts +75 -75
  64. package/src/common/webgl/texture.ts +96 -96
  65. package/src/formatColor.ts +44 -44
  66. package/src/getLoopColors.ts +42 -42
  67. package/src/interpolation/Cardinal.ts +110 -110
  68. package/src/interpolation/Hermite.ts +65 -65
  69. package/src/resizeObserver.ts +36 -36
  70. package/src/ruler.ts +188 -188
  71. package/src/shader/fsColor.c +7 -7
  72. package/src/shader/fsColors.c +7 -7
  73. package/src/shader/fsCube.c +8 -8
  74. package/src/shader/fsImage.c +8 -8
  75. package/src/shader/vsColor.c +17 -17
  76. package/src/shader/vsColors.c +13 -13
  77. package/src/shader/vsCube.c +13 -13
  78. package/src/shader/vsImage.c +13 -13
  79. package/src/throttle.ts +51 -51
  80. package/src/viewHandler.ts +158 -158
  81. package/types/Buffer.d.ts +23 -23
  82. package/types/Canvas.d.ts +300 -300
  83. package/types/CanvasOption.d.ts +7 -7
  84. package/types/Cardinal.d.ts +13 -13
  85. package/types/Gradient.d.ts +14 -14
  86. package/types/Hermite.d.ts +18 -18
  87. package/types/Object3D.d.ts +114 -114
  88. package/types/SVGConfig.d.ts +76 -76
  89. package/types/Scene3D.d.ts +6 -6
  90. package/types/Shader.d.ts +21 -21
  91. package/types/Texture.d.ts +16 -16
  92. package/types/Tree.d.ts +69 -69
  93. package/types/TreeConfig.d.ts +24 -24
  94. package/types/TreeOption.d.ts +48 -48
  95. package/types/WebGL.d.ts +38 -38
  96. package/types/WebGLOption.d.ts +7 -7
  97. package/types/animation.d.ts +6 -6
  98. package/types/formatColor.d.ts +2 -2
  99. package/types/getLoopColors.d.ts +2 -2
  100. package/types/getWebGLContext.d.ts +2 -2
  101. package/types/painterConfig.d.ts +2 -2
  102. package/types/resizeObserver.d.ts +2 -2
  103. package/types/ruler.d.ts +7 -7
  104. package/types/throttle.d.ts +4 -4
  105. package/types/throttleOption.d.ts +21 -21
  106. package/types/viewHandler.d.ts +13 -13
  107. package/uni-app/ui-canvas.vue +226 -222
  108. package/lib/Buffer/index.umd.js +0 -55
  109. package/lib/Buffer/index.umd.min.js +0 -11
  110. package/lib/Canvas/index.umd.js +0 -721
  111. package/lib/Canvas/index.umd.min.js +0 -11
  112. package/lib/Cardinal/index.umd.js +0 -112
  113. package/lib/Cardinal/index.umd.min.js +0 -11
  114. package/lib/Eoap/index.umd.js +0 -53
  115. package/lib/Eoap/index.umd.min.js +0 -11
  116. package/lib/Geometry/index.umd.js +0 -205
  117. package/lib/Geometry/index.umd.min.js +0 -11
  118. package/lib/Hermite/index.umd.js +0 -55
  119. package/lib/Hermite/index.umd.min.js +0 -11
  120. package/lib/Matrix4/index.umd.js +0 -146
  121. package/lib/Matrix4/index.umd.min.js +0 -11
  122. package/lib/Mercator/index.umd.js +0 -39
  123. package/lib/Mercator/index.umd.min.js +0 -11
  124. package/lib/OralCanvas/index.es.js +0 -657
  125. package/lib/OralCanvas/index.es.min.js +0 -11
  126. package/lib/OralWebGL/index.es.js +0 -611
  127. package/lib/OralWebGL/index.es.min.js +0 -11
  128. package/lib/SVG/index.umd.js +0 -475
  129. package/lib/SVG/index.umd.min.js +0 -11
  130. package/lib/Shader/index.umd.js +0 -134
  131. package/lib/Shader/index.umd.min.js +0 -11
  132. package/lib/Texture/index.umd.js +0 -72
  133. package/lib/Texture/index.umd.min.js +0 -11
  134. package/lib/TreeLayout/index.umd.js +0 -430
  135. package/lib/TreeLayout/index.umd.min.js +0 -11
  136. package/lib/WebGL/index.umd.js +0 -684
  137. package/lib/WebGL/index.umd.min.js +0 -11
  138. package/lib/animation/index.umd.js +0 -91
  139. package/lib/animation/index.umd.min.js +0 -11
  140. package/lib/formatColor/index.umd.js +0 -59
  141. package/lib/formatColor/index.umd.min.js +0 -11
  142. package/lib/getLoopColors/index.umd.js +0 -55
  143. package/lib/getLoopColors/index.umd.min.js +0 -11
  144. package/lib/getWebGLContext/index.umd.js +0 -65
  145. package/lib/getWebGLContext/index.umd.min.js +0 -11
  146. package/lib/index.umd.js +0 -2834
  147. package/lib/index.umd.min.js +0 -11
  148. package/lib/resizeObserver/index.umd.js +0 -48
  149. package/lib/resizeObserver/index.umd.min.js +0 -11
  150. package/lib/rotate/index.umd.js +0 -27
  151. package/lib/rotate/index.umd.min.js +0 -11
  152. package/lib/ruler/index.umd.js +0 -145
  153. package/lib/ruler/index.umd.min.js +0 -11
  154. package/lib/throttle/index.umd.js +0 -70
  155. package/lib/throttle/index.umd.min.js +0 -11
  156. package/lib/viewHandler/index.umd.js +0 -139
  157. package/lib/viewHandler/index.umd.min.js +0 -11
@@ -1,27 +1,27 @@
1
- export default function (painter: WebGLRenderingContext) {
2
- let width = painter.drawingBufferWidth, height = painter.drawingBufferHeight
3
-
4
- let pixels = new Uint8Array(
5
- 4 * width * height
6
- )
7
- painter.readPixels(
8
- 0,
9
- 0,
10
- width,
11
- height,
12
- painter.RGBA,
13
- painter.UNSIGNED_BYTE,
14
- pixels
15
- )
16
-
17
- return function (x: number, y: number): string {
18
- y = height - y
19
-
20
- let pixelR = pixels[4 * (y * width + x)]
21
- let pixelG = pixels[4 * (y * width + x) + 1]
22
- let pixelB = pixels[4 * (y * width + x) + 2]
23
- let pixelA = pixels[4 * (y * width + x) + 3]
24
-
25
- return "rgba(" + pixelR + "," + pixelG + "," + pixelB + "," + pixelA + ")"
26
- }
1
+ export default function (painter: WebGLRenderingContext) {
2
+ let width = painter.drawingBufferWidth, height = painter.drawingBufferHeight
3
+
4
+ let pixels = new Uint8Array(
5
+ 4 * width * height
6
+ )
7
+ painter.readPixels(
8
+ 0,
9
+ 0,
10
+ width,
11
+ height,
12
+ painter.RGBA,
13
+ painter.UNSIGNED_BYTE,
14
+ pixels
15
+ )
16
+
17
+ return function (x: number, y: number): string {
18
+ y = height - y
19
+
20
+ let pixelR = pixels[4 * (y * width + x)]
21
+ let pixelG = pixels[4 * (y * width + x) + 1]
22
+ let pixelB = pixels[4 * (y * width + x) + 2]
23
+ let pixelA = pixels[4 * (y * width + x) + 3]
24
+
25
+ return "rgba(" + pixelR + "," + pixelG + "," + pixelB + "," + pixelA + ")"
26
+ }
27
27
  }
@@ -1,49 +1,49 @@
1
- import type { meshType } from '../../../types/Object3D'
2
-
3
- import ShaderObject from './shader'
4
-
5
- import vsColor from '../../shader/vsColor.c'
6
- import vsColors from '../../shader/vsColors.c'
7
- import vsImage from '../../shader/vsImage.c'
8
- import vsCube from '../../shader/vsCube.c'
9
-
10
- import fsColor from '../../shader/fsColor.c'
11
- import fsColors from '../../shader/fsColors.c'
12
- import fsImage from '../../shader/fsImage.c'
13
- import fsCube from '../../shader/fsCube.c'
14
-
15
- let shaders = {}
16
- export default function (type: string, painter: WebGLRenderingContext, mesh: meshType) {
17
-
18
- let uniqueName = type +
19
- (mesh.material.color ? "1" : "0") +
20
- (mesh.material.colors ? "1" : "0") +
21
- (mesh.material.image ? "1" : "0") +
22
- (mesh.material.cube ? "1" : "0")
23
- if (shaders[uniqueName]) return shaders[uniqueName].use()
24
-
25
- // 顶点着色器
26
- let vertexShader = {
27
- [type + "1000"]: vsColor,
28
- [type + "0100"]: vsColors,
29
- [type + "0010"]: vsImage,
30
- [type + "0001"]: vsCube
31
- }[uniqueName].replace(/uniform +mat4 +u_matrix;/, `
32
- uniform mat4 u_matrix_world;
33
- uniform mat4 u_matrix_mesh;
34
- uniform mat4 u_matrix_proporion;`).replace(/u_matrix +\* +a_position/, "u_matrix_proporion * u_matrix_world * u_matrix_mesh * a_position")
35
-
36
- // 片段(元)着色器
37
- let fragmentShader = {
38
- [type + "1000"]: fsColor,
39
- [type + "0100"]: fsColors,
40
- [type + "0010"]: fsImage,
41
- [type + "0001"]: fsCube
42
- }[uniqueName]
43
-
44
- // 启用着色器
45
- let shader = new ShaderObject(painter).compile(vertexShader, fragmentShader).use()
46
-
47
- shaders[uniqueName] = shader
48
- return shader
1
+ import type { meshType } from '../../../types/Object3D'
2
+
3
+ import ShaderObject from './shader'
4
+
5
+ import vsColor from '../../shader/vsColor.c'
6
+ import vsColors from '../../shader/vsColors.c'
7
+ import vsImage from '../../shader/vsImage.c'
8
+ import vsCube from '../../shader/vsCube.c'
9
+
10
+ import fsColor from '../../shader/fsColor.c'
11
+ import fsColors from '../../shader/fsColors.c'
12
+ import fsImage from '../../shader/fsImage.c'
13
+ import fsCube from '../../shader/fsCube.c'
14
+
15
+ let shaders = {}
16
+ export default function (type: string, painter: WebGLRenderingContext, mesh: meshType) {
17
+
18
+ let uniqueName = type +
19
+ (mesh.material.color ? "1" : "0") +
20
+ (mesh.material.colors ? "1" : "0") +
21
+ (mesh.material.image ? "1" : "0") +
22
+ (mesh.material.cube ? "1" : "0")
23
+ if (shaders[uniqueName]) return shaders[uniqueName].use()
24
+
25
+ // 顶点着色器
26
+ let vertexShader = {
27
+ [type + "1000"]: vsColor,
28
+ [type + "0100"]: vsColors,
29
+ [type + "0010"]: vsImage,
30
+ [type + "0001"]: vsCube
31
+ }[uniqueName].replace(/uniform +mat4 +u_matrix;/, `
32
+ uniform mat4 u_matrix_world;
33
+ uniform mat4 u_matrix_mesh;
34
+ uniform mat4 u_matrix_proporion;`).replace(/u_matrix +\* +a_position/, "u_matrix_proporion * u_matrix_world * u_matrix_mesh * a_position")
35
+
36
+ // 片段(元)着色器
37
+ let fragmentShader = {
38
+ [type + "1000"]: fsColor,
39
+ [type + "0100"]: fsColors,
40
+ [type + "0010"]: fsImage,
41
+ [type + "0001"]: fsCube
42
+ }[uniqueName]
43
+
44
+ // 启用着色器
45
+ let shader = new ShaderObject(painter).compile(vertexShader, fragmentShader).use()
46
+
47
+ shaders[uniqueName] = shader
48
+ return shader
49
49
  }
@@ -1,12 +1,12 @@
1
- import TextureObject from './texture'
2
-
3
- let textures = {}
4
- export default function (type: string, painter: WebGLRenderingContext, kind: string) {
5
- let uniqueName = type + "-" + kind
6
-
7
- if (!textures[uniqueName]) {
8
- textures[uniqueName] = new TextureObject(painter, kind)
9
- }
10
-
11
- return textures[uniqueName]
1
+ import TextureObject from './texture'
2
+
3
+ let textures = {}
4
+ export default function (type: string, painter: WebGLRenderingContext, kind: string) {
5
+ let uniqueName = type + "-" + kind
6
+
7
+ if (!textures[uniqueName]) {
8
+ textures[uniqueName] = new TextureObject(painter, kind)
9
+ }
10
+
11
+ return textures[uniqueName]
12
12
  }
@@ -1,28 +1,28 @@
1
- interface OptsType {
2
- preserveDrawingBuffer?: boolean
3
- }
4
- export default function (canvas: HTMLCanvasElement, scale: number, opts: OptsType = {}) {
5
- let names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"], painter = null
6
- for (let i = 0; i < names.length; i++) {
7
- try {
8
- painter = canvas.getContext(names[i], opts)
9
- } catch (e) { }
10
- if (painter) break
11
- }
12
- if (!painter) throw new Error('Non canvas or browser does not support webgl.')
13
-
14
- let width = painter.canvas.width, height = painter.canvas.height
15
-
16
- let viewWidth = width * scale
17
- let viewHeight = height * scale
18
-
19
- painter.viewport((width - viewWidth) * 0.5, (height - viewHeight) * 0.5, viewWidth, viewHeight)
20
-
21
- // https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthFunc
22
- painter.depthFunc(painter.LEQUAL)
23
-
24
- // 开启深度计算
25
- painter.enable(painter.DEPTH_TEST);
26
-
27
- return painter
1
+ interface OptsType {
2
+ preserveDrawingBuffer?: boolean
3
+ }
4
+ export default function (canvas: HTMLCanvasElement, scale: number, opts: OptsType = {}) {
5
+ let names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"], painter = null
6
+ for (let i = 0; i < names.length; i++) {
7
+ try {
8
+ painter = canvas.getContext(names[i], opts)
9
+ } catch (e) { }
10
+ if (painter) break
11
+ }
12
+ if (!painter) throw new Error('Non canvas or browser does not support webgl.')
13
+
14
+ let width = painter.canvas.width, height = painter.canvas.height
15
+
16
+ let viewWidth = width * scale
17
+ let viewHeight = height * scale
18
+
19
+ painter.viewport((width - viewWidth) * 0.5, (height - viewHeight) * 0.5, viewWidth, viewHeight)
20
+
21
+ // https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthFunc
22
+ painter.depthFunc(painter.LEQUAL)
23
+
24
+ // 开启深度计算
25
+ painter.enable(painter.DEPTH_TEST);
26
+
27
+ return painter
28
28
  }