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.
- package/.editorconfig +18 -18
- package/AUTHORS.txt +6 -6
- package/CHANGELOG +13 -1
- package/LICENSE +20 -20
- package/README.md +41 -2
- package/lib/Buffer/index.umd.js +2 -2
- package/lib/Buffer/index.umd.min.js +2 -2
- package/lib/Canvas/index.umd.js +8 -2
- package/lib/Canvas/index.umd.min.js +3 -3
- package/lib/Cardinal/index.umd.js +2 -2
- package/lib/Cardinal/index.umd.min.js +2 -2
- package/lib/Eoap/index.umd.js +2 -2
- package/lib/Eoap/index.umd.min.js +2 -2
- package/lib/Geometry/index.umd.js +2 -2
- package/lib/Geometry/index.umd.min.js +2 -2
- package/lib/Hermite/index.umd.js +2 -2
- package/lib/Hermite/index.umd.min.js +2 -2
- package/lib/Matrix4/index.umd.js +14 -8
- package/lib/Matrix4/index.umd.min.js +3 -3
- package/lib/Mercator/index.umd.js +2 -2
- package/lib/Mercator/index.umd.min.js +2 -2
- package/lib/OralCanvas/index.es.js +8 -2
- package/lib/OralCanvas/index.es.min.js +3 -3
- package/lib/OralWebGL/index.es.js +22 -16
- package/lib/OralWebGL/index.es.min.js +3 -3
- package/lib/SVG/index.umd.js +2 -2
- package/lib/SVG/index.umd.min.js +2 -2
- package/lib/Shader/index.umd.js +10 -10
- package/lib/Shader/index.umd.min.js +3 -3
- package/lib/Texture/index.umd.js +2 -2
- package/lib/Texture/index.umd.min.js +2 -2
- package/lib/TreeLayout/index.umd.js +2 -2
- package/lib/TreeLayout/index.umd.min.js +2 -2
- package/lib/WebGL/index.umd.js +22 -16
- package/lib/WebGL/index.umd.min.js +3 -3
- package/lib/animation/index.umd.js +2 -2
- package/lib/animation/index.umd.min.js +2 -2
- package/lib/formatColor/index.umd.js +2 -2
- package/lib/formatColor/index.umd.min.js +2 -2
- package/lib/getLoopColors/index.umd.js +2 -2
- package/lib/getLoopColors/index.umd.min.js +2 -2
- package/lib/getWebGLContext/index.umd.js +2 -2
- package/lib/getWebGLContext/index.umd.min.js +2 -2
- package/lib/index.umd.js +40 -16
- package/lib/index.umd.min.js +3 -3
- package/lib/move/index.umd.js +2 -2
- package/lib/move/index.umd.min.js +2 -2
- package/lib/resizeObserver/index.umd.js +2 -2
- package/lib/resizeObserver/index.umd.min.js +2 -2
- package/lib/rotate/index.umd.js +2 -2
- package/lib/rotate/index.umd.min.js +2 -2
- package/lib/ruler/index.umd.js +14 -2
- package/lib/ruler/index.umd.min.js +3 -3
- package/lib/scale/index.umd.js +2 -2
- package/lib/scale/index.umd.min.js +2 -2
- package/lib/throttle/index.umd.js +2 -2
- package/lib/throttle/index.umd.min.js +2 -2
- package/lib/viewHandler/index.umd.js +2 -2
- package/lib/viewHandler/index.umd.min.js +2 -2
- package/miniprogram/ui-canvas/index.js +107 -107
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/Buffer/index.ts +2 -2
- package/package/Canvas/index.ts +2 -2
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Geometry/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +2 -2
- package/package/OralCanvas/index.ts +2 -2
- package/package/OralWebGL/index.ts +2 -2
- package/package/SVG/index.ts +2 -2
- package/package/Shader/index.ts +39 -39
- package/package/Texture/index.ts +2 -2
- package/package/TreeLayout/index.ts +1 -1
- package/package/WebGL/index.ts +2 -2
- package/package/animation/index.ts +2 -2
- package/package/formatColor/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/getWebGLContext/index.ts +39 -39
- package/package/index.ts +76 -76
- package/package/move/index.ts +2 -2
- package/package/resizeObserver/index.ts +2 -2
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/scale/index.ts +2 -2
- package/package/throttle/index.ts +2 -2
- package/package/viewHandler/index.ts +2 -2
- package/package.json +1 -1
- package/src/Canvas.ts +67 -67
- package/src/Eoap.ts +66 -66
- package/src/Geometry.ts +82 -82
- package/src/Matrix4/index.ts +14 -6
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +27 -27
- package/src/SVG.ts +24 -24
- package/src/WebGL.ts +66 -66
- package/src/animation.ts +98 -98
- package/src/common/assemble.ts +22 -22
- package/src/common/canvas/arc.ts +50 -50
- package/src/common/canvas/config.ts +158 -158
- package/src/common/canvas/gradient.ts +29 -29
- package/src/common/canvas/index.ts +147 -139
- package/src/common/canvas/painter.ts +426 -426
- package/src/common/canvas/texts.ts +18 -18
- package/src/common/geometry/prism-horizontal.ts +33 -33
- package/src/common/geometry/prism-vertical.ts +40 -40
- package/src/common/geometry/sphere-fragment.ts +39 -39
- package/src/common/geometry/tool/circle.ts +11 -11
- package/src/common/mergeOption.ts +6 -6
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +186 -186
- package/src/common/svg/gradient.ts +63 -63
- package/src/common/svg/index.ts +356 -356
- package/src/common/svg/tool.ts +44 -44
- package/src/common/tree/index.ts +25 -25
- package/src/common/tree/toInnerTree.ts +56 -56
- package/src/common/tree/toPlainTree.ts +131 -131
- package/src/common/webgl/buffer.ts +79 -79
- package/src/common/webgl/doDraw.ts +108 -108
- package/src/common/webgl/getColorFactory.ts +26 -26
- package/src/common/webgl/getShader.ts +48 -48
- package/src/common/webgl/getTexture.ts +11 -11
- package/src/common/webgl/getWebGLContext.ts +27 -27
- package/src/common/webgl/index.ts +223 -223
- package/src/common/webgl/shader.ts +75 -75
- package/src/common/webgl/texture.ts +96 -96
- package/src/formatColor.ts +44 -44
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +110 -110
- package/src/interpolation/Hermite.ts +65 -65
- package/src/move.ts +7 -7
- package/src/resizeObserver.ts +36 -36
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +23 -1
- package/src/scale.ts +6 -6
- package/src/shader/fsColor.c +7 -7
- package/src/shader/fsColors.c +7 -7
- package/src/shader/fsCube.c +8 -8
- package/src/shader/fsImage.c +8 -8
- package/src/shader/vsColor.c +17 -17
- package/src/shader/vsColors.c +13 -13
- package/src/shader/vsCube.c +13 -13
- package/src/shader/vsImage.c +13 -13
- package/src/throttle.ts +51 -51
- package/src/viewHandler.ts +158 -158
- package/types/Buffer.d.ts +23 -23
- package/types/Canvas.d.ts +8 -0
- package/types/CanvasConfig.d.ts +106 -106
- package/types/CanvasOption.d.ts +7 -7
- package/types/Cardinal.d.ts +13 -13
- package/types/Geometry.d.ts +40 -40
- package/types/GeometryOption.d.ts +11 -11
- package/types/GeometryResult.d.ts +18 -18
- package/types/Gradient.d.ts +14 -14
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +9 -9
- package/types/Matrix4.d.ts +5 -0
- package/types/Object3D.d.ts +114 -114
- package/types/SVG.d.ts +238 -238
- package/types/SVGConfig.d.ts +76 -76
- package/types/Scene3D.d.ts +6 -6
- package/types/Shader.d.ts +21 -21
- package/types/Texture.d.ts +16 -16
- package/types/Tree.d.ts +69 -69
- package/types/TreeConfig.d.ts +24 -24
- package/types/TreeLayout.d.ts +54 -54
- package/types/TreeOption.d.ts +48 -48
- package/types/WebGL.d.ts +38 -38
- package/types/WebGLOption.d.ts +7 -7
- package/types/animation.d.ts +6 -6
- package/types/formatColor.d.ts +2 -2
- package/types/getLoopColors.d.ts +2 -2
- package/types/getWebGLContext.d.ts +2 -2
- package/types/index.d.ts +175 -175
- package/types/move.d.ts +2 -2
- package/types/painterConfig.d.ts +2 -2
- package/types/resizeObserver.d.ts +2 -2
- package/types/rotate.d.ts +2 -2
- package/types/ruler.d.ts +7 -7
- package/types/scale.d.ts +2 -2
- package/types/throttle.d.ts +4 -4
- package/types/throttleOption.d.ts +21 -21
- package/types/viewHandler.d.ts +13 -13
- package/uni-app/ui-canvas.vue +239 -206
- /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
|
}
|
package/src/resizeObserver.ts
CHANGED
|
@@ -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
|
}
|
package/src/shader/fsColor.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/fsColors.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/fsCube.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/fsImage.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/vsColor.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/vsColors.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/vsCube.c
CHANGED
|
@@ -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
|
}
|
package/src/shader/vsImage.c
CHANGED
|
@@ -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
|
}
|