vislite 0.8.0 → 0.8.1-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 (79) hide show
  1. package/CHANGELOG +212 -209
  2. package/README.md +136 -144
  3. package/lib/Buffer/index.umd.js +36 -36
  4. package/lib/Buffer/index.umd.min.js +2 -2
  5. package/lib/Canvas/index.umd.js +691 -691
  6. package/lib/Canvas/index.umd.min.js +2 -2
  7. package/lib/Cardinal/index.umd.js +91 -91
  8. package/lib/Cardinal/index.umd.min.js +2 -2
  9. package/lib/Eoap/index.umd.js +34 -34
  10. package/lib/Eoap/index.umd.min.js +2 -2
  11. package/lib/Geometry/index.umd.js +286 -286
  12. package/lib/Geometry/index.umd.min.js +2 -2
  13. package/lib/Hermite/index.umd.js +36 -36
  14. package/lib/Hermite/index.umd.min.js +2 -2
  15. package/lib/Matrix4/index.umd.js +125 -125
  16. package/lib/Matrix4/index.umd.min.js +2 -2
  17. package/lib/Mercator/index.umd.js +20 -20
  18. package/lib/Mercator/index.umd.min.js +2 -2
  19. package/lib/OralCanvas/index.es.js +634 -634
  20. package/lib/OralCanvas/index.es.min.js +2 -2
  21. package/lib/OralWebGL/index.es.js +552 -552
  22. package/lib/OralWebGL/index.es.min.js +2 -2
  23. package/lib/SVG/index.umd.js +471 -471
  24. package/lib/SVG/index.umd.min.js +2 -2
  25. package/lib/Shader/index.umd.js +61 -61
  26. package/lib/Shader/index.umd.min.js +2 -2
  27. package/lib/Texture/index.umd.js +54 -54
  28. package/lib/Texture/index.umd.min.js +2 -2
  29. package/lib/TreeLayout/index.umd.js +368 -368
  30. package/lib/TreeLayout/index.umd.min.js +2 -2
  31. package/lib/WebGL/index.umd.js +599 -599
  32. package/lib/WebGL/index.umd.min.js +2 -2
  33. package/lib/animation/index.umd.js +73 -73
  34. package/lib/animation/index.umd.min.js +2 -2
  35. package/lib/formatColor/index.umd.js +40 -40
  36. package/lib/formatColor/index.umd.min.js +2 -2
  37. package/lib/getLoopColors/index.umd.js +36 -36
  38. package/lib/getLoopColors/index.umd.min.js +2 -2
  39. package/lib/getWebGLContext/index.umd.js +63 -63
  40. package/lib/getWebGLContext/index.umd.min.js +2 -2
  41. package/lib/index.umd.js +2955 -2955
  42. package/lib/index.umd.min.js +2 -2
  43. package/lib/move/index.umd.js +8 -8
  44. package/lib/move/index.umd.min.js +2 -2
  45. package/lib/resizeObserver/index.umd.js +30 -30
  46. package/lib/resizeObserver/index.umd.min.js +2 -2
  47. package/lib/rotate/index.umd.js +8 -8
  48. package/lib/rotate/index.umd.min.js +2 -2
  49. package/lib/ruler/index.umd.js +138 -138
  50. package/lib/ruler/index.umd.min.js +2 -2
  51. package/lib/scale/index.umd.js +7 -7
  52. package/lib/scale/index.umd.min.js +2 -2
  53. package/lib/throttle/index.umd.js +49 -49
  54. package/lib/throttle/index.umd.min.js +2 -2
  55. package/lib/viewHandler/index.umd.js +120 -120
  56. package/lib/viewHandler/index.umd.min.js +2 -2
  57. package/miniprogram/ui-canvas/drawImage.js +34 -0
  58. package/miniprogram/ui-canvas/index.js +10 -2
  59. package/package/getWebGLContext/index.ts +40 -40
  60. package/package.json +70 -70
  61. package/src/Canvas.ts +72 -72
  62. package/src/Geometry.ts +210 -210
  63. package/src/WebGL.ts +66 -66
  64. package/src/common/canvas/index.ts +183 -183
  65. package/src/common/canvas/painter.ts +446 -446
  66. package/src/common/geometry/prism-horizontal.ts +50 -50
  67. package/src/common/geometry/prism-vertical.ts +55 -55
  68. package/src/common/geometry/tool/circle.ts +17 -17
  69. package/src/common/geometry/tool/rotateLine.ts +48 -48
  70. package/src/common/geometry/tool/triangles.ts +23 -23
  71. package/src/common/webgl/getWebGLContext.ts +45 -45
  72. package/src/common/webgl/index.ts +227 -227
  73. package/types/Canvas.d.ts +318 -318
  74. package/types/Geometry.d.ts +132 -132
  75. package/types/WebGLOption.d.ts +14 -14
  76. package/types/getWebGLContext.d.ts +4 -4
  77. package/types/ui-canvas.d.ts +4 -4
  78. package/uni-app/drawImage.js +17 -17
  79. package/uni-app/ui-canvas.vue +290 -290
@@ -1,290 +1,290 @@
1
- <template>
2
- <view
3
- :class="cover || isH5 ? 'cover-view' : 'normal-view'"
4
- :style="{ display: 'inline-block' }"
5
- >
6
- <view
7
- v-if="!cover && !isH5"
8
- :class="'view-img view-' + uniqueid"
9
- @touchstart="doitstart"
10
- >
11
- <image
12
- :style="{ width: width + 'px', height: height + 'px' }"
13
- :src="viewImg"
14
- ></image>
15
- </view>
16
-
17
- <!-- #ifdef MP-ALIPAY -->
18
- <canvas
19
- :width="2 * width + 'px'"
20
- :height="2 * height + 'px'"
21
- class="painter"
22
- :id="'painter-' + uniqueid"
23
- @touchstart="doitstart"
24
- :style="[
25
- { width: width + 'px', height: height + 'px' },
26
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
27
- ]"
28
- ></canvas>
29
- <canvas
30
- v-if="region"
31
- class="region"
32
- :id="'region-' + uniqueid"
33
- :style="{
34
- width: width + 'px',
35
- height: height + 'px',
36
- position: 'fixed',
37
- left: '50000px',
38
- }"
39
- ></canvas>
40
- <!-- #endif -->
41
- <!-- #ifdef MP-WEIXIN -->
42
- <canvas
43
- class="painter"
44
- canvas-id="painter"
45
- @touchstart="doitstart"
46
- :style="[
47
- { width: width + 'px', height: height + 'px' },
48
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
49
- ]"
50
- ></canvas>
51
- <canvas
52
- v-if="region"
53
- class="region"
54
- canvas-id="region"
55
- :style="{
56
- width: width + 'px',
57
- height: height + 'px',
58
- position: 'fixed',
59
- left: '50000px',
60
- }"
61
- ></canvas>
62
- <!-- #endif -->
63
- <!-- #ifndef MP-WEIXIN||MP-ALIPAY -->
64
- <canvas
65
- class="painter"
66
- :canvas-id="'painter-' + uniqueid"
67
- @touchstart="doitstart"
68
- :style="[
69
- { width: width + 'px', height: height + 'px' },
70
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
71
- ]"
72
- ></canvas>
73
- <canvas
74
- v-if="region"
75
- class="region"
76
- :canvas-id="'region-' + uniqueid"
77
- :style="{
78
- width: width + 'px',
79
- height: height + 'px',
80
- position: 'fixed',
81
- left: '50000px',
82
- }"
83
- ></canvas>
84
- <!-- #endif -->
85
- </view>
86
- </template>
87
- <script>
88
- import OralCanvas from "../lib/OralCanvas/index.es.js";
89
- import drawImage from "./drawImage.js";
90
- export default {
91
- data() {
92
- return {
93
- uniqueid: (Math.random() * 10000).toFixed(0),
94
- help: {},
95
- viewImg: "",
96
- // #ifdef H5
97
- isH5: true,
98
- // #endif
99
- // #ifndef H5
100
- isH5: false,
101
- // #endif
102
- hadFetch:false
103
- };
104
- },
105
- props: {
106
- width: {
107
- type: Number,
108
- default: 300,
109
- },
110
- height: {
111
- type: Number,
112
- default: 150,
113
- },
114
- touchstart: {
115
- type: Function,
116
- default: () => {},
117
- },
118
- cover: {
119
- type: Boolean,
120
- default: true,
121
- },
122
- region: {
123
- type: Boolean,
124
- default: true,
125
- },
126
- },
127
- methods: {
128
- fetch() {
129
- let painter, region, painterid, regionid;
130
- // #ifdef MP-WEIXIN
131
- painter = uni.createCanvasContext("painter", this);
132
- if (this.region) region = uni.createCanvasContext("region", this);
133
- painterid = "painter";
134
- regionid = "region";
135
- // #endif
136
- // #ifndef MP-WEIXIN
137
- painter = uni.createCanvasContext("painter-" + this.uniqueid, this);
138
- if (this.region)
139
- region = uni.createCanvasContext("region-" + this.uniqueid, this);
140
- painterid = "painter-" + this.uniqueid;
141
- regionid = "region-" + this.uniqueid;
142
- // #endif
143
-
144
- // #ifdef MP-ALIPAY
145
- if(!this.hadFetch) painter.scale(2, 2);
146
- // #endif
147
-
148
- let scaleSize = 1;
149
-
150
- // #ifdef MP-ALIPAY
151
- scaleSize = 2;
152
- // #endif
153
-
154
- let _this = this;
155
- this.help.instance = new OralCanvas(
156
- {
157
- getContext() {
158
- return painter;
159
- },
160
- },
161
- _this.region
162
- ? {
163
- getContext() {
164
- // #ifdef MP-ALIPAY
165
- let getImageData = region.getImageData;
166
- // #endif
167
- region.getImageData = (x, y, width, height) => {
168
- return new Promise((resolve, reject) => {
169
- let options = {
170
- x,
171
- y,
172
- width,
173
- height,
174
- canvasId: regionid,
175
- success: function success(res) {
176
- resolve(res.data);
177
- },
178
- fail: function fail(error) {
179
- reject(error);
180
- },
181
- };
182
-
183
- // #ifdef MP-ALIPAY
184
- getImageData(options);
185
- // #endif
186
- // #ifndef MP-ALIPAY
187
- uni.canvasGetImageData(options, _this);
188
- // #endif
189
- });
190
- };
191
- return region;
192
- },
193
- }
194
- : null,
195
- scaleSize
196
- );
197
- this.help.instance.draw = (reserve = false, callback = () => {}) => {
198
- painter.draw(reserve, () => {
199
- // 如果不使用原生渲染
200
- if (!this.cover && !this.isH5) {
201
- uni.canvasToTempFilePath(
202
- {
203
- canvasId: painterid,
204
- success: (e) => {
205
- this.viewImg = e.tempFilePath;
206
- if (_this.region) region.draw(reserve);
207
- callback();
208
- },
209
- },
210
- // #ifndef MP-ALIPAY
211
- this
212
- // #endif
213
- );
214
- } else {
215
- if (_this.region) region.draw(reserve);
216
- callback();
217
- }
218
- });
219
- };
220
-
221
- this.hadFetch = true;
222
- return new Promise((resolve, reject) => {
223
- this.help.instance.toDataURL = () => {
224
- return new Promise((resolveUrl) => {
225
- uni.canvasToTempFilePath(
226
- {
227
- canvasId: painterid,
228
- success: function (e) {
229
- resolveUrl(e.tempFilePath);
230
- },
231
- },
232
- // #ifndef MP-ALIPAY
233
- this
234
- // #endif
235
- );
236
- });
237
- };
238
-
239
- this.help.instance.drawImage = drawImage(
240
- this.help.instance,
241
- this.help.instance.drawImage
242
- );
243
-
244
- resolve(this.help.instance);
245
- });
246
- },
247
- doit(event, doback) {
248
- let doRun = (x, y) => {
249
- this.help.instance.getRegion(x, y).then((regionName) => {
250
- // 兼容旧语法
251
- if (typeof doback == "function") doback(regionName);
252
-
253
- this.$emit("dotouchstart", {
254
- name: regionName,
255
- x: x,
256
- y: y,
257
- });
258
- });
259
- };
260
-
261
- if (this.cover || this.isH5) {
262
- let x = event.touches[0].x;
263
- let y = event.touches[0].y;
264
- doRun(x, y);
265
- } else {
266
- uni
267
- .createSelectorQuery()
268
- .selectViewport()
269
- .scrollOffset()
270
- .exec((ret) => {
271
- uni
272
- .createSelectorQuery()
273
- .in(this)
274
- .select(".view-" + this.uniqueid)
275
- .boundingClientRect((data) => {
276
- doRun(
277
- event.touches[0].pageX - data.left - ret[0].scrollLeft,
278
- event.touches[0].pageY - data.top - ret[0].scrollTop
279
- );
280
- })
281
- .exec();
282
- });
283
- }
284
- },
285
- doitstart(event) {
286
- this.doit(event, this.touchstart);
287
- },
288
- },
289
- };
290
- </script>
1
+ <template>
2
+ <view
3
+ :class="cover || isH5 ? 'cover-view' : 'normal-view'"
4
+ :style="{ display: 'inline-block' }"
5
+ >
6
+ <view
7
+ v-if="!cover && !isH5"
8
+ :class="'view-img view-' + uniqueid"
9
+ @touchstart="doitstart"
10
+ >
11
+ <image
12
+ :style="{ width: width + 'px', height: height + 'px' }"
13
+ :src="viewImg"
14
+ ></image>
15
+ </view>
16
+
17
+ <!-- #ifdef MP-ALIPAY -->
18
+ <canvas
19
+ :width="2 * width + 'px'"
20
+ :height="2 * height + 'px'"
21
+ class="painter"
22
+ :id="'painter-' + uniqueid"
23
+ @touchstart="doitstart"
24
+ :style="[
25
+ { width: width + 'px', height: height + 'px' },
26
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
27
+ ]"
28
+ ></canvas>
29
+ <canvas
30
+ v-if="region"
31
+ class="region"
32
+ :id="'region-' + uniqueid"
33
+ :style="{
34
+ width: width + 'px',
35
+ height: height + 'px',
36
+ position: 'fixed',
37
+ left: '50000px',
38
+ }"
39
+ ></canvas>
40
+ <!-- #endif -->
41
+ <!-- #ifdef MP-WEIXIN -->
42
+ <canvas
43
+ class="painter"
44
+ canvas-id="painter"
45
+ @touchstart="doitstart"
46
+ :style="[
47
+ { width: width + 'px', height: height + 'px' },
48
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
49
+ ]"
50
+ ></canvas>
51
+ <canvas
52
+ v-if="region"
53
+ class="region"
54
+ canvas-id="region"
55
+ :style="{
56
+ width: width + 'px',
57
+ height: height + 'px',
58
+ position: 'fixed',
59
+ left: '50000px',
60
+ }"
61
+ ></canvas>
62
+ <!-- #endif -->
63
+ <!-- #ifndef MP-WEIXIN||MP-ALIPAY -->
64
+ <canvas
65
+ class="painter"
66
+ :canvas-id="'painter-' + uniqueid"
67
+ @touchstart="doitstart"
68
+ :style="[
69
+ { width: width + 'px', height: height + 'px' },
70
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
71
+ ]"
72
+ ></canvas>
73
+ <canvas
74
+ v-if="region"
75
+ class="region"
76
+ :canvas-id="'region-' + uniqueid"
77
+ :style="{
78
+ width: width + 'px',
79
+ height: height + 'px',
80
+ position: 'fixed',
81
+ left: '50000px',
82
+ }"
83
+ ></canvas>
84
+ <!-- #endif -->
85
+ </view>
86
+ </template>
87
+ <script>
88
+ import OralCanvas from "../lib/OralCanvas/index.es.js";
89
+ import drawImage from "./drawImage.js";
90
+ export default {
91
+ data() {
92
+ return {
93
+ uniqueid: (Math.random() * 10000).toFixed(0),
94
+ help: {},
95
+ viewImg: "",
96
+ // #ifdef H5
97
+ isH5: true,
98
+ // #endif
99
+ // #ifndef H5
100
+ isH5: false,
101
+ // #endif
102
+ hadFetch:false
103
+ };
104
+ },
105
+ props: {
106
+ width: {
107
+ type: Number,
108
+ default: 300,
109
+ },
110
+ height: {
111
+ type: Number,
112
+ default: 150,
113
+ },
114
+ touchstart: {
115
+ type: Function,
116
+ default: () => {},
117
+ },
118
+ cover: {
119
+ type: Boolean,
120
+ default: true,
121
+ },
122
+ region: {
123
+ type: Boolean,
124
+ default: true,
125
+ },
126
+ },
127
+ methods: {
128
+ fetch() {
129
+ let painter, region, painterid, regionid;
130
+ // #ifdef MP-WEIXIN
131
+ painter = uni.createCanvasContext("painter", this);
132
+ if (this.region) region = uni.createCanvasContext("region", this);
133
+ painterid = "painter";
134
+ regionid = "region";
135
+ // #endif
136
+ // #ifndef MP-WEIXIN
137
+ painter = uni.createCanvasContext("painter-" + this.uniqueid, this);
138
+ if (this.region)
139
+ region = uni.createCanvasContext("region-" + this.uniqueid, this);
140
+ painterid = "painter-" + this.uniqueid;
141
+ regionid = "region-" + this.uniqueid;
142
+ // #endif
143
+
144
+ // #ifdef MP-ALIPAY
145
+ if(!this.hadFetch) painter.scale(2, 2);
146
+ // #endif
147
+
148
+ let scaleSize = 1;
149
+
150
+ // #ifdef MP-ALIPAY
151
+ scaleSize = 2;
152
+ // #endif
153
+
154
+ let _this = this;
155
+ this.help.instance = new OralCanvas(
156
+ {
157
+ getContext() {
158
+ return painter;
159
+ },
160
+ },
161
+ _this.region
162
+ ? {
163
+ getContext() {
164
+ // #ifdef MP-ALIPAY
165
+ let getImageData = region.getImageData;
166
+ // #endif
167
+ region.getImageData = (x, y, width, height) => {
168
+ return new Promise((resolve, reject) => {
169
+ let options = {
170
+ x,
171
+ y,
172
+ width,
173
+ height,
174
+ canvasId: regionid,
175
+ success: function success(res) {
176
+ resolve(res.data);
177
+ },
178
+ fail: function fail(error) {
179
+ reject(error);
180
+ },
181
+ };
182
+
183
+ // #ifdef MP-ALIPAY
184
+ getImageData(options);
185
+ // #endif
186
+ // #ifndef MP-ALIPAY
187
+ uni.canvasGetImageData(options, _this);
188
+ // #endif
189
+ });
190
+ };
191
+ return region;
192
+ },
193
+ }
194
+ : null,
195
+ scaleSize
196
+ );
197
+ this.help.instance.draw = (reserve = false, callback = () => {}) => {
198
+ painter.draw(reserve, () => {
199
+ // 如果不使用原生渲染
200
+ if (!this.cover && !this.isH5) {
201
+ uni.canvasToTempFilePath(
202
+ {
203
+ canvasId: painterid,
204
+ success: (e) => {
205
+ this.viewImg = e.tempFilePath;
206
+ if (_this.region) region.draw(reserve);
207
+ callback();
208
+ },
209
+ },
210
+ // #ifndef MP-ALIPAY
211
+ this
212
+ // #endif
213
+ );
214
+ } else {
215
+ if (_this.region) region.draw(reserve);
216
+ callback();
217
+ }
218
+ });
219
+ };
220
+
221
+ this.hadFetch = true;
222
+ return new Promise((resolve, reject) => {
223
+ this.help.instance.toDataURL = () => {
224
+ return new Promise((resolveUrl) => {
225
+ uni.canvasToTempFilePath(
226
+ {
227
+ canvasId: painterid,
228
+ success: function (e) {
229
+ resolveUrl(e.tempFilePath);
230
+ },
231
+ },
232
+ // #ifndef MP-ALIPAY
233
+ this
234
+ // #endif
235
+ );
236
+ });
237
+ };
238
+
239
+ this.help.instance.drawImage = drawImage(
240
+ this.help.instance,
241
+ this.help.instance.drawImage
242
+ );
243
+
244
+ resolve(this.help.instance);
245
+ });
246
+ },
247
+ doit(event, doback) {
248
+ let doRun = (x, y) => {
249
+ this.help.instance.getRegion(x, y).then((regionName) => {
250
+ // 兼容旧语法
251
+ if (typeof doback == "function") doback(regionName);
252
+
253
+ this.$emit("dotouchstart", {
254
+ name: regionName,
255
+ x: x,
256
+ y: y,
257
+ });
258
+ });
259
+ };
260
+
261
+ if (this.cover || this.isH5) {
262
+ let x = event.touches[0].x;
263
+ let y = event.touches[0].y;
264
+ doRun(x, y);
265
+ } else {
266
+ uni
267
+ .createSelectorQuery()
268
+ .selectViewport()
269
+ .scrollOffset()
270
+ .exec((ret) => {
271
+ uni
272
+ .createSelectorQuery()
273
+ .in(this)
274
+ .select(".view-" + this.uniqueid)
275
+ .boundingClientRect((data) => {
276
+ doRun(
277
+ event.touches[0].pageX - data.left - ret[0].scrollLeft,
278
+ event.touches[0].pageY - data.top - ret[0].scrollTop
279
+ );
280
+ })
281
+ .exec();
282
+ });
283
+ }
284
+ },
285
+ doitstart(event) {
286
+ this.doit(event, this.touchstart);
287
+ },
288
+ },
289
+ };
290
+ </script>