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,168 +1,168 @@
1
- import type CanvasConfigType from "../../../types/CanvasConfig"
2
-
3
- import PainterRender from "./painter"
4
- import assemble from "../assemble"
5
- import { linearGradient, radialGradient } from "./gradient"
6
- import { initText } from './config'
7
-
8
- // 属性名向下兼容
9
- let oldAttrName = {
10
- "font-size": "fontSize",
11
- "font-family": "fontFamily",
12
- "font-weight": "fontWeight",
13
- "font-style": "fontStyle",
14
- "arc-start-cap": "arcStartCap",
15
- "arc-end-cap": "arcEndCap",
16
- }
17
-
18
- class Canvas extends PainterRender {
19
- readonly name: string = "Canvas"
20
-
21
- private __regionList = {} //区域映射表
22
-
23
- // 步长由1改为10是为了优化区域计算有时候出错问题
24
- // 2023年7月6日 于南京
25
- private __regionAssemble = assemble(0, 255, 10, 3)
26
-
27
- constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement) {
28
- super(
29
- ViewCanvas,
30
- {},
31
- RegionCanvas ? new PainterRender(RegionCanvas, {
32
- willReadFrequently: true,
33
- }) : null, true
34
- )
35
-
36
- this.setRegion("")
37
- }
38
-
39
- config(configs: CanvasConfigType) {
40
- for (let key in configs) {
41
- let _key = oldAttrName[key] || key
42
- this.useConfig(_key, configs[key])
43
- }
44
-
45
- return this
46
- }
47
-
48
- // 是否绘制的内容只需要进行区域记录
49
- onlyRegion(flag: boolean) {
50
- this.__onlyRegion = flag
51
- return this
52
- }
53
-
54
- // 设置当前绘制区域名称
55
- setRegion(regionName: string | number) {
56
- if (this.__region) {
57
- if (regionName) {
58
- if (this.__regionList[regionName] == void 0) {
59
- let tempColor = this.__regionAssemble()
60
- this.__regionList[regionName] =
61
- "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")"
62
- }
63
-
64
- this.__region.useConfig("fillStyle", this.__regionList[regionName]) &&
65
- this.__region.useConfig("strokeStyle", this.__regionList[regionName])
66
- } else {
67
- this.__region.useConfig("fillStyle", "#000000") &&
68
- this.__region.useConfig("strokeStyle", "#000000")
69
- }
70
- }
71
- return this
72
- }
73
-
74
- // 获取当前事件触发的区域名称
75
- getRegion(x: number, y: number): Promise<string> {
76
- return new Promise((resolve, reject) => {
77
- let imgData = this.__region ? this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
78
- data: [0, 0, 0, 0]
79
- }
80
-
81
- // 获取点击点的颜色
82
- let currentRGBA = imgData.data
83
-
84
- let doit = () => {
85
- if (this.__region) {
86
-
87
- // 查找当前点击的区域
88
- for (let key in this.__regionList) {
89
- if (
90
- "rgb(" +
91
- currentRGBA[0] +
92
- "," +
93
- currentRGBA[1] +
94
- "," +
95
- currentRGBA[2] +
96
- ")" ==
97
- this.__regionList[key]
98
- ) {
99
- resolve(key)
100
- break
101
- }
102
- }
103
- }
104
-
105
- resolve("")
106
- }
107
-
108
- // 如果有值
109
- if (currentRGBA) {
110
- doit()
111
- }
112
-
113
- // 否则就是在Promise中
114
- else {
115
- (imgData as any).then((data: Uint8ClampedArray) => {
116
- currentRGBA = data
117
- doit()
118
- })
119
- }
120
- })
121
- }
122
-
123
- textWidth(text: string) {
124
- this.painter.save()
125
-
126
- initText(this.painter, this.__specialConfig, 0, 0, 0)
127
-
128
- // 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
129
- let width = this.painter.measureText(text + "").width
130
-
131
- this.painter.restore()
132
-
133
- return width
134
- }
135
-
136
- // 获取原始画笔
137
- getContext(isRegion = false) {
138
- return isRegion ? (this.__region ? this.__region.painter : null) : this.painter
139
- }
140
-
141
- // 线性渐变
142
- createLinearGradient(x0: number, y0: number, x1: number, y1: number) {
143
- return linearGradient(this.painter, x0, y0, x1, y1)
144
- }
145
-
146
- // 环形渐变
147
- createRadialGradient(cx: number, cy: number, r: number) {
148
- return radialGradient(this.painter, cx, cy, r)
149
- }
150
-
151
- // 获取指定位置颜色
152
- getColor(x: number, y: number) {
153
- let currentRGBA = this.painter.getImageData(x - 0.5, y - 0.5, 1, 1).data
154
- return (
155
- "rgba(" +
156
- currentRGBA[0] +
157
- "," +
158
- currentRGBA[1] +
159
- "," +
160
- currentRGBA[2] +
161
- "," +
162
- currentRGBA[3] +
163
- ")"
164
- )
165
- }
166
- }
167
-
168
- export default Canvas
1
+ import type CanvasConfigType from "../../../types/CanvasConfig"
2
+
3
+ import PainterRender from "./painter"
4
+ import assemble from "../assemble"
5
+ import { linearGradient, radialGradient } from "./gradient"
6
+ import { initText } from './config'
7
+
8
+ // 属性名向下兼容
9
+ let oldAttrName = {
10
+ "font-size": "fontSize",
11
+ "font-family": "fontFamily",
12
+ "font-weight": "fontWeight",
13
+ "font-style": "fontStyle",
14
+ "arc-start-cap": "arcStartCap",
15
+ "arc-end-cap": "arcEndCap",
16
+ }
17
+
18
+ class Canvas extends PainterRender {
19
+ readonly name: string = "Canvas"
20
+
21
+ private __regionList = {} //区域映射表
22
+
23
+ // 步长由1改为10是为了优化区域计算有时候出错问题
24
+ // 2023年7月6日 于南京
25
+ private __regionAssemble = assemble(0, 255, 10, 3)
26
+
27
+ constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement) {
28
+ super(
29
+ ViewCanvas,
30
+ {},
31
+ RegionCanvas ? new PainterRender(RegionCanvas, {
32
+ willReadFrequently: true,
33
+ }) : null, true
34
+ )
35
+
36
+ this.setRegion("")
37
+ }
38
+
39
+ config(configs: CanvasConfigType) {
40
+ for (let key in configs) {
41
+ let _key = oldAttrName[key] || key
42
+ this.useConfig(_key, configs[key])
43
+ }
44
+
45
+ return this
46
+ }
47
+
48
+ // 是否绘制的内容只需要进行区域记录
49
+ onlyRegion(flag: boolean) {
50
+ this.__onlyRegion = flag
51
+ return this
52
+ }
53
+
54
+ // 设置当前绘制区域名称
55
+ setRegion(regionName: string | number) {
56
+ if (this.__region) {
57
+ if (regionName) {
58
+ if (this.__regionList[regionName] == void 0) {
59
+ let tempColor = this.__regionAssemble()
60
+ this.__regionList[regionName] =
61
+ "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")"
62
+ }
63
+
64
+ this.__region.useConfig("fillStyle", this.__regionList[regionName]) &&
65
+ this.__region.useConfig("strokeStyle", this.__regionList[regionName])
66
+ } else {
67
+ this.__region.useConfig("fillStyle", "#000000") &&
68
+ this.__region.useConfig("strokeStyle", "#000000")
69
+ }
70
+ }
71
+ return this
72
+ }
73
+
74
+ // 获取当前事件触发的区域名称
75
+ getRegion(x: number, y: number): Promise<string> {
76
+ return new Promise((resolve, reject) => {
77
+ let imgData = this.__region ? this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
78
+ data: [0, 0, 0, 0]
79
+ }
80
+
81
+ // 获取点击点的颜色
82
+ let currentRGBA = imgData.data
83
+
84
+ let doit = () => {
85
+ if (this.__region) {
86
+
87
+ // 查找当前点击的区域
88
+ for (let key in this.__regionList) {
89
+ if (
90
+ "rgb(" +
91
+ currentRGBA[0] +
92
+ "," +
93
+ currentRGBA[1] +
94
+ "," +
95
+ currentRGBA[2] +
96
+ ")" ==
97
+ this.__regionList[key]
98
+ ) {
99
+ resolve(key)
100
+ break
101
+ }
102
+ }
103
+ }
104
+
105
+ resolve("")
106
+ }
107
+
108
+ // 如果有值
109
+ if (currentRGBA) {
110
+ doit()
111
+ }
112
+
113
+ // 否则就是在Promise中
114
+ else {
115
+ (imgData as any).then((data: Uint8ClampedArray) => {
116
+ currentRGBA = data
117
+ doit()
118
+ })
119
+ }
120
+ })
121
+ }
122
+
123
+ textWidth(text: string) {
124
+ this.painter.save()
125
+
126
+ initText(this.painter, this.__specialConfig, 0, 0, 0)
127
+
128
+ // 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
129
+ let width = this.painter.measureText(text + "").width
130
+
131
+ this.painter.restore()
132
+
133
+ return width
134
+ }
135
+
136
+ // 获取原始画笔
137
+ getContext(isRegion = false) {
138
+ return isRegion ? (this.__region ? this.__region.painter : null) : this.painter
139
+ }
140
+
141
+ // 线性渐变
142
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number) {
143
+ return linearGradient(this.painter, x0, y0, x1, y1)
144
+ }
145
+
146
+ // 环形渐变
147
+ createRadialGradient(cx: number, cy: number, r: number) {
148
+ return radialGradient(this.painter, cx, cy, r)
149
+ }
150
+
151
+ // 获取指定位置颜色
152
+ getColor(x: number, y: number) {
153
+ let currentRGBA = this.painter.getImageData(x - 0.5, y - 0.5, 1, 1).data
154
+ return (
155
+ "rgba(" +
156
+ currentRGBA[0] +
157
+ "," +
158
+ currentRGBA[1] +
159
+ "," +
160
+ currentRGBA[2] +
161
+ "," +
162
+ currentRGBA[3] +
163
+ ")"
164
+ )
165
+ }
166
+ }
167
+
168
+ export default Canvas