gl-draw 0.16.0-beta.1 → 0.16.0-beta.3

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.
@@ -2,38 +2,38 @@ var Ct = Object.defineProperty, Pt = Object.defineProperties;
2
2
  var It = Object.getOwnPropertyDescriptors;
3
3
  var k = Object.getOwnPropertySymbols;
4
4
  var et = Object.prototype.hasOwnProperty, it = Object.prototype.propertyIsEnumerable;
5
- var nt = Math.pow, tt = (s, t, e) => t in s ? Ct(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e, L = (s, t) => {
5
+ var st = Math.pow, tt = (n, t, e) => t in n ? Ct(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, L = (n, t) => {
6
6
  for (var e in t || (t = {}))
7
- et.call(t, e) && tt(s, e, t[e]);
7
+ et.call(t, e) && tt(n, e, t[e]);
8
8
  if (k)
9
9
  for (var e of k(t))
10
- it.call(t, e) && tt(s, e, t[e]);
11
- return s;
12
- }, $ = (s, t) => Pt(s, It(t));
13
- var st = (s, t) => {
10
+ it.call(t, e) && tt(n, e, t[e]);
11
+ return n;
12
+ }, $ = (n, t) => Pt(n, It(t));
13
+ var nt = (n, t) => {
14
14
  var e = {};
15
- for (var i in s)
16
- et.call(s, i) && t.indexOf(i) < 0 && (e[i] = s[i]);
17
- if (s != null && k)
18
- for (var i of k(s))
19
- t.indexOf(i) < 0 && it.call(s, i) && (e[i] = s[i]);
15
+ for (var i in n)
16
+ et.call(n, i) && t.indexOf(i) < 0 && (e[i] = n[i]);
17
+ if (n != null && k)
18
+ for (var i of k(n))
19
+ t.indexOf(i) < 0 && it.call(n, i) && (e[i] = n[i]);
20
20
  return e;
21
21
  };
22
- var rt = (s, t, e) => new Promise((i, n) => {
22
+ var rt = (n, t, e) => new Promise((i, s) => {
23
23
  var a = (o) => {
24
24
  try {
25
25
  r(e.next(o));
26
26
  } catch (c) {
27
- n(c);
27
+ s(c);
28
28
  }
29
- }, u = (o) => {
29
+ }, l = (o) => {
30
30
  try {
31
31
  r(e.throw(o));
32
32
  } catch (c) {
33
- n(c);
33
+ s(c);
34
34
  }
35
- }, r = (o) => o.done ? i(o.value) : Promise.resolve(o.value).then(a, u);
36
- r((e = e.apply(s, t)).next());
35
+ }, r = (o) => o.done ? i(o.value) : Promise.resolve(o.value).then(a, l);
36
+ r((e = e.apply(n, t)).next());
37
37
  });
38
38
  import { Material as at, Object3D as N, Texture as ot, BufferGeometry as Z, Float32BufferAttribute as R, PointsMaterial as Dt, Points as J, InstancedMesh as xt, Vector3 as I, Quaternion as Bt, Group as Tt, Mesh as wt, Sprite as ct, Box3 as St, ShaderMaterial as zt, Vector2 as q, Color as lt, Vector4 as O, Matrix4 as _t, Line3 as Et, Sphere as Lt, InstancedInterleavedBuffer as Ot, InterleavedBufferAttribute as ut, MathUtils as Vt } from "three";
39
39
  import { CSS2DObject as kt } from "three/examples/jsm/renderers/CSS2DRenderer";
@@ -75,8 +75,8 @@ class te {
75
75
  if (e.uniforms) {
76
76
  for (const i of Object.values(e.uniforms))
77
77
  if (i) {
78
- const n = i.value;
79
- (n instanceof ot || Array.isArray(n)) && this.track(n);
78
+ const s = i.value;
79
+ (s instanceof ot || Array.isArray(s)) && this.track(s);
80
80
  }
81
81
  }
82
82
  } else this.disposeVideo && t.isVideoTexture && t.source.data && this.resources.add(t.source.data);
@@ -91,7 +91,7 @@ class te {
91
91
  }), t.length = 0, this.resources.clear();
92
92
  }
93
93
  }
94
- const ee = (s, t = 1) => {
94
+ const ee = (n, t = 1) => {
95
95
  const e = new Z();
96
96
  e.setAttribute(
97
97
  "position",
@@ -100,7 +100,7 @@ const ee = (s, t = 1) => {
100
100
  "scaleAtt",
101
101
  new R(new Array(t).fill(1), 1)
102
102
  );
103
- const i = s.material, n = new Dt({
103
+ const i = n.material, s = new Dt({
104
104
  size: 10,
105
105
  map: i.map,
106
106
  alphaMap: i.alphaMap,
@@ -113,7 +113,7 @@ const ee = (s, t = 1) => {
113
113
  alphaTest: i.alphaTest,
114
114
  sizeAttenuation: !1
115
115
  });
116
- return n.onBeforeCompile = (a) => {
116
+ return s.onBeforeCompile = (a) => {
117
117
  a.vertexShader = `
118
118
  attribute float scaleAtt;
119
119
  ${a.vertexShader.replace(
@@ -121,22 +121,22 @@ const ee = (s, t = 1) => {
121
121
  "gl_PointSize = size * scaleAtt;"
122
122
  )}
123
123
  `;
124
- }, new J(e, n);
125
- }, ie = (s, t) => {
124
+ }, new J(e, s);
125
+ }, ie = (n, t) => {
126
126
  const e = new N();
127
- t.forEach((i, n) => {
128
- const a = ft(i.position), u = ft(i.scale || [1, 1, 1]);
129
- e.position.copy(a), e.scale.copy(u), e.updateMatrix();
127
+ t.forEach((i, s) => {
128
+ const a = ft(i.position), l = ft(i.scale || [1, 1, 1]);
129
+ e.position.copy(a), e.scale.copy(l), e.updateMatrix();
130
130
  const r = e.matrix.clone();
131
- if (s instanceof xt || s.isInstantiate)
132
- s.setMatrixAt(n, r);
133
- else if (s instanceof J || s.type === "Points") {
134
- const c = s.geometry, m = c.attributes.position.array, f = c.attributes.scaleAtt.array, h = new I(), l = new I(), p = new Bt(), d = n * 3, v = n * 1;
135
- r.decompose(h, p, l), m[d] = h.x, m[d + 1] = h.y, m[d + 2] = h.z, f[v] = Math.max(l.x, l.y, l.z), c.attributes.position.needsUpdate = !0, c.attributes.scaleAtt.needsUpdate = !0;
131
+ if (n instanceof xt || n.isInstantiate)
132
+ n.setMatrixAt(s, r);
133
+ else if (n instanceof J || n.type === "Points") {
134
+ const c = n.geometry, f = c.attributes.position.array, d = c.attributes.scaleAtt.array, h = new I(), u = new I(), m = new Bt(), p = s * 3, v = s * 1;
135
+ r.decompose(h, m, u), f[p] = h.x, f[p + 1] = h.y, f[p + 2] = h.z, d[v] = Math.max(u.x, u.y, u.z), c.attributes.position.needsUpdate = !0, c.attributes.scaleAtt.needsUpdate = !0;
136
136
  }
137
137
  });
138
138
  };
139
- class ne {
139
+ class se {
140
140
  constructor() {
141
141
  this.onPointerIndex = [];
142
142
  }
@@ -165,7 +165,7 @@ class ne {
165
165
  });
166
166
  }
167
167
  }
168
- class se extends ne {
168
+ class ne extends se {
169
169
  constructor() {
170
170
  super(...arguments), this.userData = {}, this.materialList = {}, this.useMaterialType = "origin", this.disposeMaterialIfNotUsed = !0;
171
171
  }
@@ -176,16 +176,16 @@ class se extends ne {
176
176
  const e = t.material;
177
177
  if (Array.isArray(e))
178
178
  return e.map((i) => {
179
- const n = i.userData;
179
+ const s = i.userData;
180
180
  i.userData = {};
181
181
  const a = i.clone();
182
- return i.userData = n, a;
182
+ return i.userData = s, a;
183
183
  });
184
184
  {
185
185
  const i = e.userData;
186
186
  e.userData = {};
187
- const n = e.clone();
188
- return e.userData = i, n;
187
+ const s = e.clone();
188
+ return e.userData = i, s;
189
189
  }
190
190
  }
191
191
  setMaterialList(t, e) {
@@ -193,8 +193,8 @@ class se extends ne {
193
193
  if (!i || !i.material)
194
194
  return;
195
195
  this.materialList.origin || (this.materialList.origin = i.material);
196
- const n = e === "clone" ? this.cloneMaterial() : Array.isArray(e) ? e.slice() : e;
197
- return this.materialList[t] = n, n;
196
+ const s = e === "clone" ? this.cloneMaterial() : Array.isArray(e) ? e.slice() : e;
197
+ return this.materialList[t] = s, s;
198
198
  }
199
199
  useMaterial(t) {
200
200
  const e = this.object3d;
@@ -206,8 +206,8 @@ class se extends ne {
206
206
  const i = this.mList.get(t);
207
207
  if (!i)
208
208
  return;
209
- const n = this.object3d;
210
- Array.isArray(n.material) && e !== void 0 ? n.material[e] = i : n.material = i;
209
+ const s = this.object3d;
210
+ Array.isArray(s.material) && e !== void 0 ? s.material[e] = i : s.material = i;
211
211
  }
212
212
  useMListByName(t, e) {
213
213
  if (!this.mList)
@@ -223,9 +223,9 @@ class se extends ne {
223
223
  );
224
224
  }
225
225
  }
226
- class pt extends se {
226
+ class pt extends ne {
227
227
  constructor() {
228
- super(...arguments), this.objectType = "BaseObject", this.userData = {}, this.prefab = !1, this.isInstantiate = !1, this.isBloom = !1, this.disposeTrack = !0;
228
+ super(...arguments), this.objectType = "BaseObject", this.userData = {}, this.isPrefab = !1, this.isInstantiate = !1, this.isBloom = !1, this.isBaseObject = !0, this.disposeTrack = !0;
229
229
  }
230
230
  get parent() {
231
231
  const t = this.object3d.parent;
@@ -334,19 +334,19 @@ class pt extends se {
334
334
  }
335
335
  instantiate(t) {
336
336
  return rt(this, null, function* () {
337
- var c, m;
338
- const e = (c = t == null ? void 0 : t.recursive) != null ? c : !0, i = (m = t == null ? void 0 : t.cloneMaterial) != null ? m : !1, { objectType: n, objectOptions: a } = this, [, u] = n.split("#");
339
- let r = t == null ? void 0 : t.create;
340
- r === void 0 && (r = (f) => {
341
- var h;
337
+ var o, c;
338
+ const e = (o = t == null ? void 0 : t.recursive) != null ? o : !0, i = (c = t == null ? void 0 : t.cloneMaterial) != null ? c : !1, { objectType: s, objectOptions: a } = this;
339
+ let l = t == null ? void 0 : t.create;
340
+ l === void 0 && (l = (f) => {
341
+ var d;
342
342
  if (this.object3d) {
343
- if ((h = t == null ? void 0 : t.instancedAttr) != null && h.length) {
344
- const l = t.instancedAttr.length;
343
+ if ((d = t == null ? void 0 : t.instancedAttr) != null && d.length) {
344
+ const h = t.instancedAttr.length;
345
345
  if (this.object3d instanceof ct)
346
- f.object3d = ee(this.object3d, l);
346
+ f.object3d = ee(this.object3d, h);
347
347
  else {
348
- const p = this.object3d, d = i ? this.cloneMaterial() : p.material;
349
- f.object3d = new xt(p.geometry, d, l);
348
+ const u = this.object3d, m = i ? this.cloneMaterial() : u.material;
349
+ f.object3d = new xt(u.geometry, m, h);
350
350
  }
351
351
  ie(f.object3d, t == null ? void 0 : t.instancedAttr);
352
352
  } else
@@ -354,19 +354,20 @@ class pt extends se {
354
354
  f.object3d.userData.prefab && delete f.object3d.userData.prefab;
355
355
  }
356
356
  });
357
- const o = yield this.lead.draw(u, $(L({}, a || {}), {
358
- create: r,
357
+ const r = yield this.lead.draw(s, $(L({}, a || {}), {
358
+ create: l,
359
359
  prefab: !1,
360
360
  key: (t == null ? void 0 : t.key) || (a == null ? void 0 : a.key),
361
361
  target: (t == null ? void 0 : t.target) || (a == null ? void 0 : a.target)
362
362
  }));
363
- return this.isBloom && o.enableBloom(), e && (yield Promise.all(
363
+ return this.isBloom && r.enableBloom(), e && (yield Promise.all(
364
364
  this.children.map(
365
365
  (f) => f.instantiate({
366
- target: o
366
+ cloneMaterial: i,
367
+ target: r
367
368
  })
368
369
  )
369
- )), o.isInstantiate = !0, o;
370
+ )), r.isInstantiate = !0, r;
370
371
  });
371
372
  }
372
373
  erase() {
@@ -390,62 +391,62 @@ class pt extends se {
390
391
  }
391
392
  }
392
393
  }
393
- function re(s, t) {
394
- return s.map((e) => {
394
+ function re(n, t) {
395
+ return n.map((e) => {
395
396
  const i = [];
396
- let n;
397
+ let s;
397
398
  return e.forEach((a) => {
398
- if (n) {
399
- const u = Rt(a, n) * 180 / Math.PI;
400
- if (u > t) {
401
- const r = Gt(n, a), o = 1 / Math.ceil(u / t);
399
+ if (s) {
400
+ const l = Rt(a, s) * 180 / Math.PI;
401
+ if (l > t) {
402
+ const r = Gt(s, a), o = 1 / Math.ceil(l / t);
402
403
  let c = o;
403
404
  for (; c < 1; )
404
405
  i.push(r(c)), c += o;
405
406
  }
406
407
  }
407
- i.push(n = a);
408
+ i.push(s = a);
408
409
  }), i;
409
410
  });
410
411
  }
411
- function ae(s, { minLng: t, maxLng: e, minLat: i, maxLat: n } = {}) {
412
- const a = Math.round(nt(360 / s, 2) / Math.PI), u = (1 + Math.sqrt(5)) / 2, r = (l) => l / u * 360 % 360 - 180, o = (l) => Math.acos(2 * l / a - 1) / Math.PI * 180 - 90, c = (l) => a * (Math.cos((l + 90) * Math.PI / 180) + 1) / 2, m = [
413
- n !== void 0 ? Math.ceil(c(n)) : 0,
412
+ function ae(n, { minLng: t, maxLng: e, minLat: i, maxLat: s } = {}) {
413
+ const a = Math.round(st(360 / n, 2) / Math.PI), l = (1 + Math.sqrt(5)) / 2, r = (u) => u / l * 360 % 360 - 180, o = (u) => Math.acos(2 * u / a - 1) / Math.PI * 180 - 90, c = (u) => a * (Math.cos((u + 90) * Math.PI / 180) + 1) / 2, f = [
414
+ s !== void 0 ? Math.ceil(c(s)) : 0,
414
415
  i !== void 0 ? Math.floor(c(i)) : a - 1
415
- ], f = t === void 0 && e === void 0 ? () => !0 : t === void 0 ? (l) => l <= e : e === void 0 ? (l) => l >= t : e >= t ? (l) => l >= t && l <= e : (l) => l >= t || l <= e, h = [];
416
- for (let l = m[0]; l <= m[1]; l++) {
417
- const p = r(l);
418
- f(p) && h.push([p, o(l)]);
416
+ ], d = t === void 0 && e === void 0 ? () => !0 : t === void 0 ? (u) => u <= e : e === void 0 ? (u) => u >= t : e >= t ? (u) => u >= t && u <= e : (u) => u >= t || u <= e, h = [];
417
+ for (let u = f[0]; u <= f[1]; u++) {
418
+ const m = r(u);
419
+ d(m) && h.push([m, o(u)]);
419
420
  }
420
421
  return h;
421
422
  }
422
- function Y(s, t, e = !1) {
423
- return e ? Nt(t, s) : Xt(s, t);
423
+ function Y(n, t, e = !1) {
424
+ return e ? Nt(t, n) : Xt(n, t);
424
425
  }
425
- function oe(s, t) {
426
- const e = { type: "Polygon", coordinates: s }, [[i, n], [a, u]] = jt(e);
427
- if (Math.min(Math.abs(a - i), Math.abs(u - n)) < t)
426
+ function oe(n, t) {
427
+ const e = { type: "Polygon", coordinates: n }, [[i, s], [a, l]] = jt(e);
428
+ if (Math.min(Math.abs(a - i), Math.abs(l - s)) < t)
428
429
  return [];
429
- const r = i > a || u >= 89 || n <= -89;
430
+ const r = i > a || l >= 89 || s <= -89;
430
431
  return ae(t, {
431
432
  minLng: i,
432
433
  maxLng: a,
433
- minLat: n,
434
- maxLat: u
434
+ minLat: s,
435
+ maxLat: l
435
436
  }).filter(
436
437
  (o) => Y(o, e, r)
437
438
  );
438
439
  }
439
- function ce(s, { resolution: t = 1 / 0, bbox: e, projection: i } = {}) {
440
- const n = re(s, t), a = H(n), u = oe(s, t), r = [...a, ...u], o = { type: "Polygon", coordinates: s }, [[c, m], [f, h]] = jt(o), l = c > f || // crosses antimeridian
440
+ function ce(n, { resolution: t = 1 / 0, bbox: e, projection: i } = {}) {
441
+ const s = re(n, t), a = H(s), l = oe(n, t), r = [...a, ...l], o = { type: "Polygon", coordinates: n }, [[c, f], [d, h]] = jt(o), u = c > d || // crosses antimeridian
441
442
  h >= 89 || // crosses north pole
442
- m <= -89;
443
- let p = [];
444
- if (l) {
445
- const y = Yt(r).triangles(), x = new Map(
443
+ f <= -89;
444
+ let m = [];
445
+ if (u) {
446
+ const g = Yt(r).triangles(), x = new Map(
446
447
  r.map(([A, C], _) => [`${A}-${C}`, _])
447
448
  );
448
- y.features.forEach((A) => {
449
+ g.features.forEach((A) => {
449
450
  const C = A.geometry.coordinates[0].slice(0, 3).reverse(), _ = [];
450
451
  if (C.forEach(([P, F]) => {
451
452
  const V = `${P}-${F}`;
@@ -456,17 +457,17 @@ function ce(s, { resolution: t = 1 / 0, bbox: e, projection: i } = {}) {
456
457
  if (!Y(
457
458
  P,
458
459
  o,
459
- l
460
+ u
460
461
  ))
461
462
  return;
462
463
  }
463
- p.push(..._);
464
+ m.push(..._);
464
465
  }
465
466
  });
466
- } else if (u.length) {
467
- const y = Qt.from(r);
468
- for (let x = 0, A = y.triangles.length; x < A; x += 3) {
469
- const C = [2, 1, 0].map((P) => y.triangles[x + P]), _ = C.map((P) => r[P]);
467
+ } else if (l.length) {
468
+ const g = Qt.from(r);
469
+ for (let x = 0, A = g.triangles.length; x < A; x += 3) {
470
+ const C = [2, 1, 0].map((P) => g.triangles[x + P]), _ = C.map((P) => r[P]);
470
471
  if (C.some((P) => P < a.length)) {
471
472
  const P = [0, 1].map(
472
473
  (F) => $t(_, (V) => V[F])
@@ -474,132 +475,132 @@ function ce(s, { resolution: t = 1 / 0, bbox: e, projection: i } = {}) {
474
475
  if (!Y(
475
476
  P,
476
477
  o,
477
- l
478
+ u
478
479
  ))
479
480
  continue;
480
481
  }
481
- p.push(...C);
482
+ m.push(...C);
482
483
  }
483
484
  } else {
484
- const { vertices: y, holes: x = [] } = At(n);
485
- p = qt(y, x, 2);
485
+ const { vertices: g, holes: x = [] } = At(s);
486
+ m = qt(g, x, 2);
486
487
  }
487
- let d = e ? [e[0], e[2]] : dt(r, (y) => y[0]), v = e ? [e[1], e[3]] : dt(r, (y) => y[1]);
488
+ let p = e ? [e[0], e[2]] : dt(r, (g) => g[0]), v = e ? [e[1], e[3]] : dt(r, (g) => g[1]);
488
489
  if (i) {
489
- const [y, x] = i([d[0], v[0]]), [A, C] = i([d[1], v[1]]);
490
- d = [y, A], v = [-x, -C];
490
+ const [g, x] = i([p[0], v[0]]), [A, C] = i([p[1], v[1]]);
491
+ p = [g, A], v = [-x, -C];
491
492
  }
492
- const w = ht(d, [0, 1]), S = ht(v, [0, 1]), D = r.map(([y, x]) => {
493
+ const w = ht(p, [0, 1]), S = ht(v, [0, 1]), D = r.map(([g, x]) => {
493
494
  if (i) {
494
- const [A, C] = i([y, x]);
495
+ const [A, C] = i([g, x]);
495
496
  return [w(A), S(-C)];
496
497
  } else
497
- return [w(y), S(x)];
498
+ return [w(g), S(x)];
498
499
  });
499
- return { contour: n, triangles: { points: r, indices: p, uvs: D } };
500
+ return { contour: s, triangles: { points: r, indices: m, uvs: D } };
500
501
  }
501
502
  const mt = new Z().setAttribute ? "setAttribute" : "addAttribute";
502
- function G(s, t, e, i) {
503
- const n = s.map(
504
- (a) => a.map(([u, r]) => {
503
+ function G(n, t, e, i) {
504
+ const s = n.map(
505
+ (a) => a.map(([l, r]) => {
505
506
  if (i) {
506
- const [o, c] = i([u, r]);
507
+ const [o, c] = i([l, r]);
507
508
  return [o, -c, t];
508
509
  }
509
- return e ? Ft(u, r, t) : [u, r, t];
510
+ return e ? Ft(l, r, t) : [l, r, t];
510
511
  })
511
512
  );
512
- return At(n);
513
+ return At(s);
513
514
  }
514
- function le(s, t, e, i, n) {
515
- const { vertices: a, holes: u } = G(
516
- s,
515
+ function le(n, t, e, i, s) {
516
+ const { vertices: a, holes: l } = G(
517
+ n,
517
518
  t,
518
519
  i,
519
- n
520
+ s
520
521
  ), { vertices: r } = G(
521
- s,
522
+ n,
522
523
  e,
523
524
  i,
524
- n
525
- ), o = H([r, a]), c = Math.round(r.length / 3), m = new Set(u);
526
- let f = 0;
525
+ s
526
+ ), o = H([r, a]), c = Math.round(r.length / 3), f = new Set(l);
527
+ let d = 0;
527
528
  const h = [];
528
- for (let p = 0; p < c; p++) {
529
- let d = p + 1;
530
- if (d === c)
531
- d = f;
532
- else if (m.has(d)) {
533
- const v = d;
534
- d = f, f = v;
529
+ for (let m = 0; m < c; m++) {
530
+ let p = m + 1;
531
+ if (p === c)
532
+ p = d;
533
+ else if (f.has(p)) {
534
+ const v = p;
535
+ p = d, d = v;
535
536
  }
536
- h.push(p, p + c, d + c), h.push(d + c, d, p);
537
+ h.push(m, m + c, p + c), h.push(p + c, p, m);
537
538
  }
538
- const l = [];
539
- for (let p = 1; p >= 0; p--)
540
- for (let d = 0; d < c; d += 1) l.push(d / (c - 1), p);
541
- return { indices: h, vertices: o, uvs: l, topVerts: r };
539
+ const u = [];
540
+ for (let m = 1; m >= 0; m--)
541
+ for (let p = 0; p < c; p += 1) u.push(p / (c - 1), m);
542
+ return { indices: h, vertices: o, uvs: u, topVerts: r };
542
543
  }
543
- function vt(s, t, e, i, n, a) {
544
+ function vt(n, t, e, i, s, a) {
544
545
  return {
545
- indices: i ? s.indices : s.indices.slice().reverse(),
546
+ indices: i ? n.indices : n.indices.slice().reverse(),
546
547
  vertices: G(
547
- [s.points],
548
+ [n.points],
548
549
  t,
549
- n,
550
+ s,
550
551
  a
551
552
  ).vertices,
552
553
  uvs: e
553
554
  };
554
555
  }
555
556
  const ue = ({
556
- polygonGeoJson: s,
557
+ polygonGeoJson: n,
557
558
  startHeight: t,
558
559
  endHeight: e,
559
560
  curvatureResolution: i = 1,
560
- cartesian: n = !0,
561
+ cartesian: s = !0,
561
562
  hasSide: a = !0,
562
- hasBottom: u = !1,
563
+ hasBottom: l = !1,
563
564
  hasTop: r = !1,
564
565
  projection: o,
565
566
  bbox: c
566
567
  }) => {
567
- s.forEach((w) => {
568
+ n.forEach((w) => {
568
569
  Kt(w) || w.reverse();
569
570
  });
570
- const { contour: m, triangles: f } = ce(s, {
571
+ const { contour: f, triangles: d } = ce(n, {
571
572
  resolution: i,
572
573
  bbox: c,
573
574
  projection: o
574
575
  });
575
- let h = {}, l;
576
+ let h = {}, u;
576
577
  a && (h = le(
577
- m,
578
+ f,
578
579
  t != null ? t : e,
579
580
  e != null ? e : t,
580
- n,
581
+ s,
581
582
  o
582
- ), l = h.topVerts);
583
- let p = [];
584
- (u || r) && (p = H(f.uvs));
585
- let d = {};
586
- u && (d = vt(
587
- f,
583
+ ), u = h.topVerts);
584
+ let m = [];
585
+ (l || r) && (m = H(d.uvs));
586
+ let p = {};
587
+ l && (p = vt(
588
+ d,
588
589
  t,
589
- p,
590
+ m,
590
591
  !1,
591
- n,
592
+ s,
592
593
  o
593
594
  ));
594
595
  let v = {};
595
596
  return r && (v = vt(
596
- f,
597
+ d,
597
598
  e,
598
- p,
599
+ m,
599
600
  !0,
600
- n,
601
+ s,
601
602
  o
602
- )), { contour: m, triangles: f, sideTorso: h, bottomCap: d, topCap: v, topVerts: l };
603
+ )), { contour: f, triangles: d, sideTorso: h, bottomCap: p, topCap: v, topVerts: u };
603
604
  };
604
605
  class ze extends Z {
605
606
  constructor(t, e = {}) {
@@ -617,27 +618,27 @@ class ze extends Z {
617
618
  }, e);
618
619
  const {
619
620
  endHeight: i,
620
- hasTop: n,
621
+ hasTop: s,
621
622
  topFirst: a,
622
- hasBottom: u,
623
+ hasBottom: l,
623
624
  hasSide: r,
624
625
  cartesian: o,
625
626
  userDataRsoOffset: c,
626
- projection: m
627
- } = this.parameters, { contour: f, sideTorso: h, topVerts: l, bottomCap: p, topCap: d } = ue(L({}, this.parameters));
627
+ projection: f
628
+ } = this.parameters, { contour: d, sideTorso: h, topVerts: u, bottomCap: m, topCap: p } = ue(L({}, this.parameters));
628
629
  let v = [], w = [], S = [], D = 0;
629
- const j = (y) => {
630
+ const j = (g) => {
630
631
  const x = Math.round(v.length / 3), A = S.length;
631
- v = v.concat(y.vertices), w = w.concat(y.uvs), S = S.concat(
632
- x ? y.indices.map((C) => C + x) : y.indices
632
+ v = v.concat(g.vertices), w = w.concat(g.uvs), S = S.concat(
633
+ x ? g.indices.map((C) => C + x) : g.indices
633
634
  ), this.addGroup(A, S.length - A, D++);
634
635
  };
635
- n && a && j(d), r && (j(h), this.userData.topVerts = c ? G(
636
- f,
636
+ s && a && j(p), r && (j(h), this.userData.topVerts = c ? G(
637
+ d,
637
638
  i + c,
638
639
  o,
639
- m
640
- ).vertices : l), u && j(p), n && !a && j(d), this.setIndex(S), this[mt]("position", new R(v, 3)), this[mt]("uv", new R(w, 2)), this.computeVertexNormals();
640
+ f
641
+ ).vertices : u), l && j(m), s && !a && j(p), this.setIndex(S), this[mt]("position", new R(v, 3)), this[mt]("uv", new R(w, 2)), this.computeVertexNormals();
641
642
  }
642
643
  }
643
644
  const fe = `
@@ -782,20 +783,20 @@ class _e extends zt {
782
783
  const S = t, {
783
784
  lineWidth: e = 1,
784
785
  color: i = "#ffffff",
785
- opacity: n = 1,
786
+ opacity: s = 1,
786
787
  map: a = null,
787
- dashOffset: u = 0,
788
+ dashOffset: l = 0,
788
789
  dashArray: r = 0,
789
790
  dashRatio: o = 0,
790
791
  sizeAttenuation: c = !0,
791
- offsetLoop: m = !0,
792
- offset: f = new q(0, 0),
792
+ offsetLoop: f = !0,
793
+ offset: d = new q(0, 0),
793
794
  scaleDown: h = 0,
794
- alphaMap: l = void 0,
795
- alphaTest: p = 0,
796
- repeat: d = new q(1, 1),
795
+ alphaMap: u = void 0,
796
+ alphaTest: m = 0,
797
+ repeat: p = new q(1, 1),
797
798
  resolution: v = new q(1, 1)
798
- } = S, w = st(S, [
799
+ } = S, w = nt(S, [
799
800
  "lineWidth",
800
801
  "color",
801
802
  "opacity",
@@ -816,22 +817,22 @@ class _e extends zt {
816
817
  uniforms: {
817
818
  lineWidth: { value: e },
818
819
  color: { value: new lt(i) },
819
- opacity: { value: n },
820
+ opacity: { value: s },
820
821
  map: { value: a },
821
822
  useMap: { value: a ? 1 : 0 },
822
823
  resolution: { value: v },
823
824
  sizeAttenuation: { value: c ? 1 : 0 },
824
- offset: { value: f },
825
- offsetLoop: { value: m ? 1 : 0 },
825
+ offset: { value: d },
826
+ offsetLoop: { value: f ? 1 : 0 },
826
827
  dashArray: { value: r },
827
- dashOffset: { value: u },
828
+ dashOffset: { value: l },
828
829
  dashRatio: { value: o },
829
830
  useDash: { value: r > 0 ? 1 : 0 },
830
831
  scaleDown: { value: h / 10 },
831
- alphaTest: { value: p },
832
- alphaMap: { value: l },
833
- useAlphaMap: { value: l ? 1 : 0 },
834
- repeat: { value: d }
832
+ alphaTest: { value: m },
833
+ alphaMap: { value: u },
834
+ useAlphaMap: { value: u ? 1 : 0 },
835
+ repeat: { value: p }
835
836
  },
836
837
  vertexShader: de,
837
838
  fragmentShader: fe
@@ -885,21 +886,21 @@ class _e extends zt {
885
886
  this.uniforms.sizeAttenuation.value = t ? 1 : 0;
886
887
  }
887
888
  }
888
- const K = new O(), yt = new I(), gt = new I(), g = new O(), b = new O(), B = new O(), Q = new I(), X = new _t(), M = new Et(), bt = new I(), W = new St(), U = new Lt(), T = new O();
889
+ const K = new O(), gt = new I(), yt = new I(), y = new O(), b = new O(), B = new O(), Q = new I(), X = new _t(), M = new Et(), bt = new I(), W = new St(), U = new Lt(), T = new O();
889
890
  let z, E;
890
- function Mt(s, t, e) {
891
- return T.set(0, 0, -t, 1).applyMatrix4(s.projectionMatrix), T.multiplyScalar(1 / T.w), T.x = E / e.width, T.y = E / e.height, T.applyMatrix4(s.projectionMatrixInverse), T.multiplyScalar(1 / T.w), Math.abs(Math.max(T.x, T.y));
891
+ function Mt(n, t, e) {
892
+ return T.set(0, 0, -t, 1).applyMatrix4(n.projectionMatrix), T.multiplyScalar(1 / T.w), T.x = E / e.width, T.y = E / e.height, T.applyMatrix4(n.projectionMatrixInverse), T.multiplyScalar(1 / T.w), Math.abs(Math.max(T.x, T.y));
892
893
  }
893
- function he(s, t) {
894
- const e = s.matrixWorld, i = s.geometry, n = i.attributes.instanceStart, a = i.attributes.instanceEnd, u = Math.min(i.instanceCount, n.count);
895
- for (let r = 0, o = u; r < o; r++) {
896
- M.start.fromBufferAttribute(n, r), M.end.fromBufferAttribute(a, r), M.applyMatrix4(e);
897
- const c = new I(), m = new I();
898
- z.distanceSqToSegment(M.start, M.end, m, c), m.distanceTo(c) < E * 0.5 && t.push({
899
- point: m,
894
+ function he(n, t) {
895
+ const e = n.matrixWorld, i = n.geometry, s = i.attributes.instanceStart, a = i.attributes.instanceEnd, l = Math.min(i.instanceCount, s.count);
896
+ for (let r = 0, o = l; r < o; r++) {
897
+ M.start.fromBufferAttribute(s, r), M.end.fromBufferAttribute(a, r), M.applyMatrix4(e);
898
+ const c = new I(), f = new I();
899
+ z.distanceSqToSegment(M.start, M.end, f, c), f.distanceTo(c) < E * 0.5 && t.push({
900
+ point: f,
900
901
  pointOnLine: c,
901
- distance: z.origin.distanceTo(m),
902
- object: s,
902
+ distance: z.origin.distanceTo(f),
903
+ object: n,
903
904
  face: null,
904
905
  faceIndex: r,
905
906
  uv: null,
@@ -907,31 +908,31 @@ function he(s, t) {
907
908
  });
908
909
  }
909
910
  }
910
- function pe(s, t, e) {
911
- const i = t.projectionMatrix, a = s.material.resolution, u = s.matrixWorld, r = s.geometry, o = r.attributes.instanceStart, c = r.attributes.instanceEnd, m = Math.min(r.instanceCount, o.count), f = -t.near;
912
- z.at(1, B), B.w = 1, B.applyMatrix4(t.matrixWorldInverse), B.applyMatrix4(i), B.multiplyScalar(1 / B.w), B.x *= a.x / 2, B.y *= a.y / 2, B.z = 0, Q.copy(B), X.multiplyMatrices(t.matrixWorldInverse, u);
913
- for (let h = 0, l = m; h < l; h++) {
914
- if (g.fromBufferAttribute(o, h), b.fromBufferAttribute(c, h), g.w = 1, b.w = 1, g.applyMatrix4(X), b.applyMatrix4(X), g.z > f && b.z > f)
911
+ function pe(n, t, e) {
912
+ const i = t.projectionMatrix, a = n.material.resolution, l = n.matrixWorld, r = n.geometry, o = r.attributes.instanceStart, c = r.attributes.instanceEnd, f = Math.min(r.instanceCount, o.count), d = -t.near;
913
+ z.at(1, B), B.w = 1, B.applyMatrix4(t.matrixWorldInverse), B.applyMatrix4(i), B.multiplyScalar(1 / B.w), B.x *= a.x / 2, B.y *= a.y / 2, B.z = 0, Q.copy(B), X.multiplyMatrices(t.matrixWorldInverse, l);
914
+ for (let h = 0, u = f; h < u; h++) {
915
+ if (y.fromBufferAttribute(o, h), b.fromBufferAttribute(c, h), y.w = 1, b.w = 1, y.applyMatrix4(X), b.applyMatrix4(X), y.z > d && b.z > d)
915
916
  continue;
916
- if (g.z > f) {
917
- const D = g.z - b.z, j = (g.z - f) / D;
918
- g.lerp(b, j);
919
- } else if (b.z > f) {
920
- const D = b.z - g.z, j = (b.z - f) / D;
921
- b.lerp(g, j);
917
+ if (y.z > d) {
918
+ const D = y.z - b.z, j = (y.z - d) / D;
919
+ y.lerp(b, j);
920
+ } else if (b.z > d) {
921
+ const D = b.z - y.z, j = (b.z - d) / D;
922
+ b.lerp(y, j);
922
923
  }
923
- g.applyMatrix4(i), b.applyMatrix4(i), g.multiplyScalar(1 / g.w), b.multiplyScalar(1 / b.w), g.x *= a.x / 2, g.y *= a.y / 2, b.x *= a.x / 2, b.y *= a.y / 2, M.start.copy(g), M.start.z = 0, M.end.copy(b), M.end.z = 0;
924
- const d = M.closestPointToPointParameter(Q, !0);
925
- M.at(d, bt);
926
- const v = Vt.lerp(g.z, b.z, d), w = v >= -1 && v <= 1, S = Q.distanceTo(bt) < E * 0.5;
924
+ y.applyMatrix4(i), b.applyMatrix4(i), y.multiplyScalar(1 / y.w), b.multiplyScalar(1 / b.w), y.x *= a.x / 2, y.y *= a.y / 2, b.x *= a.x / 2, b.y *= a.y / 2, M.start.copy(y), M.start.z = 0, M.end.copy(b), M.end.z = 0;
925
+ const p = M.closestPointToPointParameter(Q, !0);
926
+ M.at(p, bt);
927
+ const v = Vt.lerp(y.z, b.z, p), w = v >= -1 && v <= 1, S = Q.distanceTo(bt) < E * 0.5;
927
928
  if (w && S) {
928
- M.start.fromBufferAttribute(o, h), M.end.fromBufferAttribute(c, h), M.start.applyMatrix4(u), M.end.applyMatrix4(u);
929
+ M.start.fromBufferAttribute(o, h), M.end.fromBufferAttribute(c, h), M.start.applyMatrix4(l), M.end.applyMatrix4(l);
929
930
  const D = new I(), j = new I();
930
931
  z.distanceSqToSegment(M.start, M.end, j, D), e.push({
931
932
  point: j,
932
933
  pointOnLine: D,
933
934
  distance: z.origin.distanceTo(j),
934
- object: s,
935
+ object: n,
935
936
  face: null,
936
937
  faceIndex: h,
937
938
  uv: null,
@@ -946,11 +947,11 @@ class Ee extends wt {
946
947
  }
947
948
  // for backwards-compatibility, but could be a method of LineSegmentsGeometry...
948
949
  computeLineDistances() {
949
- const t = this.geometry, e = t.attributes.instanceStart, i = t.attributes.instanceEnd, n = new Float32Array(2 * e.count);
950
- for (let u = 0, r = 0, o = e.count; u < o; u++, r += 2)
951
- yt.fromBufferAttribute(e, u), gt.fromBufferAttribute(i, u), n[r] = r === 0 ? 0 : n[r - 1], n[r + 1] = n[r] + yt.distanceTo(gt);
950
+ const t = this.geometry, e = t.attributes.instanceStart, i = t.attributes.instanceEnd, s = new Float32Array(2 * e.count);
951
+ for (let l = 0, r = 0, o = e.count; l < o; l++, r += 2)
952
+ gt.fromBufferAttribute(e, l), yt.fromBufferAttribute(i, l), s[r] = r === 0 ? 0 : s[r - 1], s[r + 1] = s[r] + gt.distanceTo(yt);
952
953
  const a = new Ot(
953
- n,
954
+ s,
954
955
  2,
955
956
  1
956
957
  );
@@ -963,46 +964,46 @@ class Ee extends wt {
963
964
  ), this;
964
965
  }
965
966
  raycast(t, e) {
966
- const i = this.material.worldUnits, n = t.camera;
967
- n === null && !i && console.error(
967
+ const i = this.material.worldUnits, s = t.camera;
968
+ s === null && !i && console.error(
968
969
  'LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.'
969
970
  );
970
971
  const a = t.params.Line2 !== void 0 && t.params.Line2.threshold || 0;
971
972
  z = t.ray;
972
- const u = this.matrixWorld, r = this.geometry, o = this.material;
973
- E = o.linewidth + a, r.boundingSphere === null && r.computeBoundingSphere(), U.copy(r.boundingSphere).applyMatrix4(u);
973
+ const l = this.matrixWorld, r = this.geometry, o = this.material;
974
+ E = o.linewidth + a, r.boundingSphere === null && r.computeBoundingSphere(), U.copy(r.boundingSphere).applyMatrix4(l);
974
975
  let c;
975
976
  if (i)
976
977
  c = E * 0.5;
977
978
  else {
978
- const f = Math.max(
979
- n.near,
979
+ const d = Math.max(
980
+ s.near,
980
981
  U.distanceToPoint(z.origin)
981
982
  );
982
983
  c = Mt(
983
- n,
984
- f,
984
+ s,
985
+ d,
985
986
  o.resolution
986
987
  );
987
988
  }
988
989
  if (U.radius += c, z.intersectsSphere(U) === !1)
989
990
  return;
990
- r.boundingBox === null && r.computeBoundingBox(), W.copy(r.boundingBox).applyMatrix4(u);
991
- let m;
991
+ r.boundingBox === null && r.computeBoundingBox(), W.copy(r.boundingBox).applyMatrix4(l);
992
+ let f;
992
993
  if (i)
993
- m = E * 0.5;
994
+ f = E * 0.5;
994
995
  else {
995
- const f = Math.max(
996
- n.near,
996
+ const d = Math.max(
997
+ s.near,
997
998
  W.distanceToPoint(z.origin)
998
999
  );
999
- m = Mt(
1000
- n,
1001
- f,
1000
+ f = Mt(
1001
+ s,
1002
+ d,
1002
1003
  o.resolution
1003
1004
  );
1004
1005
  }
1005
- W.expandByScalar(m), z.intersectsBox(W) !== !1 && (i ? he(this, e) : pe(this, n, e));
1006
+ W.expandByScalar(f), z.intersectsBox(W) !== !1 && (i ? he(this, e) : pe(this, s, e));
1006
1007
  }
1007
1008
  onBeforeRender(t) {
1008
1009
  const e = this.material.uniforms;