vislite 0.5.2 → 0.6.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 (191) hide show
  1. package/.editorconfig +18 -18
  2. package/AUTHORS.txt +6 -6
  3. package/CHANGELOG +13 -1
  4. package/LICENSE +20 -20
  5. package/README.md +41 -2
  6. package/lib/Buffer/index.umd.js +2 -2
  7. package/lib/Buffer/index.umd.min.js +2 -2
  8. package/lib/Canvas/index.umd.js +8 -2
  9. package/lib/Canvas/index.umd.min.js +3 -3
  10. package/lib/Cardinal/index.umd.js +2 -2
  11. package/lib/Cardinal/index.umd.min.js +2 -2
  12. package/lib/Eoap/index.umd.js +2 -2
  13. package/lib/Eoap/index.umd.min.js +2 -2
  14. package/lib/Geometry/index.umd.js +2 -2
  15. package/lib/Geometry/index.umd.min.js +2 -2
  16. package/lib/Hermite/index.umd.js +2 -2
  17. package/lib/Hermite/index.umd.min.js +2 -2
  18. package/lib/Matrix4/index.umd.js +14 -8
  19. package/lib/Matrix4/index.umd.min.js +3 -3
  20. package/lib/Mercator/index.umd.js +2 -2
  21. package/lib/Mercator/index.umd.min.js +2 -2
  22. package/lib/OralCanvas/index.es.js +8 -2
  23. package/lib/OralCanvas/index.es.min.js +3 -3
  24. package/lib/OralWebGL/index.es.js +22 -16
  25. package/lib/OralWebGL/index.es.min.js +3 -3
  26. package/lib/SVG/index.umd.js +2 -2
  27. package/lib/SVG/index.umd.min.js +2 -2
  28. package/lib/Shader/index.umd.js +10 -10
  29. package/lib/Shader/index.umd.min.js +3 -3
  30. package/lib/Texture/index.umd.js +2 -2
  31. package/lib/Texture/index.umd.min.js +2 -2
  32. package/lib/TreeLayout/index.umd.js +2 -2
  33. package/lib/TreeLayout/index.umd.min.js +2 -2
  34. package/lib/WebGL/index.umd.js +22 -16
  35. package/lib/WebGL/index.umd.min.js +3 -3
  36. package/lib/animation/index.umd.js +2 -2
  37. package/lib/animation/index.umd.min.js +2 -2
  38. package/lib/formatColor/index.umd.js +2 -2
  39. package/lib/formatColor/index.umd.min.js +2 -2
  40. package/lib/getLoopColors/index.umd.js +2 -2
  41. package/lib/getLoopColors/index.umd.min.js +2 -2
  42. package/lib/getWebGLContext/index.umd.js +2 -2
  43. package/lib/getWebGLContext/index.umd.min.js +2 -2
  44. package/lib/index.umd.js +40 -16
  45. package/lib/index.umd.min.js +3 -3
  46. package/lib/move/index.umd.js +2 -2
  47. package/lib/move/index.umd.min.js +2 -2
  48. package/lib/resizeObserver/index.umd.js +2 -2
  49. package/lib/resizeObserver/index.umd.min.js +2 -2
  50. package/lib/rotate/index.umd.js +2 -2
  51. package/lib/rotate/index.umd.min.js +2 -2
  52. package/lib/ruler/index.umd.js +14 -2
  53. package/lib/ruler/index.umd.min.js +3 -3
  54. package/lib/scale/index.umd.js +2 -2
  55. package/lib/scale/index.umd.min.js +2 -2
  56. package/lib/throttle/index.umd.js +2 -2
  57. package/lib/throttle/index.umd.min.js +2 -2
  58. package/lib/viewHandler/index.umd.js +2 -2
  59. package/lib/viewHandler/index.umd.min.js +2 -2
  60. package/miniprogram/ui-canvas/index.js +107 -107
  61. package/miniprogram/ui-canvas/index.json +4 -4
  62. package/miniprogram/ui-canvas/index.wxml +4 -4
  63. package/miniprogram/ui-canvas/index.wxss +5 -5
  64. package/package/Buffer/index.ts +2 -2
  65. package/package/Canvas/index.ts +2 -2
  66. package/package/Cardinal/index.ts +2 -2
  67. package/package/Eoap/index.ts +2 -2
  68. package/package/Geometry/index.ts +2 -2
  69. package/package/Hermite/index.ts +2 -2
  70. package/package/Matrix4/index.ts +2 -2
  71. package/package/Mercator/index.ts +2 -2
  72. package/package/OralCanvas/index.ts +2 -2
  73. package/package/OralWebGL/index.ts +2 -2
  74. package/package/SVG/index.ts +2 -2
  75. package/package/Shader/index.ts +39 -39
  76. package/package/Texture/index.ts +2 -2
  77. package/package/TreeLayout/index.ts +1 -1
  78. package/package/WebGL/index.ts +2 -2
  79. package/package/animation/index.ts +2 -2
  80. package/package/formatColor/index.ts +2 -2
  81. package/package/getLoopColors/index.ts +2 -2
  82. package/package/getWebGLContext/index.ts +39 -39
  83. package/package/index.ts +76 -76
  84. package/package/move/index.ts +2 -2
  85. package/package/resizeObserver/index.ts +2 -2
  86. package/package/rotate/index.ts +2 -2
  87. package/package/ruler/index.ts +2 -2
  88. package/package/scale/index.ts +2 -2
  89. package/package/throttle/index.ts +2 -2
  90. package/package/viewHandler/index.ts +2 -2
  91. package/package.json +1 -1
  92. package/src/Canvas.ts +67 -67
  93. package/src/Eoap.ts +66 -66
  94. package/src/Geometry.ts +82 -82
  95. package/src/Matrix4/index.ts +14 -6
  96. package/src/Matrix4/move.ts +12 -12
  97. package/src/Matrix4/rotate.ts +15 -15
  98. package/src/Matrix4/scale.ts +11 -11
  99. package/src/Matrix4/transform.ts +64 -64
  100. package/src/Mercator.ts +27 -27
  101. package/src/SVG.ts +24 -24
  102. package/src/WebGL.ts +66 -66
  103. package/src/animation.ts +98 -98
  104. package/src/common/assemble.ts +22 -22
  105. package/src/common/canvas/arc.ts +50 -50
  106. package/src/common/canvas/config.ts +158 -158
  107. package/src/common/canvas/gradient.ts +29 -29
  108. package/src/common/canvas/index.ts +147 -139
  109. package/src/common/canvas/painter.ts +426 -426
  110. package/src/common/canvas/texts.ts +18 -18
  111. package/src/common/geometry/prism-horizontal.ts +33 -33
  112. package/src/common/geometry/prism-vertical.ts +40 -40
  113. package/src/common/geometry/sphere-fragment.ts +39 -39
  114. package/src/common/geometry/tool/circle.ts +11 -11
  115. package/src/common/mergeOption.ts +6 -6
  116. package/src/common/setStyle.ts +5 -5
  117. package/src/common/svg/config.ts +186 -186
  118. package/src/common/svg/gradient.ts +63 -63
  119. package/src/common/svg/index.ts +356 -356
  120. package/src/common/svg/tool.ts +44 -44
  121. package/src/common/tree/index.ts +25 -25
  122. package/src/common/tree/toInnerTree.ts +56 -56
  123. package/src/common/tree/toPlainTree.ts +131 -131
  124. package/src/common/webgl/buffer.ts +79 -79
  125. package/src/common/webgl/doDraw.ts +108 -108
  126. package/src/common/webgl/getColorFactory.ts +26 -26
  127. package/src/common/webgl/getShader.ts +48 -48
  128. package/src/common/webgl/getTexture.ts +11 -11
  129. package/src/common/webgl/getWebGLContext.ts +27 -27
  130. package/src/common/webgl/index.ts +223 -223
  131. package/src/common/webgl/shader.ts +75 -75
  132. package/src/common/webgl/texture.ts +96 -96
  133. package/src/formatColor.ts +44 -44
  134. package/src/getLoopColors.ts +42 -42
  135. package/src/interpolation/Cardinal.ts +110 -110
  136. package/src/interpolation/Hermite.ts +65 -65
  137. package/src/move.ts +7 -7
  138. package/src/resizeObserver.ts +36 -36
  139. package/src/rotate.ts +7 -7
  140. package/src/ruler.ts +23 -1
  141. package/src/scale.ts +6 -6
  142. package/src/shader/fsColor.c +7 -7
  143. package/src/shader/fsColors.c +7 -7
  144. package/src/shader/fsCube.c +8 -8
  145. package/src/shader/fsImage.c +8 -8
  146. package/src/shader/vsColor.c +17 -17
  147. package/src/shader/vsColors.c +13 -13
  148. package/src/shader/vsCube.c +13 -13
  149. package/src/shader/vsImage.c +13 -13
  150. package/src/throttle.ts +51 -51
  151. package/src/viewHandler.ts +158 -158
  152. package/types/Buffer.d.ts +23 -23
  153. package/types/Canvas.d.ts +8 -0
  154. package/types/CanvasConfig.d.ts +106 -106
  155. package/types/CanvasOption.d.ts +7 -7
  156. package/types/Cardinal.d.ts +13 -13
  157. package/types/Geometry.d.ts +40 -40
  158. package/types/GeometryOption.d.ts +11 -11
  159. package/types/GeometryResult.d.ts +18 -18
  160. package/types/Gradient.d.ts +14 -14
  161. package/types/Hermite.d.ts +18 -18
  162. package/types/Map.d.ts +9 -9
  163. package/types/Matrix4.d.ts +5 -0
  164. package/types/Object3D.d.ts +114 -114
  165. package/types/SVG.d.ts +238 -238
  166. package/types/SVGConfig.d.ts +76 -76
  167. package/types/Scene3D.d.ts +6 -6
  168. package/types/Shader.d.ts +21 -21
  169. package/types/Texture.d.ts +16 -16
  170. package/types/Tree.d.ts +69 -69
  171. package/types/TreeConfig.d.ts +24 -24
  172. package/types/TreeLayout.d.ts +54 -54
  173. package/types/TreeOption.d.ts +48 -48
  174. package/types/WebGL.d.ts +38 -38
  175. package/types/WebGLOption.d.ts +7 -7
  176. package/types/animation.d.ts +6 -6
  177. package/types/formatColor.d.ts +2 -2
  178. package/types/getLoopColors.d.ts +2 -2
  179. package/types/getWebGLContext.d.ts +2 -2
  180. package/types/index.d.ts +175 -175
  181. package/types/move.d.ts +2 -2
  182. package/types/painterConfig.d.ts +2 -2
  183. package/types/resizeObserver.d.ts +2 -2
  184. package/types/rotate.d.ts +2 -2
  185. package/types/ruler.d.ts +7 -7
  186. package/types/scale.d.ts +2 -2
  187. package/types/throttle.d.ts +4 -4
  188. package/types/throttleOption.d.ts +21 -21
  189. package/types/viewHandler.d.ts +13 -13
  190. package/uni-app/ui-canvas.vue +239 -206
  191. /package/src/{TreeLayout/index.ts → layout/TreeLayout.ts} +0 -0
@@ -1,66 +1,66 @@
1
- import type HermiteType from '../../types/Hermite'
2
-
3
- class Hermite implements HermiteType {
4
- readonly name: string = 'Hermite'
5
-
6
- private __u: number // 张弛系数
7
-
8
- private __MR: number[]
9
- private __a: number
10
- private __b: number
11
-
12
- constructor(u: number = 0.5) {
13
- this.__u = u
14
- }
15
-
16
- /**
17
- * 设置点的位置
18
- * @param {Number} x1 左边点的位置
19
- * @param {Number} y1
20
- * @param {Number} x2 右边点的位置
21
- * @param {Number} y2
22
- * @param {Number} s1 两个点的斜率
23
- * @param {Number} s2
24
- */
25
- setP(x1: number, y1: number, x2: number, y2: number, s1: number, s2: number) {
26
- if (x1 < x2) {
27
- // 记录原始尺寸
28
- this.__a = x1
29
- this.__b = x2
30
- let p3 = this.__u * s1,
31
- p4 = this.__u * s2
32
- // 缩放到[0,1]定义域
33
- y1 /= (x2 - x1)
34
- y2 /= (x2 - x1)
35
- // MR是提前计算好的多项式通解矩阵
36
- // 为了加速计算
37
- // 如上面说的
38
- // 统一在[0,1]上计算后再通过缩放和移动恢复
39
- // 避免了动态求解矩阵的麻烦
40
- this.__MR = [
41
- 2 * y1 - 2 * y2 + p3 + p4,
42
- 3 * y2 - 3 * y1 - 2 * p3 - p4,
43
- p3,
44
- y1
45
- ]
46
- } else throw new Error('The point x-position should be increamented!')
47
- return this
48
- }
49
-
50
-
51
- /**
52
- * 根据x值返回y值
53
- * @param {Number} x
54
- */
55
- use(x: number) {
56
- if (this.__MR) {
57
- let sx = (x - this.__a) / (this.__b - this.__a),
58
- sx2 = sx * sx,
59
- sx3 = sx * sx2
60
- let sResult = sx3 * this.__MR[0] + sx2 * this.__MR[1] + sx * this.__MR[2] + this.__MR[3]
61
- return sResult * (this.__b - this.__a)
62
- } else throw new Error('You shoud first set the position!')
63
- }
64
- }
65
-
1
+ import type HermiteType from '../../types/Hermite'
2
+
3
+ class Hermite implements HermiteType {
4
+ readonly name: string = 'Hermite'
5
+
6
+ private __u: number // 张弛系数
7
+
8
+ private __MR: number[]
9
+ private __a: number
10
+ private __b: number
11
+
12
+ constructor(u: number = 0.5) {
13
+ this.__u = u
14
+ }
15
+
16
+ /**
17
+ * 设置点的位置
18
+ * @param {Number} x1 左边点的位置
19
+ * @param {Number} y1
20
+ * @param {Number} x2 右边点的位置
21
+ * @param {Number} y2
22
+ * @param {Number} s1 两个点的斜率
23
+ * @param {Number} s2
24
+ */
25
+ setP(x1: number, y1: number, x2: number, y2: number, s1: number, s2: number) {
26
+ if (x1 < x2) {
27
+ // 记录原始尺寸
28
+ this.__a = x1
29
+ this.__b = x2
30
+ let p3 = this.__u * s1,
31
+ p4 = this.__u * s2
32
+ // 缩放到[0,1]定义域
33
+ y1 /= (x2 - x1)
34
+ y2 /= (x2 - x1)
35
+ // MR是提前计算好的多项式通解矩阵
36
+ // 为了加速计算
37
+ // 如上面说的
38
+ // 统一在[0,1]上计算后再通过缩放和移动恢复
39
+ // 避免了动态求解矩阵的麻烦
40
+ this.__MR = [
41
+ 2 * y1 - 2 * y2 + p3 + p4,
42
+ 3 * y2 - 3 * y1 - 2 * p3 - p4,
43
+ p3,
44
+ y1
45
+ ]
46
+ } else throw new Error('The point x-position should be increamented!')
47
+ return this
48
+ }
49
+
50
+
51
+ /**
52
+ * 根据x值返回y值
53
+ * @param {Number} x
54
+ */
55
+ use(x: number) {
56
+ if (this.__MR) {
57
+ let sx = (x - this.__a) / (this.__b - this.__a),
58
+ sx2 = sx * sx,
59
+ sx3 = sx * sx2
60
+ let sResult = sx3 * this.__MR[0] + sx2 * this.__MR[1] + sx * this.__MR[2] + this.__MR[3]
61
+ return sResult * (this.__b - this.__a)
62
+ } else throw new Error('You shoud first set the position!')
63
+ }
64
+ }
65
+
66
66
  export default Hermite
package/src/move.ts CHANGED
@@ -1,8 +1,8 @@
1
- // 点(x,y)沿着向量(ax,ay)方向移动距离d
2
- export default function (ax: number, ay: number, d: number, x: number, y: number): [number, number] {
3
- let sqrt = Math.sqrt(ax * ax + ay * ay)
4
- return [
5
- ax * d / sqrt + x,
6
- ay * d / sqrt + y
7
- ]
1
+ // 点(x,y)沿着向量(ax,ay)方向移动距离d
2
+ export default function (ax: number, ay: number, d: number, x: number, y: number): [number, number] {
3
+ let sqrt = Math.sqrt(ax * ax + ay * ay)
4
+ return [
5
+ ax * d / sqrt + x,
6
+ ay * d / sqrt + y
7
+ ]
8
8
  }
@@ -1,37 +1,37 @@
1
- let observer: ResizeObserver
2
-
3
- let attrValueToCallback = {}, uniqueid = 0
4
-
5
- export default function (el: HTMLElement | null, callback: Function) {
6
-
7
- try {
8
-
9
- if (!observer) {
10
- observer = new ResizeObserver(entries => {
11
- for (const entry of entries) {
12
- attrValueToCallback[(entry.target as any)._resize_observer_]()
13
- }
14
- })
15
- }
16
-
17
- uniqueid++
18
-
19
- (el as any)._resize_observer_ = uniqueid
20
- attrValueToCallback[uniqueid] = callback
21
-
22
- observer.observe(el)
23
-
24
- return function () {
25
- if (observer) {
26
- observer.unobserve(el)
27
- delete attrValueToCallback[(el as any)._resize_observer_]
28
- }
29
- }
30
-
31
- } catch (e) {
32
- callback()
33
-
34
- // 如果浏览器不支持此接口
35
- console.error('ResizeObserver undefined!')
36
- }
1
+ let observer: ResizeObserver
2
+
3
+ let attrValueToCallback = {}, uniqueid = 0
4
+
5
+ export default function (el: HTMLElement | null, callback: Function) {
6
+
7
+ try {
8
+
9
+ if (!observer) {
10
+ observer = new ResizeObserver(entries => {
11
+ for (const entry of entries) {
12
+ attrValueToCallback[(entry.target as any)._resize_observer_]()
13
+ }
14
+ })
15
+ }
16
+
17
+ uniqueid++
18
+
19
+ (el as any)._resize_observer_ = uniqueid
20
+ attrValueToCallback[uniqueid] = callback
21
+
22
+ observer.observe(el)
23
+
24
+ return function () {
25
+ if (observer) {
26
+ observer.unobserve(el)
27
+ delete attrValueToCallback[(el as any)._resize_observer_]
28
+ }
29
+ }
30
+
31
+ } catch (e) {
32
+ callback()
33
+
34
+ // 如果浏览器不支持此接口
35
+ console.error('ResizeObserver undefined!')
36
+ }
37
37
  }
package/src/rotate.ts CHANGED
@@ -1,8 +1,8 @@
1
- // 点(x,y)围绕中心(cx,cy)旋转deg度
2
- export default function (cx: number, cy: number, deg: number, x: number, y: number): [number, number] {
3
- let cos = Math.cos(deg), sin = Math.sin(deg)
4
- return [
5
- (x - cx) * cos - (y - cy) * sin + cx,
6
- (x - cx) * sin + (y - cy) * cos + cy
7
- ]
1
+ // 点(x,y)围绕中心(cx,cy)旋转deg度
2
+ export default function (cx: number, cy: number, deg: number, x: number, y: number): [number, number] {
3
+ let cos = Math.cos(deg), sin = Math.sin(deg)
4
+ return [
5
+ (x - cx) * cos - (y - cy) * sin + cx,
6
+ (x - cx) * sin + (y - cy) * cos + cy
7
+ ]
8
8
  }
package/src/ruler.ts CHANGED
@@ -184,5 +184,27 @@ export default function (maxValue: number, minValue: number, num: number, option
184
184
  }
185
185
  }
186
186
  }
187
+
188
+ // 对结果进行对齐
189
+ // 2023年11月15日 于南京
190
+ for (let index = 0; index < rulerArray.length; index++) {
191
+ let valStr = rulerArray[index] + ""
192
+
193
+ // 只有小数需要处理
194
+ if (/\./.test(valStr)) {
195
+
196
+ // 1.0999999999999999
197
+ if (/9{7,}$/.test(valStr)) {
198
+ valStr = valStr.replace(/9{7,}$/, '')
199
+ rulerArray[index] = +(valStr.substring(0, valStr.length - 1) + ((+valStr[valStr.length - 1]) + 1))
200
+ }
201
+
202
+ // 0.30000000000000004
203
+ else if (/0{7,}\d$/.test(valStr)) {
204
+ rulerArray[index] = +(valStr.replace(/0{7,}\d$/, ''))
205
+ }
206
+ }
207
+ }
208
+
187
209
  return rulerArray
188
- }
210
+ }
package/src/scale.ts CHANGED
@@ -1,7 +1,7 @@
1
- // 点(x,y)围绕中心(cx,cy)缩放times倍
2
- export default function (cx: number, cy: number, times: number, x: number, y: number): [number, number] {
3
- return [
4
- times * (x - cx) + cx,
5
- times * (y - cy) + cy
6
- ]
1
+ // 点(x,y)围绕中心(cx,cy)缩放times倍
2
+ export default function (cx: number, cy: number, times: number, x: number, y: number): [number, number] {
3
+ return [
4
+ times * (x - cx) + cx,
5
+ times * (y - cy) + cy
6
+ ]
7
7
  }
@@ -1,8 +1,8 @@
1
- precision mediump float;
2
-
3
- uniform vec4 u_color;
4
-
5
- void main()
6
- {
7
- gl_FragColor = u_color;
1
+ precision mediump float;
2
+
3
+ uniform vec4 u_color;
4
+
5
+ void main()
6
+ {
7
+ gl_FragColor = u_color;
8
8
  }
@@ -1,8 +1,8 @@
1
- precision mediump float;
2
-
3
- varying vec4 v_color;
4
-
5
- void main()
6
- {
7
- gl_FragColor = v_color;
1
+ precision mediump float;
2
+
3
+ varying vec4 v_color;
4
+
5
+ void main()
6
+ {
7
+ gl_FragColor = v_color;
8
8
  }
@@ -1,9 +1,9 @@
1
- precision mediump float;
2
-
3
- varying vec3 v_normal;
4
- uniform samplerCube u_texture;
5
-
6
- void main()
7
- {
8
- gl_FragColor = textureCube(u_texture, normalize(v_normal));
1
+ precision mediump float;
2
+
3
+ varying vec3 v_normal;
4
+ uniform samplerCube u_texture;
5
+
6
+ void main()
7
+ {
8
+ gl_FragColor = textureCube(u_texture, normalize(v_normal));
9
9
  }
@@ -1,9 +1,9 @@
1
- precision mediump float;
2
-
3
- uniform sampler2D u_sampler;
4
- varying vec2 v_textcoord;
5
-
6
- void main()
7
- {
8
- gl_FragColor = texture2D(u_sampler, v_textcoord);
1
+ precision mediump float;
2
+
3
+ uniform sampler2D u_sampler;
4
+ varying vec2 v_textcoord;
5
+
6
+ void main()
7
+ {
8
+ gl_FragColor = texture2D(u_sampler, v_textcoord);
9
9
  }
@@ -1,18 +1,18 @@
1
- attribute vec4 a_position;
2
- uniform mat4 u_matrix;
3
-
4
- void main()
5
- {
6
- vec4 temp = u_matrix * a_position;
7
-
8
- // 把原生的WebGL使用的左手坐标系变成了右手坐标系
9
- temp.z = -1.0 * temp.z;
10
-
11
- // 表示眼睛距离vec4(0.0,0.0,1.0)的距离
12
- float dist = 4.0;
13
-
14
- // 使用投影直接计算
15
- // 为保证纹理和相对位置正确
16
- // x、y、z的改变满足线性变换
17
- 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));
1
+ attribute vec4 a_position;
2
+ uniform mat4 u_matrix;
3
+
4
+ void main()
5
+ {
6
+ vec4 temp = u_matrix * a_position;
7
+
8
+ // 把原生的WebGL使用的左手坐标系变成了右手坐标系
9
+ temp.z = -1.0 * temp.z;
10
+
11
+ // 表示眼睛距离vec4(0.0,0.0,1.0)的距离
12
+ float dist = 4.0;
13
+
14
+ // 使用投影直接计算
15
+ // 为保证纹理和相对位置正确
16
+ // x、y、z的改变满足线性变换
17
+ 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));
18
18
  }
@@ -1,14 +1,14 @@
1
- attribute vec4 a_position;
2
- uniform mat4 u_matrix;
3
- attribute vec4 a_color;
4
- varying vec4 v_color;
5
-
6
- void main()
7
- {
8
- vec4 temp = u_matrix * a_position;
9
- temp.z = -1.0 * temp.z;
10
- float dist = 4.0;
11
- 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));
12
-
13
- v_color = a_color;
1
+ attribute vec4 a_position;
2
+ uniform mat4 u_matrix;
3
+ attribute vec4 a_color;
4
+ varying vec4 v_color;
5
+
6
+ void main()
7
+ {
8
+ vec4 temp = u_matrix * a_position;
9
+ temp.z = -1.0 * temp.z;
10
+ float dist = 4.0;
11
+ 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));
12
+
13
+ v_color = a_color;
14
14
  }
@@ -1,14 +1,14 @@
1
- attribute vec4 a_position;
2
- uniform mat4 u_matrix;
3
- attribute vec4 a_normal;
4
- varying vec3 v_normal;
5
-
6
- void main()
7
- {
8
- vec4 temp = u_matrix * a_position;
9
- temp.z = -1.0 * temp.z;
10
- float dist = 4.0;
11
- 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));
12
-
13
- v_normal = normalize(vec3(a_normal));
1
+ attribute vec4 a_position;
2
+ uniform mat4 u_matrix;
3
+ attribute vec4 a_normal;
4
+ varying vec3 v_normal;
5
+
6
+ void main()
7
+ {
8
+ vec4 temp = u_matrix * a_position;
9
+ temp.z = -1.0 * temp.z;
10
+ float dist = 4.0;
11
+ 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));
12
+
13
+ v_normal = normalize(vec3(a_normal));
14
14
  }
@@ -1,14 +1,14 @@
1
- attribute vec4 a_position;
2
- uniform mat4 u_matrix;
3
- attribute vec2 a_textcoord;
4
- varying vec2 v_textcoord;
5
-
6
- void main()
7
- {
8
- vec4 temp = u_matrix * a_position;
9
- temp.z = -1.0 * temp.z;
10
- float dist = 4.0;
11
- 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));
12
-
13
- v_textcoord = a_textcoord;
1
+ attribute vec4 a_position;
2
+ uniform mat4 u_matrix;
3
+ attribute vec2 a_textcoord;
4
+ varying vec2 v_textcoord;
5
+
6
+ void main()
7
+ {
8
+ vec4 temp = u_matrix * a_position;
9
+ temp.z = -1.0 * temp.z;
10
+ float dist = 4.0;
11
+ 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));
12
+
13
+ v_textcoord = a_textcoord;
14
14
  }
package/src/throttle.ts CHANGED
@@ -1,52 +1,52 @@
1
- import type throttleOptionType from '../types/throttleOption'
2
-
3
- import mergeOption from './common/mergeOption'
4
-
5
- export default function (callback: Function, option: throttleOptionType = {}) {
6
-
7
- // 校对缺省值
8
- option = mergeOption(option, <throttleOptionType>{
9
- time: 200,
10
- keep: false,
11
- opportunity: "end"
12
- })
13
-
14
- let hadInterval = false
15
- let hadClick = false
16
- let oneClick = false
17
-
18
- let arg: any
19
- return function () {
20
- let _this = this
21
- arg = arguments
22
-
23
- // 如果前置任务都完成了
24
- if (!hadInterval) {
25
- if (option.opportunity != 'end') {
26
- callback.apply(_this, arg)
27
- }
28
- hadInterval = true
29
-
30
- let interval = setInterval(() => {
31
- if (hadClick) {
32
- if (!option.keep) {
33
- callback.apply(_this, arg)
34
- }
35
- } else {
36
- if (option.opportunity != 'begin') {
37
- if (oneClick || option.opportunity == 'end') callback.apply(_this, arg)
38
- }
39
- hadInterval = false
40
- oneClick = false
41
- clearInterval(interval)
42
- }
43
- hadClick = false
44
- }, option.time)
45
- } else {
46
- hadClick = true
47
- oneClick = true
48
- }
49
-
50
- }
51
-
1
+ import type throttleOptionType from '../types/throttleOption'
2
+
3
+ import mergeOption from './common/mergeOption'
4
+
5
+ export default function (callback: Function, option: throttleOptionType = {}) {
6
+
7
+ // 校对缺省值
8
+ option = mergeOption(option, <throttleOptionType>{
9
+ time: 200,
10
+ keep: false,
11
+ opportunity: "end"
12
+ })
13
+
14
+ let hadInterval = false
15
+ let hadClick = false
16
+ let oneClick = false
17
+
18
+ let arg: any
19
+ return function () {
20
+ let _this = this
21
+ arg = arguments
22
+
23
+ // 如果前置任务都完成了
24
+ if (!hadInterval) {
25
+ if (option.opportunity != 'end') {
26
+ callback.apply(_this, arg)
27
+ }
28
+ hadInterval = true
29
+
30
+ let interval = setInterval(() => {
31
+ if (hadClick) {
32
+ if (!option.keep) {
33
+ callback.apply(_this, arg)
34
+ }
35
+ } else {
36
+ if (option.opportunity != 'begin') {
37
+ if (oneClick || option.opportunity == 'end') callback.apply(_this, arg)
38
+ }
39
+ hadInterval = false
40
+ oneClick = false
41
+ clearInterval(interval)
42
+ }
43
+ hadClick = false
44
+ }, option.time)
45
+ } else {
46
+ hadClick = true
47
+ oneClick = true
48
+ }
49
+
50
+ }
51
+
52
52
  }