vislite 0.5.2-alpha.1 → 0.5.2

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 +143 -137
  4. package/LICENSE +20 -20
  5. package/README.md +69 -69
  6. package/lib/Buffer/index.umd.js +36 -36
  7. package/lib/Buffer/index.umd.min.js +2 -2
  8. package/lib/Canvas/index.umd.js +650 -650
  9. package/lib/Canvas/index.umd.min.js +2 -2
  10. package/lib/Cardinal/index.umd.js +91 -91
  11. package/lib/Cardinal/index.umd.min.js +2 -2
  12. package/lib/Eoap/index.umd.js +34 -34
  13. package/lib/Eoap/index.umd.min.js +2 -2
  14. package/lib/Geometry/index.umd.js +142 -142
  15. package/lib/Geometry/index.umd.min.js +2 -2
  16. package/lib/Hermite/index.umd.js +36 -36
  17. package/lib/Hermite/index.umd.min.js +2 -2
  18. package/lib/Matrix4/index.umd.js +119 -119
  19. package/lib/Matrix4/index.umd.min.js +2 -2
  20. package/lib/Mercator/index.umd.js +20 -20
  21. package/lib/Mercator/index.umd.min.js +2 -2
  22. package/lib/OralCanvas/index.es.js +598 -598
  23. package/lib/OralCanvas/index.es.min.js +2 -2
  24. package/lib/OralWebGL/index.es.js +532 -532
  25. package/lib/OralWebGL/index.es.min.js +3 -3
  26. package/lib/SVG/index.umd.js +470 -405
  27. package/lib/SVG/index.umd.min.js +3 -3
  28. package/lib/Shader/index.umd.js +69 -69
  29. package/lib/Shader/index.umd.min.js +3 -3
  30. package/lib/Texture/index.umd.js +53 -53
  31. package/lib/Texture/index.umd.min.js +2 -2
  32. package/lib/TreeLayout/index.umd.js +363 -363
  33. package/lib/TreeLayout/index.umd.min.js +2 -2
  34. package/lib/WebGL/index.umd.js +579 -579
  35. package/lib/WebGL/index.umd.min.js +3 -3
  36. package/lib/animation/index.umd.js +72 -72
  37. package/lib/animation/index.umd.min.js +2 -2
  38. package/lib/formatColor/index.umd.js +40 -40
  39. package/lib/formatColor/index.umd.min.js +2 -2
  40. package/lib/getLoopColors/index.umd.js +36 -36
  41. package/lib/getLoopColors/index.umd.min.js +2 -2
  42. package/lib/getWebGLContext/index.umd.js +44 -44
  43. package/lib/getWebGLContext/index.umd.min.js +2 -2
  44. package/lib/index.umd.js +2744 -2662
  45. package/lib/index.umd.min.js +3 -3
  46. package/lib/move/index.umd.js +27 -0
  47. package/lib/move/index.umd.min.js +11 -0
  48. package/lib/resizeObserver/index.umd.js +29 -29
  49. package/lib/resizeObserver/index.umd.min.js +2 -2
  50. package/lib/rotate/index.umd.js +8 -8
  51. package/lib/rotate/index.umd.min.js +2 -2
  52. package/lib/ruler/index.umd.js +126 -126
  53. package/lib/ruler/index.umd.min.js +2 -2
  54. package/lib/scale/index.umd.js +26 -0
  55. package/lib/scale/index.umd.min.js +11 -0
  56. package/lib/throttle/index.umd.js +49 -49
  57. package/lib/throttle/index.umd.min.js +2 -2
  58. package/lib/viewHandler/index.umd.js +120 -120
  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 +2 -2
  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 -72
  84. package/package/move/index.ts +3 -0
  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 +3 -0
  89. package/package/throttle/index.ts +2 -2
  90. package/package/viewHandler/index.ts +2 -2
  91. package/package.json +66 -66
  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 +76 -76
  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/TreeLayout/index.ts +186 -186
  103. package/src/WebGL.ts +66 -66
  104. package/src/animation.ts +98 -98
  105. package/src/common/assemble.ts +22 -22
  106. package/src/common/canvas/arc.ts +50 -50
  107. package/src/common/canvas/config.ts +158 -158
  108. package/src/common/canvas/gradient.ts +29 -29
  109. package/src/common/canvas/index.ts +168 -168
  110. package/src/common/canvas/painter.ts +426 -426
  111. package/src/common/canvas/texts.ts +18 -18
  112. package/src/common/geometry/prism-horizontal.ts +33 -33
  113. package/src/common/geometry/prism-vertical.ts +40 -40
  114. package/src/common/geometry/sphere-fragment.ts +39 -39
  115. package/src/common/geometry/tool/circle.ts +11 -11
  116. package/src/common/mergeOption.ts +6 -6
  117. package/src/common/setStyle.ts +5 -5
  118. package/src/common/svg/config.ts +186 -174
  119. package/src/common/svg/gradient.ts +63 -0
  120. package/src/common/svg/index.ts +356 -344
  121. package/src/common/svg/tool.ts +44 -44
  122. package/src/common/tree/index.ts +25 -25
  123. package/src/common/tree/toInnerTree.ts +56 -56
  124. package/src/common/tree/toPlainTree.ts +131 -131
  125. package/src/common/webgl/buffer.ts +79 -79
  126. package/src/common/webgl/doDraw.ts +108 -108
  127. package/src/common/webgl/getColorFactory.ts +26 -26
  128. package/src/common/webgl/getShader.ts +48 -48
  129. package/src/common/webgl/getTexture.ts +11 -11
  130. package/src/common/webgl/getWebGLContext.ts +27 -27
  131. package/src/common/webgl/index.ts +223 -223
  132. package/src/common/webgl/shader.ts +75 -75
  133. package/src/common/webgl/texture.ts +96 -96
  134. package/src/formatColor.ts +44 -44
  135. package/src/getLoopColors.ts +42 -42
  136. package/src/interpolation/Cardinal.ts +110 -110
  137. package/src/interpolation/Hermite.ts +65 -65
  138. package/src/move.ts +8 -0
  139. package/src/resizeObserver.ts +36 -36
  140. package/src/rotate.ts +7 -7
  141. package/src/ruler.ts +188 -188
  142. package/src/scale.ts +7 -0
  143. package/src/shader/fsColor.c +7 -7
  144. package/src/shader/fsColors.c +7 -7
  145. package/src/shader/fsCube.c +8 -8
  146. package/src/shader/fsImage.c +8 -8
  147. package/src/shader/vsColor.c +17 -17
  148. package/src/shader/vsColors.c +13 -13
  149. package/src/shader/vsCube.c +13 -13
  150. package/src/shader/vsImage.c +13 -13
  151. package/src/throttle.ts +51 -51
  152. package/src/viewHandler.ts +158 -158
  153. package/types/Buffer.d.ts +23 -23
  154. package/types/Canvas.d.ts +300 -300
  155. package/types/CanvasConfig.d.ts +106 -106
  156. package/types/CanvasOption.d.ts +7 -7
  157. package/types/Cardinal.d.ts +13 -13
  158. package/types/Geometry.d.ts +40 -40
  159. package/types/GeometryOption.d.ts +11 -11
  160. package/types/GeometryResult.d.ts +18 -18
  161. package/types/Gradient.d.ts +14 -14
  162. package/types/Hermite.d.ts +18 -18
  163. package/types/Map.d.ts +9 -9
  164. package/types/Matrix4.d.ts +42 -42
  165. package/types/Object3D.d.ts +114 -114
  166. package/types/SVG.d.ts +238 -215
  167. package/types/SVGConfig.d.ts +76 -76
  168. package/types/Scene3D.d.ts +6 -6
  169. package/types/Shader.d.ts +21 -21
  170. package/types/Texture.d.ts +16 -16
  171. package/types/Tree.d.ts +69 -69
  172. package/types/TreeConfig.d.ts +24 -24
  173. package/types/TreeLayout.d.ts +54 -54
  174. package/types/TreeOption.d.ts +48 -48
  175. package/types/WebGL.d.ts +38 -38
  176. package/types/WebGLOption.d.ts +7 -7
  177. package/types/animation.d.ts +6 -6
  178. package/types/formatColor.d.ts +2 -2
  179. package/types/getLoopColors.d.ts +2 -2
  180. package/types/getWebGLContext.d.ts +2 -2
  181. package/types/index.d.ts +175 -169
  182. package/types/move.d.ts +3 -0
  183. package/types/painterConfig.d.ts +2 -2
  184. package/types/resizeObserver.d.ts +2 -2
  185. package/types/rotate.d.ts +2 -2
  186. package/types/ruler.d.ts +7 -7
  187. package/types/scale.d.ts +3 -0
  188. package/types/throttle.d.ts +4 -4
  189. package/types/throttleOption.d.ts +21 -21
  190. package/types/viewHandler.d.ts +13 -13
  191. package/uni-app/ui-canvas.vue +226 -226
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.5.2-alpha.1
2
+ * VISLite JavaScript Library v0.5.2
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Thu Oct 12 2023 15:44:35 GMT+0800 (China Standard Time)
9
+ * Publish Date: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -14,124 +14,124 @@
14
14
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.VISLite_viewHandler = factory());
15
15
  })(this, (function () { 'use strict';
16
16
 
17
- var mousePosition = function (el, event) {
18
- var bounding = el.getBoundingClientRect();
19
- return {
20
- "x": event.clientX - bounding.left,
21
- "y": event.clientY - bounding.top
22
- };
23
- };
24
- var getKeyString = function (event) {
25
- return {
26
- 37: "left",
27
- 38: "up",
28
- 39: "right",
29
- 40: "down",
30
- }[event.keyCode || event.which];
31
- };
32
- function viewHandler (callback) {
33
- var el = document.getElementsByTagName('body')[0];
34
- el.addEventListener("keydown", function (event) {
35
- var keyCode = getKeyString(event);
36
- if (keyCode == 'up') {
37
- callback({
38
- type: "lookUp",
39
- normal: [],
40
- value: 0.1,
41
- event: event
42
- });
43
- }
44
- else if (keyCode == 'down') {
45
- callback({
46
- type: "lookDown",
47
- normal: [],
48
- value: 0.1,
49
- event: event
50
- });
51
- }
52
- else if (keyCode == 'left') {
53
- callback({
54
- type: "lookLeft",
55
- normal: [],
56
- value: 0.1,
57
- event: event
58
- });
59
- }
60
- else if (keyCode == 'right') {
61
- callback({
62
- type: "lookRight",
63
- normal: [],
64
- value: 0.1,
65
- event: event
66
- });
67
- }
68
- });
69
- var mouseP = null;
70
- var doMove = function (event) {
71
- if (mouseP == null) {
72
- callback({
73
- type: "hover",
74
- normal: [],
75
- value: 0,
76
- event: event
77
- });
78
- }
79
- else {
80
- var tempMouseP = mousePosition(el, event);
81
- var normal = [tempMouseP.x - mouseP.x, tempMouseP.y - mouseP.y];
82
- var rotateNormal = [
83
- normal[1],
84
- normal[0],
85
- 0
86
- ];
87
- if (rotateNormal[0] == 0 && rotateNormal[1] == 0)
88
- return;
89
- callback({
90
- type: "rotate",
91
- normal: rotateNormal,
92
- value: (Math.abs(tempMouseP.x - mouseP.x) + Math.abs(tempMouseP.y - mouseP.y)) * 0.01,
93
- event: event
94
- });
95
- mouseP = tempMouseP;
96
- }
97
- };
98
- el.addEventListener("mousedown", function (event) {
99
- mouseP = mousePosition(el, event);
100
- });
101
- el.addEventListener("mouseup", function (event) {
102
- mouseP = null;
103
- });
104
- el.addEventListener("mousemove", function (event) {
105
- doMove(event);
106
- });
107
- el.addEventListener("touchend", function (event) {
108
- mouseP = null;
109
- });
110
- el.addEventListener("touchstart", function (event) {
111
- mouseP = mousePosition(el, event);
112
- });
113
- el.addEventListener("touchmove", function (event) {
114
- doMove(event.touches[0]);
115
- });
116
- var doScale = function (value, event) {
117
- if (value == 0)
118
- return;
119
- var baseTimes = 0.899;
120
- callback({
121
- type: "scale",
122
- value: value < 0 ? baseTimes : 2 - baseTimes,
123
- normal: [],
124
- event: event
125
- });
126
- };
127
- el.addEventListener("mousewheel", function (event) {
128
- doScale(event.wheelDelta, event);
129
- });
130
- if (window.addEventListener) {
131
- window.addEventListener('DOMMouseScroll', function (event) {
132
- doScale(-1 * event.detail, event);
133
- }, false);
134
- }
17
+ var mousePosition = function (el, event) {
18
+ var bounding = el.getBoundingClientRect();
19
+ return {
20
+ "x": event.clientX - bounding.left,
21
+ "y": event.clientY - bounding.top
22
+ };
23
+ };
24
+ var getKeyString = function (event) {
25
+ return {
26
+ 37: "left",
27
+ 38: "up",
28
+ 39: "right",
29
+ 40: "down",
30
+ }[event.keyCode || event.which];
31
+ };
32
+ function viewHandler (callback) {
33
+ var el = document.getElementsByTagName('body')[0];
34
+ el.addEventListener("keydown", function (event) {
35
+ var keyCode = getKeyString(event);
36
+ if (keyCode == 'up') {
37
+ callback({
38
+ type: "lookUp",
39
+ normal: [],
40
+ value: 0.1,
41
+ event: event
42
+ });
43
+ }
44
+ else if (keyCode == 'down') {
45
+ callback({
46
+ type: "lookDown",
47
+ normal: [],
48
+ value: 0.1,
49
+ event: event
50
+ });
51
+ }
52
+ else if (keyCode == 'left') {
53
+ callback({
54
+ type: "lookLeft",
55
+ normal: [],
56
+ value: 0.1,
57
+ event: event
58
+ });
59
+ }
60
+ else if (keyCode == 'right') {
61
+ callback({
62
+ type: "lookRight",
63
+ normal: [],
64
+ value: 0.1,
65
+ event: event
66
+ });
67
+ }
68
+ });
69
+ var mouseP = null;
70
+ var doMove = function (event) {
71
+ if (mouseP == null) {
72
+ callback({
73
+ type: "hover",
74
+ normal: [],
75
+ value: 0,
76
+ event: event
77
+ });
78
+ }
79
+ else {
80
+ var tempMouseP = mousePosition(el, event);
81
+ var normal = [tempMouseP.x - mouseP.x, tempMouseP.y - mouseP.y];
82
+ var rotateNormal = [
83
+ normal[1],
84
+ normal[0],
85
+ 0
86
+ ];
87
+ if (rotateNormal[0] == 0 && rotateNormal[1] == 0)
88
+ return;
89
+ callback({
90
+ type: "rotate",
91
+ normal: rotateNormal,
92
+ value: (Math.abs(tempMouseP.x - mouseP.x) + Math.abs(tempMouseP.y - mouseP.y)) * 0.01,
93
+ event: event
94
+ });
95
+ mouseP = tempMouseP;
96
+ }
97
+ };
98
+ el.addEventListener("mousedown", function (event) {
99
+ mouseP = mousePosition(el, event);
100
+ });
101
+ el.addEventListener("mouseup", function (event) {
102
+ mouseP = null;
103
+ });
104
+ el.addEventListener("mousemove", function (event) {
105
+ doMove(event);
106
+ });
107
+ el.addEventListener("touchend", function (event) {
108
+ mouseP = null;
109
+ });
110
+ el.addEventListener("touchstart", function (event) {
111
+ mouseP = mousePosition(el, event);
112
+ });
113
+ el.addEventListener("touchmove", function (event) {
114
+ doMove(event.touches[0]);
115
+ });
116
+ var doScale = function (value, event) {
117
+ if (value == 0)
118
+ return;
119
+ var baseTimes = 0.899;
120
+ callback({
121
+ type: "scale",
122
+ value: value < 0 ? baseTimes : 2 - baseTimes,
123
+ normal: [],
124
+ event: event
125
+ });
126
+ };
127
+ el.addEventListener("mousewheel", function (event) {
128
+ doScale(event.wheelDelta, event);
129
+ });
130
+ if (window.addEventListener) {
131
+ window.addEventListener('DOMMouseScroll', function (event) {
132
+ doScale(-1 * event.detail, event);
133
+ }, false);
134
+ }
135
135
  }
136
136
 
137
137
  return viewHandler;
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.5.2-alpha.1
2
+ * VISLite JavaScript Library v0.5.2
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Thu Oct 12 2023 15:44:35 GMT+0800 (China Standard Time)
9
+ * Publish Date: Sat Nov 04 2023 09:25:44 GMT+0800 (中国标准时间)
10
10
  */
11
11
  var e,n;e=this,n=function(){"use strict";var e=function(e,n){var t=e.getBoundingClientRect();return{x:n.clientX-t.left,y:n.clientY-t.top}};return function(n){var t=document.getElementsByTagName("body")[0];t.addEventListener("keydown",(function(e){var t=function(e){return{37:"left",38:"up",39:"right",40:"down"}[e.keyCode||e.which]}(e);"up"==t?n({type:"lookUp",normal:[],value:.1,event:e}):"down"==t?n({type:"lookDown",normal:[],value:.1,event:e}):"left"==t?n({type:"lookLeft",normal:[],value:.1,event:e}):"right"==t&&n({type:"lookRight",normal:[],value:.1,event:e})}));var o=null,i=function(i){if(null==o)n({type:"hover",normal:[],value:0,event:i});else{var u=e(t,i),l=[u.x-o.x,u.y-o.y],a=[l[1],l[0],0];if(0==a[0]&&0==a[1])return;n({type:"rotate",normal:a,value:.01*(Math.abs(u.x-o.x)+Math.abs(u.y-o.y)),event:i}),o=u}};t.addEventListener("mousedown",(function(n){o=e(t,n)})),t.addEventListener("mouseup",(function(e){o=null})),t.addEventListener("mousemove",(function(e){i(e)})),t.addEventListener("touchend",(function(e){o=null})),t.addEventListener("touchstart",(function(n){o=e(t,n)})),t.addEventListener("touchmove",(function(e){i(e.touches[0])}));var u=function(e,t){0!=e&&n({type:"scale",value:e<0?.899:1.101,normal:[],event:t})};t.addEventListener("mousewheel",(function(e){u(e.wheelDelta,e)})),window.addEventListener&&window.addEventListener("DOMMouseScroll",(function(e){u(-1*e.detail,e)}),!1)}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).VISLite_viewHandler=n();
@@ -1,107 +1,107 @@
1
- import OralCanvas from "../../lib/OralCanvas/index.es.js";
2
-
3
- let dpr = wx.getSystemInfoSync().pixelRatio;
4
-
5
- Component({
6
- properties: {
7
- width: {
8
- type: Number,
9
- default: 300
10
- },
11
- height: {
12
- type: Number,
13
- default: 150
14
- },
15
- region: {
16
- type: Boolean,
17
- default: true
18
- },
19
- touchstart: {
20
- type: Function,
21
- default: () => { }
22
- }
23
- },
24
- data: {
25
- help: {}
26
- },
27
- lifetimes: {
28
- ready() {
29
-
30
- }
31
- },
32
- methods: {
33
- fetch() {
34
- return new Promise((resolve, reject) => {
35
-
36
- let getCanvasContext = (idName, doback) => {
37
- if (idName != 'region' || this.data.region) {
38
- const query = wx.createSelectorQuery().in(this);
39
- query.select('#' + idName)
40
- .fields({ node: true, size: true })
41
- .exec((res) => {
42
- const canvas = res[0].node;
43
- const ctx = canvas.getContext('2d');
44
-
45
- canvas.width = res[0].width * (idName == "region" ? 1 : dpr);
46
- canvas.height = res[0].height * (idName == "region" ? 1 : dpr);
47
-
48
- if (idName != "region") {
49
- ctx.scale(dpr, dpr);
50
- }
51
-
52
- doback(ctx);
53
- });
54
- } else {
55
- doback(null);
56
- }
57
- };
58
-
59
- getCanvasContext("painter", painter => {
60
- getCanvasContext("region", region => {
61
- this.data.help.instance = new OralCanvas({
62
- getContext() {
63
- return painter;
64
- }
65
- }, this.data.region ? {
66
- getContext() {
67
- return region;
68
- }
69
- } : null);
70
-
71
- this.data.help.instance.toDataURL = () => {
72
- return new Promise((resolveUrl) => {
73
- wx.canvasToTempFilePath({
74
- canvasId: "painter",
75
- success: function (e) {
76
- resolveUrl(e.tempFilePath);
77
- },
78
- }, this);
79
- })
80
- };
81
- resolve(this.data.help.instance);
82
- });
83
- });
84
-
85
- });
86
- },
87
- doit(event, doback) {
88
- let x = event.touches[0].x;
89
- let y = event.touches[0].y;
90
-
91
- this.data.help.instance.getRegion(x, y).then((regionName) => {
92
- // 兼容旧语法
93
- if (doback) doback(regionName);
94
-
95
- this.triggerEvent('dotouchstart', {
96
- name: regionName,
97
- x: x,
98
- y: y
99
- })
100
- });
101
- },
102
- doitstart(event) {
103
- this.doit(event, this.data.touchstart);
104
- }
105
- }
106
-
107
- });
1
+ import OralCanvas from "../../lib/OralCanvas/index.es.js";
2
+
3
+ let dpr = wx.getSystemInfoSync().pixelRatio;
4
+
5
+ Component({
6
+ properties: {
7
+ width: {
8
+ type: Number,
9
+ default: 300
10
+ },
11
+ height: {
12
+ type: Number,
13
+ default: 150
14
+ },
15
+ region: {
16
+ type: Boolean,
17
+ default: true
18
+ },
19
+ touchstart: {
20
+ type: Function,
21
+ default: () => { }
22
+ }
23
+ },
24
+ data: {
25
+ help: {}
26
+ },
27
+ lifetimes: {
28
+ ready() {
29
+
30
+ }
31
+ },
32
+ methods: {
33
+ fetch() {
34
+ return new Promise((resolve, reject) => {
35
+
36
+ let getCanvasContext = (idName, doback) => {
37
+ if (idName != 'region' || this.data.region) {
38
+ const query = wx.createSelectorQuery().in(this);
39
+ query.select('#' + idName)
40
+ .fields({ node: true, size: true })
41
+ .exec((res) => {
42
+ const canvas = res[0].node;
43
+ const ctx = canvas.getContext('2d');
44
+
45
+ canvas.width = res[0].width * (idName == "region" ? 1 : dpr);
46
+ canvas.height = res[0].height * (idName == "region" ? 1 : dpr);
47
+
48
+ if (idName != "region") {
49
+ ctx.scale(dpr, dpr);
50
+ }
51
+
52
+ doback(ctx);
53
+ });
54
+ } else {
55
+ doback(null);
56
+ }
57
+ };
58
+
59
+ getCanvasContext("painter", painter => {
60
+ getCanvasContext("region", region => {
61
+ this.data.help.instance = new OralCanvas({
62
+ getContext() {
63
+ return painter;
64
+ }
65
+ }, this.data.region ? {
66
+ getContext() {
67
+ return region;
68
+ }
69
+ } : null);
70
+
71
+ this.data.help.instance.toDataURL = () => {
72
+ return new Promise((resolveUrl) => {
73
+ wx.canvasToTempFilePath({
74
+ canvasId: "painter",
75
+ success: function (e) {
76
+ resolveUrl(e.tempFilePath);
77
+ },
78
+ }, this);
79
+ })
80
+ };
81
+ resolve(this.data.help.instance);
82
+ });
83
+ });
84
+
85
+ });
86
+ },
87
+ doit(event, doback) {
88
+ let x = event.touches[0].x;
89
+ let y = event.touches[0].y;
90
+
91
+ this.data.help.instance.getRegion(x, y).then((regionName) => {
92
+ // 兼容旧语法
93
+ if (doback) doback(regionName);
94
+
95
+ this.triggerEvent('dotouchstart', {
96
+ name: regionName,
97
+ x: x,
98
+ y: y
99
+ })
100
+ });
101
+ },
102
+ doitstart(event) {
103
+ this.doit(event, this.data.touchstart);
104
+ }
105
+ }
106
+
107
+ });
@@ -1,4 +1,4 @@
1
- {
2
- "usingComponents": {},
3
- "component": true
4
- }
1
+ {
2
+ "usingComponents": {},
3
+ "component": true
4
+ }
@@ -1,4 +1,4 @@
1
- <view>
2
- <canvas type="2d" id="painter" style='width:{{width}}px;height:{{height}}px;' bindtouchstart="doitstart"></canvas>
3
- <canvas wx:if="{{region}}" type="2d" id="region" style='width:{{width}}px;height:{{height}}px;' class="region"></canvas>
4
- </view>
1
+ <view>
2
+ <canvas type="2d" id="painter" style='width:{{width}}px;height:{{height}}px;' bindtouchstart="doitstart"></canvas>
3
+ <canvas wx:if="{{region}}" type="2d" id="region" style='width:{{width}}px;height:{{height}}px;' class="region"></canvas>
4
+ </view>
@@ -1,5 +1,5 @@
1
- /* 辅助的区域不应该可以看见 */
2
- .region {
3
- position: fixed;
4
- left: 50000px;
5
- }
1
+ /* 辅助的区域不应该可以看见 */
2
+ .region {
3
+ position: fixed;
4
+ left: 50000px;
5
+ }
@@ -1,3 +1,3 @@
1
- import Buffer from '../../src/common/webgl/buffer'
2
-
1
+ import Buffer from '../../src/common/webgl/buffer'
2
+
3
3
  export default Buffer
@@ -1,3 +1,3 @@
1
- import Canvas from "../../src/Canvas"
2
-
1
+ import Canvas from "../../src/Canvas"
2
+
3
3
  export default Canvas
@@ -1,3 +1,3 @@
1
- import Cardinal from "../../src/interpolation/Cardinal"
2
-
1
+ import Cardinal from "../../src/interpolation/Cardinal"
2
+
3
3
  export default Cardinal
@@ -1,3 +1,3 @@
1
- import Eoap from "../../src/Eoap"
2
-
1
+ import Eoap from "../../src/Eoap"
2
+
3
3
  export default Eoap
@@ -1,3 +1,3 @@
1
- import Geometry from "../../src/Geometry"
2
-
1
+ import Geometry from "../../src/Geometry"
2
+
3
3
  export default Geometry
@@ -1,3 +1,3 @@
1
- import Hermite from "../../src/interpolation/Hermite"
2
-
1
+ import Hermite from "../../src/interpolation/Hermite"
2
+
3
3
  export default Hermite
@@ -1,3 +1,3 @@
1
- import Matrix4 from "../../src/Matrix4/index"
2
-
1
+ import Matrix4 from "../../src/Matrix4/index"
2
+
3
3
  export default Matrix4
@@ -1,3 +1,3 @@
1
- import Mercator from "../../src/Mercator"
2
-
1
+ import Mercator from "../../src/Mercator"
2
+
3
3
  export default Mercator
@@ -1,3 +1,3 @@
1
- import _Canvas from "../../src/common/canvas/index"
2
-
1
+ import _Canvas from "../../src/common/canvas/index"
2
+
3
3
  export default _Canvas
@@ -1,3 +1,3 @@
1
- import _WebGL from "../../src/common/webgl/index"
2
-
1
+ import _WebGL from "../../src/common/webgl/index"
2
+
3
3
  export default _WebGL
@@ -1,3 +1,3 @@
1
- import SVG from "../../src/SVG"
2
-
1
+ import SVG from "../../src/SVG"
2
+
3
3
  export default SVG