gl-draw 0.17.0-beta.3 → 0.17.0-beta.31

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 (34) hide show
  1. package/dist/constants.d.ts +0 -1
  2. package/dist/core/BaseObject/PointerEvent.d.ts +1 -0
  3. package/dist/core/BaseObject/index.d.ts +4 -4
  4. package/dist/core/Composer.d.ts +5 -5
  5. package/dist/core/Helper.d.ts +4 -4
  6. package/dist/core/Lead/Pick.d.ts +35 -3
  7. package/dist/core/Lead/index.d.ts +5 -6
  8. package/dist/core/Pages/Pages.d.ts +1 -0
  9. package/dist/core/Pencil.d.ts +3 -3
  10. package/dist/core/pass/OutputPass.d.ts +1 -2
  11. package/dist/index.js +2 -2
  12. package/dist/index.module.js +501 -408
  13. package/dist/index.module2.js +1097 -0
  14. package/dist/index2.js +140 -0
  15. package/dist/objects/extrudePolygon/createGeometry.d.ts +2 -1
  16. package/dist/objects/group/index.d.ts +1 -0
  17. package/dist/objects/index.js +1 -1
  18. package/dist/objects/index.module.js +339 -379
  19. package/dist/objects/node/index.d.ts +4 -2
  20. package/dist/objects/pie/index.d.ts +2 -1
  21. package/dist/plugins/Worker/getAttributes/conicLine.d.ts +2 -3
  22. package/dist/plugins/Worker/getAttributes/conicPolygon.d.ts +2 -3
  23. package/dist/plugins/Worker/getAttributes/extrudePolygon.d.ts +2 -4
  24. package/dist/plugins/Worker/getAttributes/getCoordinatesArr.d.ts +5 -1
  25. package/dist/plugins/Worker/getAttributes/getMessage.d.ts +1 -1
  26. package/dist/plugins/Worker/getAttributes/line.d.ts +2 -2
  27. package/dist/plugins/Worker/getAttributes/line2.d.ts +2 -2
  28. package/dist/plugins/Worker/getAttributes/splitPolygonsByLongitudeDifference.d.ts +5 -2
  29. package/dist/plugins/Worker/index.d.ts +3 -3
  30. package/dist/plugins/index.js +1 -1
  31. package/dist/plugins/index.module.js +77 -57
  32. package/package.json +1 -1
  33. package/dist/WebGPULineSegments2.js +0 -140
  34. package/dist/WebGPULineSegments2.module.js +0 -1031
@@ -0,0 +1,1097 @@
1
+ var Oe = Object.defineProperty, De = Object.defineProperties;
2
+ var Te = Object.getOwnPropertyDescriptors;
3
+ var W = Object.getOwnPropertySymbols;
4
+ var se = Object.prototype.hasOwnProperty, re = Object.prototype.propertyIsEnumerable;
5
+ var ne = Math.pow, ie = (n, e, t) => e in n ? Oe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, L = (n, e) => {
6
+ for (var t in e || (e = {}))
7
+ se.call(e, t) && ie(n, t, e[t]);
8
+ if (W)
9
+ for (var t of W(e))
10
+ re.call(e, t) && ie(n, t, e[t]);
11
+ return n;
12
+ }, q = (n, e) => De(n, Te(e));
13
+ var oe = (n, e) => {
14
+ var t = {};
15
+ for (var i in n)
16
+ se.call(n, i) && e.indexOf(i) < 0 && (t[i] = n[i]);
17
+ if (n != null && W)
18
+ for (var i of W(n))
19
+ e.indexOf(i) < 0 && re.call(n, i) && (t[i] = n[i]);
20
+ return t;
21
+ };
22
+ var ae = (n, e, t) => new Promise((i, s) => {
23
+ var o = (a) => {
24
+ try {
25
+ r(t.next(a));
26
+ } catch (l) {
27
+ s(l);
28
+ }
29
+ }, c = (a) => {
30
+ try {
31
+ r(t.throw(a));
32
+ } catch (l) {
33
+ s(l);
34
+ }
35
+ }, r = (a) => a.done ? i(a.value) : Promise.resolve(a.value).then(o, c);
36
+ r((t = t.apply(n, e)).next());
37
+ });
38
+ import { merge as H, mean as ke, extent as ce } from "d3-array";
39
+ import ze, { flatten as Ce } from "earcut";
40
+ import { Material as le, Object3D as R, Texture as ue, BufferGeometry as ee, Float32BufferAttribute as G, PointsMaterial as Ee, Points as te, InstancedMesh as Pe, Vector3 as S, Quaternion as Le, Group as Ve, Mesh as Ae, Sprite as de, Box3 as Ie, ShaderMaterial as Ne, Vector2 as K, Color as he, Vector4 as V, Matrix4 as We, Line3 as Ue, Sphere as _e, InstancedInterleavedBuffer as Re, InterleavedBufferAttribute as fe, MathUtils as Ge } from "three";
41
+ import $e from "@turf/boolean-clockwise";
42
+ import { p as pe, a as Fe } from "./polar2Cartesian.module.js";
43
+ import qe from "delaunator";
44
+ import Ke from "@turf/boolean-point-in-polygon";
45
+ import { geoBounds as Be, geoContains as Qe, geoDistance as Xe, geoInterpolate as Ye } from "d3-geo";
46
+ import { geoVoronoi as Ze } from "d3-geo-voronoi";
47
+ import { scaleLinear as me } from "d3-scale";
48
+ import { LineSegmentsGeometry as Je } from "three/examples/jsm/lines/LineSegmentsGeometry";
49
+ import { CSS2DObject as He } from "three/examples/jsm/renderers/CSS2DRenderer";
50
+ import { CSS3DObject as et, CSS3DSprite as tt } from "three/examples/jsm/renderers/CSS3DRenderer";
51
+ import "d3-geo-projection";
52
+ const ve = 0, be = 1, Tt = !1;
53
+ class it {
54
+ constructor() {
55
+ this.resources = /* @__PURE__ */ new Set(), this.disposeMaterial = !0, this.disposeVideo = !0;
56
+ }
57
+ track(e) {
58
+ if (!e)
59
+ return e;
60
+ if (Array.isArray(e))
61
+ return e.forEach((t) => this.track(t)), e;
62
+ if (!this.disposeMaterial && e instanceof le)
63
+ return e;
64
+ if (e instanceof Z ? (e.disposeTrack && e.object3d ? this.track(e.object3d) : this.resources.add(e), Object.values(e.materialList).map((t) => this.track(t))) : (e instanceof R || Reflect.has(e, "dispose")) && this.resources.add(e), e instanceof Z)
65
+ e.children.forEach((t) => {
66
+ t.disposeTrack = !1;
67
+ }), this.track(e.children);
68
+ else if (e instanceof R) {
69
+ const t = e;
70
+ this.track(t.geometry), this.track(t.material), this.track(t.children);
71
+ } else if (e instanceof le) {
72
+ for (const i of Object.values(e))
73
+ i instanceof ue && this.track(i);
74
+ const t = e;
75
+ if (t.uniforms) {
76
+ for (const i of Object.values(t.uniforms))
77
+ if (i) {
78
+ const s = i.value;
79
+ (s instanceof ue || Array.isArray(s)) && this.track(s);
80
+ }
81
+ }
82
+ } else this.disposeVideo && e.isVideoTexture && e.source.data && this.resources.add(e.source.data);
83
+ return e;
84
+ }
85
+ dispose() {
86
+ const e = [];
87
+ for (const t of this.resources)
88
+ t instanceof R ? e.push(t) : t instanceof HTMLVideoElement && t.pause(), Reflect.has(t, "dispose") && t.dispose();
89
+ e.forEach((t) => {
90
+ t.removeFromParent();
91
+ }), e.length = 0, this.resources.clear();
92
+ }
93
+ }
94
+ const st = (n, e = 1) => {
95
+ const t = new ee();
96
+ t.setAttribute(
97
+ "position",
98
+ new G(new Array(e * 3).fill(0), 3)
99
+ ), t.setAttribute(
100
+ "scaleAtt",
101
+ new G(new Array(e).fill(1), 1)
102
+ );
103
+ const i = n.material, s = new Ee({
104
+ size: 10,
105
+ map: i.map,
106
+ alphaMap: i.alphaMap,
107
+ color: i.color,
108
+ blending: i.blending,
109
+ depthTest: i.depthTest,
110
+ depthWrite: !1,
111
+ opacity: i.opacity,
112
+ transparent: !0,
113
+ alphaTest: i.alphaTest,
114
+ sizeAttenuation: !1
115
+ });
116
+ return s.onBeforeCompile = (o) => {
117
+ o.vertexShader = `
118
+ attribute float scaleAtt;
119
+ ${o.vertexShader.replace(
120
+ "gl_PointSize = size;",
121
+ "gl_PointSize = size * scaleAtt;"
122
+ )}
123
+ `;
124
+ }, new te(t, s);
125
+ }, rt = (n, e) => {
126
+ const t = new R();
127
+ e.forEach((i, s) => {
128
+ const o = pe(i.position), c = pe(i.scale || [1, 1, 1]);
129
+ t.position.copy(o), t.scale.copy(c), t.updateMatrix();
130
+ const r = t.matrix.clone();
131
+ if (n instanceof Pe || n.isInstantiate)
132
+ n.setMatrixAt(s, r);
133
+ else if (n instanceof te || n.type === "Points") {
134
+ const l = n.geometry, m = l.attributes.position.array, u = l.attributes.scaleAtt.array, f = new S(), d = new S(), p = new Le(), h = s * 3, v = s * 1;
135
+ r.decompose(f, p, d), m[h] = f.x, m[h + 1] = f.y, m[h + 2] = f.z, u[v] = Math.max(d.x, d.y, d.z), l.attributes.position.needsUpdate = !0, l.attributes.scaleAtt.needsUpdate = !0;
136
+ }
137
+ });
138
+ };
139
+ class nt {
140
+ constructor() {
141
+ this.onPointerIndex = [];
142
+ }
143
+ onPointerEvent(e, t) {
144
+ const i = this.lead.handlePick([this], e, t);
145
+ this.onPointerIndex.push(i);
146
+ }
147
+ onClick(e) {
148
+ this.onPointerEvent("click", e);
149
+ }
150
+ onPointerEnter(e) {
151
+ this.onPointerEvent("enter", e);
152
+ }
153
+ onPointerEnterOnStop(e) {
154
+ this.onPointerEvent("enterOnStop", e);
155
+ }
156
+ onPointerLeave(e) {
157
+ this.onPointerEvent("leave", e);
158
+ }
159
+ onPointerMove(e) {
160
+ this.onPointerEvent("move", e);
161
+ }
162
+ onPointerDown(e) {
163
+ this.onPointerEvent("down", e);
164
+ }
165
+ dispose() {
166
+ this.onPointerIndex.forEach((e) => {
167
+ this.lead.removePick(e);
168
+ });
169
+ }
170
+ }
171
+ class ot extends nt {
172
+ constructor() {
173
+ super(...arguments), this.userData = {}, this.materialList = {}, this.useMaterialType = "origin", this.disposeMaterialIfNotUsed = !0;
174
+ }
175
+ cloneMaterial() {
176
+ const e = this.object3d;
177
+ if (!e || !e.material)
178
+ return;
179
+ const t = e.material;
180
+ if (Array.isArray(t))
181
+ return t.map((i) => {
182
+ const s = i.userData;
183
+ i.userData = {};
184
+ const o = i.clone();
185
+ return i.userData = s, o;
186
+ });
187
+ {
188
+ const i = t.userData;
189
+ t.userData = {};
190
+ const s = t.clone();
191
+ return t.userData = i, s;
192
+ }
193
+ }
194
+ setMaterialList(e, t) {
195
+ const i = this.object3d;
196
+ if (!i || !i.material)
197
+ return;
198
+ this.materialList.origin || (this.materialList.origin = i.material);
199
+ const s = t === "clone" ? this.cloneMaterial() : Array.isArray(t) ? t.slice() : t;
200
+ return this.materialList[e] = s, s;
201
+ }
202
+ useMaterial(e) {
203
+ const t = this.object3d;
204
+ !t || !t.material || this.useMaterialType === e || !this.materialList[e] || (this.useMaterialType = e, t.material = this.materialList[e]);
205
+ }
206
+ useMListById(e, t) {
207
+ if (!this.mList)
208
+ return;
209
+ const i = this.mList.get(e);
210
+ if (!i)
211
+ return;
212
+ const s = this.object3d;
213
+ Array.isArray(s.material) && t !== void 0 ? s.material[t] = i : s.material = i;
214
+ }
215
+ useMListByName(e, t) {
216
+ if (!this.mList)
217
+ return;
218
+ const i = this.mList.getKeyByName(e);
219
+ i && this.useMListById(i, t);
220
+ }
221
+ dispose() {
222
+ super.dispose(), this.mList.rmBaseObjectMap(
223
+ this,
224
+ void 0,
225
+ this.disposeMaterialIfNotUsed
226
+ );
227
+ }
228
+ }
229
+ class Z extends ot {
230
+ constructor() {
231
+ super(...arguments), this.key = "", this.objectType = "BaseObject", this.userData = {}, this.isPrefab = !1, this.isInstantiate = !1, this.isBloom = !1, this.isBaseObject = !0, this.disposeTrack = !0, this.isDispose = !1;
232
+ }
233
+ get parent() {
234
+ const e = this.object3d.parent;
235
+ return e && this.lead.objMap.get(e) || null;
236
+ }
237
+ get children() {
238
+ return this.object3d.children.map((e) => this.lead.objMap.get(e)).filter((e) => !!e);
239
+ }
240
+ get position() {
241
+ return this.object3d.position;
242
+ }
243
+ get rotation() {
244
+ return this.object3d.rotation;
245
+ }
246
+ get scale() {
247
+ return this.object3d.scale;
248
+ }
249
+ lookAt(e) {
250
+ const t = e instanceof S ? e : new S(...e);
251
+ this.object3d.lookAt(t);
252
+ }
253
+ add(...e) {
254
+ [...e].forEach((t) => {
255
+ this.lead.objMap.get(t) ? this.object3d.add(t) : this.lead.createBaseObject(t, {
256
+ target: this
257
+ });
258
+ });
259
+ }
260
+ remove(...e) {
261
+ [...e].forEach((t) => {
262
+ var i;
263
+ this.lead.objMap.get(t) ? (i = this.lead.objMap.get(t)) == null || i.erase() : this.object3d.remove(t);
264
+ });
265
+ }
266
+ get visible() {
267
+ return this.object3d.visible;
268
+ }
269
+ create() {
270
+ this.createGroup();
271
+ }
272
+ render() {
273
+ }
274
+ update(e, t) {
275
+ }
276
+ resize(e, t) {
277
+ }
278
+ show() {
279
+ return this.object3d.visible = !0, this.traverse((e) => {
280
+ var t;
281
+ (t = e.object3d) == null || t.layers.enable(ve);
282
+ }), this;
283
+ }
284
+ hide() {
285
+ return this.object3d.visible = !1, this.traverse((e) => {
286
+ var t;
287
+ (t = e.object3d) == null || t.layers.disable(ve);
288
+ }), this;
289
+ }
290
+ createGroup() {
291
+ return this.object3d = new Ve(), this;
292
+ }
293
+ createMesh(...e) {
294
+ return this.object3d = new Ae(...e), this;
295
+ }
296
+ createPoints(...e) {
297
+ return this.object3d = new te(...e), this;
298
+ }
299
+ createCSS2DObject(e) {
300
+ return this.object3d = new He(e), this;
301
+ }
302
+ createCSS3DObject(e) {
303
+ return this.object3d = new et(e), this;
304
+ }
305
+ createCSS3DSprite(e) {
306
+ return this.object3d = new tt(e), this;
307
+ }
308
+ createSprite(e) {
309
+ return this.object3d = new de(e), this;
310
+ }
311
+ attach(...e) {
312
+ return [...e].forEach((t) => {
313
+ this.object3d.attach(t.object3d);
314
+ }), this;
315
+ }
316
+ getSize() {
317
+ const e = new Ie().setFromObject(this.object3d);
318
+ return {
319
+ min: e.min,
320
+ max: e.max,
321
+ size: e.getSize(new S()),
322
+ center: e.getCenter(new S())
323
+ };
324
+ }
325
+ setTop(e) {
326
+ this.object3d && (this.object3d.renderOrder = e);
327
+ }
328
+ traverse(e) {
329
+ e(this), this.children.forEach((t) => {
330
+ t.traverse(e);
331
+ });
332
+ }
333
+ instantiate(e) {
334
+ return ae(this, null, function* () {
335
+ var l, m;
336
+ const t = (l = e == null ? void 0 : e.recursive) != null ? l : !0, i = (m = e == null ? void 0 : e.cloneMaterial) != null ? m : !1, { objectType: s, objectOptions: o } = this;
337
+ let c = e == null ? void 0 : e.create, r, a = (e == null ? void 0 : e.target) || this.parent;
338
+ return a === this.lead.prefabGroup && (a = this.lead.group), this.objectType === "BaseObject" ? r = this.lead.createBaseObject(this.object3d.clone(!1), {
339
+ target: a
340
+ }) : (c === void 0 && (c = (u) => {
341
+ var f;
342
+ if (this.object3d) {
343
+ if ((f = e == null ? void 0 : e.instancedAttr) != null && f.length) {
344
+ const d = e.instancedAttr.length;
345
+ if (this.object3d instanceof de)
346
+ u.object3d = st(this.object3d, d);
347
+ else {
348
+ const p = this.object3d, h = i ? this.cloneMaterial() : p.material;
349
+ u.object3d = new Pe(
350
+ p.geometry,
351
+ h,
352
+ d
353
+ );
354
+ }
355
+ rt(u.object3d, e == null ? void 0 : e.instancedAttr);
356
+ } else
357
+ u.object3d = this.object3d.clone(!1), i && u.object3d.material && (u.object3d.material = this.cloneMaterial());
358
+ u.object3d.userData.prefab && delete u.object3d.userData.prefab;
359
+ }
360
+ }), r = yield this.lead.draw(s, q(L({}, o || {}), {
361
+ create: c,
362
+ prefab: !1,
363
+ keyType: this.keyType,
364
+ key: (e == null ? void 0 : e.key) || this.keyName,
365
+ uId: (e == null ? void 0 : e.uId) || this.keyUId,
366
+ target: a
367
+ }))), this.isBloom && r.enableBloom(), t && (yield Promise.all(
368
+ this.children.map(
369
+ (u) => u.instantiate({
370
+ key: u.keyUId && u.keyName ? `${u.keyName}-${u.keyUId}` : u.keyName,
371
+ uId: e == null ? void 0 : e.uId,
372
+ cloneMaterial: i,
373
+ target: r
374
+ })
375
+ )
376
+ )), r.isInstantiate = !0, r;
377
+ });
378
+ }
379
+ erase() {
380
+ this.lead.erase(this);
381
+ }
382
+ handleMaterialChange(e) {
383
+ }
384
+ enableBloom(e = !0) {
385
+ var t, i, s;
386
+ if (!((t = this.pencil.composerController) != null && t.bloomComposer)) {
387
+ console.warn("err:pencil.options.bloom");
388
+ return;
389
+ }
390
+ if (e) {
391
+ this.traverse((o) => {
392
+ o.enableBloom(!1);
393
+ });
394
+ return;
395
+ }
396
+ this.object3d && ((i = this.pencil.composerController) == null || i.bloomSelection.add(this), this.object3d.layers.enable(be)), (s = this.pencil.composerController) == null || s.checkBloomComposerActive(), this.isBloom = !0;
397
+ }
398
+ disableBloom(e = !0) {
399
+ var t, i, s;
400
+ if (!((t = this.pencil.composerController) != null && t.bloomComposer)) {
401
+ console.warn("err:pencil.options.bloom");
402
+ return;
403
+ }
404
+ if (e) {
405
+ this.traverse((o) => {
406
+ o.disableBloom(!1);
407
+ });
408
+ return;
409
+ }
410
+ this.object3d && ((i = this.pencil.composerController) == null || i.bloomSelection.delete(this), this.object3d.layers.disable(be)), (s = this.pencil.composerController) == null || s.checkBloomComposerActive(), this.isBloom = !1;
411
+ }
412
+ dispose() {
413
+ var e, t;
414
+ if (!this.isDispose && (this.isDispose = !0, super.dispose(), this.isBloom && (this.disableBloom(!1), (e = this.pencil.composerController) == null || e.checkBloomComposerActive()), (t = this.lead) == null || t.disableCursor(this), this.lead && (this.lead.objects.delete(this.key), this.lead.objectWrapChindIdMap.delete(this), this.object3d && this.lead.objMap.delete(this.object3d)), this.disposeTrack)) {
415
+ const i = new it();
416
+ i.disposeMaterial = !1, i.track(this), i.dispose();
417
+ }
418
+ }
419
+ }
420
+ function at(n, e) {
421
+ return n.map((t) => {
422
+ const i = [];
423
+ let s;
424
+ return t.forEach((o) => {
425
+ if (s) {
426
+ const c = Xe(o, s) * 180 / Math.PI;
427
+ if (c > e) {
428
+ const r = Ye(s, o), a = 1 / Math.ceil(c / e);
429
+ let l = a;
430
+ for (; l < 1; )
431
+ i.push(r(l)), l += a;
432
+ }
433
+ }
434
+ i.push(s = o);
435
+ }), i;
436
+ });
437
+ }
438
+ function ct(n, { minLng: e, maxLng: t, minLat: i, maxLat: s } = {}) {
439
+ const o = Math.round(ne(360 / n, 2) / Math.PI), c = (1 + Math.sqrt(5)) / 2, r = (d) => d / c * 360 % 360 - 180, a = (d) => Math.acos(2 * d / o - 1) / Math.PI * 180 - 90, l = (d) => o * (Math.cos((d + 90) * Math.PI / 180) + 1) / 2, m = [
440
+ s !== void 0 ? Math.ceil(l(s)) : 0,
441
+ i !== void 0 ? Math.floor(l(i)) : o - 1
442
+ ], u = e === void 0 && t === void 0 ? () => !0 : e === void 0 ? (d) => d <= t : t === void 0 ? (d) => d >= e : t >= e ? (d) => d >= e && d <= t : (d) => d >= e || d <= t, f = [];
443
+ for (let d = m[0]; d <= m[1]; d++) {
444
+ const p = r(d);
445
+ u(p) && f.push([p, a(d)]);
446
+ }
447
+ return f;
448
+ }
449
+ function J(n, e, t = !1) {
450
+ return t ? Qe(e, n) : Ke(n, e);
451
+ }
452
+ function lt(n, e) {
453
+ const t = { type: "Polygon", coordinates: n }, [[i, s], [o, c]] = Be(t);
454
+ if (Math.min(Math.abs(o - i), Math.abs(c - s)) < e)
455
+ return [];
456
+ const r = i > o || c >= 89 || s <= -89;
457
+ return ct(e, {
458
+ minLng: i,
459
+ maxLng: o,
460
+ minLat: s,
461
+ maxLat: c
462
+ }).filter(
463
+ (a) => J(a, t, r)
464
+ );
465
+ }
466
+ function ut(n, { resolution: e = 1 / 0, bbox: t, projection: i } = {}) {
467
+ const s = at(n, e), o = H(s), c = lt(n, e), r = [...o, ...c], a = { type: "Polygon", coordinates: n }, [[l, m], [u, f]] = Be(a), d = l > u || // crosses antimeridian
468
+ f >= 89 || // crosses north pole
469
+ m <= -89;
470
+ let p = [];
471
+ if (d) {
472
+ const y = Ze(r).triangles(), x = new Map(
473
+ r.map(([A, I], z) => [`${A}-${I}`, z])
474
+ );
475
+ y.features.forEach((A) => {
476
+ const I = A.geometry.coordinates[0].slice(0, 3).reverse(), z = [];
477
+ if (I.forEach(([B, F]) => {
478
+ const N = `${B}-${F}`;
479
+ x.has(N) && z.push(x.get(N));
480
+ }), z.length === 3) {
481
+ if (z.some((B) => B < o.length)) {
482
+ const B = A.properties.circumcenter;
483
+ if (!J(
484
+ B,
485
+ a,
486
+ d
487
+ ))
488
+ return;
489
+ }
490
+ p.push(...z);
491
+ }
492
+ });
493
+ } else if (c.length) {
494
+ const y = qe.from(r);
495
+ for (let x = 0, A = y.triangles.length; x < A; x += 3) {
496
+ const I = [2, 1, 0].map((B) => y.triangles[x + B]), z = I.map((B) => r[B]);
497
+ if (I.some((B) => B < o.length)) {
498
+ const B = [0, 1].map(
499
+ (F) => ke(z, (N) => N[F])
500
+ );
501
+ if (!J(
502
+ B,
503
+ a,
504
+ d
505
+ ))
506
+ continue;
507
+ }
508
+ p.push(...I);
509
+ }
510
+ } else {
511
+ const { vertices: y, holes: x = [] } = Ce(s);
512
+ p = ze(y, x, 2);
513
+ }
514
+ let h = t ? [t[0], t[2]] : ce(r, (y) => y[0]), v = t ? [t[1], t[3]] : ce(r, (y) => y[1]);
515
+ if (i) {
516
+ const [y, x] = i([h[0], v[0]]), [A, I] = i([h[1], v[1]]);
517
+ h = [y, A], v = [-x, -I];
518
+ }
519
+ const j = me(h, [0, 1]), C = me(v, [0, 1]), O = r.map(([y, x]) => {
520
+ if (i) {
521
+ const [A, I] = i([y, x]);
522
+ return [j(A), C(-I)];
523
+ } else
524
+ return [j(y), C(x)];
525
+ });
526
+ return { contour: s, triangles: { points: r, indices: p, uvs: O } };
527
+ }
528
+ const ye = new ee().setAttribute ? "setAttribute" : "addAttribute";
529
+ function $(n, e, t, i) {
530
+ const s = n.map(
531
+ (o) => o.map(([c, r]) => {
532
+ if (i) {
533
+ const [a, l] = i([c, r]);
534
+ return [a, -l, e];
535
+ }
536
+ return t ? Fe(c, r, e) : [c, r, e];
537
+ })
538
+ );
539
+ return Ce(s);
540
+ }
541
+ function dt(n, e, t, i, s) {
542
+ const { vertices: o, holes: c } = $(
543
+ n,
544
+ e,
545
+ i,
546
+ s
547
+ ), { vertices: r } = $(
548
+ n,
549
+ t,
550
+ i,
551
+ s
552
+ ), a = H([r, o]), l = Math.round(r.length / 3), m = new Set(c);
553
+ let u = 0;
554
+ const f = [];
555
+ for (let p = 0; p < l; p++) {
556
+ let h = p + 1;
557
+ if (h === l)
558
+ h = u;
559
+ else if (m.has(h)) {
560
+ const v = h;
561
+ h = u, u = v;
562
+ }
563
+ f.push(p, p + l, h + l), f.push(h + l, h, p);
564
+ }
565
+ const d = [];
566
+ for (let p = 1; p >= 0; p--)
567
+ for (let h = 0; h < l; h += 1) d.push(h / (l - 1), p);
568
+ return { indices: f, vertices: a, uvs: d, topVerts: r };
569
+ }
570
+ function ge(n, e, t, i, s, o) {
571
+ return {
572
+ indices: i ? n.indices : n.indices.slice().reverse(),
573
+ vertices: $(
574
+ [n.points],
575
+ e,
576
+ s,
577
+ o
578
+ ).vertices,
579
+ uvs: t
580
+ };
581
+ }
582
+ const ht = ({
583
+ polygonGeoJson: n,
584
+ startHeight: e,
585
+ endHeight: t,
586
+ curvatureResolution: i = 1,
587
+ cartesian: s = !0,
588
+ hasSide: o = !0,
589
+ hasBottom: c = !1,
590
+ hasTop: r = !1,
591
+ projection: a,
592
+ bbox: l
593
+ }) => {
594
+ n.forEach((j) => {
595
+ $e(j) || j.reverse();
596
+ });
597
+ const { contour: m, triangles: u } = ut(n, {
598
+ resolution: i,
599
+ bbox: l,
600
+ projection: a
601
+ });
602
+ let f = {}, d;
603
+ o && (f = dt(
604
+ m,
605
+ e != null ? e : t,
606
+ t != null ? t : e,
607
+ s,
608
+ a
609
+ ), d = f.topVerts);
610
+ let p = [];
611
+ (c || r) && (p = H(u.uvs));
612
+ let h = {};
613
+ c && (h = ge(
614
+ u,
615
+ e,
616
+ p,
617
+ !1,
618
+ s,
619
+ a
620
+ ));
621
+ let v = {};
622
+ return r && (v = ge(
623
+ u,
624
+ t,
625
+ p,
626
+ !0,
627
+ s,
628
+ a
629
+ )), { contour: m, triangles: u, sideTorso: f, bottomCap: h, topCap: v, topVerts: d };
630
+ };
631
+ class kt extends ee {
632
+ constructor(e, t = {}) {
633
+ super(), this.type = "PolygonBufferGeometry", this.parameters = L({
634
+ polygonGeoJson: e,
635
+ startHeight: 0,
636
+ endHeight: 1,
637
+ hasTop: !0,
638
+ topFirst: !1,
639
+ hasBottom: !0,
640
+ hasSide: !0,
641
+ curvatureResolution: 1,
642
+ cartesian: !0,
643
+ userDataRsoOffset: 0
644
+ }, t);
645
+ const {
646
+ endHeight: i,
647
+ hasTop: s,
648
+ topFirst: o,
649
+ hasBottom: c,
650
+ hasSide: r,
651
+ cartesian: a,
652
+ userDataRsoOffset: l,
653
+ projection: m
654
+ } = this.parameters, { contour: u, sideTorso: f, topVerts: d, bottomCap: p, topCap: h } = ht(L({}, this.parameters));
655
+ let v = [], j = [], C = [], O = 0;
656
+ const P = (y) => {
657
+ const x = Math.round(v.length / 3), A = C.length;
658
+ v = v.concat(y.vertices), j = j.concat(y.uvs), C = C.concat(
659
+ x ? y.indices.map((I) => I + x) : y.indices
660
+ ), this.addGroup(A, C.length - A, O++);
661
+ };
662
+ s && o && P(h), r && (P(f), this.userData.topVerts = l ? $(
663
+ u,
664
+ i + l,
665
+ a,
666
+ m
667
+ ).vertices : d), c && P(p), s && !o && P(h), this.setIndex(C), this[ye]("position", new G(v, 3)), this[ye]("uv", new G(j, 2)), this.computeVertexNormals();
668
+ }
669
+ }
670
+ const ft = `
671
+ #include <fog_pars_fragment>
672
+ #include <logdepthbuf_pars_fragment>
673
+
674
+ uniform float useDash;
675
+ uniform float dashArray;
676
+ uniform float dashOffset;
677
+ uniform float dashRatio;
678
+ uniform sampler2D alphaMap;
679
+ uniform float useAlphaMap;
680
+
681
+ varying vec2 vUV;
682
+ varying vec4 vColor;
683
+ varying float vCounters;
684
+
685
+ uniform sampler2D map;
686
+ uniform float useMap;
687
+ uniform vec2 repeat;
688
+ uniform float offsetLoop;
689
+ uniform float alphaTest;
690
+
691
+
692
+
693
+ void main() {
694
+ #include <logdepthbuf_fragment>
695
+
696
+ vec4 c = vColor;
697
+
698
+ if( useMap == 1. ) c *= texture2D( map, vUV * repeat );
699
+ if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).r;
700
+ if(offsetLoop!=1.0){
701
+ if(vUV.x>1.0 || vUV.x<0.0){
702
+ c.a = 0.0;
703
+ }
704
+ }
705
+ if (c.a < alphaTest) discard;
706
+ if( useDash == 1. ){
707
+ c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));
708
+ }
709
+ gl_FragColor = c;
710
+ #include <fog_fragment>
711
+ #include <tonemapping_fragment>
712
+ #include <colorspace_fragment>
713
+ }
714
+ `, pt = `
715
+ #include <common>
716
+ #include <logdepthbuf_pars_vertex>
717
+ #include <fog_pars_vertex>
718
+
719
+ attribute vec3 previous;
720
+ attribute vec3 next;
721
+ attribute float side;
722
+ attribute float width;
723
+ attribute float counters;
724
+
725
+ uniform vec2 resolution;
726
+ uniform float lineWidth;
727
+ uniform vec3 color;
728
+ uniform float opacity;
729
+ uniform float sizeAttenuation;
730
+ uniform float scaleDown;
731
+ uniform vec2 offset;
732
+
733
+ varying vec2 vUV;
734
+ varying vec4 vColor;
735
+ varying float vCounters;
736
+
737
+ vec2 intoScreen(vec4 i) {
738
+ return resolution * (0.5 * i.xy / i.w + 0.5);
739
+ }
740
+
741
+ void main() {
742
+ float aspect = resolution.y / resolution.x;
743
+
744
+ mat4 m = projectionMatrix * modelViewMatrix;
745
+
746
+ vec4 currentClip = m * vec4( position, 1.0 );
747
+ vec4 prevClip = m * vec4( previous, 1.0 );
748
+ vec4 nextClip = m * vec4( next, 1.0 );
749
+
750
+ vec4 currentNormed = currentClip / currentClip.w;
751
+ vec4 prevNormed = prevClip / prevClip.w;
752
+ vec4 nextNormed = nextClip / nextClip.w;
753
+
754
+ vec2 currentScreen = intoScreen(currentNormed);
755
+ vec2 prevScreen = intoScreen(prevNormed);
756
+ vec2 nextScreen = intoScreen(nextNormed);
757
+
758
+ float actualWidth = lineWidth * width;
759
+
760
+ vec2 dir;
761
+ if(nextScreen == currentScreen) {
762
+ dir = normalize( currentScreen - prevScreen );
763
+ } else if(prevScreen == currentScreen) {
764
+ dir = normalize( nextScreen - currentScreen );
765
+ } else {
766
+ vec2 inDir = currentScreen - prevScreen;
767
+ vec2 outDir = nextScreen - currentScreen;
768
+ vec2 fullDir = nextScreen - prevScreen;
769
+
770
+ if(length(fullDir) > 0.0) {
771
+ dir = normalize(fullDir);
772
+ } else if(length(inDir) > 0.0){
773
+ dir = normalize(inDir);
774
+ } else {
775
+ dir = normalize(outDir);
776
+ }
777
+ }
778
+
779
+ vec2 normal = vec2(-dir.y, dir.x);
780
+
781
+ if(sizeAttenuation != 0.0) {
782
+ normal /= currentClip.w;
783
+ normal *= min(resolution.x, resolution.y);
784
+ }
785
+
786
+ if (scaleDown > 0.0) {
787
+ float dist = length(nextNormed - prevNormed);
788
+ normal *= smoothstep(0.0, scaleDown, dist);
789
+ }
790
+
791
+ vec2 offsetInScreen = actualWidth * normal * side * 0.5;
792
+
793
+ vec2 withOffsetScreen = currentScreen + offsetInScreen;
794
+ vec3 withOffsetNormed = vec3((2.0 * withOffsetScreen/resolution - 1.0), currentNormed.z);
795
+
796
+ vCounters = counters;
797
+ vColor = vec4( color, opacity );
798
+ vUV = uv;
799
+ vUV=uv+offset;
800
+
801
+ gl_Position = currentClip.w * vec4(withOffsetNormed, 1.0);
802
+
803
+ #include <logdepthbuf_vertex>
804
+ #include <fog_vertex>
805
+ }
806
+ `;
807
+ class zt extends Ne {
808
+ constructor(e = {}) {
809
+ const C = e, {
810
+ lineWidth: t = 1,
811
+ color: i = "#ffffff",
812
+ opacity: s = 1,
813
+ map: o = null,
814
+ dashOffset: c = 0,
815
+ dashArray: r = 0,
816
+ dashRatio: a = 0,
817
+ sizeAttenuation: l = !0,
818
+ offsetLoop: m = !0,
819
+ offset: u = new K(0, 0),
820
+ scaleDown: f = 0,
821
+ alphaMap: d = void 0,
822
+ alphaTest: p = 0,
823
+ repeat: h = new K(1, 1),
824
+ resolution: v = new K(1, 1)
825
+ } = C, j = oe(C, [
826
+ "lineWidth",
827
+ "color",
828
+ "opacity",
829
+ "map",
830
+ "dashOffset",
831
+ "dashArray",
832
+ "dashRatio",
833
+ "sizeAttenuation",
834
+ "offsetLoop",
835
+ "offset",
836
+ "scaleDown",
837
+ "alphaMap",
838
+ "alphaTest",
839
+ "repeat",
840
+ "resolution"
841
+ ]);
842
+ super(q(L({}, j), {
843
+ uniforms: {
844
+ lineWidth: { value: t },
845
+ color: { value: new he(i) },
846
+ opacity: { value: s },
847
+ map: { value: o },
848
+ useMap: { value: o ? 1 : 0 },
849
+ resolution: { value: v },
850
+ sizeAttenuation: { value: l ? 1 : 0 },
851
+ offset: { value: u },
852
+ offsetLoop: { value: m ? 1 : 0 },
853
+ dashArray: { value: r },
854
+ dashOffset: { value: c },
855
+ dashRatio: { value: a },
856
+ useDash: { value: r > 0 ? 1 : 0 },
857
+ scaleDown: { value: f / 10 },
858
+ alphaTest: { value: p },
859
+ alphaMap: { value: d },
860
+ useAlphaMap: { value: d ? 1 : 0 },
861
+ repeat: { value: h }
862
+ },
863
+ vertexShader: pt,
864
+ fragmentShader: ft
865
+ })), this.type = "MeshLineMaterial";
866
+ }
867
+ // Getter and setter for color
868
+ get color() {
869
+ return this.uniforms.color.value;
870
+ }
871
+ set color(e) {
872
+ this.uniforms.color.value = new he(e);
873
+ }
874
+ get opacity() {
875
+ var e;
876
+ return ((e = this.uniforms) == null ? void 0 : e.opacity.value) || 1;
877
+ }
878
+ set opacity(e) {
879
+ this.uniforms && (this.uniforms.opacity.value = e);
880
+ }
881
+ get alphaTest() {
882
+ return this.uniforms.alphaTest.value;
883
+ }
884
+ set alphaTest(e) {
885
+ this.uniforms && (this.uniforms.alphaTest.value = e);
886
+ }
887
+ // Getter and setter for map
888
+ get map() {
889
+ return this.uniforms.map.value;
890
+ }
891
+ set map(e) {
892
+ this.uniforms.map.value = e, this.uniforms.useMap.value = e ? 1 : 0;
893
+ }
894
+ get repeat() {
895
+ return this.uniforms.repeat.value;
896
+ }
897
+ set repeat(e) {
898
+ this.uniforms.repeat.value.copy(e);
899
+ }
900
+ // Getter and setter for lineWidth
901
+ get lineWidth() {
902
+ return this.uniforms.lineWidth.value;
903
+ }
904
+ set lineWidth(e) {
905
+ this.uniforms.lineWidth.value = e;
906
+ }
907
+ // Getter and setter for sizeAttenuation
908
+ get sizeAttenuation() {
909
+ return this.uniforms.sizeAttenuation.value === 1;
910
+ }
911
+ set sizeAttenuation(e) {
912
+ this.uniforms.sizeAttenuation.value = e ? 1 : 0;
913
+ }
914
+ }
915
+ const Q = new V(), Me = new S(), we = new S(), g = new V(), M = new V(), D = new V(), X = new S(), Y = new We(), w = new Ue(), xe = new S(), U = new Ie(), _ = new _e(), T = new V();
916
+ let k, E;
917
+ function Se(n, e, t) {
918
+ return T.set(0, 0, -e, 1).applyMatrix4(n.projectionMatrix), T.multiplyScalar(1 / T.w), T.x = E / t.width, T.y = E / t.height, T.applyMatrix4(n.projectionMatrixInverse), T.multiplyScalar(1 / T.w), Math.abs(Math.max(T.x, T.y));
919
+ }
920
+ function mt(n, e) {
921
+ const t = n.matrixWorld, i = n.geometry, s = i.attributes.instanceStart, o = i.attributes.instanceEnd, c = Math.min(i.instanceCount, s.count);
922
+ for (let r = 0, a = c; r < a; r++) {
923
+ w.start.fromBufferAttribute(s, r), w.end.fromBufferAttribute(o, r), w.applyMatrix4(t);
924
+ const l = new S(), m = new S();
925
+ k.distanceSqToSegment(w.start, w.end, m, l), m.distanceTo(l) < E * 0.5 && e.push({
926
+ point: m,
927
+ pointOnLine: l,
928
+ distance: k.origin.distanceTo(m),
929
+ object: n,
930
+ face: null,
931
+ faceIndex: r,
932
+ uv: null,
933
+ uv1: null
934
+ });
935
+ }
936
+ }
937
+ function vt(n, e, t) {
938
+ const i = e.projectionMatrix, o = n.material.resolution, c = n.matrixWorld, r = n.geometry, a = r.attributes.instanceStart, l = r.attributes.instanceEnd, m = Math.min(r.instanceCount, a.count), u = -e.near;
939
+ k.at(1, D), D.w = 1, D.applyMatrix4(e.matrixWorldInverse), D.applyMatrix4(i), D.multiplyScalar(1 / D.w), D.x *= o.x / 2, D.y *= o.y / 2, D.z = 0, X.copy(D), Y.multiplyMatrices(e.matrixWorldInverse, c);
940
+ for (let f = 0, d = m; f < d; f++) {
941
+ if (g.fromBufferAttribute(a, f), M.fromBufferAttribute(l, f), g.w = 1, M.w = 1, g.applyMatrix4(Y), M.applyMatrix4(Y), g.z > u && M.z > u)
942
+ continue;
943
+ if (g.z > u) {
944
+ const O = g.z - M.z, P = (g.z - u) / O;
945
+ g.lerp(M, P);
946
+ } else if (M.z > u) {
947
+ const O = M.z - g.z, P = (M.z - u) / O;
948
+ M.lerp(g, P);
949
+ }
950
+ g.applyMatrix4(i), M.applyMatrix4(i), g.multiplyScalar(1 / g.w), M.multiplyScalar(1 / M.w), g.x *= o.x / 2, g.y *= o.y / 2, M.x *= o.x / 2, M.y *= o.y / 2, w.start.copy(g), w.start.z = 0, w.end.copy(M), w.end.z = 0;
951
+ const h = w.closestPointToPointParameter(X, !0);
952
+ w.at(h, xe);
953
+ const v = Ge.lerp(g.z, M.z, h), j = v >= -1 && v <= 1, C = X.distanceTo(xe) < E * 0.5;
954
+ if (j && C) {
955
+ w.start.fromBufferAttribute(a, f), w.end.fromBufferAttribute(l, f), w.start.applyMatrix4(c), w.end.applyMatrix4(c);
956
+ const O = new S(), P = new S();
957
+ k.distanceSqToSegment(w.start, w.end, P, O), t.push({
958
+ point: P,
959
+ pointOnLine: O,
960
+ distance: k.origin.distanceTo(P),
961
+ object: n,
962
+ face: null,
963
+ faceIndex: f,
964
+ uv: null,
965
+ uv1: null
966
+ });
967
+ }
968
+ }
969
+ }
970
+ class Et extends Ae {
971
+ constructor(e = new Je(), t) {
972
+ super(e, t), this.isLineSegments2 = !0, this.type = "LineSegments2";
973
+ }
974
+ // for backwards-compatibility, but could be a method of LineSegmentsGeometry...
975
+ computeLineDistances() {
976
+ const e = this.geometry, t = e.attributes.instanceStart, i = e.attributes.instanceEnd, s = new Float32Array(2 * t.count);
977
+ for (let c = 0, r = 0, a = t.count; c < a; c++, r += 2)
978
+ Me.fromBufferAttribute(t, c), we.fromBufferAttribute(i, c), s[r] = r === 0 ? 0 : s[r - 1], s[r + 1] = s[r] + Me.distanceTo(we);
979
+ const o = new Re(
980
+ s,
981
+ 2,
982
+ 1
983
+ );
984
+ return e.setAttribute(
985
+ "instanceDistanceStart",
986
+ new fe(o, 1, 0)
987
+ ), e.setAttribute(
988
+ "instanceDistanceEnd",
989
+ new fe(o, 1, 1)
990
+ ), this;
991
+ }
992
+ raycast(e, t) {
993
+ const i = this.material.worldUnits, s = e.camera;
994
+ s === null && !i && console.error(
995
+ 'LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.'
996
+ );
997
+ const o = e.params.Line2 !== void 0 && e.params.Line2.threshold || 0;
998
+ k = e.ray;
999
+ const c = this.matrixWorld, r = this.geometry, a = this.material;
1000
+ E = a.linewidth + o, r.boundingSphere === null && r.computeBoundingSphere(), _.copy(r.boundingSphere).applyMatrix4(c);
1001
+ let l;
1002
+ if (i)
1003
+ l = E * 0.5;
1004
+ else {
1005
+ const u = Math.max(
1006
+ s.near,
1007
+ _.distanceToPoint(k.origin)
1008
+ );
1009
+ l = Se(
1010
+ s,
1011
+ u,
1012
+ a.resolution
1013
+ );
1014
+ }
1015
+ if (_.radius += l, k.intersectsSphere(_) === !1)
1016
+ return;
1017
+ r.boundingBox === null && r.computeBoundingBox(), U.copy(r.boundingBox).applyMatrix4(c);
1018
+ let m;
1019
+ if (i)
1020
+ m = E * 0.5;
1021
+ else {
1022
+ const u = Math.max(
1023
+ s.near,
1024
+ U.distanceToPoint(k.origin)
1025
+ );
1026
+ m = Se(
1027
+ s,
1028
+ u,
1029
+ a.resolution
1030
+ );
1031
+ }
1032
+ U.expandByScalar(m), k.intersectsBox(U) !== !1 && (i ? mt(this, t) : vt(this, s, t));
1033
+ }
1034
+ onBeforeRender(e) {
1035
+ const t = this.material.uniforms;
1036
+ t && t.resolution && (e.getViewport(Q), this.material.uniforms.resolution.value.set(Q.z, Q.w));
1037
+ }
1038
+ }
1039
+ const b = class b extends Z {
1040
+ constructor(e) {
1041
+ super(), this.objectType = "Node", this.onNodePointerIndex = [], this.options = L({
1042
+ type: "2d"
1043
+ }, e);
1044
+ }
1045
+ create() {
1046
+ const { position: e, children: t } = this.options, i = document.createElement("div");
1047
+ this.element = i, t && i.appendChild(t), this.options.type === "3d" ? this.createCSS3DObject(i) : this.options.type === "3dSprite" ? this.createCSS3DSprite(i) : this.createCSS2DObject(i), e && this.object3d.position.copy(e);
1048
+ }
1049
+ setChildren(e) {
1050
+ this.options.children = e, this.element.innerHTML = "", this.element.appendChild(e);
1051
+ }
1052
+ showAndEnsureVisible() {
1053
+ const e = this.options.children;
1054
+ e && (e.style.visibility = "hidden", this.show(), setTimeout(() => {
1055
+ e.style.visibility = "", this.ensureVisible();
1056
+ }));
1057
+ }
1058
+ moveElementToViewport() {
1059
+ const e = this.options.children;
1060
+ if (!e) return;
1061
+ const t = e.getBoundingClientRect(), i = window.innerWidth, s = window.innerHeight, o = t.width, c = t.height;
1062
+ let r = 0, a = 0;
1063
+ o > i ? t.left > 0 && (r = -t.left) : t.left < 0 ? r = -t.left : t.right > i && (r = i - t.right, t.left + r < 0 && (r = -t.left)), c > s ? t.top > 0 && (a = -t.top) : t.top < 0 ? a = -t.top : t.bottom > s && (a = s - t.bottom, t.top + a < 0 && (a = -t.top)), (r !== 0 || a !== 0) && (e.style.transform = `translate(${r}px, ${a}px)`);
1064
+ }
1065
+ ensureVisible() {
1066
+ const e = this.options.children;
1067
+ e && (e.style.transform && (e.style.transform = ""), !b.observerMap.has(e) && (b.sharedObserver || (b.sharedObserver = new IntersectionObserver((t) => {
1068
+ t.forEach((i) => {
1069
+ const s = i.target, o = b.observerMap.get(s);
1070
+ o && i.isIntersecting && (o.moveElementToViewport(), b.observerMap.delete(s), b.sharedObserver && (b.sharedObserver.unobserve(s), b.observerMap.size === 0 && (b.sharedObserver.disconnect(), b.sharedObserver = void 0)));
1071
+ });
1072
+ })), b.observerMap.set(e, this), b.sharedObserver.observe(e)));
1073
+ }
1074
+ onPointerEvent(e, t) {
1075
+ const i = this.lead.handlePickNode([this], e, t);
1076
+ this.onNodePointerIndex.push(i);
1077
+ }
1078
+ dispose() {
1079
+ const e = this.options.children;
1080
+ e && b.sharedObserver && (b.observerMap.delete(e), b.sharedObserver.unobserve(e), b.observerMap.size === 0 && (b.sharedObserver.disconnect(), b.sharedObserver = void 0)), this.onNodePointerIndex.forEach((t) => {
1081
+ this.lead.removePickNode(t);
1082
+ }), super.dispose();
1083
+ }
1084
+ };
1085
+ b.observerMap = /* @__PURE__ */ new Map();
1086
+ let je = b;
1087
+ export {
1088
+ be as B,
1089
+ Tt as I,
1090
+ Et as L,
1091
+ zt as M,
1092
+ je as N,
1093
+ kt as P,
1094
+ it as R,
1095
+ Z as a,
1096
+ ht as g
1097
+ };