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