vislite 0.7.0 → 0.7.1

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 (90) hide show
  1. package/CHANGELOG +11 -1
  2. package/README.md +135 -135
  3. package/lib/Buffer/index.umd.js +2 -2
  4. package/lib/Buffer/index.umd.min.js +2 -2
  5. package/lib/Canvas/index.umd.js +19 -13
  6. package/lib/Canvas/index.umd.min.js +3 -3
  7. package/lib/Cardinal/index.umd.js +2 -2
  8. package/lib/Cardinal/index.umd.min.js +2 -2
  9. package/lib/Eoap/index.umd.js +2 -2
  10. package/lib/Eoap/index.umd.min.js +2 -2
  11. package/lib/Geometry/index.umd.js +2 -2
  12. package/lib/Geometry/index.umd.min.js +2 -2
  13. package/lib/Hermite/index.umd.js +2 -2
  14. package/lib/Hermite/index.umd.min.js +2 -2
  15. package/lib/Matrix4/index.umd.js +2 -2
  16. package/lib/Matrix4/index.umd.min.js +2 -2
  17. package/lib/Mercator/index.umd.js +2 -2
  18. package/lib/Mercator/index.umd.min.js +2 -2
  19. package/lib/OralCanvas/index.es.js +11 -7
  20. package/lib/OralCanvas/index.es.min.js +3 -3
  21. package/lib/OralWebGL/index.es.js +2 -3
  22. package/lib/OralWebGL/index.es.min.js +3 -3
  23. package/lib/SVG/index.umd.js +2 -2
  24. package/lib/SVG/index.umd.min.js +2 -2
  25. package/lib/Shader/index.umd.js +2 -3
  26. package/lib/Shader/index.umd.min.js +3 -3
  27. package/lib/Texture/index.umd.js +2 -2
  28. package/lib/Texture/index.umd.min.js +2 -2
  29. package/lib/TreeLayout/index.umd.js +2 -2
  30. package/lib/TreeLayout/index.umd.min.js +2 -2
  31. package/lib/WebGL/index.umd.js +2 -3
  32. package/lib/WebGL/index.umd.min.js +3 -3
  33. package/lib/animation/index.umd.js +2 -2
  34. package/lib/animation/index.umd.min.js +2 -2
  35. package/lib/formatColor/index.umd.js +2 -2
  36. package/lib/formatColor/index.umd.min.js +2 -2
  37. package/lib/getLoopColors/index.umd.js +2 -2
  38. package/lib/getLoopColors/index.umd.min.js +2 -2
  39. package/lib/getWebGLContext/index.umd.js +2 -2
  40. package/lib/getWebGLContext/index.umd.min.js +2 -2
  41. package/lib/index.umd.js +19 -14
  42. package/lib/index.umd.min.js +3 -3
  43. package/lib/move/index.umd.js +2 -2
  44. package/lib/move/index.umd.min.js +2 -2
  45. package/lib/resizeObserver/index.umd.js +2 -2
  46. package/lib/resizeObserver/index.umd.min.js +2 -2
  47. package/lib/rotate/index.umd.js +2 -2
  48. package/lib/rotate/index.umd.min.js +2 -2
  49. package/lib/ruler/index.umd.js +2 -2
  50. package/lib/ruler/index.umd.min.js +2 -2
  51. package/lib/scale/index.umd.js +2 -2
  52. package/lib/scale/index.umd.min.js +2 -2
  53. package/lib/throttle/index.umd.js +2 -2
  54. package/lib/throttle/index.umd.min.js +2 -2
  55. package/lib/viewHandler/index.umd.js +2 -2
  56. package/lib/viewHandler/index.umd.min.js +2 -2
  57. package/package.json +1 -1
  58. package/src/Canvas.ts +8 -6
  59. package/src/Geometry.ts +0 -1
  60. package/src/Matrix4/rotate.ts +15 -15
  61. package/src/Matrix4/transform.ts +64 -64
  62. package/src/WebGL.ts +66 -66
  63. package/src/common/assemble.ts +22 -22
  64. package/src/common/canvas/index.ts +10 -4
  65. package/src/common/canvas/painter.ts +1 -1
  66. package/src/common/geometry/prism-vertical.ts +40 -40
  67. package/src/common/geometry/tool/rotateLine.ts +35 -35
  68. package/src/common/setStyle.ts +5 -5
  69. package/src/common/svg/config.ts +190 -190
  70. package/src/common/svg/index.ts +356 -356
  71. package/src/common/svg/tool.ts +44 -44
  72. package/src/common/tree/toInnerTree.ts +59 -59
  73. package/src/common/tree/toPlainTree.ts +132 -132
  74. package/src/common/webgl/buffer.ts +79 -79
  75. package/src/common/webgl/doDraw.ts +108 -108
  76. package/src/common/webgl/getWebGLContext.ts +28 -28
  77. package/src/common/webgl/index.ts +226 -226
  78. package/src/common/webgl/shader.ts +1 -1
  79. package/src/common/webgl/texture.ts +97 -97
  80. package/src/layout/TreeLayout.ts +188 -188
  81. package/src/resizeObserver.ts +37 -37
  82. package/src/ruler.ts +209 -209
  83. package/src/viewHandler.ts +160 -160
  84. package/types/Canvas.d.ts +308 -308
  85. package/types/Geometry.d.ts +65 -65
  86. package/types/Object3D.d.ts +114 -114
  87. package/types/SVGConfig.d.ts +79 -79
  88. package/types/Shader.d.ts +23 -21
  89. package/types/TreeConfig.d.ts +36 -36
  90. package/uni-app/ui-canvas.vue +53 -9
@@ -1,109 +1,109 @@
1
- import BufferObject from './buffer'
2
-
3
- import getTexture from './getTexture'
4
- import getShader from './getShader'
5
-
6
- interface MeshWorldType {
7
- matrix: number[]
8
- }
9
-
10
- interface GlobalWorldType {
11
- matrix: number[]
12
- proporion: number[]
13
- }
14
-
15
- import { meshType } from '../../../types/Object3D'
16
-
17
- export default function (type: string, painter: WebGLRenderingContext, mesh: meshType, meshWorld: MeshWorldType, globalWorld: GlobalWorldType) {
18
- const shader = getShader(type, painter, mesh)
19
-
20
- // 点数据写入缓冲区
21
- new BufferObject(painter).use()
22
- .write(mesh.geometry.attributes.position.array as Float32Array)
23
- .divide(painter.getAttribLocation(shader.program, "a_position"), mesh.geometry.attributes.position.itemSize, mesh.geometry.attributes.position.itemSize, 0)
24
-
25
- // 写入矩阵
26
- painter.uniformMatrix4fv(painter.getUniformLocation(shader.program, "u_matrix_world"), false, globalWorld.matrix)
27
- painter.uniformMatrix4fv(painter.getUniformLocation(shader.program, "u_matrix_proporion"), false, globalWorld.proporion)
28
- painter.uniformMatrix4fv(painter.getUniformLocation(shader.program, "u_matrix_mesh"), false, meshWorld.matrix)
29
-
30
- // 如果有法向量数据
31
- if (mesh.geometry.attributes.normal) {
32
- new BufferObject(painter).use()
33
- .write(mesh.geometry.attributes.normal.array as Float32Array)
34
- .divide(painter.getAttribLocation(shader.program, "a_normal"), mesh.geometry.attributes.normal.itemSize, mesh.geometry.attributes.normal.itemSize, 0)
35
- }
36
-
37
- // 颜色
38
- if ("color" in mesh.material) {
39
-
40
- // 写入颜色
41
- painter.uniform4f(painter.getUniformLocation(shader.program, "u_color")
42
- , mesh.material.color?.r as number
43
- , mesh.material.color?.g as number
44
- , mesh.material.color?.b as number
45
- , mesh.material.color?.alpha as number)
46
- }
47
-
48
- // 多颜色
49
- if ("colors" in mesh.material) {
50
-
51
- // 写入颜色序列
52
- new BufferObject(painter).use()
53
- .write(mesh.material.colors?.array as Float32Array)
54
- .divide(painter.getAttribLocation(shader.program, "a_color"), mesh.material.colors?.itemSize as number, mesh.material.colors?.itemSize as number, 0)
55
-
56
- }
57
-
58
- // 立方纹理
59
- else if ("cube" in mesh.material) {
60
-
61
- const size = (mesh.material.cube?.right?.image.value as any).width
62
-
63
- painter.uniform1i(painter.getUniformLocation(shader.program, "u_texture"), 0)
64
-
65
- getTexture(type, painter, 'cube').useCube([
66
- mesh.material.cube?.right?.image.value,
67
- mesh.material.cube?.left?.image.value,
68
- mesh.material.cube?.top?.image.value,
69
- mesh.material.cube?.bottom?.image.value,
70
- mesh.material.cube?.far?.image.value,
71
- mesh.material.cube?.near?.image.value
72
- ], size, size)
73
-
74
- }
75
-
76
- // 二维纹理
77
- else if ("image" in mesh.material) {
78
-
79
- painter.uniform1i(painter.getUniformLocation(shader.program, "u_sampler"), 0)
80
-
81
- new BufferObject(painter).use()
82
- .write(mesh.geometry.attributes.uv?.array as Float32Array)
83
- .divide(painter.getAttribLocation(shader.program, "a_textcoord"), mesh.geometry.attributes.uv?.itemSize as number, 2, 0)
84
-
85
- getTexture(type, painter, '2d').useImage(mesh.material.image?.value)
86
-
87
- }
88
-
89
- // 如果使用了索引
90
- if (mesh.geometry.index) {
91
-
92
- // 索引数据
93
- new BufferObject(painter, true).use()
94
- .write(mesh.geometry.index.array as Uint8Array)
95
-
96
- // 绘制
97
- painter.drawElements(painter[mesh.geometry.type], mesh.geometry.index.count, painter.UNSIGNED_BYTE, 0)
98
-
99
- }
100
-
101
- // 否则
102
- else {
103
-
104
- // 绘制
105
- painter.drawArrays(painter[mesh.geometry.type], 0, mesh.geometry.attributes.position.count)
106
-
107
- }
108
-
1
+ import BufferObject from './buffer'
2
+
3
+ import getTexture from './getTexture'
4
+ import getShader from './getShader'
5
+
6
+ interface MeshWorldType {
7
+ matrix: number[]
8
+ }
9
+
10
+ interface GlobalWorldType {
11
+ matrix: number[]
12
+ proporion: number[]
13
+ }
14
+
15
+ import { meshType } from '../../../types/Object3D'
16
+
17
+ export default function (type: string, painter: WebGLRenderingContext, mesh: meshType, meshWorld: MeshWorldType, globalWorld: GlobalWorldType) {
18
+ const shader = getShader(type, painter, mesh)
19
+
20
+ // 点数据写入缓冲区
21
+ new BufferObject(painter).use()
22
+ .write(mesh.geometry.attributes.position.array as Float32Array)
23
+ .divide(painter.getAttribLocation(shader.program, "a_position"), mesh.geometry.attributes.position.itemSize, mesh.geometry.attributes.position.itemSize, 0)
24
+
25
+ // 写入矩阵
26
+ painter.uniformMatrix4fv(painter.getUniformLocation(shader.program, "u_matrix_world"), false, globalWorld.matrix)
27
+ painter.uniformMatrix4fv(painter.getUniformLocation(shader.program, "u_matrix_proporion"), false, globalWorld.proporion)
28
+ painter.uniformMatrix4fv(painter.getUniformLocation(shader.program, "u_matrix_mesh"), false, meshWorld.matrix)
29
+
30
+ // 如果有法向量数据
31
+ if (mesh.geometry.attributes.normal) {
32
+ new BufferObject(painter).use()
33
+ .write(mesh.geometry.attributes.normal.array as Float32Array)
34
+ .divide(painter.getAttribLocation(shader.program, "a_normal"), mesh.geometry.attributes.normal.itemSize, mesh.geometry.attributes.normal.itemSize, 0)
35
+ }
36
+
37
+ // 颜色
38
+ if ("color" in mesh.material) {
39
+
40
+ // 写入颜色
41
+ painter.uniform4f(painter.getUniformLocation(shader.program, "u_color")
42
+ , mesh.material.color?.r as number
43
+ , mesh.material.color?.g as number
44
+ , mesh.material.color?.b as number
45
+ , mesh.material.color?.alpha as number)
46
+ }
47
+
48
+ // 多颜色
49
+ if ("colors" in mesh.material) {
50
+
51
+ // 写入颜色序列
52
+ new BufferObject(painter).use()
53
+ .write(mesh.material.colors?.array as Float32Array)
54
+ .divide(painter.getAttribLocation(shader.program, "a_color"), mesh.material.colors?.itemSize as number, mesh.material.colors?.itemSize as number, 0)
55
+
56
+ }
57
+
58
+ // 立方纹理
59
+ else if ("cube" in mesh.material) {
60
+
61
+ const size = (mesh.material.cube?.right?.image.value as any).width
62
+
63
+ painter.uniform1i(painter.getUniformLocation(shader.program, "u_texture"), 0)
64
+
65
+ getTexture(type, painter, 'cube').useCube([
66
+ mesh.material.cube?.right?.image.value,
67
+ mesh.material.cube?.left?.image.value,
68
+ mesh.material.cube?.top?.image.value,
69
+ mesh.material.cube?.bottom?.image.value,
70
+ mesh.material.cube?.far?.image.value,
71
+ mesh.material.cube?.near?.image.value
72
+ ], size, size)
73
+
74
+ }
75
+
76
+ // 二维纹理
77
+ else if ("image" in mesh.material) {
78
+
79
+ painter.uniform1i(painter.getUniformLocation(shader.program, "u_sampler"), 0)
80
+
81
+ new BufferObject(painter).use()
82
+ .write(mesh.geometry.attributes.uv?.array as Float32Array)
83
+ .divide(painter.getAttribLocation(shader.program, "a_textcoord"), mesh.geometry.attributes.uv?.itemSize as number, 2, 0)
84
+
85
+ getTexture(type, painter, '2d').useImage(mesh.material.image?.value)
86
+
87
+ }
88
+
89
+ // 如果使用了索引
90
+ if (mesh.geometry.index) {
91
+
92
+ // 索引数据
93
+ new BufferObject(painter, true).use()
94
+ .write(mesh.geometry.index.array as Uint8Array)
95
+
96
+ // 绘制
97
+ painter.drawElements(painter[mesh.geometry.type], mesh.geometry.index.count, painter.UNSIGNED_BYTE, 0)
98
+
99
+ }
100
+
101
+ // 否则
102
+ else {
103
+
104
+ // 绘制
105
+ painter.drawArrays(painter[mesh.geometry.type], 0, mesh.geometry.attributes.position.count)
106
+
107
+ }
108
+
109
109
  }
@@ -1,29 +1,29 @@
1
- interface OptsType {
2
- preserveDrawingBuffer?: boolean
3
- }
4
- export default function (canvas: HTMLCanvasElement, scale: number, opts: OptsType = {}) {
5
- const names = ["experimental-webgl", "webkit-3d", "moz-webgl"]
6
- let painter = canvas.getContext("webgl", opts) as WebGL2RenderingContext
7
- for (let i = 0; i < names.length; i++) {
8
- try {
9
- painter = canvas.getContext(names[i], opts) as WebGL2RenderingContext
10
- } catch (e) { }
11
- if (painter) break
12
- }
13
- if (!painter) throw new Error('Non canvas or browser does not support webgl.')
14
-
15
- const width = painter.canvas.width, height = painter.canvas.height
16
-
17
- const viewWidth = width * scale
18
- const viewHeight = height * scale
19
-
20
- painter.viewport((width - viewWidth) * 0.5, (height - viewHeight) * 0.5, viewWidth, viewHeight)
21
-
22
- // https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthFunc
23
- painter.depthFunc(painter.LEQUAL)
24
-
25
- // 开启深度计算
26
- painter.enable(painter.DEPTH_TEST);
27
-
28
- return painter
1
+ interface OptsType {
2
+ preserveDrawingBuffer?: boolean
3
+ }
4
+ export default function (canvas: HTMLCanvasElement, scale: number, opts: OptsType = {}) {
5
+ const names = ["experimental-webgl", "webkit-3d", "moz-webgl"]
6
+ let painter = canvas.getContext("webgl", opts) as WebGL2RenderingContext
7
+ for (let i = 0; i < names.length; i++) {
8
+ try {
9
+ painter = canvas.getContext(names[i], opts) as WebGL2RenderingContext
10
+ } catch (e) { }
11
+ if (painter) break
12
+ }
13
+ if (!painter) throw new Error('Non canvas or browser does not support webgl.')
14
+
15
+ const width = painter.canvas.width, height = painter.canvas.height
16
+
17
+ const viewWidth = width * scale
18
+ const viewHeight = height * scale
19
+
20
+ painter.viewport((width - viewWidth) * 0.5, (height - viewHeight) * 0.5, viewWidth, viewHeight)
21
+
22
+ // https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthFunc
23
+ painter.depthFunc(painter.LEQUAL)
24
+
25
+ // 开启深度计算
26
+ painter.enable(painter.DEPTH_TEST);
27
+
28
+ return painter
29
29
  }