@maptalks/transform-control 0.5.7 → 0.7.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.
@@ -0,0 +1,1328 @@
1
+ /*!
2
+ * @maptalks/transform-control v0.7.0
3
+ * LICENSE : UNLICENSED
4
+ * (c) 2016-2022 maptalks.org
5
+ */
6
+ import { quat as A, mat4 as t, reshader as e, vec3 as s, vec2 as i, GroupGLLayer as n } from "@maptalks/gl";
7
+
8
+ import * as o from "maptalks";
9
+
10
+ import { Eventable as I, Handlerable as r, Class as a, Point as h, Coordinate as g } from "maptalks";
11
+
12
+ import * as c from "@maptalks/gltf-loader";
13
+
14
+ const w = {
15
+ yuanhuan: {
16
+ accessors: [ {
17
+ name: "������_1_0_positions",
18
+ componentType: 5126,
19
+ count: 104,
20
+ min: [ -5.407599925994873, -5.404099941253662, 0 ],
21
+ max: [ 5.405200004577637, 5.406300067901611, 0 ],
22
+ type: "VEC3",
23
+ bufferView: 0,
24
+ byteOffset: 0
25
+ }, {
26
+ name: "������_1_0_normals",
27
+ componentType: 5126,
28
+ count: 104,
29
+ min: [ 0, 0, 1 ],
30
+ max: [ 0, 0, 1 ],
31
+ type: "VEC3",
32
+ bufferView: 1,
33
+ byteOffset: 0
34
+ }, {
35
+ name: "������_1_0_indices",
36
+ componentType: 5123,
37
+ count: 288,
38
+ min: [ 0 ],
39
+ max: [ 103 ],
40
+ type: "SCALAR",
41
+ bufferView: 2,
42
+ byteOffset: 0
43
+ } ],
44
+ asset: {
45
+ generator: "obj2gltf",
46
+ version: "2.0"
47
+ },
48
+ buffers: [ {
49
+ name: "缩放圈-新",
50
+ byteLength: 3072,
51
+ uri: "data:application/octet-stream;base64,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AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAABAAIAAAACAAMABAAFAAYABAAGAAcAAwACAAgAAwAIAAkACgALAAwACgAMAA0ADQAMAA4ADQAOAA8ADwAOABAADwAQABEAEgATABQAEgAUABUAFgAXABgAFgAYABkAGgAbABwAGgAcAB0AHgALAAoAHwALAB4AHwAgAAsAIQAgAB8AIgAjACAAIgAgACEAJAAlACYAJAAmACcAJwAmACgAJwAoACkAKgArACwAKgAsAC0ALgAvADAALgAwADEAGQAYADIAGQAyADMANAA1ABsANAAbABoAFQAUADYAFQA2ADcAOAA5ADoAOAA6ADsAPAA9AD4APAA/AD0AQAA/ADwAQABBAD8AQgBBAEAAQgBAAEMARABFAEYARABGAEcARABHAEgARgBJAEcARgBKAEkASwBKAEYASwBMAEoASwBNAEwACQAIAC8ACQAvAC4ALQAsADkALQA5ADgAOwA6AE4AOwBOAE8ATwBOAE0ATwBNAEsAKQAoACsAKQArACoANwA2AFAANwBQAFEAUQBQAFIAUQBSAFMAUwBSAFQAUwBUAFUAVgBXAFgAVgBYAFkAVgBZAFoAWwBZAFgAXABZAFsAXABdAFkAXgBdAFwAXwBdAF4APAA+AGAAPABgAGEAMQAwABcAMQAXABYAYgBjADUAYgA1ADQAYQBgAGMAYQBjAGIAMwAyAF0AMwBdAF8AHQAcAGQAHQBkAGUAZQBkAAUAZQAFAAQAZgBnAAcAZgAHAAYAEQAQABMAEQATABIA"
52
+ } ],
53
+ bufferViews: [ {
54
+ name: "bufferView_0",
55
+ buffer: 0,
56
+ byteLength: 1248,
57
+ byteOffset: 0,
58
+ byteStride: 12,
59
+ target: 34962
60
+ }, {
61
+ name: "bufferView_1",
62
+ buffer: 0,
63
+ byteLength: 1248,
64
+ byteOffset: 1248,
65
+ byteStride: 12,
66
+ target: 34962
67
+ }, {
68
+ name: "bufferView_2",
69
+ buffer: 0,
70
+ byteLength: 576,
71
+ byteOffset: 2496,
72
+ target: 34963
73
+ } ],
74
+ materials: [ {
75
+ name: "SVGMat_001",
76
+ pbrMetallicRoughness: {
77
+ baseColorFactor: [ .5, .5, .5, 1 ],
78
+ metallicFactor: 0,
79
+ roughnessFactor: 1
80
+ },
81
+ emissiveFactor: [ 0, 0, 0 ],
82
+ alphaMode: "OPAQUE",
83
+ doubleSided: !1
84
+ } ],
85
+ meshes: [ {
86
+ name: "������_1",
87
+ primitives: [ {
88
+ attributes: {
89
+ POSITION: 0,
90
+ NORMAL: 1
91
+ },
92
+ indices: 2,
93
+ material: 0,
94
+ mode: 4
95
+ } ]
96
+ } ],
97
+ nodes: [ {
98
+ name: "������",
99
+ mesh: 0
100
+ } ],
101
+ scene: 0,
102
+ scenes: [ {
103
+ nodes: [ 0 ]
104
+ } ]
105
+ },
106
+ yuanhuan41: {
107
+ accessors: [ {
108
+ name: "Բ��_1_0_positions",
109
+ componentType: 5126,
110
+ count: 39,
111
+ min: [ 0, 0, 0 ],
112
+ max: [ 5.489999771118164, 0, 5.488900184631348 ],
113
+ type: "VEC3",
114
+ bufferView: 0,
115
+ byteOffset: 0
116
+ }, {
117
+ name: "Բ��_1_0_normals",
118
+ componentType: 5126,
119
+ count: 39,
120
+ min: [ 0, -.999939501285553, -1 ],
121
+ max: [ .13969914615154266, 1, 1 ],
122
+ type: "VEC3",
123
+ bufferView: 1,
124
+ byteOffset: 0
125
+ }, {
126
+ name: "Բ��_1_0_indices",
127
+ componentType: 5123,
128
+ count: 105,
129
+ min: [ 0 ],
130
+ max: [ 38 ],
131
+ type: "SCALAR",
132
+ bufferView: 2,
133
+ byteOffset: 0
134
+ } ],
135
+ asset: {
136
+ generator: "obj2gltf",
137
+ version: "2.0"
138
+ },
139
+ buffers: [ {
140
+ name: "yh41",
141
+ byteLength: 1148,
142
+ uri: "data:application/octet-stream;base64,8tKXQAAAAACoNU09FK6vQAAAAAB1Ako/FK6vQAAAAAAAAACATfOAQAAAAAACmkg+K4dWQAAAAAAIrNw+WvUtQAAAAABbsT8/X5gIQAAAAACMSpI/OUWbQAAAAAD0/VQ/LbKHQAAAAAD0/XQ/W0JqQAAAAAC6SZQ/dLXNPwAAAACfq80/H4VHQAAAAAB0JLc/ZognQAAAAAA1XuI/YVSSPwAAAAAukAhABaMKQAAAAAB4nApABcU/PwAAAACF6y1Aw2TiPwAAAACRfidASS63PwAAAABKe0dAJLncPgAAAACze1ZAj1OUPwAAAADjNmpAAppIPgAAAADu64BAnRF1PwAAAAD8qYdAqDVNPQAAAADBypdAgQRVPwAAAAAIPZtAAAAAAAAAAAASpa9AAwlKPwAAAAASpa9AJJd/PAAAAAASpa9AAwlKPwAAAAASpa9AAAAAAAAAAAASpa9Asp1vPQAAAAASpa9AJLn8PQAAAAASpa9AqoJRPgAAAAASpa9ARwOYPgAAAAASpa9AHhbKPgAAAAASpa9A2hv8PgAAAAASpa9A5q4VPwAAAAASpa9A+n4qPwAAAAASpa9AQxw7PwAAAAASpa9AwhdGPwAAAAASpa9AAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAJ5X/OwL+fz8AAACAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/Kzs0PAn8f78AAACApLK/PA7uf78AAACAeJkZPefRfz8AAACA+ZldPQSgf78AAACA6XSTPelVfz8AAACALLO3PdT3fr8AAACAfkjZPR2Ofr8AAACANf32Paohfj8AAACAeUYHPqDBfT8AAACASw0PPlt9fb8AAACAAAABAAIAAwABAAAABAABAAMABQABAAQABgAHAAUABwABAAUABgAIAAcABgAJAAgACgAJAAYACgALAAkACgAMAAsADQAMAAoADQAOAAwADwAOAA0ADwAQAA4ADwARABAAEgARAA8AEgATABEAFAATABIAFAAVABMAFgAVABQAFgAXABUAGAAXABYAGAAZABcAGgAbABwAHQAbABoAHgAbAB0AHwAbAB4AIAAbAB8AIQAbACAAIgAbACEAIwAbACIAJAAbACMAJQAbACQAJgAbACUAAAA="
143
+ } ],
144
+ bufferViews: [ {
145
+ name: "bufferView_0",
146
+ buffer: 0,
147
+ byteLength: 468,
148
+ byteOffset: 0,
149
+ byteStride: 12,
150
+ target: 34962
151
+ }, {
152
+ name: "bufferView_1",
153
+ buffer: 0,
154
+ byteLength: 468,
155
+ byteOffset: 468,
156
+ byteStride: 12,
157
+ target: 34962
158
+ }, {
159
+ name: "bufferView_2",
160
+ buffer: 0,
161
+ byteLength: 212,
162
+ byteOffset: 936,
163
+ target: 34963
164
+ } ],
165
+ materials: [ {
166
+ name: "SVGMat_002",
167
+ pbrMetallicRoughness: {
168
+ baseColorFactor: [ .588, .588, .588, 1 ],
169
+ metallicFactor: 0,
170
+ roughnessFactor: .99
171
+ },
172
+ emissiveFactor: [ 0, 0, 0 ],
173
+ alphaMode: "OPAQUE",
174
+ doubleSided: !1
175
+ } ],
176
+ meshes: [ {
177
+ name: "Բ��_1",
178
+ primitives: [ {
179
+ attributes: {
180
+ POSITION: 0,
181
+ NORMAL: 1
182
+ },
183
+ indices: 2,
184
+ material: 0,
185
+ mode: 4
186
+ } ]
187
+ } ],
188
+ nodes: [ {
189
+ name: "Բ��",
190
+ mesh: 0
191
+ } ],
192
+ scene: 0,
193
+ scenes: [ {
194
+ nodes: [ 0 ]
195
+ } ]
196
+ },
197
+ yuanhuan411: {
198
+ accessors: [ {
199
+ name: "����СȦ_1_0_positions",
200
+ componentType: 5126,
201
+ count: 28,
202
+ min: [ .026000000536441803, -4.6834001541137695, 0 ],
203
+ max: [ 4.696700096130371, -.014800000004470348, 0 ],
204
+ type: "VEC3",
205
+ bufferView: 0,
206
+ byteOffset: 0
207
+ }, {
208
+ name: "����СȦ_1_0_normals",
209
+ componentType: 5126,
210
+ count: 28,
211
+ min: [ 0, 0, 1 ],
212
+ max: [ 0, 0, 1 ],
213
+ type: "VEC3",
214
+ bufferView: 1,
215
+ byteOffset: 0
216
+ }, {
217
+ name: "����СȦ_1_0_indices",
218
+ componentType: 5123,
219
+ count: 78,
220
+ min: [ 0 ],
221
+ max: [ 27 ],
222
+ type: "SCALAR",
223
+ bufferView: 2,
224
+ byteOffset: 0
225
+ } ],
226
+ asset: {
227
+ generator: "obj2gltf",
228
+ version: "2.0"
229
+ },
230
+ buffers: [ {
231
+ name: "yuanhuan411",
232
+ byteLength: 828,
233
+ uri: "data:application/octet-stream;base64,ufwXQLN7Mr8AAAAAObRAQLFQK78AAAAA1ediQMWP8b4AAAAAGQQ6QCv2174AAAAAqFdeQHUCWr4AAAAA7FGCQL6fmr0AAAAAHHyDQDLmrr4AAAAAXkuWQJf/kL4AAAAAXkuWQLN7crwAAAAAMCrxP2RdhL8AAAAA/BgDQJeQn78AAAAADeARQAg9i78AAAAAukkIQISeXb8AAAAAZaogQH/Zbb8AAAAA7Q3ePr4wOcAAAAAA5IMuP9/gP8AAAAAAJQZxPwrXH8AAAAAAPZs1P6UsF8AAAAAAdy2hP0VHAsAAAAAAb/CFP5eQ778AAAAA0ES4P32utr8AAAAAAprQPyL9zr8AAAAAi/1lPqqCXcAAAAAA9dv3PtcSYsAAAAAADi2yPZvmgcAAAAAAYTK1PssQg8AAAAAA9P3UPGrelcAAAAAA4liXPmrelcAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAABAAIAAAACAAMAAwACAAQABQAGAAcABQAHAAgABAACAAYABAAGAAUACQAKAAsACQALAAwAAAANAAEADgAPABAADgAQABEAEQAQABIAEQASABMAFAAVAAoAFAAKAAkADAALAA0ADAANAAAAFgAXAA8AFgAPAA4AGAAZABcAGAAXABYAGgAZABgAGgAbABkAEwASABUAEwAVABQA"
234
+ } ],
235
+ bufferViews: [ {
236
+ name: "bufferView_0",
237
+ buffer: 0,
238
+ byteLength: 336,
239
+ byteOffset: 0,
240
+ byteStride: 12,
241
+ target: 34962
242
+ }, {
243
+ name: "bufferView_1",
244
+ buffer: 0,
245
+ byteLength: 336,
246
+ byteOffset: 336,
247
+ byteStride: 12,
248
+ target: 34962
249
+ }, {
250
+ name: "bufferView_2",
251
+ buffer: 0,
252
+ byteLength: 156,
253
+ byteOffset: 672,
254
+ target: 34963
255
+ } ],
256
+ materials: [ {
257
+ name: "SVGMat",
258
+ pbrMetallicRoughness: {
259
+ baseColorFactor: [ .588, .588, .588, 1 ],
260
+ metallicFactor: 0,
261
+ roughnessFactor: .99
262
+ },
263
+ emissiveFactor: [ 0, 0, 0 ],
264
+ alphaMode: "OPAQUE",
265
+ doubleSided: !1
266
+ } ],
267
+ meshes: [ {
268
+ name: "����СȦ_1",
269
+ primitives: [ {
270
+ attributes: {
271
+ POSITION: 0,
272
+ NORMAL: 1
273
+ },
274
+ indices: 2,
275
+ material: 0,
276
+ mode: 4
277
+ } ]
278
+ } ],
279
+ nodes: [ {
280
+ name: "����СȦ",
281
+ mesh: 0
282
+ } ],
283
+ scene: 0,
284
+ scenes: [ {
285
+ nodes: [ 0 ]
286
+ } ]
287
+ },
288
+ yuanpan: {
289
+ accessors: [ {
290
+ name: "Circle001_1_0_positions",
291
+ componentType: 5126,
292
+ count: 28,
293
+ min: [ -1.9510999917984009, 0, -1.9510999917984009 ],
294
+ max: [ 1.9510999917984009, 0, 1.9510999917984009 ],
295
+ type: "VEC3",
296
+ bufferView: 0,
297
+ byteOffset: 0
298
+ }, {
299
+ name: "Circle001_1_0_normals",
300
+ componentType: 5126,
301
+ count: 28,
302
+ min: [ 0, 1, 0 ],
303
+ max: [ 0, 1, 0 ],
304
+ type: "VEC3",
305
+ bufferView: 1,
306
+ byteOffset: 0
307
+ }, {
308
+ name: "Circle001_1_0_indices",
309
+ componentType: 5123,
310
+ count: 78,
311
+ min: [ 0 ],
312
+ max: [ 27 ],
313
+ type: "SCALAR",
314
+ bufferView: 2,
315
+ byteOffset: 0
316
+ } ],
317
+ asset: {
318
+ generator: "obj2gltf",
319
+ version: "2.0"
320
+ },
321
+ buffers: [ {
322
+ name: "yuanpan",
323
+ byteLength: 828,
324
+ uri: "data:application/octet-stream;base64,S+rkvgAAAADRIvM/AAAAAAAAAAClvfk/S+rkPgAAAADRIvM/0SLzvwAAAABL6uQ+MlXgvwAAAACsi1s/c9fCvwAAAACvJZw/pb35vwAAAAAAAAAA0SLzvwAAAABL6uS+MlXgvwAAAACsi1u/c9fCvwAAAACvJZy/ryWcvwAAAABz18K/rItbvwAAAAAyVeC/S+rkvgAAAADRIvO/AAAAgAAAAAClvfm/S+rkPgAAAADRIvO/rItbPwAAAAAyVeC/ryWcPwAAAABz18K/c9fCPwAAAACvJZy/MlXgPwAAAACsi1u/0SLzPwAAAABL6uS+pb35PwAAAAAAAACA0SLzPwAAAABL6uQ+MlXgPwAAAACsi1s/c9fCPwAAAACvJZw/ryWcvwAAAABz18I/ryWcPwAAAABz18I/rItbvwAAAAAyVeA/rItbPwAAAAAyVeA/AAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAAAAAAAgD8AAACAAAABAAIAAwAEAAUABgADAAUABwAGAAUACAAHAAUACQAIAAUACgAJAAUACwAKAAUADAALAAUADQAMAAUADgANAAUADwAOAAUAEAAPAAUAEQAQAAUAEgARAAUAEwASAAUAFAATAAUAFQAUAAUAFgAVAAUAFwAWAAUAFwAFABgAGQAXABgAGQAYABoAGwAZABoAAgAbABoAAAACABoA"
325
+ } ],
326
+ bufferViews: [ {
327
+ name: "bufferView_0",
328
+ buffer: 0,
329
+ byteLength: 336,
330
+ byteOffset: 0,
331
+ byteStride: 12,
332
+ target: 34962
333
+ }, {
334
+ name: "bufferView_1",
335
+ buffer: 0,
336
+ byteLength: 336,
337
+ byteOffset: 336,
338
+ byteStride: 12,
339
+ target: 34962
340
+ }, {
341
+ name: "bufferView_2",
342
+ buffer: 0,
343
+ byteLength: 156,
344
+ byteOffset: 672,
345
+ target: 34963
346
+ } ],
347
+ materials: [ {
348
+ name: "wire_008110135",
349
+ pbrMetallicRoughness: {
350
+ baseColorFactor: [ .0314, .4314, .5294, 1 ],
351
+ metallicFactor: 0,
352
+ roughnessFactor: .968
353
+ },
354
+ emissiveFactor: [ 0, 0, 0 ],
355
+ alphaMode: "OPAQUE",
356
+ doubleSided: !1
357
+ } ],
358
+ meshes: [ {
359
+ name: "Circle001_1",
360
+ primitives: [ {
361
+ attributes: {
362
+ POSITION: 0,
363
+ NORMAL: 1
364
+ },
365
+ indices: 2,
366
+ material: 0,
367
+ mode: 4
368
+ } ]
369
+ } ],
370
+ nodes: [ {
371
+ name: "Circle001",
372
+ mesh: 0
373
+ } ],
374
+ scene: 0,
375
+ scenes: [ {
376
+ nodes: [ 0 ]
377
+ } ]
378
+ },
379
+ zzhou: {
380
+ accessors: [ {
381
+ name: "Cube.001-Mesh_0_positions",
382
+ componentType: 5126,
383
+ count: 45,
384
+ min: [ -.2711470127105713, -5.473427772521973, -.2711470127105713 ],
385
+ max: [ .2711470127105713, .46298399567604065, .2711470127105713 ],
386
+ type: "VEC3",
387
+ bufferView: 0,
388
+ byteOffset: 0
389
+ }, {
390
+ name: "Cube.001-Mesh_0_normals",
391
+ componentType: 5126,
392
+ count: 45,
393
+ min: [ -1, -1, -1 ],
394
+ max: [ 1, 1, 1 ],
395
+ type: "VEC3",
396
+ bufferView: 1,
397
+ byteOffset: 0
398
+ }, {
399
+ name: "Cube.001-Mesh_0_texcoords",
400
+ componentType: 5126,
401
+ count: 45,
402
+ min: [ .125, 0 ],
403
+ max: [ .875, 1 ],
404
+ type: "VEC2",
405
+ bufferView: 2,
406
+ byteOffset: 0
407
+ }, {
408
+ name: "Cube.001-Mesh_0_indices",
409
+ componentType: 5123,
410
+ count: 72,
411
+ min: [ 0 ],
412
+ max: [ 44 ],
413
+ type: "SCALAR",
414
+ bufferView: 3,
415
+ byteOffset: 0
416
+ } ],
417
+ asset: {
418
+ generator: "obj2gltf",
419
+ version: "2.0"
420
+ },
421
+ buffers: [ {
422
+ name: "Z",
423
+ byteLength: 1584,
424
+ uri: "data:application/octet-stream;base64,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"
425
+ } ],
426
+ bufferViews: [ {
427
+ name: "bufferView_0",
428
+ buffer: 0,
429
+ byteLength: 540,
430
+ byteOffset: 0,
431
+ byteStride: 12,
432
+ target: 34962
433
+ }, {
434
+ name: "bufferView_1",
435
+ buffer: 0,
436
+ byteLength: 540,
437
+ byteOffset: 540,
438
+ byteStride: 12,
439
+ target: 34962
440
+ }, {
441
+ name: "bufferView_2",
442
+ buffer: 0,
443
+ byteLength: 360,
444
+ byteOffset: 1080,
445
+ byteStride: 8,
446
+ target: 34962
447
+ }, {
448
+ name: "bufferView_3",
449
+ buffer: 0,
450
+ byteLength: 144,
451
+ byteOffset: 1440,
452
+ target: 34963
453
+ } ],
454
+ materials: [ {
455
+ name: "Material.001",
456
+ pbrMetallicRoughness: {
457
+ baseColorFactor: [ .8, .8, .8, 1 ],
458
+ metallicFactor: 0,
459
+ roughnessFactor: .676000006
460
+ },
461
+ emissiveFactor: [ 0, 0, 0 ],
462
+ alphaMode: "OPAQUE",
463
+ doubleSided: !1
464
+ } ],
465
+ meshes: [ {
466
+ name: "Cube.001-Mesh",
467
+ primitives: [ {
468
+ attributes: {
469
+ POSITION: 0,
470
+ NORMAL: 1,
471
+ TEXCOORD_0: 2
472
+ },
473
+ indices: 3,
474
+ material: 0,
475
+ mode: 4
476
+ } ]
477
+ } ],
478
+ nodes: [ {
479
+ name: "Cube.001",
480
+ mesh: 0
481
+ } ],
482
+ scene: 0,
483
+ scenes: [ {
484
+ nodes: [ 0 ]
485
+ } ]
486
+ },
487
+ jiantou: {
488
+ accessors: [ {
489
+ name: "��ͷ_1_0_positions",
490
+ componentType: 5126,
491
+ count: 7,
492
+ min: [ -.47690001130104065, -.8044000267982483, 0 ],
493
+ max: [ .47780001163482666, 0, 0 ],
494
+ type: "VEC3",
495
+ bufferView: 0,
496
+ byteOffset: 0
497
+ }, {
498
+ name: "��ͷ_1_0_normals",
499
+ componentType: 5126,
500
+ count: 7,
501
+ min: [ 0, 0, 1 ],
502
+ max: [ 0, 0, 1 ],
503
+ type: "VEC3",
504
+ bufferView: 1,
505
+ byteOffset: 0
506
+ }, {
507
+ name: "��ͷ_1_0_indices",
508
+ componentType: 5123,
509
+ count: 15,
510
+ min: [ 0 ],
511
+ max: [ 6 ],
512
+ type: "SCALAR",
513
+ bufferView: 2,
514
+ byteOffset: 0
515
+ } ],
516
+ asset: {
517
+ generator: "obj2gltf",
518
+ version: "2.0"
519
+ },
520
+ buffers: [ {
521
+ name: "jiantou",
522
+ byteLength: 200,
523
+ uri: "data:application/octet-stream;base64,bxIDOintTb8AAAAAH/RsvsKGp74AAAAAPSz0vsKGp74AAAAANs17PsKGp74AAAAANKL0PsKGp74AAAAANs17PgAAAAAAAAAAH/RsvgAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAABAAIAAAADAAEAAAAEAAMAAQAFAAYAAQADAAUAAAA="
524
+ } ],
525
+ bufferViews: [ {
526
+ name: "bufferView_0",
527
+ buffer: 0,
528
+ byteLength: 84,
529
+ byteOffset: 0,
530
+ byteStride: 12,
531
+ target: 34962
532
+ }, {
533
+ name: "bufferView_1",
534
+ buffer: 0,
535
+ byteLength: 84,
536
+ byteOffset: 84,
537
+ byteStride: 12,
538
+ target: 34962
539
+ }, {
540
+ name: "bufferView_2",
541
+ buffer: 0,
542
+ byteLength: 32,
543
+ byteOffset: 168,
544
+ target: 34963
545
+ } ],
546
+ materials: [ {
547
+ name: "SVGMat_003",
548
+ pbrMetallicRoughness: {
549
+ baseColorFactor: [ .588, .588, .588, 1 ],
550
+ metallicFactor: 0,
551
+ roughnessFactor: .99
552
+ },
553
+ emissiveFactor: [ 0, 0, 0 ],
554
+ alphaMode: "OPAQUE",
555
+ doubleSided: !1
556
+ } ],
557
+ meshes: [ {
558
+ name: "��ͷ_1",
559
+ primitives: [ {
560
+ attributes: {
561
+ POSITION: 0,
562
+ NORMAL: 1
563
+ },
564
+ indices: 2,
565
+ material: 0,
566
+ mode: 4
567
+ } ]
568
+ } ],
569
+ nodes: [ {
570
+ name: "��ͷ",
571
+ mesh: 0
572
+ } ],
573
+ scene: 0,
574
+ scenes: [ {
575
+ nodes: [ 0 ]
576
+ } ]
577
+ },
578
+ xuanzhuan: {
579
+ accessors: [ {
580
+ name: "��ת001_1_0_positions",
581
+ componentType: 5126,
582
+ count: 369,
583
+ min: [ -6.572299957275391, -7.298999786376953, 0 ],
584
+ max: [ 6.5742998123168945, 7.298299789428711, 0 ],
585
+ type: "VEC3",
586
+ bufferView: 0,
587
+ byteOffset: 0
588
+ }, {
589
+ name: "��ת001_1_0_normals",
590
+ componentType: 5126,
591
+ count: 369,
592
+ min: [ 0, -1, 0 ],
593
+ max: [ 0, 0, 1 ],
594
+ type: "VEC3",
595
+ bufferView: 1,
596
+ byteOffset: 0
597
+ }, {
598
+ name: "��ת001_1_0_indices",
599
+ componentType: 5123,
600
+ count: 1089,
601
+ min: [ 0 ],
602
+ max: [ 368 ],
603
+ type: "SCALAR",
604
+ bufferView: 2,
605
+ byteOffset: 0
606
+ } ],
607
+ asset: {
608
+ generator: "obj2gltf",
609
+ version: "2.0"
610
+ },
611
+ buffers: [ {
612
+ name: "旋转-新",
613
+ byteLength: 11036,
614
+ uri: "data:application/octet-stream;base64,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AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAABAAIAAwABAAAAAwAEAAEAAwAFAAQAAwAGAAUAAwAHAAYAAwAIAAcAAwAJAAgAAwAKAAkAAwALAAoAAwAMAAsADQAMAAMADQAOAAwADQAPAA4ADQAQAA8ADQARABAADQASABEADQATABIADQAUABMADQAVABQADQAWABUADQAXABYADQAYABcADQAZABgADQAaABkADQAbABoAHAAbAA0AHAAdABsAHAAeAB0AHAAfAB4AHAAgAB8AHAAhACAAHAAiACEAHAAjACIAHAAkACMAHAAlACQAHAAmACUAHAAnACYAHAAoACcAHAApACgAHAAqACkAHAArACoAHAAsACsAHAAtACwAHAAuAC0AHAAvAC4AHAAwAC8AHAAxADAAHAAyADEAHAAzADIAHAA0ADMAHAA1ADQAHAA2ADUAHAA3ADYAHAA4ADcAHAA5ADgAHAA6ADkAHAA7ADoAHAA8ADsAHAA9ADwAHAA+AD0AHAA/AD4AHABAAD8AQABBAD8AQQBCAD8AQgBDAD8AHABAAEQAHABEAEUAHABGAEUARgBHAEUARgBIAEcARgBJAEgARgBKAEkARgBLAEoARgBMAEsAHABNAEYAHABOAE0AHABPAE4AHABQAE8AHABRAFAAHABSAFEAUgBTAFEAUgBUAFMAUgBVAFQAUgBWAFUAUgBXAFYAUgBYAFcAHABZAFIAHABaAFkAHABbAFoAHABcAFsAHABdAFwAHABeAF0AHABfAF4AHABgAF8AHABhAGAAHABiAGEAHABjAGIAHABjAGQAZABlAGMAZQBmAGMAHABnAGQAaABpAGoAawBpAGgAbABpAGsAbQBpAGwAbgBpAG0AbwBpAG4AcABpAG8AcQBpAHAAcgBpAHEAcwBpAHIAdABnABwAdAB1AGcAdAB2AHUAdwB4AHkAdwB5AHoAegB5AHsAegB7AHwAfAB7AH0AfAB9AH4AfgB9AH8AfgB/AIAAgQCCAIMAgQCDAIQAhACDAIUAhACFAIYAhgCFAIcAhgCHAIgAiACHAIkAiACJAIoAiwCMAI0AiwCNAI4AjwCKAJAAigCJAJAAkQCSAJMAkQCTAJQAlACTAJUAlACVAJYAlgCVAJcAlgCXAJgAgAB/AIIAgACCAIEAmACXAJkAmACZAJoAmgCZAJsAmgCbAJwAnACbAJ0AnACdAJ4AngCdAHYAngB2AHQAnwB4AHcAoAB4AJ8AoAChAHgAogChAKAAowCkAKUAowCmAKQAowCnAKYAowCoAKcAowCpAKgAowCqAKkAowCrAKoAowCsAKsAowCtAKwAowCuAK0AowCvAK4AowCiAK8AowChAKIAsAChAKMAsQChALAAsgChALEAswChALIAtAChALMAtQChALQAtgChALUAtwChALYAuAChALcAuQChALgAugChALkAuwChALoAvAChALsAvQChALwAvgChAL0AvwChAL4AwAChAL8AwQChAMAAwgChAMEAwwChAMIAxAChAMMAxQChAMQAxgChAMUAxwChAMYAyAChAMcAyQChAMgAygChAMkAywChAMoAzAChAMsAzQChAMwAzgChAM0AzwChAM4A0AChAM8A0QChANAA0gChANEA0wChANIA1AChANMA1QChANQA1gChANUA1wChANYA2AChANcA2QChANgA2gChANkA2wChANoA3AChANsA3QChANwA3gChAN0A3wChAN4A4AChAN8A4QChAOAA4gChAOEA4wChAOIA5AChAOMA5QChAOQA5gChAOUA5wChAOYA6AChAOcA6QChAOgA6gChAOkA6wChAOoA7AChAOsA7QChAOwA7gChAO0A7wChAO4A8AChAO8A8QChAO8A8gChAPEA8wChAPIA9AChAPMA9QChAPQA9gChAPUA9gD3AKEA+AD3APYA+QD3APgA+gD3APkA+wD3APoA/AD3APsA/QD3APwA/gD3AP0A/wD3AP4AAAH3AP8AAQH3AAABAgH3AAEBAwH3AAIBBAH3AAMBBQH3AAQBBgH3AAUBBgEHAfcACAEHAQYBCQEHAQgBCgEHAQkBCwEHAQoBDAEHAQsBDQEHAQwBDgEHAQ0BDwEHAQ4BEAEHAQ8BEQESARMBFAESAREBFAEVARIBFgEVARQBFgEXARUBGAEXARYBGAEZARcBGgEbARgBGwEcARgBHAEZARgBHAEdARkBHQEeARkBHwEeAR0BGgEgARsBIQEeAR8BGgEiASABIwEiARoBIQEkAR4BJQEkASEBIwEmASIBJwEkASUBIwEoASYBKQEoASMBJwEqASQBKwEqAScBKQEsASgBLQEsASkBKwEuASoBLwEuASsBLQEwASwBMQEuAS8BLQEyATABjgCNADMBjgAzATQBNQE2ATcBNQE3ATgBOAE3ATkBOAE5AToBOwE8AT0BOwE9AT4BPwFAAUEBPwFBAUIBPgE9AUMBPgFDAUQBRQFGAUABRQFAAT8BRwFIAZIARwGSAJEASQFKAUYBSQFGAUUBRAFDAUsBRAFLAUwBOgE5AUoBOgFKAUkBTAFLAU0BTAFNAU4BTgFNAU8BTgFPAVABQgFBAVEBQgFRAVIBUgFRAS4BUgEuATEBNAEzATwBNAE8ATsBUwFUATYBUwE2ATUBUAFPATIBUAEyAS0BiwBVAYwAVgFUAVMBiwBXAVUBWAFUAVYBWAFZAVQBWgFXAYsAWgFbAVcBXAFZAVgBXAFdAVkBXgFbAVoBXgFfAVsBYAFdAVwBXgFhAV8BYgFdAWABYgFjAV0BZAFhAV4BZAFlAWEBZgFjAWIBZAFnAWUBZwFjAWYBZAFjAWcBZAFoAWMBaQFoAWQBaQFqAWgBawFqAWkBawFsAWoBbQFsAWsBbQFuAWwBbwFwAUgBbwFIAUcBAAA="
615
+ } ],
616
+ bufferViews: [ {
617
+ name: "bufferView_0",
618
+ buffer: 0,
619
+ byteLength: 4428,
620
+ byteOffset: 0,
621
+ byteStride: 12,
622
+ target: 34962
623
+ }, {
624
+ name: "bufferView_1",
625
+ buffer: 0,
626
+ byteLength: 4428,
627
+ byteOffset: 4428,
628
+ byteStride: 12,
629
+ target: 34962
630
+ }, {
631
+ name: "bufferView_2",
632
+ buffer: 0,
633
+ byteLength: 2180,
634
+ byteOffset: 8856,
635
+ target: 34963
636
+ } ],
637
+ materials: [ {
638
+ name: "SVGMat",
639
+ pbrMetallicRoughness: {
640
+ baseColorFactor: [ .5, .5, .5, 1 ],
641
+ metallicFactor: 0,
642
+ roughnessFactor: 1
643
+ },
644
+ emissiveFactor: [ 0, 0, 0 ],
645
+ alphaMode: "OPAQUE",
646
+ doubleSided: !1
647
+ } ],
648
+ meshes: [ {
649
+ name: "��ת001_1",
650
+ primitives: [ {
651
+ attributes: {
652
+ POSITION: 0,
653
+ NORMAL: 1
654
+ },
655
+ indices: 2,
656
+ material: 0,
657
+ mode: 4
658
+ } ]
659
+ } ],
660
+ nodes: [ {
661
+ name: "��ת001",
662
+ mesh: 0
663
+ } ],
664
+ scene: 0,
665
+ scenes: [ {
666
+ nodes: [ 0 ]
667
+ } ]
668
+ },
669
+ plane: {
670
+ accessors: [ {
671
+ name: "Rectangle001_1_0_positions",
672
+ componentType: 5126,
673
+ count: 4,
674
+ min: [ -5, -5, 0 ],
675
+ max: [ 5, 5, 0 ],
676
+ type: "VEC3",
677
+ bufferView: 0,
678
+ byteOffset: 0
679
+ }, {
680
+ name: "Rectangle001_1_0_normals",
681
+ componentType: 5126,
682
+ count: 4,
683
+ min: [ 0, 0, 1 ],
684
+ max: [ 0, 0, 1 ],
685
+ type: "VEC3",
686
+ bufferView: 1,
687
+ byteOffset: 0
688
+ }, {
689
+ name: "Rectangle001_1_0_indices",
690
+ componentType: 5123,
691
+ count: 6,
692
+ min: [ 0 ],
693
+ max: [ 3 ],
694
+ type: "SCALAR",
695
+ bufferView: 2,
696
+ byteOffset: 0
697
+ } ],
698
+ asset: {
699
+ generator: "obj2gltf",
700
+ version: "2.0"
701
+ },
702
+ buffers: [ {
703
+ name: "plane",
704
+ byteLength: 108,
705
+ uri: "data:application/octet-stream;base64,AACgQAAAoEAAAAAAAACgwAAAoEAAAAAAAACgwAAAoMAAAAAAAACgQAAAoMAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAABAAIAAgADAAAA"
706
+ } ],
707
+ bufferViews: [ {
708
+ name: "bufferView_0",
709
+ buffer: 0,
710
+ byteLength: 48,
711
+ byteOffset: 0,
712
+ byteStride: 12,
713
+ target: 34962
714
+ }, {
715
+ name: "bufferView_1",
716
+ buffer: 0,
717
+ byteLength: 48,
718
+ byteOffset: 48,
719
+ byteStride: 12,
720
+ target: 34962
721
+ }, {
722
+ name: "bufferView_2",
723
+ buffer: 0,
724
+ byteLength: 12,
725
+ byteOffset: 96,
726
+ target: 34963
727
+ } ],
728
+ materials: [ {
729
+ name: "wire_225198087",
730
+ pbrMetallicRoughness: {
731
+ baseColorFactor: [ .8824, .7765, .3412, 1 ],
732
+ metallicFactor: 0,
733
+ roughnessFactor: .968
734
+ },
735
+ emissiveFactor: [ 0, 0, 0 ],
736
+ alphaMode: "OPAQUE",
737
+ doubleSided: !1
738
+ } ],
739
+ meshes: [ {
740
+ name: "Rectangle001_1",
741
+ primitives: [ {
742
+ attributes: {
743
+ POSITION: 0,
744
+ NORMAL: 1
745
+ },
746
+ indices: 2,
747
+ material: 0,
748
+ mode: 4
749
+ } ]
750
+ } ],
751
+ nodes: [ {
752
+ name: "Rectangle001",
753
+ mesh: 0
754
+ } ],
755
+ scene: 0,
756
+ scenes: [ {
757
+ nodes: [ 0 ]
758
+ } ]
759
+ }
760
+ }, B = [];
761
+
762
+ function f(s, i, n, o, I, r) {
763
+ const a = [], h = A.fromEuler([], n[0], n[1], n[2]), g = t.fromRotationTranslationScale([], h, i, o), B = function(A) {
764
+ return new c.GLTFLoader("", w[A]).load().then((A => A));
765
+ }(s);
766
+ return B.then((A => {
767
+ const s = e.GLTFHelper.exportGLTFPack(A).getMeshesInfo(), h = new e.Material({
768
+ color: I
769
+ });
770
+ s.forEach((A => {
771
+ const s = new e.Mesh(A.geometry, h);
772
+ s.setUniform("uPickingId", r);
773
+ const c = s.getDefines();
774
+ c.HAS_PICKING_ID = 2, s.setDefines(c), s.translate = i, s.rotation = n, s.scaling = o,
775
+ t.multiply(s.localTransform, g, A.nodeMatrix), s.originTransform = t.copy([], s.localTransform),
776
+ s.originColor = I, a.push(s);
777
+ }));
778
+ })), a;
779
+ }
780
+
781
+ function C(A, e) {
782
+ const i = A.getCoordinates(), n = e.coordinateToPointAtRes(i, e.getGLRes()), I = [ n.x, n.y, 0 ], r = A.getTranslation();
783
+ s.add(I, I, r);
784
+ const a = function(A, t, e, s) {
785
+ return A._pointAtResToContainerPoint(t, e, s);
786
+ }(e, new o.Point(I[0], I[1]), e.getGLRes());
787
+ a.x += 170;
788
+ const h = function(A, e, i, n) {
789
+ if (n) {
790
+ const I = i / A._getResolution(), r = A.width / 2, a = A.height / 2;
791
+ B[0] = (e.x - r) / r, B[1] = e.y / a - 1, B[3] = n * I;
792
+ const h = t.invert([], A.projViewMatrix);
793
+ s.transformMat4(B, B, h);
794
+ const g = A.getGLScale();
795
+ return s.set(B, B[0] / g, B[1] / g, B[2] / g), s.scale(B, B, 1 / I), new o.Point(B[0], B[1]);
796
+ }
797
+ {
798
+ const t = A.containerPointToCoordinate(e);
799
+ return A.coordinateToPointAtRes(t, i);
800
+ }
801
+ }(e, a, e.getGLRes());
802
+ return Math.sqrt(Math.pow(h.x - I[0], 2) + Math.pow(h.y - I[1], 2)) / 5.272881136101205;
803
+ }
804
+
805
+ class P {
806
+ constructor(A) {
807
+ this.A = A, this._meshes = this.t();
808
+ }
809
+ setCoordinate(A) {
810
+ this.A = A;
811
+ }
812
+ t() {
813
+ const A = [], t = 340 / 177, e = f("jiantou", [ 1.2 * t, 0, 0 ], [ 0, 0, 90 ], [ t, t, t ], [ 89 / 255, 206 / 255, 147 / 255, 0 ], 7), s = f("jiantou", [ 0, 1.2 * t, 0 ], [ 0, 0, 180 ], [ t, t, t ], [ 89 / 255, 206 / 255, 147 / 255, 0 ], 8), i = f("jiantou", [ -1.2 * t, 0, 0 ], [ 0, 0, 270 ], [ t, t, t ], [ 89 / 255, 206 / 255, 147 / 255, 0 ], 9), n = f("jiantou", [ 0, -1.2 * t, 0 ], [ 0, 0, 0 ], [ t, t, t ], [ 89 / 255, 206 / 255, 147 / 255, 0 ], 10);
814
+ return A.push(e, s, i, n), A;
815
+ }
816
+ getMeshes() {
817
+ return this._meshes;
818
+ }
819
+ }
820
+
821
+ class m {
822
+ constructor(A) {
823
+ this.A = A, this._meshes = this.t();
824
+ }
825
+ setCoordinate(A) {
826
+ this.A = A;
827
+ }
828
+ t() {
829
+ const A = [], t = 340 / 177, e = f("xuanzhuan", [ 0, 0, 0 ], [ 180, 0, 0 ], [ .5 * t, .5 * t, .5 * t ], [ 50 / 255, 130 / 255, 184 / 255, .8 ], 11);
830
+ return A.push(e), A;
831
+ }
832
+ getMeshes() {
833
+ return this._meshes;
834
+ }
835
+ }
836
+
837
+ class u {
838
+ constructor(A) {
839
+ this.A = A, this._meshes = this.t();
840
+ }
841
+ setCoordinate(A) {
842
+ this.A = A;
843
+ }
844
+ t() {
845
+ const A = [], t = 340 / 177, e = f("yuanhuan", [ 0, 0, 0 ], [ 0, 0, 0 ], [ .5 * t, .5 * t, .5 * t ], [ 149 / 255, 179 / 255, 199 / 255, .5 ], 12);
846
+ return A.push(e), A;
847
+ }
848
+ getMeshes() {
849
+ return this._meshes;
850
+ }
851
+ }
852
+
853
+ class Q {
854
+ constructor(A) {
855
+ this.A = A, this._meshes = this.t();
856
+ }
857
+ setCoordinate(A) {
858
+ this.A = A;
859
+ }
860
+ t() {
861
+ const A = [], t = f("plane", [ 0, 0, 0 ], [ 0, 0, 0 ], [ 10, 10, 10 ], [ 1, 0, 0, .5 ], 16);
862
+ return A.push(t), A;
863
+ }
864
+ getMeshes() {
865
+ return this._meshes;
866
+ }
867
+ }
868
+
869
+ const l = [], b = [], y = [], v = [], M = [], E = [ 177 / 170, 177 / 170, 177 / 170 ], D = [ 1, 2, 3, 4, 12 ];
870
+
871
+ class p {
872
+ constructor() {
873
+ this.translate = new P, this.rotation = new m, this.scaling = new u, this.planeHelper = new Q,
874
+ this._meshes = this.t(), this.i = !0;
875
+ }
876
+ t() {
877
+ const A = {};
878
+ A.translate = this.translate.getMeshes(), A.rotation = this.rotation.getMeshes(),
879
+ A.scaling = this.scaling.getMeshes(), A.planeHelper = this.planeHelper.getMeshes();
880
+ const t = 340 / 177, e = f("yuanhuan41", [ -2.745 * t, 2.745 * t, 0 ], [ 90, 0, 0 ], [ .5 * t, .5 * t, .5 * t ], [ 149 / 255, 179 / 255, 199 / 255, .6 ], 1), s = f("yuanhuan41", [ 2.745 * t, 2.745 * t, 0 ], [ -90, 0, 180 ], [ .5 * t, .5 * t, .5 * t ], [ 50 / 255, 130 / 255, 184 / 255, .5 ], 2), i = f("yuanhuan41", [ 2.745 * t, -2.745 * t, 0 ], [ 90, 0, 180 ], [ .5 * t, .5 * t, .5 * t ], [ 149 / 255, 179 / 255, 199 / 255, .6 ], 3), n = f("yuanhuan41", [ -2.745 * t, -2.745 * t, 0 ], [ -90, 0, 0 ], [ .5 * t, .5 * t, .5 * t ], [ 50 / 255, 130 / 255, 184 / 255, .5 ], 4), o = f("yuanpan", [ 0, 0, 0 ], [ 90, 0, 0 ], [ .5 * t, .5 * t, .5 * t ], [ 89 / 255, 206 / 255, 147 / 255, .5 ], 5), I = f("zzhou", [ 0, 0, 6.5 ], [ 90, 0, 0 ], [ 1, 1, 1 ], [ 14 / 255, 127 / 255, 191 / 255, 1 ], 6);
881
+ return A.translate.push(e, s, i, n, o, I), A;
882
+ }
883
+ updateMatrix(e, i, n, o, I) {
884
+ const r = i.getCoordinates(), a = e.coordinateToPointAtRes(r, e.getGLRes()), h = i.getPointZ();
885
+ s.set(b, a.x, a.y, h);
886
+ const g = s.copy(l, I), c = i.getTranslation();
887
+ s.add(b, b, c), s.add(b, b, g);
888
+ for (const I in this._meshes) for (let r = 0; r < this._meshes[I].length; r++) {
889
+ const a = this._meshes[I][r];
890
+ for (let I = 0; I < a.length; I++) {
891
+ const r = a[I], h = r.getUniform("uPickingId"), g = s.copy(l, r.translate), c = [ r.rotation[0], r.rotation[1], r.rotation[2] ], w = r.scaling;
892
+ if (11 === h && (this.i ? (c[2] += n, r.rotation[2] += n) : this.i || (c[2] += n,
893
+ r.rotation[2] += n, c[0] = 360, c[2] -= 90)), D.indexOf(h) > -1) if (12 !== h) w[0] += o,
894
+ w[1] += o, w[2] += o; else {
895
+ const A = this._meshes.translate[4][0];
896
+ w[0] = 1.2 * A.scaling[0], w[1] = 1.2 * A.scaling[0], w[2] = 1.2 * A.scaling[0];
897
+ }
898
+ let B = C(i, e);
899
+ if (B = s.set(y, B, B, B), s.multiply(g, g, B), s.multiply(B, B, w), 1 === h || 2 === h || 3 === h || 4 === h) {
900
+ const A = s.multiply(M, w, E);
901
+ s.multiply(g, g, A);
902
+ }
903
+ const f = A.fromEuler(v, c[0], c[1], c[2]);
904
+ s.add(g, g, b), t.fromRotationTranslationScale(r.localTransform, f, g, B);
905
+ }
906
+ }
907
+ }
908
+ getMeshes(A) {
909
+ const t = {};
910
+ return t.translate = this._meshes.translate, A && "translate" !== A && (t[A] = this._meshes[A]),
911
+ t;
912
+ }
913
+ o(A) {
914
+ this.i = A;
915
+ }
916
+ dispose() {
917
+ for (const A in this._meshes) for (let t = 0; t < this._meshes[A].length; t++) {
918
+ const e = this._meshes[A][t];
919
+ for (let A = 0; A < e.length; A++) {
920
+ const t = e[A];
921
+ t.geometry.dispose(), t.dispose();
922
+ }
923
+ }
924
+ }
925
+ }
926
+
927
+ const d = [ 5, 6, 7, 8, 9, 10 ], x = [ 5, 7, 8, 9, 10 ], F = [ 2, 4, 11 ], U = [ 1, 3, 12 ], k = [ 12, 16 ], L = [ 1, 2, 3, 4 ], V = [ 1, 2, 3, 4, 12 ], O = [], S = [], H = [], N = [], T = [], K = [], _ = [];
928
+
929
+ class R extends(I(r(a))){
930
+ constructor(A) {
931
+ super(A), this.options = A, this.mouseAction = "moving", this.I = "translate", this.h = !0,
932
+ this.TransformHelper = new p, this.helperScene = new e.Scene([]), this.addToMapCount = 0;
933
+ }
934
+ enable() {
935
+ return this.h = !0, this.layerRenderer && this.layerRenderer.setToRedraw(), this;
936
+ }
937
+ disable() {
938
+ return this.h = !1, this.layerRenderer && this.layerRenderer.setToRedraw(), this.map && this.map.resetCursor(),
939
+ this;
940
+ }
941
+ isEnable() {
942
+ return this.h;
943
+ }
944
+ g(A) {
945
+ d.indexOf(A) > -1 ? this.I = "translate" : F.indexOf(A) > -1 ? this.I = "rotation" : U.indexOf(A) > -1 ? this.I = "scaling" : this.I = "translate";
946
+ }
947
+ B() {
948
+ return this.I;
949
+ }
950
+ addTo(A) {
951
+ this.map && (this.C(), console.warn("transform control has been added to a map, it suggest remove from the map before")),
952
+ this.addToMapCount++, this.map = A, this.container = A.getContainer(), A.on("dom:mousemove", this.P, this),
953
+ A.on("dom:mousedown", this.m, this), A.on("dom:mouseup", this.u, this), A.on("zooming moving dragrotating", this.l, this),
954
+ this.v();
955
+ }
956
+ remove() {
957
+ this.map && this.container && this.layerRenderer && (this.C(), this.TransformHelper.dispose(),
958
+ this.layerRenderer.setToRedraw(), delete this.map, delete this.layer, delete this.layerRenderer,
959
+ delete this.container, delete this.M);
960
+ }
961
+ C() {
962
+ this.container && this.map && (this.map.off("mousemove", this.P, this), this.map.off("mousedown", this.m, this),
963
+ this.map.off("mouseup", this.u, this), this.map.off("zooming moving dragrotating", this.l, this),
964
+ this.layer && this.layer.off("renderend", this.render, this));
965
+ }
966
+ P(A) {
967
+ if (this.D()) {
968
+ if (this.currentMousePosition = {
969
+ x: A.containerPoint.x,
970
+ y: A.containerPoint.y
971
+ }, "moving" === this.mouseAction) {
972
+ const A = this.p();
973
+ this.currentPickingObject = this.F(this.currentMousePosition, A, "meshes"), this.currentPickingObject && null != this.currentPickingObject.pickingId ? (this.g(this.currentPickingObject.pickingId),
974
+ 6 === this.currentPickingObject.pickingId ? this.U(!0) : this.U(!1)) : (this.U(!1),
975
+ this.g()), this.k();
976
+ }
977
+ this.L(this.currentMousePosition);
978
+ }
979
+ }
980
+ m(A) {
981
+ if (!this.D()) return;
982
+ const t = this.p();
983
+ this.currentMousePosition = {
984
+ x: A.containerPoint.x,
985
+ y: A.containerPoint.y
986
+ }, this.V = !0, this.currentPickingObject = this.F(this.currentMousePosition, t, "meshes"),
987
+ this.firstDownPoint = this.F(this.currentMousePosition, t, "meshes"), this.currentPickingObject && null != this.currentPickingObject.meshId ? (this.mouseAction = "transform",
988
+ this.O(this.currentPickingObject.pickingId), this.map.config("zoomable", !1), this.map.config("draggable", !1),
989
+ this.layerRenderer && this.layerRenderer.setToRedraw()) : (this.mouseAction = "pan",
990
+ this.map.config("zoomable", !0), this.map.config("draggable", !0), this.S()), this.lastMousePosition = this.currentMousePosition,
991
+ this.lastPickingObject = this.currentPickingObject, this.lastPickingMesh = t[this.currentPickingObject.meshId];
992
+ }
993
+ u() {
994
+ "transform" === this.mouseAction && (this.firstDownPoint = null, this.S(), this.V = !0,
995
+ this.fire("transformend", {
996
+ action: this.H,
997
+ type: "transformend"
998
+ })), this.mouseAction = "moving", this.I = "translate", this.map.config("zoomable", !0),
999
+ this.map.config("draggable", !0), this.layerRenderer && this.layerRenderer.setToRedraw();
1000
+ }
1001
+ l() {
1002
+ const A = this.TransformHelper.planeHelper.getMeshes()[0][0], t = this.map.getBearing();
1003
+ A.rotation[2] = -t, this.N();
1004
+ }
1005
+ N() {
1006
+ this.D() && (this.TransformHelper.updateMatrix(this.map, this.M, 0, 0, [ 0, 0, 0 ]),
1007
+ this.V = !0);
1008
+ }
1009
+ picked(A) {
1010
+ if (!this.layerRenderer) return !1;
1011
+ const t = this.p(), e = this.map;
1012
+ let s = A;
1013
+ A instanceof h || (s = e.coordinateToContainerPoint(new g(A)));
1014
+ const i = this.F(s, t, "picked");
1015
+ return !(!i || null === i.meshId);
1016
+ }
1017
+ S() {
1018
+ const A = this.TransformHelper.getMeshes("scaling").scaling[0][0], t = 340 / 177;
1019
+ A.scaling = [ .6 * t, .6 * t, .6 * t ], this.layerRenderer && (this.T(A), this.K());
1020
+ }
1021
+ K() {
1022
+ this.TransformHelper._meshes.translate.forEach((A => {
1023
+ for (let t = 0; t < A.length; t++) {
1024
+ const e = A[t];
1025
+ L.indexOf(e.getUniform("uPickingId")) > -1 && e.material.set("color", e.originColor);
1026
+ }
1027
+ }));
1028
+ }
1029
+ T(e) {
1030
+ const i = this.M.getCoordinates(), n = this.map.coordinateToPointAtRes(i, this.map.getGLRes()), o = [ n.x, n.y, 0 ], I = this.M.getTranslation();
1031
+ s.add(o, o, I);
1032
+ const r = s.copy([], e.translate), a = e.scaling;
1033
+ let h = C(this.M, this.map);
1034
+ h = s.set([], h, h, h), s.multiply(r, r, h), s.multiply(h, h, a), s.add(r, r, o),
1035
+ t.fromRotationTranslationScale(e.localTransform, [ 0, 0, 0, 1 ], r, h);
1036
+ this.p().forEach((e => {
1037
+ const i = e.getUniform("uPickingId");
1038
+ if (1 === i || 3 === i || 2 === i || 4 === i) {
1039
+ const i = s.copy([], e.translate), n = 170 / 177;
1040
+ e.scaling = [ n, n, n ];
1041
+ const I = e.scaling, r = e.rotation;
1042
+ let a = C(this.M, this.map);
1043
+ a = s.set([], a, a, a), s.multiply(i, i, a), s.multiply(a, a, I), s.add(i, i, o);
1044
+ const h = A.fromEuler([], r[0], r[1], r[2]);
1045
+ t.fromRotationTranslationScale(e.localTransform, h, i, a);
1046
+ }
1047
+ }));
1048
+ }
1049
+ _(A) {
1050
+ const t = this.map.containerPointToCoordinate(A), e = this.map.coordinateToPointAtRes(t, this.map.getGLRes());
1051
+ return {
1052
+ point: [ e.x, e.y ]
1053
+ };
1054
+ }
1055
+ L(A) {
1056
+ if ("transform" === this.mouseAction) {
1057
+ const A = this.B(), t = this.M.getTranslation(), e = this.M.getPointZ(), n = this.M.getCoordinates(), o = this.map.coordinateToPointAtRes(n, this.map.getGLRes()), I = this.M.getRotation(), r = this.M.getScale();
1058
+ let a = null, c = null;
1059
+ if (t[2] + e < .01 && "z-translate" !== this.H) a = this._(this.currentMousePosition),
1060
+ c = this._(this.lastMousePosition); else {
1061
+ const A = this.TransformHelper.planeHelper.getMeshes()[0];
1062
+ if (a = this.F(this.currentMousePosition, A, "plane"), c = this.F(this.lastMousePosition, A, "plane"),
1063
+ !a || null === a.meshId || !c || null === c.meshId) return;
1064
+ }
1065
+ const w = [ 0, 0, 0 ], B = [ 0, 0, 0 ];
1066
+ let f = 0, C = 0, P = 0;
1067
+ if ("translate" === A) {
1068
+ if ("xy-translate" === this.H) {
1069
+ const A = a.point[0] - c.point[0], t = a.point[1] - c.point[1];
1070
+ w[0] = A, w[1] = t;
1071
+ } else if ("x-translate" === this.H) {
1072
+ const A = a.point[0] - c.point[0];
1073
+ w[0] = A;
1074
+ } else if ("y-translate" === this.H) {
1075
+ const A = a.point[1] - c.point[1];
1076
+ w[1] = A;
1077
+ } else if ("z-translate" === this.H) {
1078
+ let A = 0;
1079
+ if (this.R()) {
1080
+ const t = this.map.getGLRes(), e = this.map._pointAtResToContainerPoint(new h(c.point[0], c.point[1]), t), s = this.map._pointAtResToContainerPoint(new h(a.point[0], a.point[1]), t), n = i.length(i.set(N, a.point[0] - c.point[0], a.point[1] - c.point[1]));
1081
+ A = s.y < e.y ? n : -n;
1082
+ } else A = a.point[2] - c.point[2];
1083
+ w[2] = Math.sign(A) * this.map.pointAtResToAltitude(A, this.map.getGLRes());
1084
+ }
1085
+ } else if ("rotation" === A) C = this.G(a.point, c.point), C >= 0 ? this.TransformHelper.o(!0) : this.TransformHelper.o(!1),
1086
+ B[2] += C; else if ("scaling" === A) {
1087
+ const A = this.j(), t = i.length(i.set(N, this.firstDownPoint.point[0] - A[0], this.firstDownPoint.point[1] - A[1])), e = i.length(i.set(N, c.point[0] - A[0], c.point[1] - A[1]));
1088
+ f = this.Z(a.point, c.point, A, e, r), P = this.Z(a.point, c.point, A, t);
1089
+ }
1090
+ const m = s.set([], o.x, o.y, n.z || 0), u = s.add(m, m, w), Q = this.map.pointAtResToCoordinate(new g(u[0], u[1]), this.map.getGLRes());
1091
+ Q.z = u[2];
1092
+ let l = null;
1093
+ l = f >= 0 ? f : f * (this.options && this.options.scaleStrength || 1);
1094
+ const b = s.add(r, s.set(N, l, l * (r[1] / r[0]), l * (r[2] / r[0])), r);
1095
+ if (Math.min(...b) < .01) {
1096
+ const A = Math.min(...r);
1097
+ b[0] = r[0] * (.01 / A), b[1] = r[1] * (.01 / A), b[2] = r[2] * (.01 / A);
1098
+ }
1099
+ const y = s.add(I, B, I);
1100
+ this.TransformHelper.updateMatrix(this.map, this.M, C, P, w), this.H.indexOf("translate") > -1 ? this.fire("positionchange", {
1101
+ action: this.H,
1102
+ type: "positionchange",
1103
+ target: this.M,
1104
+ coordinate: Q
1105
+ }) : this.fire("transforming", {
1106
+ action: this.H,
1107
+ type: "transforming",
1108
+ target: this.M,
1109
+ translate: t,
1110
+ rotation: y,
1111
+ scale: b
1112
+ });
1113
+ }
1114
+ this.lastMousePosition = A, this.lastPickingObject = this.currentPickingObject;
1115
+ const t = this.p();
1116
+ this.lastPickingMesh = t[this.currentPickingObject.meshId];
1117
+ }
1118
+ Z(A, t, e, s, n) {
1119
+ const o = (i.length(i.set(N, A[0] - e[0], A[1] - e[1])) - i.length(i.set(N, t[0] - e[0], t[1] - e[1]))) / s;
1120
+ return n ? (n[0] - .01) * o : o;
1121
+ }
1122
+ j() {
1123
+ const A = this.map, t = this.M.getCoordinates(), e = A.coordinateToPointAtRes(t, A.getGLRes()), i = s.set(T, e.x, e.y, 0), n = this.M.getTranslation();
1124
+ return s.add(i, i, n), i;
1125
+ }
1126
+ U(e) {
1127
+ const i = this.TransformHelper.planeHelper.getMeshes()[0][0], n = t.getTranslation(H, i.localTransform), o = t.getScaling(S, i.localTransform);
1128
+ let I = A.fromEuler(O, 0, 0, 0);
1129
+ const r = this.map.getBearing();
1130
+ e && !this.R() ? (I = A.fromEuler(O, 90, 0, -r), 0 === i.rotation[0] && (this.V = !0),
1131
+ s.set(i.rotation, 90, 0, -r)) : (90 === i.rotation[0] && (this.V = !0), s.set(i.rotation, 0, 0, -r)),
1132
+ t.fromRotationTranslationScale(i.localTransform, I, n, o);
1133
+ }
1134
+ R() {
1135
+ if (this.map.getPitch()) return !1;
1136
+ const A = this.map.cameraPosition, t = this.map.coordinateToPointAtRes(this.map.getCenter(), this.map.getGLRes());
1137
+ s.set(t, t.x, t.y, 0);
1138
+ const e = this.M.getCoordinates(), i = this.map.coordinateToPointAtRes(e, this.map.getGLRes()), n = this.M.getTranslation(), o = s.set(H, i.x, i.y, 0), I = s.add(o, o, n), r = s.subtract([], A, I), a = s.subtract([], A, t);
1139
+ return s.angle(r, a) < 1 / 180 * Math.PI;
1140
+ }
1141
+ k() {
1142
+ const A = this.p();
1143
+ if (this.currentPickingObject && null != this.currentPickingObject.meshId) {
1144
+ this.J(), this.lastPickingObject && null != this.lastPickingObject.meshId && this.lastPickingObject.meshId !== this.currentPickingObject.meshId && this.Y();
1145
+ const t = A[this.currentPickingObject.meshId];
1146
+ if (t && k.indexOf(this.currentPickingObject.pickingId) < 0) {
1147
+ const A = [ t.originColor[0], t.originColor[1], t.originColor[2], .8 ];
1148
+ t.material.set("color", A), this.W(t, .5);
1149
+ }
1150
+ this.layerRenderer.setToRedraw();
1151
+ } else this.lastPickingObject && null != this.lastPickingObject.meshId && (this.map.resetCursor(),
1152
+ this.Y(), this.layerRenderer.setToRedraw());
1153
+ }
1154
+ J() {
1155
+ 6 === this.currentPickingObject.pickingId ? this.map.setCursor("ns-resize") : x.indexOf(this.currentPickingObject.pickingId) > -1 ? this.map.setCursor("move") : this.map.setCursor("pointer");
1156
+ }
1157
+ Y() {
1158
+ const A = this.lastPickingMesh;
1159
+ if (!A) return;
1160
+ const t = A.getUniform("uPickingId"), e = this.p();
1161
+ x.indexOf(t) > -1 ? e.forEach((A => {
1162
+ x.indexOf(A.getUniform("uPickingId")) > -1 && A.material.set("color", A.originColor);
1163
+ })) : V.indexOf(t) > -1 ? e.forEach((A => {
1164
+ const t = A.getUniform("uPickingId");
1165
+ L.indexOf(t) > -1 && A.material.set("color", A.originColor);
1166
+ })) : 11 === t && e.forEach((A => {
1167
+ L.indexOf(A.getUniform("uPickingId")) > -1 && A.material.set("color", A.originColor);
1168
+ })), A.material.set("color", A.originColor);
1169
+ }
1170
+ W(A, t) {
1171
+ const e = A.getUniform("uPickingId"), s = this.p();
1172
+ x.indexOf(e) > -1 ? s.forEach((e => {
1173
+ if (x.indexOf(e.getUniform("uPickingId")) > -1 && e.getUniform("uPickingId") !== A.getUniform("uPickingId")) {
1174
+ const A = [ e.originColor[0], e.originColor[1], e.originColor[2], t ];
1175
+ e.material.set("color", A);
1176
+ }
1177
+ })) : "scaling" === this.I ? s.forEach((A => {
1178
+ const t = A.getUniform("uPickingId");
1179
+ if (1 === t || 3 === t || 2 === t || 4 === t) {
1180
+ const t = [ 149 / 255, 179 / 255, 199 / 255, .8 ];
1181
+ A.material.set("color", t);
1182
+ }
1183
+ })) : "rotation" === this.I && s.forEach((A => {
1184
+ const t = A.getUniform("uPickingId");
1185
+ if (1 === t || 3 === t || 2 === t || 4 === t) {
1186
+ const t = A.originColor;
1187
+ A.material.set("color", [ t[0], t[1], t[2], 0 ]);
1188
+ }
1189
+ }));
1190
+ }
1191
+ reset() {
1192
+ if (!this.map || !this.M) return;
1193
+ this.M.setTranslation(this.M.originTrans), this.M.setRotation(this.q), this.M.setScale(this.X);
1194
+ const A = this.M.getTranslation();
1195
+ s.scale(A, A, -1), this.TransformHelper.updateMatrix(this.map, this.M, 0, 1, [ 0, 0, 0 ]);
1196
+ }
1197
+ G(A, t) {
1198
+ const e = this.j(), s = i.set(K, t[0] - e[0], t[1] - e[1]), n = i.set(_, A[0] - e[0], A[1] - e[1]), o = Math.atan2(s[1], s[0]);
1199
+ return (Math.atan2(n[1], n[0]) - o) / Math.PI * 180;
1200
+ }
1201
+ O(A) {
1202
+ return this.H = 5 === A ? "xy-translate" : 6 === A ? "z-translate" : 7 === A || 9 === A ? "x-translate" : 8 === A || 10 === A ? "y-translate" : 11 === A ? "z-rotate" : "scale",
1203
+ this.H;
1204
+ }
1205
+ transform(A) {
1206
+ if (this.layerRenderer && this.layerRenderer.layer && (this.layerRenderer.layer.off("renderend", this.render),
1207
+ this.layerRenderer.layer.off("resizeCanvas", this.$)), this.M && (this.M.off("remove", this.AA, this),
1208
+ delete this.M), this.M = A, this.M.on("remove", this.AA, this), !this.map) return void console.error("should add to a target first");
1209
+ const t = this.map;
1210
+ this.M.originTrans || (this.M.originTrans = this.M.getTranslation(), this.M.originRotation = this.M.getRotation(),
1211
+ this.M.originScale = this.M.getScale()), this.TransformHelper.updateMatrix(t, A, 0, 0, [ 0, 0, 0 ]),
1212
+ this.tA(), this.V = !0;
1213
+ }
1214
+ getTransformTarget() {
1215
+ return this.M;
1216
+ }
1217
+ AA() {
1218
+ delete this.M;
1219
+ }
1220
+ tA() {
1221
+ const A = this.M.getLayer();
1222
+ A && (A.off("renderend", this.render), A.off("resizeCanvas", this.$));
1223
+ const t = this.map.getLayers();
1224
+ let e = null;
1225
+ for (let A = 0; A < t.length; A++) if (t[A] instanceof n) {
1226
+ e = t[A];
1227
+ break;
1228
+ }
1229
+ if (!e) return;
1230
+ const s = e.getLayers(), i = s.indexOf(A);
1231
+ if (i < 0) return;
1232
+ s.splice(i, 1), s.push(A);
1233
+ const o = this.map, I = A.getRenderer();
1234
+ this.layerRenderer = I, this.regl = I.regl, this.renderer = I.renderer, this.eA = this.layerRenderer.getFBORayPicking(),
1235
+ this.sA = {
1236
+ projViewMatrix: o.projViewMatrix
1237
+ }, A.on("renderend", this.render, this), A.on("resizeCanvas", this.$, this), I.setToRedraw();
1238
+ }
1239
+ $() {
1240
+ this.eA.clear(), this.V = !0;
1241
+ }
1242
+ F(A, t, e) {
1243
+ const s = this.map;
1244
+ if (!(s && this.eA && this.layerRenderer && this.layerRenderer.canvas)) return null;
1245
+ const i = s.getDevicePixelRatio(), n = A.x * i, o = A.y * i, I = {
1246
+ projViewMatrix: this.map.projViewMatrix,
1247
+ pointSize: 1
1248
+ }, r = this.layerRenderer.canvas.gl && this.layerRenderer.canvas.gl.wrap;
1249
+ (this.V || r || !this.iA || this.iA !== e) && (this.eA.render(t, I, !0), this.iA = e,
1250
+ this.V = !1);
1251
+ return this.eA.pick(n, o, 10, I, {
1252
+ viewMatrix: this.map.viewMatrix,
1253
+ projMatrix: this.map.projMatrix,
1254
+ returnPoint: !0
1255
+ });
1256
+ }
1257
+ v() {
1258
+ const A = this.map.getDevicePixelRatio(), s = {
1259
+ x: 0,
1260
+ y: 0,
1261
+ width: () => this.map ? this.map.width * A : 1,
1262
+ height: () => this.map ? this.map.height * A : 1
1263
+ };
1264
+ this.nA = new e.MeshShader({
1265
+ vert: "attribute vec3 aPosition;\n\nuniform mat4 projViewModelMatrix;\n\n\n\nvoid main()\n\n{\n\n gl_Position = projViewModelMatrix * vec4(aPosition, 1.0);\n\n\n\n}\n\n",
1266
+ frag: "precision mediump float;\n\nuniform vec4 color;\n\n\n\nvoid main() {\n\n gl_FragColor = color;\n\n}\n\n",
1267
+ uniforms: [ "color", {
1268
+ name: "projViewModelMatrix",
1269
+ type: "function",
1270
+ fn: function(A, e) {
1271
+ return t.multiply([], e.projViewMatrix, e.modelMatrix);
1272
+ }
1273
+ } ],
1274
+ extraCommandProps: {
1275
+ viewport: s,
1276
+ depth: {
1277
+ enable: !0,
1278
+ func: "always",
1279
+ mask: !1,
1280
+ range: [ 0, 0 ]
1281
+ },
1282
+ blend: {
1283
+ enable: !0,
1284
+ func: {
1285
+ src: "src alpha",
1286
+ dst: "one minus src alpha"
1287
+ },
1288
+ equation: "add"
1289
+ }
1290
+ },
1291
+ defines: {}
1292
+ });
1293
+ }
1294
+ render() {
1295
+ if (!this.D()) return;
1296
+ const A = this.p();
1297
+ this.helperScene.setMeshes(A);
1298
+ const t = this.layerRenderer.getFrameContext();
1299
+ if (t && t.renderTarget && this.layerRenderer.getFrameTimestamp() !== t.timestamp) return;
1300
+ this.N(), this.nA.filter = t && t.sceneFilter;
1301
+ const e = t && t.renderTarget && t.renderTarget.fbo;
1302
+ this.renderer.render(this.nA, this.sA, this.helperScene, e);
1303
+ }
1304
+ p() {
1305
+ let A = [];
1306
+ const t = this.TransformHelper.getMeshes(this.I);
1307
+ for (const e in t) {
1308
+ if ("translate" === e) continue;
1309
+ const s = t[e];
1310
+ for (let t = 0; t < s.length; t++) A = A.concat(s[t]);
1311
+ }
1312
+ const e = t.translate;
1313
+ for (let t = 0; t < e.length; t++) A = A.concat(e[t]);
1314
+ return A;
1315
+ }
1316
+ D() {
1317
+ const A = this.layerRenderer, t = A && A.layer;
1318
+ return A && this.M && t && t.isVisible() && this.M.isVisible() && this.regl && this.h;
1319
+ }
1320
+ }
1321
+
1322
+ R.mergeOptions({
1323
+ scaleStrength: 2
1324
+ });
1325
+
1326
+ export { R as TransformControl };
1327
+
1328
+ "undefined" != typeof console && console.log("@maptalks/transform-control v0.7.0");