viral-viewer-2 7.0.0 → 7.0.2

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.
@@ -1,22 +1,22 @@
1
1
  var Ob = Object.defineProperty;
2
2
  var Nb = (s, e, t) => e in s ? Ob(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
3
  var ym = (s, e, t) => (Nb(s, typeof e != "symbol" ? e + "" : e, t), t);
4
- class VR {
4
+ class HR {
5
5
  constructor() {
6
6
  this.MaterialIndex = 0, this.Vertices = [], this.Indices = [], this.Name = "", this.Instances = [];
7
7
  }
8
8
  }
9
- class XR {
9
+ class YR {
10
10
  constructor() {
11
11
  this.MaterialIndex = 0, this.Elements = [];
12
12
  }
13
13
  }
14
- class HR {
14
+ class GR {
15
15
  constructor() {
16
16
  this.Vertices = [], this.Indices = [], this.Instances = [], this.Id = "";
17
17
  }
18
18
  }
19
- class YR {
19
+ class WR {
20
20
  constructor() {
21
21
  this.Vertices = [], this.Indices = [], this.Transform = null;
22
22
  }
@@ -26,7 +26,7 @@ class fs {
26
26
  this.X = 0, this.Y = 0, this.Z = 0;
27
27
  }
28
28
  }
29
- var yi = /* @__PURE__ */ ((s) => (s[s.ON_MOUSE_MOVE = 0] = "ON_MOUSE_MOVE", s[s.ON_MOUSE_DOWN_LEFT = 1] = "ON_MOUSE_DOWN_LEFT", s[s.ON_MOUSE_UP_LEFT = 2] = "ON_MOUSE_UP_LEFT", s[s.ON_MOUSE_DOWN_RIGHT = 3] = "ON_MOUSE_DOWN_RIGHT", s[s.ON_MOUSE_UP_RIGHT = 4] = "ON_MOUSE_UP_RIGHT", s[s.ON_MOUSE_DOUBLE_CLICK = 5] = "ON_MOUSE_DOUBLE_CLICK", s))(yi || {}), Ls = /* @__PURE__ */ ((s) => (s[s.ON_WAKE = 0] = "ON_WAKE", s[s.ON_SLEEP = 1] = "ON_SLEEP", s[s.ON_UPDATE = 2] = "ON_UPDATE", s))(Ls || {}), lo = /* @__PURE__ */ ((s) => (s[s.KEYDOWN = 0] = "KEYDOWN", s[s.KEYUP = 1] = "KEYUP", s))(lo || {}), At = /* @__PURE__ */ ((s) => (s[s.LOADED_SCENE = 0] = "LOADED_SCENE", s[s.LOADED_MATERIAL_MANAGER = 1] = "LOADED_MATERIAL_MANAGER", s[s.LOADED_RENDERER = 2] = "LOADED_RENDERER", s[s.LOADED_CAMERA = 3] = "LOADED_CAMERA", s[s.LOADED_CUBE = 4] = "LOADED_CUBE", s[s.LOADED_TOOLS = 5] = "LOADED_TOOLS", s[s.LOADED_SEPERATE_MODEL = 6] = "LOADED_SEPERATE_MODEL", s[s.GENERATED_MERGE_MODEL = 7] = "GENERATED_MERGE_MODEL", s[s.LOADED_DATA = 8] = "LOADED_DATA", s))(At || {});
29
+ var yi = /* @__PURE__ */ ((s) => (s[s.ON_MOUSE_MOVE = 0] = "ON_MOUSE_MOVE", s[s.ON_MOUSE_DOWN_LEFT = 1] = "ON_MOUSE_DOWN_LEFT", s[s.ON_MOUSE_UP_LEFT = 2] = "ON_MOUSE_UP_LEFT", s[s.ON_MOUSE_DOWN_RIGHT = 3] = "ON_MOUSE_DOWN_RIGHT", s[s.ON_MOUSE_UP_RIGHT = 4] = "ON_MOUSE_UP_RIGHT", s[s.ON_MOUSE_DOUBLE_CLICK = 5] = "ON_MOUSE_DOUBLE_CLICK", s))(yi || {}), Ls = /* @__PURE__ */ ((s) => (s[s.ON_WAKE = 0] = "ON_WAKE", s[s.ON_SLEEP = 1] = "ON_SLEEP", s[s.ON_UPDATE = 2] = "ON_UPDATE", s))(Ls || {}), lo = /* @__PURE__ */ ((s) => (s[s.KEYDOWN = 0] = "KEYDOWN", s[s.KEYUP = 1] = "KEYUP", s))(lo || {}), At = /* @__PURE__ */ ((s) => (s[s.LOADED_SCENE = 0] = "LOADED_SCENE", s[s.LOADED_MATERIAL_MANAGER = 1] = "LOADED_MATERIAL_MANAGER", s[s.LOADED_RENDERER = 2] = "LOADED_RENDERER", s[s.LOADED_CAMERA = 3] = "LOADED_CAMERA", s[s.LOADED_CUBE = 4] = "LOADED_CUBE", s[s.LOADED_TOOLS = 5] = "LOADED_TOOLS", s[s.LOADED_SEPERATE_MODEL = 6] = "LOADED_SEPERATE_MODEL", s[s.GENERATED_MERGE_MODEL = 7] = "GENERATED_MERGE_MODEL", s[s.LOADED_DATA = 8] = "LOADED_DATA", s[s.SELECT_ELEMENTS = 9] = "SELECT_ELEMENTS", s))(At || {});
30
30
  class jr {
31
31
  constructor() {
32
32
  this.items = {};
@@ -86,12 +86,12 @@ let Lv = class {
86
86
  this.min = new fs(), this.max = new fs();
87
87
  }
88
88
  };
89
- class qR {
89
+ class $R {
90
90
  constructor() {
91
91
  this.Data = {}, this.CameraData = new Sp(), this.Translation = [];
92
92
  }
93
93
  }
94
- class ZR {
94
+ class KR {
95
95
  constructor() {
96
96
  this.Data = {};
97
97
  }
@@ -121,7 +121,7 @@ const Fb = {
121
121
  indirectLightIntensity: 1.2,
122
122
  shadowcatcher: !0
123
123
  };
124
- class $R {
124
+ class JR {
125
125
  constructor() {
126
126
  this.children = /* @__PURE__ */ new Map(), this.keys = /* @__PURE__ */ new Set();
127
127
  }
@@ -1982,7 +1982,7 @@ var cw = rc, hw = Ip, dw = lw, uw = Ip, fw = nc, pw = {
1982
1982
  ungzip: uw,
1983
1983
  constants: fw
1984
1984
  };
1985
- const { Inflate: mw, inflate: gw, inflateRaw: KR, ungzip: JR } = pw;
1985
+ const { Inflate: mw, inflate: gw, inflateRaw: eD, ungzip: tD } = pw;
1986
1986
  var vw = mw, xw = gw;
1987
1987
  class bw {
1988
1988
  pakoUnzip(e) {
@@ -8063,7 +8063,7 @@ class Lo {
8063
8063
  return new this.constructor().copy(this);
8064
8064
  }
8065
8065
  }
8066
- class Pe {
8066
+ class Ce {
8067
8067
  /**
8068
8068
  * Constructs a new 4x4 matrix. The arguments are supposed to be
8069
8069
  * in row-major order. If no arguments are provided, the constructor
@@ -8087,7 +8087,7 @@ class Pe {
8087
8087
  * @param {number} [n44] - 4-4 matrix element.
8088
8088
  */
8089
8089
  constructor(e, t, i, n, r, a, o, l, c, h, d, u, f, p, v, g) {
8090
- Pe.prototype.isMatrix4 = !0, this.elements = [
8090
+ Ce.prototype.isMatrix4 = !0, this.elements = [
8091
8091
  1,
8092
8092
  0,
8093
8093
  0,
@@ -8163,7 +8163,7 @@ class Pe {
8163
8163
  * @return {Matrix4} A clone of this instance.
8164
8164
  */
8165
8165
  clone() {
8166
- return new Pe().fromArray(this.elements);
8166
+ return new Ce().fromArray(this.elements);
8167
8167
  }
8168
8168
  /**
8169
8169
  * Copies the values of the given matrix to this instance.
@@ -8775,7 +8775,7 @@ class Pe {
8775
8775
  return e[t] = i[0], e[t + 1] = i[1], e[t + 2] = i[2], e[t + 3] = i[3], e[t + 4] = i[4], e[t + 5] = i[5], e[t + 6] = i[6], e[t + 7] = i[7], e[t + 8] = i[8], e[t + 9] = i[9], e[t + 10] = i[10], e[t + 11] = i[11], e[t + 12] = i[12], e[t + 13] = i[13], e[t + 14] = i[14], e[t + 15] = i[15], e;
8776
8776
  }
8777
8777
  }
8778
- const Ia = /* @__PURE__ */ new P(), Xn = /* @__PURE__ */ new Pe(), C1 = /* @__PURE__ */ new P(0, 0, 0), I1 = /* @__PURE__ */ new P(1, 1, 1), Ks = /* @__PURE__ */ new P(), Tc = /* @__PURE__ */ new P(), pn = /* @__PURE__ */ new P(), Pg = /* @__PURE__ */ new Pe(), Cg = /* @__PURE__ */ new ui();
8778
+ const Ia = /* @__PURE__ */ new P(), Xn = /* @__PURE__ */ new Ce(), C1 = /* @__PURE__ */ new P(0, 0, 0), I1 = /* @__PURE__ */ new P(1, 1, 1), Ks = /* @__PURE__ */ new P(), Tc = /* @__PURE__ */ new P(), pn = /* @__PURE__ */ new P(), Pg = /* @__PURE__ */ new Ce(), Cg = /* @__PURE__ */ new ui();
8779
8779
  class hn {
8780
8780
  /**
8781
8781
  * Constructs a new euler instance.
@@ -9047,7 +9047,7 @@ class Hp {
9047
9047
  }
9048
9048
  }
9049
9049
  let R1 = 0;
9050
- const Ig = /* @__PURE__ */ new P(), Ra = /* @__PURE__ */ new ui(), Es = /* @__PURE__ */ new Pe(), Ec = /* @__PURE__ */ new P(), Qo = /* @__PURE__ */ new P(), D1 = /* @__PURE__ */ new P(), L1 = /* @__PURE__ */ new ui(), Rg = /* @__PURE__ */ new P(1, 0, 0), Dg = /* @__PURE__ */ new P(0, 1, 0), Lg = /* @__PURE__ */ new P(0, 0, 1), Og = { type: "added" }, O1 = { type: "removed" }, Da = { type: "childadded", child: null }, ou = { type: "childremoved", child: null };
9050
+ const Ig = /* @__PURE__ */ new P(), Ra = /* @__PURE__ */ new ui(), Es = /* @__PURE__ */ new Ce(), Ec = /* @__PURE__ */ new P(), Qo = /* @__PURE__ */ new P(), D1 = /* @__PURE__ */ new P(), L1 = /* @__PURE__ */ new ui(), Rg = /* @__PURE__ */ new P(1, 0, 0), Dg = /* @__PURE__ */ new P(0, 1, 0), Lg = /* @__PURE__ */ new P(0, 0, 1), Og = { type: "added" }, O1 = { type: "removed" }, Da = { type: "childadded", child: null }, ou = { type: "childremoved", child: null };
9051
9051
  class Lt extends Ws {
9052
9052
  /**
9053
9053
  * Constructs a new 3D object.
@@ -9116,7 +9116,7 @@ class Lt extends Ws {
9116
9116
  * @type {Matrix4}
9117
9117
  */
9118
9118
  modelViewMatrix: {
9119
- value: new Pe()
9119
+ value: new Ce()
9120
9120
  },
9121
9121
  /**
9122
9122
  * Represents the object's normal matrix.
@@ -9127,7 +9127,7 @@ class Lt extends Ws {
9127
9127
  normalMatrix: {
9128
9128
  value: new yt()
9129
9129
  }
9130
- }), this.matrix = new Pe(), this.matrixWorld = new Pe(), this.matrixAutoUpdate = Lt.DEFAULT_MATRIX_AUTO_UPDATE, this.matrixWorldAutoUpdate = Lt.DEFAULT_MATRIX_WORLD_AUTO_UPDATE, this.matrixWorldNeedsUpdate = !1, this.layers = new Hp(), this.visible = !0, this.castShadow = !1, this.receiveShadow = !1, this.frustumCulled = !0, this.renderOrder = 0, this.animations = [], this.customDepthMaterial = void 0, this.customDistanceMaterial = void 0, this.userData = {};
9130
+ }), this.matrix = new Ce(), this.matrixWorld = new Ce(), this.matrixAutoUpdate = Lt.DEFAULT_MATRIX_AUTO_UPDATE, this.matrixWorldAutoUpdate = Lt.DEFAULT_MATRIX_WORLD_AUTO_UPDATE, this.matrixWorldNeedsUpdate = !1, this.layers = new Hp(), this.visible = !0, this.castShadow = !1, this.receiveShadow = !1, this.frustumCulled = !0, this.renderOrder = 0, this.animations = [], this.customDepthMaterial = void 0, this.customDistanceMaterial = void 0, this.userData = {};
9131
9131
  }
9132
9132
  /**
9133
9133
  * A callback that is executed immediately before a 3D object is rendered to a shadow map.
@@ -11174,7 +11174,7 @@ class et extends ot {
11174
11174
  }
11175
11175
  }
11176
11176
  let F1 = 0;
11177
- const An = /* @__PURE__ */ new Pe(), gu = /* @__PURE__ */ new Lt(), Na = /* @__PURE__ */ new P(), mn = /* @__PURE__ */ new ft(), jo = /* @__PURE__ */ new ft(), Mi = /* @__PURE__ */ new P();
11177
+ const An = /* @__PURE__ */ new Ce(), gu = /* @__PURE__ */ new Lt(), Na = /* @__PURE__ */ new P(), mn = /* @__PURE__ */ new ft(), jo = /* @__PURE__ */ new ft(), Mi = /* @__PURE__ */ new P();
11178
11178
  class dt extends Ws {
11179
11179
  /**
11180
11180
  * Constructs a new geometry.
@@ -11704,7 +11704,7 @@ class dt extends Ws {
11704
11704
  this.dispatchEvent({ type: "dispose" });
11705
11705
  }
11706
11706
  }
11707
- const Bg = /* @__PURE__ */ new Pe(), Or = /* @__PURE__ */ new Lo(), Ic = /* @__PURE__ */ new ni(), Ug = /* @__PURE__ */ new P(), Rc = /* @__PURE__ */ new P(), Dc = /* @__PURE__ */ new P(), Lc = /* @__PURE__ */ new P(), vu = /* @__PURE__ */ new P(), Oc = /* @__PURE__ */ new P(), Fg = /* @__PURE__ */ new P(), Nc = /* @__PURE__ */ new P();
11707
+ const Bg = /* @__PURE__ */ new Ce(), Or = /* @__PURE__ */ new Lo(), Ic = /* @__PURE__ */ new ni(), Ug = /* @__PURE__ */ new P(), Rc = /* @__PURE__ */ new P(), Dc = /* @__PURE__ */ new P(), Lc = /* @__PURE__ */ new P(), vu = /* @__PURE__ */ new P(), Oc = /* @__PURE__ */ new P(), Fg = /* @__PURE__ */ new P(), Nc = /* @__PURE__ */ new P();
11708
11708
  class Q extends Lt {
11709
11709
  /**
11710
11710
  * Constructs a new mesh.
@@ -11994,7 +11994,7 @@ class Yp extends Lt {
11994
11994
  * Constructs a new camera.
11995
11995
  */
11996
11996
  constructor() {
11997
- super(), this.isCamera = !0, this.type = "Camera", this.matrixWorldInverse = new Pe(), this.projectionMatrix = new Pe(), this.projectionMatrixInverse = new Pe(), this.coordinateSystem = In, this._reversedDepth = !1;
11997
+ super(), this.isCamera = !0, this.type = "Camera", this.matrixWorldInverse = new Ce(), this.projectionMatrix = new Ce(), this.projectionMatrixInverse = new Ce(), this.coordinateSystem = In, this._reversedDepth = !1;
11998
11998
  }
11999
11999
  /**
12000
12000
  * The flag that indicates whether the camera uses a reversed depth buffer.
@@ -12995,7 +12995,7 @@ class id extends Di {
12995
12995
  }
12996
12996
  }
12997
12997
  let Fa;
12998
- const qo = /* @__PURE__ */ new P(), za = /* @__PURE__ */ new P(), ka = /* @__PURE__ */ new P(), Va = /* @__PURE__ */ new K(), Zo = /* @__PURE__ */ new K(), zx = /* @__PURE__ */ new Pe(), Uc = /* @__PURE__ */ new P(), $o = /* @__PURE__ */ new P(), Fc = /* @__PURE__ */ new P(), Vg = /* @__PURE__ */ new K(), bu = /* @__PURE__ */ new K(), Xg = /* @__PURE__ */ new K();
12998
+ const qo = /* @__PURE__ */ new P(), za = /* @__PURE__ */ new P(), ka = /* @__PURE__ */ new P(), Va = /* @__PURE__ */ new K(), Zo = /* @__PURE__ */ new K(), zx = /* @__PURE__ */ new Ce(), Uc = /* @__PURE__ */ new P(), $o = /* @__PURE__ */ new P(), Fc = /* @__PURE__ */ new P(), Vg = /* @__PURE__ */ new K(), bu = /* @__PURE__ */ new K(), Xg = /* @__PURE__ */ new K();
12999
12999
  class tp extends Lt {
13000
13000
  /**
13001
13001
  * Constructs a new sprite.
@@ -13204,7 +13204,7 @@ class kx extends Lt {
13204
13204
  return t;
13205
13205
  }
13206
13206
  }
13207
- const Yg = /* @__PURE__ */ new P(), Gg = /* @__PURE__ */ new Mt(), Wg = /* @__PURE__ */ new Mt(), W1 = /* @__PURE__ */ new P(), Qg = /* @__PURE__ */ new Pe(), Vc = /* @__PURE__ */ new P(), yu = /* @__PURE__ */ new ni(), jg = /* @__PURE__ */ new Pe(), _u = /* @__PURE__ */ new Lo();
13207
+ const Yg = /* @__PURE__ */ new P(), Gg = /* @__PURE__ */ new Mt(), Wg = /* @__PURE__ */ new Mt(), W1 = /* @__PURE__ */ new P(), Qg = /* @__PURE__ */ new Ce(), Vc = /* @__PURE__ */ new P(), yu = /* @__PURE__ */ new ni(), jg = /* @__PURE__ */ new Ce(), _u = /* @__PURE__ */ new Lo();
13208
13208
  class Vx extends Q {
13209
13209
  /**
13210
13210
  * Constructs a new skinned mesh.
@@ -13213,7 +13213,7 @@ class Vx extends Q {
13213
13213
  * @param {Material|Array<Material>} [material] - The mesh material.
13214
13214
  */
13215
13215
  constructor(e, t) {
13216
- super(e, t), this.isSkinnedMesh = !0, this.type = "SkinnedMesh", this.bindMode = _g, this.bindMatrix = new Pe(), this.bindMatrixInverse = new Pe(), this.boundingBox = null, this.boundingSphere = null;
13216
+ super(e, t), this.isSkinnedMesh = !0, this.type = "SkinnedMesh", this.bindMode = _g, this.bindMatrix = new Ce(), this.bindMatrixInverse = new Ce(), this.boundingBox = null, this.boundingSphere = null;
13217
13217
  }
13218
13218
  /**
13219
13219
  * Computes the bounding box of the skinned mesh, and updates {@link SkinnedMesh#boundingBox}.
@@ -13333,7 +13333,7 @@ class Bn extends ci {
13333
13333
  super(null, a, o, l, c, h, n, r, d, u), this.isDataTexture = !0, this.image = { data: e, width: t, height: i }, this.generateMipmaps = !1, this.flipY = !1, this.unpackAlignment = 1;
13334
13334
  }
13335
13335
  }
13336
- const qg = /* @__PURE__ */ new Pe(), Q1 = /* @__PURE__ */ new Pe();
13336
+ const qg = /* @__PURE__ */ new Ce(), Q1 = /* @__PURE__ */ new Ce();
13337
13337
  class vd {
13338
13338
  /**
13339
13339
  * Constructs a new skeleton.
@@ -13357,7 +13357,7 @@ class vd {
13357
13357
  else if (e.length !== t.length) {
13358
13358
  Je("Skeleton: Number of inverse bone matrices does not match amount of bones."), this.boneInverses = [];
13359
13359
  for (let i = 0, n = this.bones.length; i < n; i++)
13360
- this.boneInverses.push(new Pe());
13360
+ this.boneInverses.push(new Ce());
13361
13361
  }
13362
13362
  }
13363
13363
  /**
@@ -13367,7 +13367,7 @@ class vd {
13367
13367
  calculateInverses() {
13368
13368
  this.boneInverses.length = 0;
13369
13369
  for (let e = 0, t = this.bones.length; e < t; e++) {
13370
- const i = new Pe();
13370
+ const i = new Ce();
13371
13371
  this.bones[e] && i.copy(this.bones[e].matrixWorld).invert(), this.boneInverses.push(i);
13372
13372
  }
13373
13373
  }
@@ -13449,7 +13449,7 @@ class vd {
13449
13449
  for (let i = 0, n = e.bones.length; i < n; i++) {
13450
13450
  const r = e.bones[i];
13451
13451
  let a = t[r];
13452
- a === void 0 && (Je("Skeleton: No bone found with UUID:", r), a = new Qp()), this.bones.push(a), this.boneInverses.push(new Pe().fromArray(e.boneInverses[i]));
13452
+ a === void 0 && (Je("Skeleton: No bone found with UUID:", r), a = new Qp()), this.bones.push(a), this.boneInverses.push(new Ce().fromArray(e.boneInverses[i]));
13453
13453
  }
13454
13454
  return this.init(), this;
13455
13455
  }
@@ -13500,7 +13500,7 @@ class yn extends ot {
13500
13500
  return e.meshPerAttribute = this.meshPerAttribute, e.isInstancedBufferAttribute = !0, e;
13501
13501
  }
13502
13502
  }
13503
- const Xa = /* @__PURE__ */ new Pe(), Zg = /* @__PURE__ */ new Pe(), Xc = [], $g = /* @__PURE__ */ new ft(), j1 = /* @__PURE__ */ new Pe(), Ko = /* @__PURE__ */ new Q(), Jo = /* @__PURE__ */ new ni();
13503
+ const Xa = /* @__PURE__ */ new Ce(), Zg = /* @__PURE__ */ new Ce(), Xc = [], $g = /* @__PURE__ */ new ft(), j1 = /* @__PURE__ */ new Ce(), Ko = /* @__PURE__ */ new Q(), Jo = /* @__PURE__ */ new ni();
13504
13504
  class Hs extends Q {
13505
13505
  /**
13506
13506
  * Constructs a new instanced mesh.
@@ -13979,7 +13979,7 @@ class Oo {
13979
13979
  return new this.constructor().copy(this);
13980
13980
  }
13981
13981
  }
13982
- const as = /* @__PURE__ */ new Pe(), os = /* @__PURE__ */ new Oo();
13982
+ const as = /* @__PURE__ */ new Ce(), os = /* @__PURE__ */ new Oo();
13983
13983
  class jp {
13984
13984
  /**
13985
13985
  * Constructs a new frustum array.
@@ -14150,7 +14150,7 @@ class eS {
14150
14150
  this.list.length = 0, this.index = 0;
14151
14151
  }
14152
14152
  }
14153
- const rn = /* @__PURE__ */ new Pe(), tS = /* @__PURE__ */ new Ie(1, 1, 1), Kg = /* @__PURE__ */ new Oo(), iS = /* @__PURE__ */ new jp(), Yc = /* @__PURE__ */ new ft(), Br = /* @__PURE__ */ new ni(), el = /* @__PURE__ */ new P(), Jg = /* @__PURE__ */ new P(), nS = /* @__PURE__ */ new P(), Mu = /* @__PURE__ */ new eS(), ki = /* @__PURE__ */ new Q(), Gc = [];
14153
+ const rn = /* @__PURE__ */ new Ce(), tS = /* @__PURE__ */ new Ie(1, 1, 1), Kg = /* @__PURE__ */ new Oo(), iS = /* @__PURE__ */ new jp(), Yc = /* @__PURE__ */ new ft(), Br = /* @__PURE__ */ new ni(), el = /* @__PURE__ */ new P(), Jg = /* @__PURE__ */ new P(), nS = /* @__PURE__ */ new P(), Mu = /* @__PURE__ */ new eS(), ki = /* @__PURE__ */ new Q(), Gc = [];
14154
14154
  function sS(s, e, t = 0) {
14155
14155
  const i = e.itemSize;
14156
14156
  if (s.isInterleavedBufferAttribute || s.array.constructor !== e.array.constructor) {
@@ -14763,7 +14763,7 @@ class dn extends Di {
14763
14763
  return super.copy(e), this.color.copy(e.color), this.map = e.map, this.linewidth = e.linewidth, this.linecap = e.linecap, this.linejoin = e.linejoin, this.fog = e.fog, this;
14764
14764
  }
14765
14765
  }
14766
- const nd = /* @__PURE__ */ new P(), sd = /* @__PURE__ */ new P(), e0 = /* @__PURE__ */ new Pe(), tl = /* @__PURE__ */ new Lo(), Wc = /* @__PURE__ */ new ni(), Au = /* @__PURE__ */ new P(), t0 = /* @__PURE__ */ new P();
14766
+ const nd = /* @__PURE__ */ new P(), sd = /* @__PURE__ */ new P(), e0 = /* @__PURE__ */ new Ce(), tl = /* @__PURE__ */ new Lo(), Wc = /* @__PURE__ */ new ni(), Au = /* @__PURE__ */ new P(), t0 = /* @__PURE__ */ new P();
14767
14767
  class Xi extends Lt {
14768
14768
  /**
14769
14769
  * Constructs a new line.
@@ -14917,7 +14917,7 @@ class xd extends Di {
14917
14917
  return super.copy(e), this.color.copy(e.color), this.map = e.map, this.alphaMap = e.alphaMap, this.size = e.size, this.sizeAttenuation = e.sizeAttenuation, this.fog = e.fog, this;
14918
14918
  }
14919
14919
  }
14920
- const s0 = /* @__PURE__ */ new Pe(), ip = /* @__PURE__ */ new Lo(), jc = /* @__PURE__ */ new ni(), qc = /* @__PURE__ */ new P();
14920
+ const s0 = /* @__PURE__ */ new Ce(), ip = /* @__PURE__ */ new Lo(), jc = /* @__PURE__ */ new ni(), qc = /* @__PURE__ */ new P();
14921
14921
  class _o extends Lt {
14922
14922
  /**
14923
14923
  * Constructs a new point cloud.
@@ -15776,7 +15776,7 @@ class ws {
15776
15776
  * @return {{tangents: Array<Vector3>, normals: Array<Vector3>, binormals: Array<Vector3>}} The Frenet Frames.
15777
15777
  */
15778
15778
  computeFrenetFrames(e, t = !1) {
15779
- const i = new P(), n = [], r = [], a = [], o = new P(), l = new Pe();
15779
+ const i = new P(), n = [], r = [], a = [], o = new P(), l = new Ce();
15780
15780
  for (let f = 0; f <= e; f++) {
15781
15781
  const p = f / e;
15782
15782
  n[f] = this.getTangentAt(p, new P());
@@ -17085,15 +17085,15 @@ class im extends dt {
17085
17085
  function U(de) {
17086
17086
  const he = 10000000000000001e-36;
17087
17087
  let ge = de[0];
17088
- for (let Ee = 1; Ee <= de.length; Ee++) {
17089
- const ve = Ee % de.length, Qe = de[ve], ue = Qe.x - ge.x, ke = Qe.y - ge.y, N = ue * ue + ke * ke, I = Math.max(
17088
+ for (let Pe = 1; Pe <= de.length; Pe++) {
17089
+ const ve = Pe % de.length, Qe = de[ve], ue = Qe.x - ge.x, ke = Qe.y - ge.y, N = ue * ue + ke * ke, I = Math.max(
17090
17090
  Math.abs(Qe.x),
17091
17091
  Math.abs(Qe.y),
17092
17092
  Math.abs(ge.x),
17093
17093
  Math.abs(ge.y)
17094
17094
  ), H = he * I * I;
17095
17095
  if (N <= H) {
17096
- de.splice(ve, 1), Ee--;
17096
+ de.splice(ve, 1), Pe--;
17097
17097
  continue;
17098
17098
  }
17099
17099
  ge = Qe;
@@ -17110,20 +17110,20 @@ class im extends dt {
17110
17110
  }
17111
17111
  const re = M.length;
17112
17112
  function Z(de, B, he) {
17113
- let ge, Ee, ve;
17113
+ let ge, Pe, ve;
17114
17114
  const Qe = de.x - B.x, ue = de.y - B.y, ke = he.x - de.x, N = he.y - de.y, I = Qe * Qe + ue * ue, H = Qe * N - ue * ke;
17115
17115
  if (Math.abs(H) > Number.EPSILON) {
17116
17116
  const se = Math.sqrt(I), ae = Math.sqrt(ke * ke + N * N), te = B.x - ue / se, qe = B.y + Qe / se, Oe = he.x - N / ae, Ke = he.y + ke / ae, We = ((Oe - te) * N - (Ke - qe) * ke) / (Qe * N - ue * ke);
17117
- ge = te + Qe * We - de.x, Ee = qe + ue * We - de.y;
17118
- const me = ge * ge + Ee * Ee;
17117
+ ge = te + Qe * We - de.x, Pe = qe + ue * We - de.y;
17118
+ const me = ge * ge + Pe * Pe;
17119
17119
  if (me <= 2)
17120
- return new K(ge, Ee);
17120
+ return new K(ge, Pe);
17121
17121
  ve = Math.sqrt(me / 2);
17122
17122
  } else {
17123
17123
  let se = !1;
17124
- Qe > Number.EPSILON ? ke > Number.EPSILON && (se = !0) : Qe < -Number.EPSILON ? ke < -Number.EPSILON && (se = !0) : Math.sign(ue) === Math.sign(N) && (se = !0), se ? (ge = -ue, Ee = Qe, ve = Math.sqrt(I)) : (ge = Qe, Ee = ue, ve = Math.sqrt(I / 2));
17124
+ Qe > Number.EPSILON ? ke > Number.EPSILON && (se = !0) : Qe < -Number.EPSILON ? ke < -Number.EPSILON && (se = !0) : Math.sign(ue) === Math.sign(N) && (se = !0), se ? (ge = -ue, Pe = Qe, ve = Math.sqrt(I)) : (ge = Qe, Pe = ue, ve = Math.sqrt(I / 2));
17125
17125
  }
17126
- return new K(ge / ve, Ee / ve);
17126
+ return new K(ge / ve, Pe / ve);
17127
17127
  }
17128
17128
  const ie = [];
17129
17129
  for (let de = 0, B = X.length, he = B - 1, ge = de + 1; de < B; de++, he++, ge++)
@@ -17133,8 +17133,8 @@ class im extends dt {
17133
17133
  for (let de = 0, B = z; de < B; de++) {
17134
17134
  const he = C[de];
17135
17135
  Ne = [];
17136
- for (let ge = 0, Ee = he.length, ve = Ee - 1, Qe = ge + 1; ge < Ee; ge++, ve++, Qe++)
17137
- ve === Ee && (ve = 0), Qe === Ee && (Qe = 0), Ne[ge] = Z(he[ge], he[ve], he[Qe]);
17136
+ for (let ge = 0, Pe = he.length, ve = Pe - 1, Qe = ge + 1; ge < Pe; ge++, ve++, Qe++)
17137
+ ve === Pe && (ve = 0), Qe === Pe && (Qe = 0), Ne[ge] = Z(he[ge], he[ve], he[Qe]);
17138
17138
  pe.push(Ne), ce = ce.concat(Ne);
17139
17139
  }
17140
17140
  let we;
@@ -17143,10 +17143,10 @@ class im extends dt {
17143
17143
  else {
17144
17144
  const de = [], B = [];
17145
17145
  for (let he = 0; he < g; he++) {
17146
- const ge = he / g, Ee = f * Math.cos(ge * Math.PI / 2), ve = p * Math.sin(ge * Math.PI / 2) + v;
17146
+ const ge = he / g, Pe = f * Math.cos(ge * Math.PI / 2), ve = p * Math.sin(ge * Math.PI / 2) + v;
17147
17147
  for (let Qe = 0, ue = X.length; Qe < ue; Qe++) {
17148
17148
  const ke = j(X[Qe], ie[Qe], ve);
17149
- Xe(ke.x, ke.y, -Ee), ge === 0 && de.push(ke);
17149
+ Xe(ke.x, ke.y, -Pe), ge === 0 && de.push(ke);
17150
17150
  }
17151
17151
  for (let Qe = 0, ue = z; Qe < ue; Qe++) {
17152
17152
  const ke = C[Qe];
@@ -17154,7 +17154,7 @@ class im extends dt {
17154
17154
  const N = [];
17155
17155
  for (let I = 0, H = ke.length; I < H; I++) {
17156
17156
  const se = j(ke[I], Ne[I], ve);
17157
- Xe(se.x, se.y, -Ee), ge === 0 && N.push(se);
17157
+ Xe(se.x, se.y, -Pe), ge === 0 && N.push(se);
17158
17158
  }
17159
17159
  ge === 0 && B.push(N);
17160
17160
  }
@@ -17173,13 +17173,13 @@ class im extends dt {
17173
17173
  }
17174
17174
  for (let de = g - 1; de >= 0; de--) {
17175
17175
  const B = de / g, he = f * Math.cos(B * Math.PI / 2), ge = p * Math.sin(B * Math.PI / 2) + v;
17176
- for (let Ee = 0, ve = X.length; Ee < ve; Ee++) {
17177
- const Qe = j(X[Ee], ie[Ee], ge);
17176
+ for (let Pe = 0, ve = X.length; Pe < ve; Pe++) {
17177
+ const Qe = j(X[Pe], ie[Pe], ge);
17178
17178
  Xe(Qe.x, Qe.y, d + he);
17179
17179
  }
17180
- for (let Ee = 0, ve = C.length; Ee < ve; Ee++) {
17181
- const Qe = C[Ee];
17182
- Ne = pe[Ee];
17180
+ for (let Pe = 0, ve = C.length; Pe < ve; Pe++) {
17181
+ const Qe = C[Pe];
17182
+ Ne = pe[Pe];
17183
17183
  for (let ue = 0, ke = Qe.length; ue < ke; ue++) {
17184
17184
  const N = j(Qe[ue], Ne[ue], ge);
17185
17185
  y ? Xe(N.x, N.y + x[h - 1].y, x[h - 1].x + he) : Xe(N.x, N.y, d + he);
@@ -17192,13 +17192,13 @@ class im extends dt {
17192
17192
  if (u) {
17193
17193
  let B = 0, he = re * B;
17194
17194
  for (let ge = 0; ge < ct; ge++) {
17195
- const Ee = we[ge];
17196
- Ge(Ee[2] + he, Ee[1] + he, Ee[0] + he);
17195
+ const Pe = we[ge];
17196
+ Ge(Pe[2] + he, Pe[1] + he, Pe[0] + he);
17197
17197
  }
17198
17198
  B = h + g * 2, he = re * B;
17199
17199
  for (let ge = 0; ge < ct; ge++) {
17200
- const Ee = we[ge];
17201
- Ge(Ee[0] + he, Ee[1] + he, Ee[2] + he);
17200
+ const Pe = we[ge];
17201
+ Ge(Pe[0] + he, Pe[1] + he, Pe[2] + he);
17202
17202
  }
17203
17203
  } else {
17204
17204
  for (let B = 0; B < ct; B++) {
@@ -17217,8 +17217,8 @@ class im extends dt {
17217
17217
  let B = 0;
17218
17218
  Te(X, B), B += X.length;
17219
17219
  for (let he = 0, ge = C.length; he < ge; he++) {
17220
- const Ee = C[he];
17221
- Te(Ee, B), B += Ee.length;
17220
+ const Pe = C[he];
17221
+ Te(Pe, B), B += Pe.length;
17222
17222
  }
17223
17223
  i.addGroup(de, n.length / 3 - de, 1);
17224
17224
  }
@@ -17226,10 +17226,10 @@ class im extends dt {
17226
17226
  let he = de.length;
17227
17227
  for (; --he >= 0; ) {
17228
17228
  const ge = he;
17229
- let Ee = he - 1;
17230
- Ee < 0 && (Ee = de.length - 1);
17229
+ let Pe = he - 1;
17230
+ Pe < 0 && (Pe = de.length - 1);
17231
17231
  for (let ve = 0, Qe = h + g * 2; ve < Qe; ve++) {
17232
- const ue = re * ve, ke = re * (ve + 1), N = B + ge + ue, I = B + Ee + ue, H = B + Ee + ke, se = B + ge + ke;
17232
+ const ue = re * ve, ke = re * (ve + 1), N = B + ge + ue, I = B + Pe + ue, H = B + Pe + ke, se = B + ge + ke;
17233
17233
  ht(N, I, H, se);
17234
17234
  }
17235
17235
  }
@@ -17239,12 +17239,12 @@ class im extends dt {
17239
17239
  }
17240
17240
  function Ge(de, B, he) {
17241
17241
  mt(de), mt(B), mt(he);
17242
- const ge = n.length / 3, Ee = b.generateTopUV(i, n, ge - 3, ge - 2, ge - 1);
17243
- it(Ee[0]), it(Ee[1]), it(Ee[2]);
17242
+ const ge = n.length / 3, Pe = b.generateTopUV(i, n, ge - 3, ge - 2, ge - 1);
17243
+ it(Pe[0]), it(Pe[1]), it(Pe[2]);
17244
17244
  }
17245
17245
  function ht(de, B, he, ge) {
17246
17246
  mt(de), mt(B), mt(ge), mt(B), mt(he), mt(ge);
17247
- const Ee = n.length / 3, ve = b.generateSideWallUV(i, n, Ee - 6, Ee - 3, Ee - 2, Ee - 1);
17247
+ const Pe = n.length / 3, ve = b.generateSideWallUV(i, n, Pe - 6, Pe - 3, Pe - 2, Pe - 1);
17248
17248
  it(ve[0]), it(ve[1]), it(ve[3]), it(ve[1]), it(ve[2]), it(ve[3]);
17249
17249
  }
17250
17250
  function mt(de) {
@@ -19808,7 +19808,7 @@ class KS extends va {
19808
19808
  return super.copy(e, t), this.groundColor.copy(e.groundColor), this;
19809
19809
  }
19810
19810
  }
19811
- const Iu = /* @__PURE__ */ new Pe(), p0 = /* @__PURE__ */ new P(), m0 = /* @__PURE__ */ new P();
19811
+ const Iu = /* @__PURE__ */ new Ce(), p0 = /* @__PURE__ */ new P(), m0 = /* @__PURE__ */ new P();
19812
19812
  class um {
19813
19813
  /**
19814
19814
  * Constructs a new light shadow.
@@ -19816,7 +19816,7 @@ class um {
19816
19816
  * @param {Camera} camera - The light's view of the world.
19817
19817
  */
19818
19818
  constructor(e) {
19819
- this.camera = e, this.intensity = 1, this.bias = 0, this.normalBias = 0, this.radius = 1, this.blurSamples = 8, this.mapSize = new K(512, 512), this.mapType = ys, this.map = null, this.mapPass = null, this.matrix = new Pe(), this.autoUpdate = !0, this.needsUpdate = !1, this._frustum = new Oo(), this._frameExtents = new K(1, 1), this._viewportCount = 1, this._viewports = [
19819
+ this.camera = e, this.intensity = 1, this.bias = 0, this.normalBias = 0, this.radius = 1, this.blurSamples = 8, this.mapSize = new K(512, 512), this.mapType = ys, this.map = null, this.mapPass = null, this.matrix = new Ce(), this.autoUpdate = !0, this.needsUpdate = !1, this._frustum = new Oo(), this._frameExtents = new K(1, 1), this._viewportCount = 1, this._viewports = [
19820
19820
  new Mt(0, 0, 1, 1)
19821
19821
  ];
19822
19822
  }
@@ -19980,7 +19980,7 @@ class ob extends va {
19980
19980
  return super.copy(e, t), this.distance = e.distance, this.angle = e.angle, this.penumbra = e.penumbra, this.decay = e.decay, this.target = e.target.clone(), this.shadow = e.shadow.clone(), this;
19981
19981
  }
19982
19982
  }
19983
- const g0 = /* @__PURE__ */ new Pe(), il = /* @__PURE__ */ new P(), Ru = /* @__PURE__ */ new P();
19983
+ const g0 = /* @__PURE__ */ new Ce(), il = /* @__PURE__ */ new P(), Ru = /* @__PURE__ */ new P();
19984
19984
  class eM extends um {
19985
19985
  /**
19986
19986
  * Constructs a new point light shadow.
@@ -20459,7 +20459,7 @@ class fm extends Qs {
20459
20459
  n.uniforms[r].value = new yt().fromArray(a.value);
20460
20460
  break;
20461
20461
  case "m4":
20462
- n.uniforms[r].value = new Pe().fromArray(a.value);
20462
+ n.uniforms[r].value = new Ce().fromArray(a.value);
20463
20463
  break;
20464
20464
  default:
20465
20465
  n.uniforms[r].value = a.value;
@@ -22373,7 +22373,7 @@ class op extends gd {
22373
22373
  return t.isInstancedInterleavedBuffer = !0, t.meshPerAttribute = this.meshPerAttribute, t;
22374
22374
  }
22375
22375
  }
22376
- const b0 = /* @__PURE__ */ new Pe();
22376
+ const b0 = /* @__PURE__ */ new Ce();
22377
22377
  class _d {
22378
22378
  /**
22379
22379
  * Constructs a new raycaster.
@@ -27311,7 +27311,7 @@ an.physical = {
27311
27311
  vertexShader: St.meshphysical_vert,
27312
27312
  fragmentShader: St.meshphysical_frag
27313
27313
  };
27314
- const ah = { r: 0, b: 0, g: 0 }, Fr = /* @__PURE__ */ new hn(), dE = /* @__PURE__ */ new Pe();
27314
+ const ah = { r: 0, b: 0, g: 0 }, Fr = /* @__PURE__ */ new hn(), dE = /* @__PURE__ */ new Ce();
27315
27315
  function uE(s, e, t, i, n, r, a) {
27316
27316
  const o = new Ie(0);
27317
27317
  let l = r === !0 ? 0 : 1, c, h, d = null, u = 0, f = null;
@@ -29768,7 +29768,7 @@ function Y2(s, e, t, i, n, r, a) {
29768
29768
  we = Ct.vertexShader, ct = Ct.fragmentShader;
29769
29769
  } else
29770
29770
  we = S.vertexShader, ct = S.fragmentShader, l.update(S), Fe = l.getVertexShaderID(S), ne = l.getFragmentShaderID(S);
29771
- const ee = s.getRenderTarget(), Te = s.state.buffers.depth.getReversed(), Xe = U.isInstancedMesh === !0, Ge = U.isBatchedMesh === !0, ht = !!S.map, mt = !!S.matcap, it = !!re, de = !!S.aoMap, B = !!S.lightMap, he = !!S.bumpMap, ge = !!S.normalMap, Ee = !!S.displacementMap, ve = !!S.emissiveMap, Qe = !!S.metalnessMap, ue = !!S.roughnessMap, ke = S.anisotropy > 0, N = S.clearcoat > 0, I = S.dispersion > 0, H = S.iridescence > 0, se = S.sheen > 0, ae = S.transmission > 0, te = ke && !!S.anisotropyMap, qe = N && !!S.clearcoatMap, Oe = N && !!S.clearcoatNormalMap, Ke = N && !!S.clearcoatRoughnessMap, We = H && !!S.iridescenceMap, me = H && !!S.iridescenceThicknessMap, Ae = se && !!S.sheenColorMap, rt = se && !!S.sheenRoughnessMap, nt = !!S.specularMap, Ve = !!S.specularColorMap, st = !!S.specularIntensityMap, V = ae && !!S.transmissionMap, be = ae && !!S.thicknessMap, Re = !!S.gradientMap, Le = !!S.alphaMap, _e = S.alphaTest > 0, le = !!S.alphaHash, $e = !!S.extensions;
29771
+ const ee = s.getRenderTarget(), Te = s.state.buffers.depth.getReversed(), Xe = U.isInstancedMesh === !0, Ge = U.isBatchedMesh === !0, ht = !!S.map, mt = !!S.matcap, it = !!re, de = !!S.aoMap, B = !!S.lightMap, he = !!S.bumpMap, ge = !!S.normalMap, Pe = !!S.displacementMap, ve = !!S.emissiveMap, Qe = !!S.metalnessMap, ue = !!S.roughnessMap, ke = S.anisotropy > 0, N = S.clearcoat > 0, I = S.dispersion > 0, H = S.iridescence > 0, se = S.sheen > 0, ae = S.transmission > 0, te = ke && !!S.anisotropyMap, qe = N && !!S.clearcoatMap, Oe = N && !!S.clearcoatNormalMap, Ke = N && !!S.clearcoatRoughnessMap, We = H && !!S.iridescenceMap, me = H && !!S.iridescenceThicknessMap, Ae = se && !!S.sheenColorMap, rt = se && !!S.sheenRoughnessMap, nt = !!S.specularMap, Ve = !!S.specularColorMap, st = !!S.specularIntensityMap, V = ae && !!S.transmissionMap, be = ae && !!S.thicknessMap, Re = !!S.gradientMap, Le = !!S.alphaMap, _e = S.alphaTest > 0, le = !!S.alphaHash, $e = !!S.extensions;
29772
29772
  let lt = yr;
29773
29773
  S.toneMapped && (ee === null || ee.isXRRenderTarget === !0) && (lt = s.toneMapping);
29774
29774
  const Ot = {
@@ -29800,7 +29800,7 @@ function Y2(s, e, t, i, n, r, a) {
29800
29800
  lightMap: B,
29801
29801
  bumpMap: he,
29802
29802
  normalMap: ge,
29803
- displacementMap: u && Ee,
29803
+ displacementMap: u && Pe,
29804
29804
  emissiveMap: ve,
29805
29805
  normalMapObjectSpace: ge && S.normalMapType === qw,
29806
29806
  normalMapTangentSpace: ge && S.normalMapType === ma,
@@ -29837,7 +29837,7 @@ function Y2(s, e, t, i, n, r, a) {
29837
29837
  lightMapUv: B && v(S.lightMap.channel),
29838
29838
  bumpMapUv: he && v(S.bumpMap.channel),
29839
29839
  normalMapUv: ge && v(S.normalMap.channel),
29840
- displacementMapUv: Ee && v(S.displacementMap.channel),
29840
+ displacementMapUv: Pe && v(S.displacementMap.channel),
29841
29841
  emissiveMapUv: ve && v(S.emissiveMap.channel),
29842
29842
  metalnessMapUv: Qe && v(S.metalnessMap.channel),
29843
29843
  roughnessMapUv: ue && v(S.roughnessMap.channel),
@@ -30198,7 +30198,7 @@ function K2(s) {
30198
30198
  };
30199
30199
  for (let c = 0; c < 9; c++)
30200
30200
  i.probe.push(new P());
30201
- const n = new P(), r = new Pe(), a = new Pe();
30201
+ const n = new P(), r = new Ce(), a = new Ce();
30202
30202
  function o(c) {
30203
30203
  let h = 0, d = 0, u = 0;
30204
30204
  for (let S = 0; S < 9; S++)
@@ -30718,7 +30718,7 @@ function sP(s, e) {
30718
30718
  function ge(V) {
30719
30719
  V !== Sw ? (ee(s.CULL_FACE), V !== C && (V === xg ? s.cullFace(s.BACK) : V === Mw ? s.cullFace(s.FRONT) : s.cullFace(s.FRONT_AND_BACK))) : Te(s.CULL_FACE), C = V;
30720
30720
  }
30721
- function Ee(V) {
30721
+ function Pe(V) {
30722
30722
  V !== L && (j && s.lineWidth(V), L = V);
30723
30723
  }
30724
30724
  function ve(V, be, Re) {
@@ -30843,7 +30843,7 @@ function sP(s, e) {
30843
30843
  setMaterial: B,
30844
30844
  setFlipSided: he,
30845
30845
  setCullFace: ge,
30846
- setLineWidth: Ee,
30846
+ setLineWidth: Pe,
30847
30847
  setPolygonOffset: ve,
30848
30848
  setScissorTest: Qe,
30849
30849
  activeTexture: ue,
@@ -31268,16 +31268,16 @@ function rP(s, e, t, i, n, r, a) {
31268
31268
  const Ae = Math.max(1, I.width >> te), rt = Math.max(1, I.height >> te);
31269
31269
  ae === s.TEXTURE_3D || ae === s.TEXTURE_2D_ARRAY ? t.texImage3D(ae, te, Ke, Ae, rt, I.depth, 0, qe, Oe, null) : t.texImage2D(ae, te, Ke, Ae, rt, 0, qe, Oe, null);
31270
31270
  }
31271
- t.bindFramebuffer(s.FRAMEBUFFER, N), ve(I) ? o.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER, se, ae, me.__webglTexture, 0, Ee(I)) : (ae === s.TEXTURE_2D || ae >= s.TEXTURE_CUBE_MAP_POSITIVE_X && ae <= s.TEXTURE_CUBE_MAP_NEGATIVE_Z) && s.framebufferTexture2D(s.FRAMEBUFFER, se, ae, me.__webglTexture, te), t.bindFramebuffer(s.FRAMEBUFFER, null);
31271
+ t.bindFramebuffer(s.FRAMEBUFFER, N), ve(I) ? o.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER, se, ae, me.__webglTexture, 0, Pe(I)) : (ae === s.TEXTURE_2D || ae >= s.TEXTURE_CUBE_MAP_POSITIVE_X && ae <= s.TEXTURE_CUBE_MAP_NEGATIVE_Z) && s.framebufferTexture2D(s.FRAMEBUFFER, se, ae, me.__webglTexture, te), t.bindFramebuffer(s.FRAMEBUFFER, null);
31272
31272
  }
31273
31273
  function Xe(N, I, H) {
31274
31274
  if (s.bindRenderbuffer(s.RENDERBUFFER, N), I.depthBuffer) {
31275
- const se = I.depthTexture, ae = se && se.isDepthTexture ? se.type : null, te = y(I.stencilBuffer, ae), qe = I.stencilBuffer ? s.DEPTH_STENCIL_ATTACHMENT : s.DEPTH_ATTACHMENT, Oe = Ee(I);
31275
+ const se = I.depthTexture, ae = se && se.isDepthTexture ? se.type : null, te = y(I.stencilBuffer, ae), qe = I.stencilBuffer ? s.DEPTH_STENCIL_ATTACHMENT : s.DEPTH_ATTACHMENT, Oe = Pe(I);
31276
31276
  ve(I) ? o.renderbufferStorageMultisampleEXT(s.RENDERBUFFER, Oe, te, I.width, I.height) : H ? s.renderbufferStorageMultisample(s.RENDERBUFFER, Oe, te, I.width, I.height) : s.renderbufferStorage(s.RENDERBUFFER, te, I.width, I.height), s.framebufferRenderbuffer(s.FRAMEBUFFER, qe, s.RENDERBUFFER, N);
31277
31277
  } else {
31278
31278
  const se = I.textures;
31279
31279
  for (let ae = 0; ae < se.length; ae++) {
31280
- const te = se[ae], qe = r.convert(te.format, te.colorSpace), Oe = r.convert(te.type), Ke = x(te.internalFormat, qe, Oe, te.colorSpace), We = Ee(I);
31280
+ const te = se[ae], qe = r.convert(te.format, te.colorSpace), Oe = r.convert(te.type), Ke = x(te.internalFormat, qe, Oe, te.colorSpace), We = Pe(I);
31281
31281
  H && ve(I) === !1 ? s.renderbufferStorageMultisample(s.RENDERBUFFER, We, Ke, I.width, I.height) : ve(I) ? o.renderbufferStorageMultisampleEXT(s.RENDERBUFFER, We, Ke, I.width, I.height) : s.renderbufferStorage(s.RENDERBUFFER, Ke, I.width, I.height);
31282
31282
  }
31283
31283
  }
@@ -31290,7 +31290,7 @@ function rP(s, e, t, i, n, r, a) {
31290
31290
  throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");
31291
31291
  const se = i.get(I.depthTexture);
31292
31292
  se.__renderTarget = I, (!se.__webglTexture || I.depthTexture.image.width !== I.width || I.depthTexture.image.height !== I.height) && (I.depthTexture.image.width = I.width, I.depthTexture.image.height = I.height, I.depthTexture.needsUpdate = !0), X(I.depthTexture, 0);
31293
- const ae = se.__webglTexture, te = Ee(I);
31293
+ const ae = se.__webglTexture, te = Pe(I);
31294
31294
  if (I.depthTexture.format === da)
31295
31295
  ve(I) ? o.framebufferTexture2DMultisampleEXT(s.FRAMEBUFFER, s.DEPTH_ATTACHMENT, s.TEXTURE_2D, ae, 0, te) : s.framebufferTexture2D(s.FRAMEBUFFER, s.DEPTH_ATTACHMENT, s.TEXTURE_2D, ae, 0);
31296
31296
  else if (I.depthTexture.format === Sr)
@@ -31369,7 +31369,7 @@ function rP(s, e, t, i, n, r, a) {
31369
31369
  for (let Oe = 0; Oe < ae.length; Oe++) {
31370
31370
  const Ke = ae[Oe];
31371
31371
  H.__webglColorRenderbuffer[Oe] = s.createRenderbuffer(), s.bindRenderbuffer(s.RENDERBUFFER, H.__webglColorRenderbuffer[Oe]);
31372
- const We = r.convert(Ke.format, Ke.colorSpace), me = r.convert(Ke.type), Ae = x(Ke.internalFormat, We, me, Ke.colorSpace, N.isXRRenderTarget === !0), rt = Ee(N);
31372
+ const We = r.convert(Ke.format, Ke.colorSpace), me = r.convert(Ke.type), Ae = x(Ke.internalFormat, We, me, Ke.colorSpace, N.isXRRenderTarget === !0), rt = Pe(N);
31373
31373
  s.renderbufferStorageMultisample(s.RENDERBUFFER, rt, Ae, N.width, N.height), s.framebufferRenderbuffer(s.FRAMEBUFFER, s.COLOR_ATTACHMENT0 + Oe, s.RENDERBUFFER, H.__webglColorRenderbuffer[Oe]);
31374
31374
  }
31375
31375
  s.bindRenderbuffer(s.RENDERBUFFER, null), N.depthBuffer && (H.__webglDepthRenderbuffer = s.createRenderbuffer(), Xe(H.__webglDepthRenderbuffer, N, !0)), t.bindFramebuffer(s.FRAMEBUFFER, null);
@@ -31446,7 +31446,7 @@ function rP(s, e, t, i, n, r, a) {
31446
31446
  }
31447
31447
  }
31448
31448
  }
31449
- function Ee(N) {
31449
+ function Pe(N) {
31450
31450
  return Math.min(n.maxSamples, N.samples);
31451
31451
  }
31452
31452
  function ve(N) {
@@ -31841,11 +31841,11 @@ class hP extends Ws {
31841
31841
  const Z = new P(), ie = new P();
31842
31842
  function pe(ne, ee, Te) {
31843
31843
  Z.setFromMatrixPosition(ee.matrixWorld), ie.setFromMatrixPosition(Te.matrixWorld);
31844
- const Xe = Z.distanceTo(ie), Ge = ee.projectionMatrix.elements, ht = Te.projectionMatrix.elements, mt = Ge[14] / (Ge[10] - 1), it = Ge[14] / (Ge[10] + 1), de = (Ge[9] + 1) / Ge[5], B = (Ge[9] - 1) / Ge[5], he = (Ge[8] - 1) / Ge[0], ge = (ht[8] + 1) / ht[0], Ee = mt * he, ve = mt * ge, Qe = Xe / (-he + ge), ue = Qe * -he;
31844
+ const Xe = Z.distanceTo(ie), Ge = ee.projectionMatrix.elements, ht = Te.projectionMatrix.elements, mt = Ge[14] / (Ge[10] - 1), it = Ge[14] / (Ge[10] + 1), de = (Ge[9] + 1) / Ge[5], B = (Ge[9] - 1) / Ge[5], he = (Ge[8] - 1) / Ge[0], ge = (ht[8] + 1) / ht[0], Pe = mt * he, ve = mt * ge, Qe = Xe / (-he + ge), ue = Qe * -he;
31845
31845
  if (ee.matrixWorld.decompose(ne.position, ne.quaternion, ne.scale), ne.translateX(ue), ne.translateZ(Qe), ne.matrixWorld.compose(ne.position, ne.quaternion, ne.scale), ne.matrixWorldInverse.copy(ne.matrixWorld).invert(), Ge[10] === -1)
31846
31846
  ne.projectionMatrix.copy(ee.projectionMatrix), ne.projectionMatrixInverse.copy(ee.projectionMatrixInverse);
31847
31847
  else {
31848
- const ke = mt + Qe, N = it + Qe, I = Ee - ue, H = ve + (Xe - ue), se = de * it / N * ke, ae = B * it / N * ke;
31848
+ const ke = mt + Qe, N = it + Qe, I = Pe - ue, H = ve + (Xe - ue), se = de * it / N * ke, ae = B * it / N * ke;
31849
31849
  ne.projectionMatrix.makePerspective(I, H, se, ae, ke, N), ne.projectionMatrixInverse.copy(ne.projectionMatrix).invert();
31850
31850
  }
31851
31851
  }
@@ -31938,7 +31938,7 @@ class hP extends Ws {
31938
31938
  };
31939
31939
  }
31940
31940
  }
31941
- const zr = /* @__PURE__ */ new hn(), dP = /* @__PURE__ */ new Pe();
31941
+ const zr = /* @__PURE__ */ new hn(), dP = /* @__PURE__ */ new Ce();
31942
31942
  function uP(s, e) {
31943
31943
  function t(g, m) {
31944
31944
  g.matrixAutoUpdate === !0 && g.updateMatrix(), m.value.copy(g.matrix);
@@ -34214,7 +34214,7 @@ class vb {
34214
34214
  let Fe = !1;
34215
34215
  const ne = new Oo();
34216
34216
  let ee = !1, Te = !1;
34217
- const Xe = new Pe(), Ge = new P(), ht = new Mt(), mt = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: !0 };
34217
+ const Xe = new Ce(), Ge = new P(), ht = new Mt(), mt = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: !0 };
34218
34218
  let it = !1;
34219
34219
  function de() {
34220
34220
  return M === null ? pe : 1;
@@ -34242,9 +34242,9 @@ class vb {
34242
34242
  } catch (D) {
34243
34243
  throw D("WebGLRenderer: " + D.message), D;
34244
34244
  }
34245
- let ge, Ee, ve, Qe, ue, ke, N, I, H, se, ae, te, qe, Oe, Ke, We, me, Ae, rt, nt, Ve, st, V, be;
34245
+ let ge, Pe, ve, Qe, ue, ke, N, I, H, se, ae, te, qe, Oe, Ke, We, me, Ae, rt, nt, Ve, st, V, be;
34246
34246
  function Re() {
34247
- ge = new ME(B), ge.init(), st = new aP(B, ge), Ee = new mE(B, ge, e, st), ve = new sP(B, ge), Ee.reversedDepthBuffer && u && ve.buffers.depth.setReversed(!0), Qe = new EE(B), ue = new G2(), ke = new rP(B, ge, ve, ue, Ee, st, Qe), N = new vE(w), I = new SE(w), H = new RM(B), V = new fE(B, H), se = new AE(B, H, Qe, V), ae = new CE(B, se, H, Qe), rt = new PE(B, Ee, ke), We = new gE(ue), te = new Y2(w, N, I, ge, Ee, V, We), qe = new uP(w, ue), Oe = new Q2(), Ke = new J2(ge), Ae = new uE(w, N, I, ve, ae, f, l), me = new iP(w, ae, Ee), be = new fP(B, Qe, Ee, ve), nt = new pE(B, ge, Qe), Ve = new TE(B, ge, Qe), Qe.programs = te.programs, w.capabilities = Ee, w.extensions = ge, w.properties = ue, w.renderLists = Oe, w.shadowMap = me, w.state = ve, w.info = Qe;
34247
+ ge = new ME(B), ge.init(), st = new aP(B, ge), Pe = new mE(B, ge, e, st), ve = new sP(B, ge), Pe.reversedDepthBuffer && u && ve.buffers.depth.setReversed(!0), Qe = new EE(B), ue = new G2(), ke = new rP(B, ge, ve, ue, Pe, st, Qe), N = new vE(w), I = new SE(w), H = new RM(B), V = new fE(B, H), se = new AE(B, H, Qe, V), ae = new CE(B, se, H, Qe), rt = new PE(B, Pe, ke), We = new gE(ue), te = new Y2(w, N, I, ge, Pe, V, We), qe = new uP(w, ue), Oe = new Q2(), Ke = new J2(ge), Ae = new uE(w, N, I, ve, ae, f, l), me = new iP(w, ae, Pe), be = new fP(B, Qe, Pe, ve), nt = new pE(B, ge, Qe), Ve = new TE(B, ge, Qe), Qe.programs = te.programs, w.capabilities = Pe, w.extensions = ge, w.properties = ue, w.renderLists = Oe, w.shadowMap = me, w.state = ve, w.info = Qe;
34248
34248
  }
34249
34249
  Re();
34250
34250
  const Le = new hP(w, B);
@@ -34597,7 +34597,7 @@ class vb {
34597
34597
  if (ve.useProgram(un.program) && (xa = !0, fn = !0, Fo = !0), G.id !== C && (C = G.id, fn = !0), xa || L !== D) {
34598
34598
  ve.buffers.depth.getReversed() && D.reversedDepth !== !0 && (D._reversedDepth = !0, D.updateProjectionMatrix()), ri.setValue(B, "projectionMatrix", D.projectionMatrix), ri.setValue(B, "viewMatrix", D.matrixWorldInverse);
34599
34599
  const nn = ri.map.cameraPosition;
34600
- nn !== void 0 && nn.setValue(B, Ge.setFromMatrixPosition(D.matrixWorld)), Ee.logarithmicDepthBuffer && ri.setValue(
34600
+ nn !== void 0 && nn.setValue(B, Ge.setFromMatrixPosition(D.matrixWorld)), Pe.logarithmicDepthBuffer && ri.setValue(
34601
34601
  B,
34602
34602
  "logDepthBufFC",
34603
34603
  2 / (Math.log(D.far + 1) / Math.LN2)
@@ -34688,11 +34688,11 @@ class vb {
34688
34688
  ve.bindFramebuffer(B.FRAMEBUFFER, Ue);
34689
34689
  try {
34690
34690
  const Ze = D.textures[He], ze = Ze.format, je = Ze.type;
34691
- if (!Ee.textureFormatReadable(ze)) {
34691
+ if (!Pe.textureFormatReadable(ze)) {
34692
34692
  vt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");
34693
34693
  return;
34694
34694
  }
34695
- if (!Ee.textureTypeReadable(je)) {
34695
+ if (!Pe.textureTypeReadable(je)) {
34696
34696
  vt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");
34697
34697
  return;
34698
34698
  }
@@ -34710,9 +34710,9 @@ class vb {
34710
34710
  if (Y >= 0 && Y <= D.width - G && $ >= 0 && $ <= D.height - W) {
34711
34711
  ve.bindFramebuffer(B.FRAMEBUFFER, Ue);
34712
34712
  const Ze = D.textures[He], ze = Ze.format, je = Ze.type;
34713
- if (!Ee.textureFormatReadable(ze))
34713
+ if (!Pe.textureFormatReadable(ze))
34714
34714
  throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");
34715
- if (!Ee.textureTypeReadable(je))
34715
+ if (!Pe.textureTypeReadable(je))
34716
34716
  throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");
34717
34717
  const at = B.createBuffer();
34718
34718
  B.bindBuffer(B.PIXEL_PACK_BUFFER, at), B.bufferData(B.PIXEL_PACK_BUFFER, xe.byteLength, B.STREAM_READ), D.textures.length > 1 && B.readBuffer(B.COLOR_ATTACHMENT0 + He), B.readPixels(Y, $, G, W, st.convert(ze), st.convert(je), 0);
@@ -34799,7 +34799,7 @@ const gP = {
34799
34799
  Vector3: P,
34800
34800
  Vector4: Mt,
34801
34801
  Quaternion: ui,
34802
- Matrix4: Pe,
34802
+ Matrix4: Ce,
34803
34803
  Spherical: db,
34804
34804
  Box3: ft,
34805
34805
  Sphere: ni,
@@ -35164,18 +35164,18 @@ const xP = {
35164
35164
  added: "#16C47F",
35165
35165
  modified: "#FFD65A",
35166
35166
  notChanged: "#000000"
35167
- }, Ce = xP;
35167
+ }, Ee = xP;
35168
35168
  class Pi {
35169
35169
  static information(e) {
35170
35170
  console.log(
35171
35171
  `%c ${e}`,
35172
- `color: ${Ce.primary}; background: ${Ce.background}; font-size: 16px;`
35172
+ `color: ${Ee.primary}; background: ${Ee.background}; font-size: 16px;`
35173
35173
  );
35174
35174
  }
35175
35175
  static error(e) {
35176
35176
  console.log(
35177
35177
  `%c ${e}`,
35178
- `color: ${Ce.accent}; background: ${Ce.background}; font-size: 16px;`
35178
+ `color: ${Ee.accent}; background: ${Ee.background}; font-size: 16px;`
35179
35179
  );
35180
35180
  }
35181
35181
  static memory(e) {
@@ -35508,7 +35508,7 @@ class Et {
35508
35508
  return new Q(n, e.material);
35509
35509
  }
35510
35510
  }
35511
- class nD extends Hs {
35511
+ class rD extends Hs {
35512
35512
  /**
35513
35513
  *
35514
35514
  * @param geometry geometry for instanced mesh
@@ -35606,12 +35606,12 @@ class nD extends Hs {
35606
35606
  var t, i;
35607
35607
  if (e && this.reverseToOriginal(), this.hoveredIndexs.count() > 0)
35608
35608
  for (let n = 0; n < this.hoveredIndexs.keys().length; n++) {
35609
- let r = this.hoveredIndexs.keys()[n], a = new Q(this.geometry, this.hoveredIndexs.get(r)), o = new Pe();
35609
+ let r = this.hoveredIndexs.keys()[n], a = new Q(this.geometry, this.hoveredIndexs.get(r)), o = new Ce();
35610
35610
  this.getMatrixAt(r, o), a.applyMatrix4(o), (t = this.parent) == null || t.add(a), this.overrideHoverMeshes.push(a);
35611
35611
  }
35612
35612
  if (this.selectedIndexs.count() > 0)
35613
35613
  for (let n = 0; n < this.selectedIndexs.keys().length; n++) {
35614
- let r = this.selectedIndexs.keys()[n], a = new Q(this.geometry, this.selectedIndexs.get(r)), o = new Pe();
35614
+ let r = this.selectedIndexs.keys()[n], a = new Q(this.geometry, this.selectedIndexs.get(r)), o = new Ce();
35615
35615
  this.getMatrixAt(r, o), a.applyMatrix4(o), (i = this.parent) == null || i.add(a), this.overrideSelectMeshes.push(a);
35616
35616
  }
35617
35617
  }
@@ -35665,7 +35665,7 @@ class nD extends Hs {
35665
35665
  const t = new _i(this.geometry);
35666
35666
  this._edgeLines = new Ci(t, e);
35667
35667
  for (let i = 0; i < this.count; i++) {
35668
- const n = new Pe();
35668
+ const n = new Ce();
35669
35669
  this.getMatrixAt(i, n);
35670
35670
  const r = this._edgeLines.clone();
35671
35671
  r.applyMatrix4(n), this._edgeGroup.add(r);
@@ -35933,7 +35933,7 @@ function Vu(s, e, t) {
35933
35933
  return i[n];
35934
35934
  return !1;
35935
35935
  }
35936
- const lh = new hn(), qt = new P(0, 1, 0), ev = new P(0, 0, 0), tv = new Pe(), ch = new ui(), Yh = new ui(), ls = new P(), iv = new Pe(), _l = new P(1, 0, 0), Gr = new P(0, 1, 0), wl = new P(0, 0, 1), hh = new P(), sl = new P(), rl = new P();
35936
+ const lh = new hn(), qt = new P(0, 1, 0), ev = new P(0, 0, 0), tv = new Ce(), ch = new ui(), Yh = new ui(), ls = new P(), iv = new Ce(), _l = new P(1, 0, 0), Gr = new P(0, 1, 0), wl = new P(0, 0, 1), hh = new P(), sl = new P(), rl = new P();
35937
35937
  class LP extends Lt {
35938
35938
  constructor(e) {
35939
35939
  super(), this.isTransformControlsRoot = !0, this.controls = e, this.visible = !1;
@@ -36999,7 +36999,7 @@ class bb extends gt {
36999
36999
  this.defines && (e === !0 !== this.alphaToCoverage && (this.needsUpdate = !0), e === !0 ? this.defines.USE_ALPHA_TO_COVERAGE = "" : delete this.defines.USE_ALPHA_TO_COVERAGE);
37000
37000
  }
37001
37001
  }
37002
- const Xu = new Mt(), sv = new P(), rv = new P(), Li = new Mt(), Oi = new Mt(), cs = new Mt(), Hu = new P(), Yu = new Pe(), Ui = new _s(), av = new P(), uh = new ft(), fh = new ni(), hs = new Mt();
37002
+ const Xu = new Mt(), sv = new P(), rv = new P(), Li = new Mt(), Oi = new Mt(), cs = new Mt(), Hu = new P(), Yu = new Ce(), Ui = new _s(), av = new P(), uh = new ft(), fh = new ni(), hs = new Mt();
37003
37003
  let ms, sa;
37004
37004
  function ov(s, e, t) {
37005
37005
  return hs.set(0, 0, -e, 1).applyMatrix4(s.projectionMatrix), hs.multiplyScalar(1 / hs.w), hs.x = sa / t.width, hs.y = sa / t.height, hs.applyMatrix4(s.projectionMatrixInverse), hs.multiplyScalar(1 / hs.w), Math.abs(Math.max(hs.x, hs.y));
@@ -37711,7 +37711,7 @@ class aC {
37711
37711
  return o.length < 1 ? null : (o.push(this.parser.createNodeMesh(e)), Promise.all(o).then((c) => {
37712
37712
  const h = c.pop(), d = h.isGroup ? h.children : [h], u = c[0].count, f = [];
37713
37713
  for (const p of d) {
37714
- const v = new Pe(), g = new P(), m = new ui(), b = new P(1, 1, 1), x = new Hs(p.geometry, p.material, u);
37714
+ const v = new Ce(), g = new P(), m = new ui(), b = new P(1, 1, 1), x = new Hs(p.geometry, p.material, u);
37715
37715
  for (let y = 0; y < u; y++)
37716
37716
  l.TRANSLATION && g.fromBufferAttribute(l.TRANSLATION, y), l.ROTATION && m.fromBufferAttribute(l.ROTATION, y), l.SCALE && b.fromBufferAttribute(l.SCALE, y), x.setMatrixAt(y, v.compose(g, m, b));
37717
37717
  for (const y in l)
@@ -38000,7 +38000,7 @@ function dp(s) {
38000
38000
  function xC(s) {
38001
38001
  return s.search(/\.jpe?g($|\?)/i) > 0 || s.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : s.search(/\.webp($|\?)/i) > 0 || s.search(/^data\:image\/webp/) === 0 ? "image/webp" : s.search(/\.ktx2($|\?)/i) > 0 || s.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png";
38002
38002
  }
38003
- const bC = new Pe();
38003
+ const bC = new Ce();
38004
38004
  class yC {
38005
38005
  constructor(e = {}, t = {}) {
38006
38006
  this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new XP(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
@@ -38556,7 +38556,7 @@ class yC {
38556
38556
  const d = a[c];
38557
38557
  if (d) {
38558
38558
  o.push(d);
38559
- const u = new Pe();
38559
+ const u = new Ce();
38560
38560
  r !== null && u.fromArray(r.array, c * 16), l.push(u);
38561
38561
  } else
38562
38562
  console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', t.joints[c]);
@@ -38657,7 +38657,7 @@ class yC {
38657
38657
  for (let d = 0, u = c.length; d < u; d++)
38658
38658
  h.add(c[d]);
38659
38659
  if (r.name && (h.userData.name = r.name, h.name = a), us(h, r), r.extensions && Vr(i, h, r), r.matrix !== void 0) {
38660
- const d = new Pe();
38660
+ const d = new Ce();
38661
38661
  d.fromArray(r.matrix), h.applyMatrix4(d);
38662
38662
  } else
38663
38663
  r.translation !== void 0 && h.position.fromArray(r.translation), r.rotation !== void 0 && h.quaternion.fromArray(r.rotation), r.scale !== void 0 && h.scale.fromArray(r.scale);
@@ -39001,13 +39001,13 @@ class wC {
39001
39001
  noise4d(e, t, i, n) {
39002
39002
  const r = this.grad4, a = this.simplex, o = this.perm, l = (Math.sqrt(5) - 1) / 4, c = (5 - Math.sqrt(5)) / 20;
39003
39003
  let h, d, u, f, p;
39004
- const v = (e + t + i + n) * l, g = Math.floor(e + v), m = Math.floor(t + v), b = Math.floor(i + v), x = Math.floor(n + v), y = (g + m + b + x) * c, _ = g - y, w = m - y, T = b - y, E = x - y, S = e - _, M = t - w, C = i - T, L = n - E, U = S > M ? 32 : 0, z = S > C ? 16 : 0, X = M > C ? 8 : 0, j = S > L ? 4 : 0, re = M > L ? 2 : 0, Z = C > L ? 1 : 0, ie = U + z + X + j + re + Z, pe = a[ie][0] >= 3 ? 1 : 0, Ne = a[ie][1] >= 3 ? 1 : 0, ce = a[ie][2] >= 3 ? 1 : 0, we = a[ie][3] >= 3 ? 1 : 0, ct = a[ie][0] >= 2 ? 1 : 0, Fe = a[ie][1] >= 2 ? 1 : 0, ne = a[ie][2] >= 2 ? 1 : 0, ee = a[ie][3] >= 2 ? 1 : 0, Te = a[ie][0] >= 1 ? 1 : 0, Xe = a[ie][1] >= 1 ? 1 : 0, Ge = a[ie][2] >= 1 ? 1 : 0, ht = a[ie][3] >= 1 ? 1 : 0, mt = S - pe + c, it = M - Ne + c, de = C - ce + c, B = L - we + c, he = S - ct + 2 * c, ge = M - Fe + 2 * c, Ee = C - ne + 2 * c, ve = L - ee + 2 * c, Qe = S - Te + 3 * c, ue = M - Xe + 3 * c, ke = C - Ge + 3 * c, N = L - ht + 3 * c, I = S - 1 + 4 * c, H = M - 1 + 4 * c, se = C - 1 + 4 * c, ae = L - 1 + 4 * c, te = g & 255, qe = m & 255, Oe = b & 255, Ke = x & 255, We = o[te + o[qe + o[Oe + o[Ke]]]] % 32, me = o[te + pe + o[qe + Ne + o[Oe + ce + o[Ke + we]]]] % 32, Ae = o[te + ct + o[qe + Fe + o[Oe + ne + o[Ke + ee]]]] % 32, rt = o[te + Te + o[qe + Xe + o[Oe + Ge + o[Ke + ht]]]] % 32, nt = o[te + 1 + o[qe + 1 + o[Oe + 1 + o[Ke + 1]]]] % 32;
39004
+ const v = (e + t + i + n) * l, g = Math.floor(e + v), m = Math.floor(t + v), b = Math.floor(i + v), x = Math.floor(n + v), y = (g + m + b + x) * c, _ = g - y, w = m - y, T = b - y, E = x - y, S = e - _, M = t - w, C = i - T, L = n - E, U = S > M ? 32 : 0, z = S > C ? 16 : 0, X = M > C ? 8 : 0, j = S > L ? 4 : 0, re = M > L ? 2 : 0, Z = C > L ? 1 : 0, ie = U + z + X + j + re + Z, pe = a[ie][0] >= 3 ? 1 : 0, Ne = a[ie][1] >= 3 ? 1 : 0, ce = a[ie][2] >= 3 ? 1 : 0, we = a[ie][3] >= 3 ? 1 : 0, ct = a[ie][0] >= 2 ? 1 : 0, Fe = a[ie][1] >= 2 ? 1 : 0, ne = a[ie][2] >= 2 ? 1 : 0, ee = a[ie][3] >= 2 ? 1 : 0, Te = a[ie][0] >= 1 ? 1 : 0, Xe = a[ie][1] >= 1 ? 1 : 0, Ge = a[ie][2] >= 1 ? 1 : 0, ht = a[ie][3] >= 1 ? 1 : 0, mt = S - pe + c, it = M - Ne + c, de = C - ce + c, B = L - we + c, he = S - ct + 2 * c, ge = M - Fe + 2 * c, Pe = C - ne + 2 * c, ve = L - ee + 2 * c, Qe = S - Te + 3 * c, ue = M - Xe + 3 * c, ke = C - Ge + 3 * c, N = L - ht + 3 * c, I = S - 1 + 4 * c, H = M - 1 + 4 * c, se = C - 1 + 4 * c, ae = L - 1 + 4 * c, te = g & 255, qe = m & 255, Oe = b & 255, Ke = x & 255, We = o[te + o[qe + o[Oe + o[Ke]]]] % 32, me = o[te + pe + o[qe + Ne + o[Oe + ce + o[Ke + we]]]] % 32, Ae = o[te + ct + o[qe + Fe + o[Oe + ne + o[Ke + ee]]]] % 32, rt = o[te + Te + o[qe + Xe + o[Oe + Ge + o[Ke + ht]]]] % 32, nt = o[te + 1 + o[qe + 1 + o[Oe + 1 + o[Ke + 1]]]] % 32;
39005
39005
  let Ve = 0.6 - S * S - M * M - C * C - L * L;
39006
39006
  Ve < 0 ? h = 0 : (Ve *= Ve, h = Ve * Ve * this._dot4(r[We], S, M, C, L));
39007
39007
  let st = 0.6 - mt * mt - it * it - de * de - B * B;
39008
39008
  st < 0 ? d = 0 : (st *= st, d = st * st * this._dot4(r[me], mt, it, de, B));
39009
- let V = 0.6 - he * he - ge * ge - Ee * Ee - ve * ve;
39010
- V < 0 ? u = 0 : (V *= V, u = V * V * this._dot4(r[Ae], he, ge, Ee, ve));
39009
+ let V = 0.6 - he * he - ge * ge - Pe * Pe - ve * ve;
39010
+ V < 0 ? u = 0 : (V *= V, u = V * V * this._dot4(r[Ae], he, ge, Pe, ve));
39011
39011
  let be = 0.6 - Qe * Qe - ue * ue - ke * ke - N * N;
39012
39012
  be < 0 ? f = 0 : (be *= be, f = be * be * this._dot4(r[rt], Qe, ue, ke, N));
39013
39013
  let Re = 0.6 - I * I - H * H - se * se - ae * ae;
@@ -39307,7 +39307,7 @@ class mr extends zn {
39307
39307
  blending: $t,
39308
39308
  depthTest: !1,
39309
39309
  depthWrite: !1
39310
- }), this.enabled = !0, this.needsSwap = !1, this._oldClearColor = new Ie(), this.oldClearAlpha = 1, this._fsQuad = new Er(null), this.tempPulseColor1 = new Ie(), this.tempPulseColor2 = new Ie(), this.textureMatrix = new Pe();
39310
+ }), this.enabled = !0, this.needsSwap = !1, this._oldClearColor = new Ie(), this.oldClearAlpha = 1, this._fsQuad = new Er(null), this.tempPulseColor1 = new Ie(), this.tempPulseColor2 = new Ie(), this.textureMatrix = new Ce();
39311
39311
  function h(d, u) {
39312
39312
  const f = u.isPerspectiveCamera ? "perspective" : "orthographic";
39313
39313
  return d.replace(/DEPTH_TO_VIEW_Z/g, f + "DepthToViewZ");
@@ -39760,8 +39760,8 @@ const mh = {
39760
39760
  size: { value: new K(512, 512) },
39761
39761
  cameraNear: { value: 1 },
39762
39762
  cameraFar: { value: 100 },
39763
- cameraProjectionMatrix: { value: new Pe() },
39764
- cameraInverseProjectionMatrix: { value: new Pe() },
39763
+ cameraProjectionMatrix: { value: new Ce() },
39764
+ cameraInverseProjectionMatrix: { value: new Ce() },
39765
39765
  scale: { value: 1 },
39766
39766
  intensity: { value: 0.1 },
39767
39767
  bias: { value: 0.5 },
@@ -40838,8 +40838,8 @@ const CC = [
40838
40838
  cameraNear: { value: null },
40839
40839
  cameraFar: { value: null },
40840
40840
  resolution: { value: new K() },
40841
- cameraProjectionMatrix: { value: new Pe() },
40842
- cameraInverseProjectionMatrix: { value: new Pe() },
40841
+ cameraProjectionMatrix: { value: new Ce() },
40842
+ cameraInverseProjectionMatrix: { value: new Ce() },
40843
40843
  kernelRadius: { value: 8 },
40844
40844
  minDistance: { value: 5e-3 },
40845
40845
  maxDistance: { value: 0.05 }
@@ -41675,7 +41675,7 @@ const RC = [
41675
41675
 
41676
41676
  }`
41677
41677
  )
41678
- };
41678
+ }, OC = Et.hexToRGB(Ee.accent);
41679
41679
  class Fn extends Q {
41680
41680
  constructor(e, t, i) {
41681
41681
  super(e, t), this.globalMaterialIndex = -1, this.workerPool = null, this._bufferElements = [], this._colors = null, this._originalColor = null, this._elementMap = /* @__PURE__ */ new Map(), this._isBatching = !1, this._batchQueue = [], this._isProcessingQueue = !1, this._edgeLines = null, this._edgeRanges = /* @__PURE__ */ new Map(), this._edgeThreshold = 60, this._edgeMaterial = null, this._selectedElements = [], this._hidingElements = [], this._isolatingElements = [], this._hiddenSet = /* @__PURE__ */ new Set(), this._isolatedSet = /* @__PURE__ */ new Set(), this._elementOpacityMap = /* @__PURE__ */ new Map(), this._isRGBAMode = !1, this._elementOriginalColors = /* @__PURE__ */ new Map(), this._isGeneratedLights = !1, this._pointLight = null, this.workerPool = i || null;
@@ -41726,7 +41726,11 @@ class Fn extends Q {
41726
41726
  }
41727
41727
  batch(e) {
41728
41728
  this._isBatching = !0;
41729
- const t = this.geometry.getAttribute("position"), i = this.geometry.getAttribute("color"), n = this.geometry.getIndex(), r = t ? t.count : 0, a = n ? n.count : 0, o = i ? i.itemSize : 4;
41729
+ const t = this.geometry.getAttribute(
41730
+ "position"
41731
+ ), i = this.geometry.getAttribute(
41732
+ "color"
41733
+ ), n = this.geometry.getIndex(), r = t ? t.count : 0, a = n ? n.count : 0, o = i ? i.itemSize : 4;
41730
41734
  let l = r, c = a;
41731
41735
  e.forEach((m) => {
41732
41736
  if (m.buffer) {
@@ -41762,7 +41766,10 @@ class Fn extends Q {
41762
41766
  count: b,
41763
41767
  indices: x
41764
41768
  }), v += b, this._bufferElements.push(m);
41765
- }), this.geometry.setAttribute("position", new ot(h, 3)), this.geometry.setAttribute("color", new ot(d, 4)), this.geometry.setIndex(new ot(u, 1)), this.geometry.hasAttribute("normal") && this.geometry.deleteAttribute("normal"), this.geometry.computeVertexNormals(), this.geometry.boundingSphere = null, this.geometry.computeBoundingSphere();
41769
+ }), this.geometry.setAttribute(
41770
+ "position",
41771
+ new ot(h, 3)
41772
+ ), this.geometry.setAttribute("color", new ot(d, 4)), this.geometry.setIndex(new ot(u, 1)), this.geometry.hasAttribute("normal") && this.geometry.deleteAttribute("normal"), this.geometry.computeVertexNormals(), this.geometry.boundingSphere = null, this.geometry.computeBoundingSphere();
41766
41773
  try {
41767
41774
  this.geometry.boundsTree && (this.geometry.boundsTree = null), this.geometry.computeBoundsTree();
41768
41775
  } catch {
@@ -42002,26 +42009,39 @@ class Fn extends Q {
42002
42009
  * Select elements (highlights them with accent color)
42003
42010
  */
42004
42011
  select(e, t = []) {
42005
- this._selectedElements.length > 0 && (this._selectedElements.forEach(
42006
- (i) => this.resetColor(i.modelId, i.elementId, t)
42007
- ), this._selectedElements = []), e.forEach((i) => {
42008
- if (this._bufferElements.find(
42009
- (n) => n.modelId.toString() == i.modelId && n.elementId == i.elementId
42010
- )) {
42011
- const n = Et.hexToRGB(Ce.accent);
42012
- this.changeColor([i], n), this._selectedElements.push(i);
42013
- }
42014
- });
42012
+ this.unselect(), e.forEach((i) => {
42013
+ this._selectedElements.push(i);
42014
+ }), this.changeColor(e, OC);
42015
42015
  }
42016
42016
  get selectedElements() {
42017
42017
  return this._selectedElements;
42018
42018
  }
42019
+ unselect() {
42020
+ if (this._selectedElements.length > 0) {
42021
+ if (this._colors) {
42022
+ this._elementMap.forEach((t, i) => {
42023
+ t.forEach((n, r) => {
42024
+ for (const a of n)
42025
+ for (let o = 0; o < a.count; o++) {
42026
+ const l = (a.start + o) * 4;
42027
+ this._originalColor && (this._colors[l] = this._originalColor.r, this._colors[l + 1] = this._originalColor.g, this._colors[l + 2] = this._originalColor.b), this._colors[l + 3] = 1;
42028
+ }
42029
+ });
42030
+ });
42031
+ const e = this.geometry.getAttribute(
42032
+ "color"
42033
+ );
42034
+ e.needsUpdate = !0;
42035
+ }
42036
+ this._selectedElements = [];
42037
+ }
42038
+ }
42019
42039
  //#endregion
42020
42040
  //#region Hide/Isolate/Show
42021
42041
  /**
42022
42042
  * Hide elements by setting their alpha to 0 (GPU-accelerated)
42023
42043
  * Hidden elements are discarded in fragment shader - no rendering cost
42024
- *
42044
+ *
42025
42045
  * @param elements - Elements to hide (defaults to selected elements)
42026
42046
  */
42027
42047
  hide(e) {
@@ -42033,7 +42053,7 @@ class Fn extends Q {
42033
42053
  }
42034
42054
  /**
42035
42055
  * Isolate elements - show ONLY these elements, hide everything else
42036
- *
42056
+ *
42037
42057
  * @param elements - Elements to isolate (defaults to selected elements)
42038
42058
  * @returns The isolated elements
42039
42059
  */
@@ -42095,15 +42115,15 @@ class Fn extends Q {
42095
42115
  /**
42096
42116
  * Set opacity for specific elements (0.0 = invisible, 1.0 = fully opaque)
42097
42117
  * Uses custom shader's per-vertex alpha support
42098
- *
42118
+ *
42099
42119
  * @param elements - Elements to modify
42100
42120
  * @param opacity - Opacity value (0.0 to 1.0)
42101
- *
42121
+ *
42102
42122
  * @example
42103
42123
  * ```typescript
42104
42124
  * // Semi-transparent (ghost mode)
42105
42125
  * mesh.setElementOpacity([{ modelId: "0", elementId: "abc" }], 0.3);
42106
- *
42126
+ *
42107
42127
  * // Fully hidden but still raycastable
42108
42128
  * mesh.setElementOpacity([{ modelId: "0", elementId: "abc" }], 0.0);
42109
42129
  * ```
@@ -42134,7 +42154,7 @@ class Fn extends Q {
42134
42154
  /**
42135
42155
  * Ghost mode - semi-transparent with optional desaturation
42136
42156
  * Perfect for showing context while highlighting other elements
42137
- *
42157
+ *
42138
42158
  * @param elements - Elements to ghost
42139
42159
  * @param ghostOpacity - Opacity for ghost mode (default: 0.15)
42140
42160
  * @param desaturate - Whether to desaturate color (default: true)
@@ -42163,14 +42183,16 @@ class Fn extends Q {
42163
42183
  /**
42164
42184
  * Ghost all elements EXCEPT the specified ones
42165
42185
  * Focused elements remain fully opaque, everything else becomes ghosted
42166
- *
42186
+ *
42167
42187
  * @param focusElements - Elements to keep fully visible
42168
42188
  * @param ghostOpacity - Opacity for non-focused elements (default: 0.1)
42169
42189
  */
42170
42190
  ghostExcept(e, t = 0.1) {
42171
42191
  if (!this._colors)
42172
42192
  return;
42173
- const i = new Set(e.map((r) => `${r.modelId}:${r.elementId}`));
42193
+ const i = new Set(
42194
+ e.map((r) => `${r.modelId}:${r.elementId}`)
42195
+ );
42174
42196
  this._elementMap.forEach((r, a) => {
42175
42197
  r.forEach((o, l) => {
42176
42198
  const c = `${a}:${l}`, h = i.has(c), d = h ? 1 : t;
@@ -42386,7 +42408,10 @@ class Fn extends Q {
42386
42408
  n[h] = l.r, n[h + 1] = l.g, n[h + 2] = l.b;
42387
42409
  }
42388
42410
  }
42389
- this.geometry.setAttribute("color", new ot(n, t)), this.geometry.attributes.color.needsUpdate = !0, this._colors = n, console.log("✅ Unique colors assigned to each face.");
42411
+ this.geometry.setAttribute(
42412
+ "color",
42413
+ new ot(n, t)
42414
+ ), this.geometry.attributes.color.needsUpdate = !0, this._colors = n, console.log("✅ Unique colors assigned to each face.");
42390
42415
  }
42391
42416
  }
42392
42417
  /**
@@ -42519,10 +42544,10 @@ class Fn extends Q {
42519
42544
  /**
42520
42545
  * Create simplified LOD versions of this batched mesh
42521
42546
  * All LOD meshes maintain full element mapping functionality (hide, isolate, changeColor)
42522
- *
42547
+ *
42523
42548
  * @param lodLevels - Array of simplification options for each LOD level
42524
42549
  * @returns Promise resolving to array of meshes [original, LOD1, LOD2, ...]
42525
- *
42550
+ *
42526
42551
  * @example
42527
42552
  * ```typescript
42528
42553
  * const lodMeshes = await originalMesh.createSimplifiedLODs([
@@ -42530,15 +42555,17 @@ class Fn extends Q {
42530
42555
  * { ratio: 0.4, error: 0.02 }, // LOD2: 40% detail
42531
42556
  * { ratio: 0.2, error: 0.05 }, // LOD3: 20% detail
42532
42557
  * ]);
42533
- *
42558
+ *
42534
42559
  * // All LODs support full operations
42535
42560
  * lodMeshes.forEach(mesh => mesh.hide(elements)); // Works on all!
42536
42561
  * ```
42537
42562
  */
42538
42563
  async createSimplifiedLODs(e) {
42539
42564
  var n, r;
42540
- const { simplifyBufferElementsBatch: t } = await import("./batched-mesh-simplifier-CuO9gLeI.mjs"), i = [this];
42541
- console.log(`🔨 Creating ${e.length} LOD levels for batched mesh...`);
42565
+ const { simplifyBufferElementsBatch: t } = await import("./batched-mesh-simplifier-CvB-nu0g.mjs"), i = [this];
42566
+ console.log(
42567
+ `🔨 Creating ${e.length} LOD levels for batched mesh...`
42568
+ );
42542
42569
  for (let a = 0; a < e.length; a++) {
42543
42570
  const o = e[a];
42544
42571
  console.log(`📦 Processing LOD ${a + 1}/${e.length}...`);
@@ -42568,10 +42595,10 @@ class Fn extends Q {
42568
42595
  * FAST: Create simplified LOD by simplifying entire geometry at once
42569
42596
  * ⚠️ This breaks element mapping - hide/isolate/changeColor won't work on simplified mesh
42570
42597
  * Use this when you only need visual LOD without element operations
42571
- *
42598
+ *
42572
42599
  * @param options - Simplification options
42573
42600
  * @returns Promise resolving to simplified mesh
42574
- *
42601
+ *
42575
42602
  * @example
42576
42603
  * ```typescript
42577
42604
  * const lodMesh = await originalMesh.createSimplifiedLODFast({ ratio: 0.5 });
@@ -42579,7 +42606,7 @@ class Fn extends Q {
42579
42606
  * ```
42580
42607
  */
42581
42608
  async createSimplifiedLODFast(e) {
42582
- const { simplifyBatchedMeshFast: t } = await import("./batched-mesh-simplifier-CuO9gLeI.mjs");
42609
+ const { simplifyBatchedMeshFast: t } = await import("./batched-mesh-simplifier-CvB-nu0g.mjs");
42583
42610
  return t(this, e);
42584
42611
  }
42585
42612
  /**
@@ -42591,7 +42618,7 @@ class Fn extends Q {
42591
42618
  }), this.geometry.index && this.geometry.setIndex(null)), this._edgeLines && (this._edgeLines.geometry && this._edgeLines.geometry.dispose(), this.remove(this._edgeLines), this._edgeLines = null), this.geometry = null;
42592
42619
  }
42593
42620
  }
42594
- const Ol = class Ol extends Lt {
42621
+ const NC = Et.hexToRGB(Ee.accent), Ol = class Ol extends Lt {
42595
42622
  constructor(e) {
42596
42623
  super(), this.material = e, this.globalMaterialIndex = -1, this._instancedMeshes = /* @__PURE__ */ new Map(), this._bufferElements = [], this._originalColor = null, this._elementMap = /* @__PURE__ */ new Map(), this._originalTransforms = /* @__PURE__ */ new Map(), this._elementOpacity = /* @__PURE__ */ new Map(), this._selectedElements = [], this._hidingElements = [], this._isolatingElements = [], this._edgeLines = /* @__PURE__ */ new Map(), this._edgeRanges = /* @__PURE__ */ new Map(), this._edgeThreshold = 60, this._edgeMaterial = null, this._isGeneratedLights = !1, this._pointLight = null, this._hiddenSet = /* @__PURE__ */ new Set(), this._isolatedSet = /* @__PURE__ */ new Set(), this.material && "vertexColors" in this.material && (this.material.vertexColors = !0, this.material.needsUpdate = !0);
42597
42624
  }
@@ -42652,7 +42679,10 @@ const Ol = class Ol extends Lt {
42652
42679
  });
42653
42680
  }), r.instanceColor = new yn(a, 3), r.instanceMatrix.needsUpdate = !0;
42654
42681
  const o = new Float32Array(t.length);
42655
- return o.fill(1), n.setAttribute("instanceOpacity", new yn(o, 1)), this.material && "vertexColors" in this.material && (this.material.vertexColors = !0, this.material.needsUpdate = !0), r;
42682
+ return o.fill(1), n.setAttribute(
42683
+ "instanceOpacity",
42684
+ new yn(o, 1)
42685
+ ), this.material && "vertexColors" in this.material && (this.material.vertexColors = !0, this.material.needsUpdate = !0), r;
42656
42686
  }
42657
42687
  _createGeometryFromBuffer(e) {
42658
42688
  const t = new dt();
@@ -42674,9 +42704,9 @@ const Ol = class Ol extends Lt {
42674
42704
  }
42675
42705
  _transformArrayToMatrix4(e) {
42676
42706
  if (e.length === 16)
42677
- return new Pe().fromArray(e);
42707
+ return new Ce().fromArray(e);
42678
42708
  if (e.length === 12) {
42679
- const t = new Pe();
42709
+ const t = new Ce();
42680
42710
  return t.set(
42681
42711
  e[0],
42682
42712
  e[1],
@@ -42696,7 +42726,7 @@ const Ol = class Ol extends Lt {
42696
42726
  1
42697
42727
  ), t;
42698
42728
  } else
42699
- return console.warn("Unsupported transform array length:", e.length), new Pe().identity();
42729
+ return console.warn("Unsupported transform array length:", e.length), new Ce().identity();
42700
42730
  }
42701
42731
  _generateGeometryKey(e) {
42702
42732
  let t = e.length.toString();
@@ -42712,19 +42742,13 @@ const Ol = class Ol extends Lt {
42712
42742
  }
42713
42743
  //#region Selection and Color Control
42714
42744
  select(e, t = []) {
42715
- this._selectedElements.length > 0 && (this._selectedElements.forEach(
42716
- (i) => this.resetColor(
42717
- i.modelId,
42718
- i.elementId,
42719
- t
42720
- )
42721
- ), this._selectedElements = []), e.forEach((i) => {
42745
+ this.unselect(), e.forEach((i) => {
42722
42746
  var r;
42723
- if ((r = this._elementMap.get(i.modelId)) == null ? void 0 : r.get(i.elementId)) {
42724
- const a = Et.hexToRGB(Ce.accent);
42725
- this.changeColor([i], a), this._selectedElements.push(i);
42726
- }
42727
- });
42747
+ ((r = this._elementMap.get(i.modelId)) == null ? void 0 : r.get(i.elementId)) && this._selectedElements.push(i);
42748
+ }), this.changeColor(e, NC);
42749
+ }
42750
+ unselect() {
42751
+ this._selectedElements.length > 0 && (this.resetElementOpacity(), this._selectedElements = []);
42728
42752
  }
42729
42753
  changeColor(e, t) {
42730
42754
  e.forEach(({ modelId: i, elementId: n }) => {
@@ -42784,7 +42808,7 @@ const Ol = class Ol extends Lt {
42784
42808
  /**
42785
42809
  * Hide elements by setting their transform scale to 0
42786
42810
  * Zero-scaled instances are automatically culled by GPU - maximum performance
42787
- *
42811
+ *
42788
42812
  * @param elements - Elements to hide (defaults to selected elements)
42789
42813
  */
42790
42814
  hide(e) {
@@ -42796,14 +42820,17 @@ const Ol = class Ol extends Lt {
42796
42820
  var a;
42797
42821
  const r = (a = this._elementMap.get(i)) == null ? void 0 : a.get(n);
42798
42822
  r && r.forEach(({ instancedMesh: o, instanceIndex: l }) => {
42799
- o.setMatrixAt(l, Ol.ZERO_MATRIX), o.instanceMatrix.needsUpdate = !0;
42823
+ o.setMatrixAt(
42824
+ l,
42825
+ Ol.ZERO_MATRIX
42826
+ ), o.instanceMatrix.needsUpdate = !0;
42800
42827
  });
42801
42828
  }), this.hideEdge(t));
42802
42829
  }
42803
42830
  /**
42804
42831
  * Isolate elements - show ONLY these elements, hide everything else
42805
42832
  * Uses batch matrix update for best performance
42806
- *
42833
+ *
42807
42834
  * @param elements - Elements to isolate (defaults to selected elements)
42808
42835
  * @returns The isolated elements
42809
42836
  */
@@ -42933,7 +42960,9 @@ if (gl_FragColor.a < 0.01) discard;`
42933
42960
  var r;
42934
42961
  const n = (r = this._elementMap.get(e)) == null ? void 0 : r.get(t);
42935
42962
  n && n.forEach(({ instancedMesh: a, instanceIndex: o }) => {
42936
- const l = a.geometry.getAttribute("instanceOpacity");
42963
+ const l = a.geometry.getAttribute(
42964
+ "instanceOpacity"
42965
+ );
42937
42966
  l && (l.array[o] = i, l.needsUpdate = !0);
42938
42967
  });
42939
42968
  }
@@ -42991,7 +43020,7 @@ if (gl_FragColor.a < 0.01) discard;`
42991
43020
  /**
42992
43021
  * Desaturate instance color (turn whitish)
42993
43022
  * @param modelId - Model ID
42994
- * @param elementId - Element ID
43023
+ * @param elementId - Element ID
42995
43024
  * @param desatFactor - Desaturation factor (0 = original, 1 = full white)
42996
43025
  */
42997
43026
  _desaturateInstanceColor(e, t, i = 0.7) {
@@ -43028,7 +43057,9 @@ if (gl_FragColor.a < 0.01) discard;`
43028
43057
  */
43029
43058
  resetElementOpacity() {
43030
43059
  this._elementOpacity.clear(), this._instancedMeshes.forEach((e) => {
43031
- const t = e.geometry.getAttribute("instanceOpacity");
43060
+ const t = e.geometry.getAttribute(
43061
+ "instanceOpacity"
43062
+ );
43032
43063
  if (t && (t.array.fill(1), t.needsUpdate = !0), this._originalColor && e.instanceColor) {
43033
43064
  const i = e.instanceColor.array;
43034
43065
  for (let n = 0; n < e.count; n++) {
@@ -43106,9 +43137,13 @@ if (gl_FragColor.a < 0.01) discard;`
43106
43137
  this._edgeThreshold
43107
43138
  );
43108
43139
  if (n.getAttribute("position")) {
43109
- const a = n.getAttribute("position").array, o = e.count, l = new Float32Array(a.length * o);
43140
+ const a = n.getAttribute(
43141
+ "position"
43142
+ ).array, o = e.count, l = new Float32Array(
43143
+ a.length * o
43144
+ );
43110
43145
  for (let h = 0; h < o; h++) {
43111
- const d = new Pe();
43146
+ const d = new Ce();
43112
43147
  e.getMatrixAt(h, d);
43113
43148
  const u = h * a.length;
43114
43149
  for (let f = 0; f < a.length; f += 3) {
@@ -43209,7 +43244,7 @@ if (gl_FragColor.a < 0.01) discard;`
43209
43244
  const t = e[0], i = (l = this._elementMap.get(t.modelId)) == null ? void 0 : l.get(t.elementId);
43210
43245
  if (!i || i.length === 0)
43211
43246
  return null;
43212
- const { instancedMesh: n, instanceIndex: r } = i[0], a = new Pe();
43247
+ const { instancedMesh: n, instanceIndex: r } = i[0], a = new Ce();
43213
43248
  n.getMatrixAt(r, a);
43214
43249
  const o = new ft().setFromBufferAttribute(
43215
43250
  n.geometry.getAttribute("position")
@@ -43287,7 +43322,7 @@ if (gl_FragColor.a < 0.01) discard;`
43287
43322
  }
43288
43323
  //#endregion
43289
43324
  };
43290
- Ol.ZERO_MATRIX = new Pe().makeScale(0, 0, 0);
43325
+ Ol.ZERO_MATRIX = new Ce().makeScale(0, 0, 0);
43291
43326
  let Mr = Ol;
43292
43327
  class Sb extends Lt {
43293
43328
  constructor() {
@@ -43378,7 +43413,7 @@ class Sb extends Lt {
43378
43413
  }
43379
43414
  const u = d.array, f = l.count, p = new Float32Array(u.length * f);
43380
43415
  for (let v = 0; v < f; v++) {
43381
- const g = new Pe();
43416
+ const g = new Ce();
43382
43417
  l.getMatrixAt(v, g);
43383
43418
  const m = v * u.length;
43384
43419
  for (let b = 0; b < u.length; b += 3) {
@@ -43587,12 +43622,12 @@ class Sb extends Lt {
43587
43622
  this._edgeThreshold !== e && (this._edgeThreshold = e, this._edgeLines && this.buildEdges());
43588
43623
  }
43589
43624
  }
43590
- let OC = 1;
43625
+ let BC = 1;
43591
43626
  class fv {
43592
43627
  constructor(e) {
43593
43628
  this._worker = new Worker(e), this._worker.onmessage = (t) => {
43594
43629
  this._OnMessage(t);
43595
- }, this._resolve = null, this._id = OC++;
43630
+ }, this._resolve = null, this._id = BC++;
43596
43631
  }
43597
43632
  _OnMessage(e) {
43598
43633
  const t = this._resolve;
@@ -43651,7 +43686,7 @@ class Ar {
43651
43686
  this._workers.forEach((e) => e.dispose()), this._workers = [], this._free = [], this._busy = {}, this._queue = [];
43652
43687
  }
43653
43688
  }
43654
- const NC = `
43689
+ const UC = `
43655
43690
  // Web Worker code as string (to be created as blob URL)
43656
43691
  self.onmessage = function(e) {
43657
43692
  const {
@@ -43765,13 +43800,13 @@ self.onmessage = function(e) {
43765
43800
  }
43766
43801
  };
43767
43802
  `;
43768
- class BC extends Q {
43803
+ class FC extends Q {
43769
43804
  constructor() {
43770
43805
  super(), this.workerPool = null, this.isReady = !1, this._batchedMeshes = [], this._instancedMeshes = [], this._isolatingElements = [], this._initializeWorkerPool(4);
43771
43806
  }
43772
43807
  _initializeWorkerPool(e) {
43773
43808
  try {
43774
- const t = new Blob([NC], {
43809
+ const t = new Blob([UC], {
43775
43810
  type: "application/javascript"
43776
43811
  }), i = URL.createObjectURL(t);
43777
43812
  this.workerPool = new Ar(
@@ -43796,10 +43831,16 @@ class BC extends Q {
43796
43831
  }
43797
43832
  addBatchedMesh(e) {
43798
43833
  if (this._batchedMeshes.includes(e)) {
43799
- console.warn("⚠️ Attempted to add duplicate batched mesh:", e.globalMaterialIndex);
43834
+ console.warn(
43835
+ "⚠️ Attempted to add duplicate batched mesh:",
43836
+ e.globalMaterialIndex
43837
+ );
43800
43838
  return;
43801
43839
  }
43802
- this.children.includes(e) ? console.warn("⚠️ Mesh already in children, skipping add:", e.globalMaterialIndex) : this.add(e), this._batchedMeshes.push(e);
43840
+ this.children.includes(e) ? console.warn(
43841
+ "⚠️ Mesh already in children, skipping add:",
43842
+ e.globalMaterialIndex
43843
+ ) : this.add(e), this._batchedMeshes.push(e);
43803
43844
  }
43804
43845
  getBatchedMesh(e) {
43805
43846
  return this._batchedMeshes.find(
@@ -43813,7 +43854,13 @@ class BC extends Q {
43813
43854
  * Get diagnostic info about merged model structure
43814
43855
  */
43815
43856
  getDiagnostics() {
43816
- const e = this.children.filter((r) => r instanceof Sb).length, t = this.children.filter((r) => r instanceof Fn).length, i = this.children.filter((r) => r instanceof Mr).length;
43857
+ const e = this.children.filter(
43858
+ (r) => r instanceof Sb
43859
+ ).length, t = this.children.filter(
43860
+ (r) => r instanceof Fn
43861
+ ).length, i = this.children.filter(
43862
+ (r) => r instanceof Mr
43863
+ ).length;
43817
43864
  let n = 0;
43818
43865
  return this._batchedMeshes.forEach((r) => {
43819
43866
  const a = r.geometry;
@@ -43881,6 +43928,13 @@ class BC extends Q {
43881
43928
  i.select(e, t);
43882
43929
  });
43883
43930
  }
43931
+ unselect() {
43932
+ this._batchedMeshes.forEach((e) => {
43933
+ e.unselect();
43934
+ }), this._instancedMeshes.forEach((e) => {
43935
+ e.unselect();
43936
+ });
43937
+ }
43884
43938
  /**
43885
43939
  * get bufferEleemnts from given ids
43886
43940
  * @param elements
@@ -44007,7 +44061,9 @@ class BC extends Q {
44007
44061
  * Kept for backward compatibility but does nothing
44008
44062
  */
44009
44063
  optimizeVertices() {
44010
- console.warn("optimizeVertices() is deprecated - visibility is now alpha-based");
44064
+ console.warn(
44065
+ "optimizeVertices() is deprecated - visibility is now alpha-based"
44066
+ );
44011
44067
  }
44012
44068
  /**
44013
44069
  * *everytime add new model in scene this model will be regenerated again, for that reason we should dispose this model
@@ -44017,7 +44073,7 @@ class BC extends Q {
44017
44073
  this.isReady = !1, this._batchedMeshes.forEach((e) => e.dispose()), this._batchedMeshes = [], this._instancedMeshes.forEach((e) => e.dispose()), this._instancedMeshes = [], this.children = [];
44018
44074
  }
44019
44075
  }
44020
- class UC {
44076
+ class zC {
44021
44077
  constructor(e) {
44022
44078
  this.viralViewerApi = e, this.position = new K(), this.rawPosition = new K(), this.mouseMoveQueuedEvents = [], this.mouseDownLeftQueuedEvents = [], this.mouseUpLeftQueuedEvents = [], this.mouseDownRightQueuedEvents = [], this.mouseUpRightQueuedEvents = [], this.mouseDoubleClickQueuedEvents = [], this.hoverMeshes = [], this.handleClick = async (t) => {
44023
44079
  var i, n, r;
@@ -44239,9 +44295,9 @@ const Qr = {
44239
44295
  outlineModel: "viral_outline_model",
44240
44296
  sunlight: "viral_sunlight"
44241
44297
  };
44242
- class FC {
44298
+ class kC {
44243
44299
  constructor(e) {
44244
- this.viralViewerApi = e, this.scene = new lc(), this.objects = [], this.models = [], this.mainModels = [], this.isolateModel = new Q(), this.mergedModel = new BC(), this.outlineModel = new Q(), this.hideables = [], this.selectables = [], this.edges = [], this.sunLight = null, this.lights = [], this.transformControls = null, this.lightHelpers = [], this.fullScreenQuadMaterial = new Ii({
44300
+ this.viralViewerApi = e, this.scene = new lc(), this.objects = [], this.models = [], this.mainModels = [], this.isolateModel = new Q(), this.mergedModel = new FC(), this.outlineModel = new Q(), this.hideables = [], this.selectables = [], this.edges = [], this.sunLight = null, this.lights = [], this.transformControls = null, this.lightHelpers = [], this.fullScreenQuadMaterial = new Ii({
44245
44301
  map: null,
44246
44302
  // Use the render target's texture
44247
44303
  side: pi
@@ -44291,7 +44347,7 @@ class FC {
44291
44347
  //#endregion
44292
44348
  addPivotPoint() {
44293
44349
  const e = new So(1, 16, 16), t = new Ii({
44294
- color: Et.hexToThreejsColor(Ce.accent)
44350
+ color: Et.hexToThreejsColor(Ee.accent)
44295
44351
  // transparent: true,
44296
44352
  // opacity: 0.5,
44297
44353
  }), i = new Q(e, t);
@@ -44383,7 +44439,7 @@ class FC {
44383
44439
  }
44384
44440
  //#endregion
44385
44441
  }
44386
- class zC extends dt {
44442
+ class VC extends dt {
44387
44443
  constructor() {
44388
44444
  super();
44389
44445
  ym(this, "boundingSphere", new ni());
@@ -44406,13 +44462,13 @@ class zC extends dt {
44406
44462
  computeBoundingSphere() {
44407
44463
  }
44408
44464
  }
44409
- const kC = /* @__PURE__ */ new zC(), VC = /* @__PURE__ */ new Ys();
44465
+ const XC = /* @__PURE__ */ new VC(), HC = /* @__PURE__ */ new Ys();
44410
44466
  class Qa {
44411
44467
  constructor(e) {
44412
- this._mesh = new Q(kC, e), this._mesh.frustumCulled = !1;
44468
+ this._mesh = new Q(XC, e), this._mesh.frustumCulled = !1;
44413
44469
  }
44414
44470
  render(e) {
44415
- e.render(this._mesh, VC);
44471
+ e.render(this._mesh, HC);
44416
44472
  }
44417
44473
  get material() {
44418
44474
  return this._mesh.material;
@@ -44424,7 +44480,7 @@ class Qa {
44424
44480
  this._mesh.material.dispose(), this._mesh.geometry.dispose();
44425
44481
  }
44426
44482
  }
44427
- const XC = {
44483
+ const YC = {
44428
44484
  uniforms: {
44429
44485
  sceneDiffuse: {
44430
44486
  value: null
@@ -44436,19 +44492,19 @@ const XC = {
44436
44492
  value: null
44437
44493
  },
44438
44494
  projMat: {
44439
- value: /* @__PURE__ */ new Pe()
44495
+ value: /* @__PURE__ */ new Ce()
44440
44496
  },
44441
44497
  viewMat: {
44442
- value: /* @__PURE__ */ new Pe()
44498
+ value: /* @__PURE__ */ new Ce()
44443
44499
  },
44444
44500
  projViewMat: {
44445
- value: /* @__PURE__ */ new Pe()
44501
+ value: /* @__PURE__ */ new Ce()
44446
44502
  },
44447
44503
  projectionMatrixInv: {
44448
- value: /* @__PURE__ */ new Pe()
44504
+ value: /* @__PURE__ */ new Ce()
44449
44505
  },
44450
44506
  viewMatrixInv: {
44451
- value: /* @__PURE__ */ new Pe()
44507
+ value: /* @__PURE__ */ new Ce()
44452
44508
  },
44453
44509
  cameraPos: {
44454
44510
  value: /* @__PURE__ */ new P()
@@ -44737,7 +44793,7 @@ void main() {
44737
44793
  gl_FragColor = vec4(occ, 0.5 + 0.5 * normal);
44738
44794
  }`
44739
44795
  )
44740
- }, HC = {
44796
+ }, GC = {
44741
44797
  uniforms: {
44742
44798
  sceneDiffuse: {
44743
44799
  value: null
@@ -44761,16 +44817,16 @@ void main() {
44761
44817
  value: !1
44762
44818
  },
44763
44819
  projMat: {
44764
- value: /* @__PURE__ */ new Pe()
44820
+ value: /* @__PURE__ */ new Ce()
44765
44821
  },
44766
44822
  viewMat: {
44767
- value: /* @__PURE__ */ new Pe()
44823
+ value: /* @__PURE__ */ new Ce()
44768
44824
  },
44769
44825
  projectionMatrixInv: {
44770
- value: /* @__PURE__ */ new Pe()
44826
+ value: /* @__PURE__ */ new Ce()
44771
44827
  },
44772
44828
  viewMatrixInv: {
44773
- value: /* @__PURE__ */ new Pe()
44829
+ value: /* @__PURE__ */ new Ce()
44774
44830
  },
44775
44831
  cameraPos: {
44776
44832
  value: /* @__PURE__ */ new P()
@@ -45098,7 +45154,7 @@ void main() {
45098
45154
  }
45099
45155
  `
45100
45156
  )
45101
- }, YC = {
45157
+ }, WC = {
45102
45158
  uniforms: {
45103
45159
  sceneDiffuse: {
45104
45160
  value: null
@@ -45110,16 +45166,16 @@ void main() {
45110
45166
  value: null
45111
45167
  },
45112
45168
  projMat: {
45113
- value: /* @__PURE__ */ new Pe()
45169
+ value: /* @__PURE__ */ new Ce()
45114
45170
  },
45115
45171
  viewMat: {
45116
- value: /* @__PURE__ */ new Pe()
45172
+ value: /* @__PURE__ */ new Ce()
45117
45173
  },
45118
45174
  projectionMatrixInv: {
45119
- value: /* @__PURE__ */ new Pe()
45175
+ value: /* @__PURE__ */ new Ce()
45120
45176
  },
45121
45177
  viewMatrixInv: {
45122
- value: /* @__PURE__ */ new Pe()
45178
+ value: /* @__PURE__ */ new Ce()
45123
45179
  },
45124
45180
  cameraPos: {
45125
45181
  value: /* @__PURE__ */ new P()
@@ -45299,7 +45355,7 @@ void main() {
45299
45355
  }
45300
45356
  `
45301
45357
  )
45302
- }, GC = {
45358
+ }, QC = {
45303
45359
  uniforms: {
45304
45360
  sceneDepth: {
45305
45361
  value: null
@@ -45314,10 +45370,10 @@ void main() {
45314
45370
  value: 1e3
45315
45371
  },
45316
45372
  viewMatrixInv: {
45317
- value: /* @__PURE__ */ new Pe()
45373
+ value: /* @__PURE__ */ new Ce()
45318
45374
  },
45319
45375
  projectionMatrixInv: {
45320
- value: /* @__PURE__ */ new Pe()
45376
+ value: /* @__PURE__ */ new Ce()
45321
45377
  },
45322
45378
  logDepth: {
45323
45379
  value: !1
@@ -45458,9 +45514,9 @@ void main() {
45458
45514
  ), 0.0);
45459
45515
  }`
45460
45516
  )
45461
- }, WC = "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", QC = Uint8Array.from(atob(WC), (s) => s.charCodeAt(0));
45462
- var jC = QC;
45463
- const qC = parseInt(Do.replace(/\D+/g, "")), ZC = qC >= 162 ? class extends Tt {
45517
+ }, jC = "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", qC = Uint8Array.from(atob(jC), (s) => s.charCodeAt(0));
45518
+ var ZC = qC;
45519
+ const $C = parseInt(Do.replace(/\D+/g, "")), KC = $C >= 162 ? class extends Tt {
45464
45520
  constructor(s = 1, e = 1, t = 1, i = {}) {
45465
45521
  super(s, e, {
45466
45522
  ...i,
@@ -45508,7 +45564,7 @@ const bi = {
45508
45564
  Log: 2,
45509
45565
  Reverse: 3
45510
45566
  };
45511
- class $C extends zn {
45567
+ class JC extends zn {
45512
45568
  /**
45513
45569
  *
45514
45570
  * @param {THREE.Scene} scene
@@ -45556,7 +45612,7 @@ class $C extends zn {
45556
45612
  stencilBuffer: o
45557
45613
  }), this.beautyRenderTarget.depthTexture = new bs(this.width, this.height, o ? wr : $n), this.beautyRenderTarget.depthTexture.format = o ? Sr : da), !0;
45558
45614
  }
45559
- }), this.samples = [], this.samplesDenoise = [], this.autoDetectTransparency = !0, this.frame = 0, this.lastViewMatrix = new Pe(), this.lastProjectionMatrix = new Pe(), this.beautyRenderTarget = new Tt(this.width, this.height, {
45615
+ }), this.samples = [], this.samplesDenoise = [], this.autoDetectTransparency = !0, this.frame = 0, this.lastViewMatrix = new Ce(), this.lastProjectionMatrix = new Ce(), this.beautyRenderTarget = new Tt(this.width, this.height, {
45560
45616
  minFilter: jt,
45561
45617
  magFilter: Dt,
45562
45618
  type: Ht,
@@ -45581,7 +45637,7 @@ class $C extends zn {
45581
45637
  stencilBuffer: !1,
45582
45638
  depthBuffer: !1,
45583
45639
  alpha: !0
45584
- }), this.bluenoise = new Bn(jC, 128, 128), this.accumulationQuad = new Qa(new gt({
45640
+ }), this.bluenoise = new Bn(ZC, 128, 128), this.accumulationQuad = new Qa(new gt({
45585
45641
  uniforms: {
45586
45642
  frame: {
45587
45643
  value: 0
@@ -45611,9 +45667,9 @@ class $C extends zn {
45611
45667
  }
45612
45668
  configureHalfResTargets() {
45613
45669
  if (this.firstFrame(), this.configuration.halfRes) {
45614
- this.depthDownsampleTarget = new ZC(this.width / 2, this.height / 2, 2), this.depthDownsampleTarget.textures[0].format = oc, this.depthDownsampleTarget.textures[0].type = Zi, this.depthDownsampleTarget.textures[0].minFilter = Dt, this.depthDownsampleTarget.textures[0].magFilter = Dt, this.depthDownsampleTarget.textures[0].depthBuffer = !1, this.depthDownsampleTarget.textures[1].format = Kt, this.depthDownsampleTarget.textures[1].type = Ht, this.depthDownsampleTarget.textures[1].minFilter = Dt, this.depthDownsampleTarget.textures[1].magFilter = Dt, this.depthDownsampleTarget.textures[1].depthBuffer = !1;
45670
+ this.depthDownsampleTarget = new KC(this.width / 2, this.height / 2, 2), this.depthDownsampleTarget.textures[0].format = oc, this.depthDownsampleTarget.textures[0].type = Zi, this.depthDownsampleTarget.textures[0].minFilter = Dt, this.depthDownsampleTarget.textures[0].magFilter = Dt, this.depthDownsampleTarget.textures[0].depthBuffer = !1, this.depthDownsampleTarget.textures[1].format = Kt, this.depthDownsampleTarget.textures[1].type = Ht, this.depthDownsampleTarget.textures[1].minFilter = Dt, this.depthDownsampleTarget.textures[1].magFilter = Dt, this.depthDownsampleTarget.textures[1].depthBuffer = !1;
45615
45671
  const e = {
45616
- ...GC
45672
+ ...QC
45617
45673
  };
45618
45674
  this.configuration.depthBufferType === bi.Reverse && (e.fragmentShader = `#define REVERSEDEPTH
45619
45675
  ` + e.fragmentShader), this.depthDownsampleQuad = new Qa(new gt(e));
@@ -45698,7 +45754,7 @@ class $C extends zn {
45698
45754
  configureAOPass(e = bi.Default, t = !1) {
45699
45755
  this.firstFrame(), this.samples = this.generateHemisphereSamples(this.configuration.aoSamples);
45700
45756
  const i = {
45701
- ...XC
45757
+ ...YC
45702
45758
  };
45703
45759
  i.fragmentShader = i.fragmentShader.replace("16", this.configuration.aoSamples).replace("16.0", this.configuration.aoSamples + ".0"), e === bi.Log ? i.fragmentShader = `#define LOGDEPTH
45704
45760
  ` + i.fragmentShader : e === bi.Reverse && (i.fragmentShader = `#define REVERSEDEPTH
@@ -45709,7 +45765,7 @@ class $C extends zn {
45709
45765
  configureDenoisePass(e = bi.Default, t = !1) {
45710
45766
  this.firstFrame(), this.samplesDenoise = this.generateDenoiseSamples(this.configuration.denoiseSamples, 11);
45711
45767
  const i = {
45712
- ...YC
45768
+ ...WC
45713
45769
  };
45714
45770
  i.fragmentShader = i.fragmentShader.replace("16", this.configuration.denoiseSamples), e === bi.Log ? i.fragmentShader = `#define LOGDEPTH
45715
45771
  ` + i.fragmentShader : e === bi.Reverse && (i.fragmentShader = `#define REVERSEDEPTH
@@ -45719,7 +45775,7 @@ class $C extends zn {
45719
45775
  configureEffectCompositer(e = bi.Default, t = !1) {
45720
45776
  this.firstFrame();
45721
45777
  const i = {
45722
- ...HC
45778
+ ...GC
45723
45779
  };
45724
45780
  e === bi.Log ? i.fragmentShader = `#define LOGDEPTH
45725
45781
  ` + i.fragmentShader : e === bi.Reverse && (i.fragmentShader = `#define REVERSEDEPTH
@@ -45816,7 +45872,7 @@ class $C extends zn {
45816
45872
  e === "Performance" ? (this.configuration.aoSamples = 8, this.configuration.denoiseSamples = 4, this.configuration.denoiseRadius = 12) : e === "Low" ? (this.configuration.aoSamples = 16, this.configuration.denoiseSamples = 4, this.configuration.denoiseRadius = 12) : e === "Medium" ? (this.configuration.aoSamples = 16, this.configuration.denoiseSamples = 8, this.configuration.denoiseRadius = 12) : e === "High" ? (this.configuration.aoSamples = 64, this.configuration.denoiseSamples = 8, this.configuration.denoiseRadius = 6) : e === "Ultra" && (this.configuration.aoSamples = 64, this.configuration.denoiseSamples = 16, this.configuration.denoiseRadius = 6);
45817
45873
  }
45818
45874
  }
45819
- class KC {
45875
+ class e3 {
45820
45876
  static getDeviceType() {
45821
45877
  const e = navigator.userAgent.toLowerCase(), t = /iphone|ipod|android.*mobile|blackberry|opera mini|windows phone/i.test(
45822
45878
  e
@@ -45826,7 +45882,7 @@ class KC {
45826
45882
  return t ? "mobile" : i ? "tablet" : "pc";
45827
45883
  }
45828
45884
  }
45829
- class JC {
45885
+ class t3 {
45830
45886
  constructor() {
45831
45887
  this.gl = null, this.specs = null, this.initWebGL(), this.detectSpecs();
45832
45888
  }
@@ -45970,7 +46026,7 @@ class JC {
45970
46026
  });
45971
46027
  }
45972
46028
  }
45973
- function e3() {
46029
+ function i3() {
45974
46030
  const s = new bd({
45975
46031
  side: pi
45976
46032
  });
@@ -45992,7 +46048,7 @@ function e3() {
45992
46048
  );
45993
46049
  }, s;
45994
46050
  }
45995
- function t3() {
46051
+ function n3() {
45996
46052
  const s = new Ii({
45997
46053
  colorWrite: !1,
45998
46054
  side: pi
@@ -46015,7 +46071,7 @@ function t3() {
46015
46071
  );
46016
46072
  }, s;
46017
46073
  }
46018
- const i3 = {
46074
+ const s3 = {
46019
46075
  edgeColor: new Ie(0),
46020
46076
  edgeOpacity: 0.6,
46021
46077
  // Reduced for subtlety, better perf
@@ -46033,14 +46089,14 @@ const i3 = {
46033
46089
  // Keep - good for creases
46034
46090
  enableObjectIdEdges: !1
46035
46091
  // Disable by default - most expensive (extra render pass)
46036
- }, n3 = `
46092
+ }, r3 = `
46037
46093
  varying vec2 vUv;
46038
46094
 
46039
46095
  void main() {
46040
46096
  vUv = uv;
46041
46097
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
46042
46098
  }
46043
- `, s3 = `
46099
+ `, a3 = `
46044
46100
  precision highp float;
46045
46101
 
46046
46102
  uniform sampler2D tDiffuse; // Color buffer (from main render)
@@ -46206,7 +46262,7 @@ void main() {
46206
46262
 
46207
46263
  gl_FragColor = vec4(finalColor, color.a);
46208
46264
  }
46209
- `, r3 = `
46265
+ `, o3 = `
46210
46266
  attribute float objectIndex;
46211
46267
  varying float vObjectIndex;
46212
46268
 
@@ -46214,7 +46270,7 @@ void main() {
46214
46270
  vObjectIndex = objectIndex;
46215
46271
  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
46216
46272
  }
46217
- `, a3 = `
46273
+ `, l3 = `
46218
46274
  precision highp float;
46219
46275
  varying float vObjectIndex;
46220
46276
 
@@ -46230,9 +46286,9 @@ void main() {
46230
46286
  gl_FragColor = vec4(packIndex(vObjectIndex), 1.0);
46231
46287
  }
46232
46288
  `;
46233
- class o3 extends zn {
46289
+ class c3 extends zn {
46234
46290
  constructor(e, t, i, n) {
46235
- super(), this.bypass = !1, this.scene = e, this.camera = t, this.resolution = i || new K(window.innerWidth, window.innerHeight), this.options = { ...i3, ...n };
46291
+ super(), this.bypass = !1, this.scene = e, this.camera = t, this.resolution = i || new K(window.innerWidth, window.innerHeight), this.options = { ...s3, ...n };
46236
46292
  const r = {
46237
46293
  format: Kt,
46238
46294
  type: Ht,
@@ -46265,9 +46321,9 @@ class o3 extends zn {
46265
46321
  this.resolution.x,
46266
46322
  this.resolution.y,
46267
46323
  r
46268
- ), this.normalMaterial = e3(), this.depthMaterial = t3(), this.objectIdMaterial = new gt({
46269
- vertexShader: r3,
46270
- fragmentShader: a3,
46324
+ ), this.normalMaterial = i3(), this.depthMaterial = n3(), this.objectIdMaterial = new gt({
46325
+ vertexShader: o3,
46326
+ fragmentShader: l3,
46271
46327
  side: pi
46272
46328
  }), this.edgeMaterial = new gt({
46273
46329
  uniforms: {
@@ -46290,8 +46346,8 @@ class o3 extends zn {
46290
46346
  enableNormalEdges: { value: this.options.enableNormalEdges },
46291
46347
  enableObjectIdEdges: { value: this.options.enableObjectIdEdges }
46292
46348
  },
46293
- vertexShader: n3,
46294
- fragmentShader: s3
46349
+ vertexShader: r3,
46350
+ fragmentShader: a3
46295
46351
  }), this.copyMaterial = new gt({
46296
46352
  uniforms: {
46297
46353
  tDiffuse: { value: null }
@@ -46362,9 +46418,9 @@ class o3 extends zn {
46362
46418
  }
46363
46419
  }
46364
46420
  new K(1024, 1024), new Ie(0);
46365
- class l3 {
46421
+ class h3 {
46366
46422
  constructor(e, t) {
46367
- this.renderer = e, this.viralViewerApi = t, this.gammaPass = null, this.ssaoPass = null, this.saoPass = null, this.smaaPass = null, this.ssaaPass = null, this.fxaaPass = null, this.taaPass = null, this.sobelPass = null, this.whitePass = null, this.shadowRemovalPass = null, this.outlinePass = null, this.screenSpaceEdgesPass = null, this.perfChecker = new JC(), this._whiteShader = {
46423
+ this.renderer = e, this.viralViewerApi = t, this.gammaPass = null, this.ssaoPass = null, this.saoPass = null, this.smaaPass = null, this.ssaaPass = null, this.fxaaPass = null, this.taaPass = null, this.sobelPass = null, this.whitePass = null, this.shadowRemovalPass = null, this.outlinePass = null, this.screenSpaceEdgesPass = null, this.perfChecker = new t3(), this._whiteShader = {
46368
46424
  uniforms: {
46369
46425
  tDiffuse: { value: null },
46370
46426
  shadowTexture: { value: null },
@@ -46437,7 +46493,7 @@ class l3 {
46437
46493
  //#region N8AOPass
46438
46494
  initn8aoPass(e, t) {
46439
46495
  //! need to optimize this base on performance
46440
- this.n8aoPass = new $C(e, t), this.n8aoPass.configuration.aoSamples = 16, this.n8aoPass.configuration.denoiseRadius = 16, this.n8aoPass.configuration.intensity = 5, this.n8aoPass.configuration.aoRadius = 10, this.n8aoPass.configuration.quality = "Low", this.n8aoPass.configuration.gammaCorrection = !1, this.n8aoPass.configuration.halfRes = !1, this.n8aoPass.configuration.distanceFalloff = 5, this.n8aoPass.configuration.accumulate = !1, this.n8aoPass.configuration.renderToScreen = !1, this.composer.addPass(this.n8aoPass);
46496
+ this.n8aoPass = new JC(e, t), this.n8aoPass.configuration.aoSamples = 16, this.n8aoPass.configuration.denoiseRadius = 16, this.n8aoPass.configuration.intensity = 5, this.n8aoPass.configuration.aoRadius = 10, this.n8aoPass.configuration.quality = "Low", this.n8aoPass.configuration.gammaCorrection = !1, this.n8aoPass.configuration.halfRes = !1, this.n8aoPass.configuration.distanceFalloff = 5, this.n8aoPass.configuration.accumulate = !1, this.n8aoPass.configuration.renderToScreen = !1, this.composer.addPass(this.n8aoPass);
46441
46497
  }
46442
46498
  enableN8AOPass() {
46443
46499
  this.n8aoPass && (this.n8aoPass.setDisplayMode("Combined"), this.n8aoPass.enabled = !0);
@@ -46508,7 +46564,7 @@ class l3 {
46508
46564
  * - Object ID discontinuity detection (object boundaries)
46509
46565
  */
46510
46566
  initScreenSpaceEdgesPass(e, t) {
46511
- this.screenSpaceEdgesPass = new o3(
46567
+ this.screenSpaceEdgesPass = new c3(
46512
46568
  e,
46513
46569
  t,
46514
46570
  new K(window.innerWidth, window.innerHeight),
@@ -46622,7 +46678,7 @@ class l3 {
46622
46678
  t,
46623
46679
  // TODO : investigate why this effect when render new model
46624
46680
  [this.viralViewerApi.viralScene.outlineModel]
46625
- ), this.outlinePass.edgeStrength = 5, this.outlinePass.edgeGlow = 0.4, this.outlinePass.edgeThickness = 2, this.outlinePass.pulsePeriod = 0, this.outlinePass.visibleEdgeColor.set(Ce.accent), this.outlinePass.hiddenEdgeColor.set(Ce.accent), this.outlinePass.enabled = !1, this.outlinePass.renderToScreen = !1, this.composer.addPass(this.outlinePass);
46681
+ ), this.outlinePass.edgeStrength = 5, this.outlinePass.edgeGlow = 0.4, this.outlinePass.edgeThickness = 2, this.outlinePass.pulsePeriod = 0, this.outlinePass.visibleEdgeColor.set(Ee.accent), this.outlinePass.hiddenEdgeColor.set(Ee.accent), this.outlinePass.enabled = !1, this.outlinePass.renderToScreen = !1, this.composer.addPass(this.outlinePass);
46626
46682
  }
46627
46683
  enableOutline() {
46628
46684
  this.outlinePass && (this.outlinePass.enabled = !0, this.outlinePass.renderToScreen = !0);
@@ -46632,7 +46688,7 @@ class l3 {
46632
46688
  }
46633
46689
  //#endregion
46634
46690
  }
46635
- class c3 {
46691
+ class d3 {
46636
46692
  constructor(e) {
46637
46693
  this.viralViewerApi = e, this.renderer = new vb({
46638
46694
  alpha: !0,
@@ -46648,7 +46704,7 @@ class c3 {
46648
46704
  console.log("Max Fragment Uniform Vectors ->", i), this.renderer.setPixelRatio(window.devicePixelRatio), this.renderer.setSize(
46649
46705
  this.viralViewerApi.targetElement.offsetWidth,
46650
46706
  this.viralViewerApi.targetElement.offsetHeight
46651
- ), this.renderer.outputColorSpace = Ei, this.renderer.shadowMap.enabled = !0, this.renderer.shadowMap.type = ds, this.renderer.shadowMap.autoUpdate = !1, this.renderer.shadowMap.needsUpdate = !0, this.renderer.info.autoReset = !1, this.viralViewerApi.targetElement.appendChild(this.renderer.domElement), this.viralViewerApi.options.enablePostProcessing !== !1 && (this.postProcessingRenderer = new l3(
46707
+ ), this.renderer.outputColorSpace = Ei, this.renderer.shadowMap.enabled = !0, this.renderer.shadowMap.type = ds, this.renderer.shadowMap.autoUpdate = !1, this.renderer.shadowMap.needsUpdate = !0, this.renderer.info.autoReset = !1, this.viralViewerApi.targetElement.appendChild(this.renderer.domElement), this.viralViewerApi.options.enablePostProcessing !== !1 && (this.postProcessingRenderer = new h3(
46652
46708
  this.renderer,
46653
46709
  this.viralViewerApi
46654
46710
  )), this.jitterOffsets = this.generateJitterOffsets(), this.viralViewerApi.emit(At.LOADED_RENDERER);
@@ -46756,7 +46812,7 @@ class c3 {
46756
46812
  return this.renderer.domElement.toDataURL("image/png");
46757
46813
  }
46758
46814
  }
46759
- class h3 {
46815
+ class u3 {
46760
46816
  // 5 seconds for cleanup
46761
46817
  constructor(e) {
46762
46818
  this.viralViewerApi = e, this.clock = new hb(), this.lastSpatialUpdateTime = 0, this.lastCleanupTime = 0, this.spatialUpdateInterval = 16, this.cleanupInterval = 5e3, this.isRainEnabled = !1;
@@ -46808,7 +46864,7 @@ class h3 {
46808
46864
  this.isRainEnabled = e, this.isRainEnabled && this.rainAnimation();
46809
46865
  }
46810
46866
  }
46811
- class d3 {
46867
+ class f3 {
46812
46868
  set(e, t) {
46813
46869
  localStorage[e] = t;
46814
46870
  }
@@ -46853,7 +46909,7 @@ class d3 {
46853
46909
  localStorage.clear();
46854
46910
  }
46855
46911
  }
46856
- class u3 {
46912
+ class p3 {
46857
46913
  constructor(e) {
46858
46914
  this.viralViewerApi = e, this.keydownQueuedEvents = [], this.keyupQueuedEvents = [], this.setupKeyPress();
46859
46915
  }
@@ -46901,7 +46957,7 @@ class u3 {
46901
46957
  }
46902
46958
  //#endregion
46903
46959
  }
46904
- class f3 {
46960
+ class m3 {
46905
46961
  constructor(e) {
46906
46962
  this.viralViewerApi = e, this.contextMenu = null, this.contextItems = [], this.injectContextMenu();
46907
46963
  }
@@ -46911,14 +46967,14 @@ class f3 {
46911
46967
  transition: background-color 0.3s ease;
46912
46968
  }
46913
46969
  .hover-element:hover {
46914
- background-color: ${Ce.hover};
46970
+ background-color: ${Ee.hover};
46915
46971
 
46916
46972
  }`, t = document.createElement("style");
46917
46973
  t.innerHTML = e, document.head.appendChild(t), this.viralViewerApi.targetElement && (this.contextMenu = document.createElement("div"), this.contextMenu.addEventListener("contextmenu", function(i) {
46918
46974
  i.preventDefault();
46919
46975
  }), this.contextMenu.setAttribute(
46920
46976
  "style",
46921
- `position: absolute;top:0px;left:0px;background-color: ${Ce.background};justify-content: center;display:none; z-index: 100; flex-direction:column; padding: 10px 0; border-radius:10px`
46977
+ `position: absolute;top:0px;left:0px;background-color: ${Ee.background};justify-content: center;display:none; z-index: 100; flex-direction:column; padding: 10px 0; border-radius:10px`
46922
46978
  ), this.viralViewerApi.targetElement.appendChild(this.contextMenu));
46923
46979
  }
46924
46980
  showContextMenu(e, t, i) {
@@ -46935,7 +46991,7 @@ class f3 {
46935
46991
  if (e.findIndex((c) => c == this.contextItems[i][0]) < 0)
46936
46992
  continue;
46937
46993
  const [n, r, a, o] = this.contextItems[i], l = Md.createElementFromHTML(
46938
- `<div class="hover-element" style="padding: 5px 10px; cursor: pointer; color:${Ce.primary}; display:flex; align-items:center">${a} <p style="margin:0px !important;padding-left:5px">${r}</p></div>`
46994
+ `<div class="hover-element" style="padding: 5px 10px; cursor: pointer; color:${Ee.primary}; display:flex; align-items:center">${a} <p style="margin:0px !important;padding-left:5px">${r}</p></div>`
46939
46995
  );
46940
46996
  l.addEventListener("click", (c) => {
46941
46997
  c.stopPropagation(), o(c);
@@ -46958,43 +47014,43 @@ const ol = {
46958
47014
  focus: (s, e) => `<svg xmlns="http://www.w3.org/2000/svg" fill=${e || ""} height=${s || 24} viewBox="0 -960 960 960" width="24"><path d="M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"/></svg>`,
46959
47015
  properties: (s, e) => `<svg xmlns="http://www.w3.org/2000/svg" fill=${e || ""} height=${s || 24} viewBox="0 -960 960 960" width="24"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"/></svg>`
46960
47016
  };
46961
- class p3 {
47017
+ class g3 {
46962
47018
  constructor(e) {
46963
- this.viralViewerApi = e, this.elementProperties = {}, this._sleepDebounceTimer = null, this._sleepDebounceDelay = 150, this.resizeObserver = new ResizeObserver(this.handleResize), this._hoverElementEnable = !0, this._selectElementEnable = !0, this.isShiftPressed = !1, this.windowHandler(), this.contextMenuEventHandler(), this.selectElementHandler2(), this.doubleClickElementHandler(), this.keyboardHandler(), this.cameraHandler(), this._visibilityManager = this.viralViewerApi.viralVisibilityManager;
47019
+ this.viralViewerApi = e, this.elementProperties = {}, this._sleepDebounceTimer = null, this._sleepDebounceDelay = 150, this.resizeObserver = null, this._hoverElementEnable = !0, this._selectElementEnable = !0, this.isShiftPressed = !1, this.windowHandler(), this.contextMenuEventHandler(), this.selectElementHandler2(), this.doubleClickElementHandler(), this.keyboardHandler(), this.cameraHandler(), this._visibilityManager = this.viralViewerApi.viralVisibilityManager;
46964
47020
  }
46965
47021
  contextMenuEventHandler() {
46966
47022
  this.viralViewerApi.viralContextMenu && (this.viralViewerApi.viralContextMenu.addContextItem(
46967
47023
  0,
46968
47024
  "Show all elements",
46969
- ol.showAll(void 0, Ce.primary),
47025
+ ol.showAll(void 0, Ee.primary),
46970
47026
  (e) => {
46971
47027
  this._visibilityManager.showAll2(), this.viralViewerApi.viralContextMenu.hideContextMenu();
46972
47028
  }
46973
47029
  ), this.viralViewerApi.viralContextMenu.addContextItem(
46974
47030
  1,
46975
47031
  "Isolate",
46976
- ol.isolate(void 0, Ce.primary),
47032
+ ol.isolate(void 0, Ee.primary),
46977
47033
  (e) => {
46978
47034
  this._visibilityManager.isolate2(), this.viralViewerApi.viralContextMenu.hideContextMenu();
46979
47035
  }
46980
47036
  ), this.viralViewerApi.viralContextMenu.addContextItem(
46981
47037
  2,
46982
47038
  "Hide",
46983
- ol.hide(void 0, Ce.primary),
47039
+ ol.hide(void 0, Ee.primary),
46984
47040
  (e) => {
46985
47041
  this._visibilityManager.hide2(), this.viralViewerApi.viralContextMenu.hideContextMenu();
46986
47042
  }
46987
47043
  ), this.viralViewerApi.viralContextMenu.addContextItem(
46988
47044
  3,
46989
47045
  "Focus",
46990
- ol.focus(void 0, Ce.primary),
47046
+ ol.focus(void 0, Ee.primary),
46991
47047
  (e) => {
46992
47048
  this._visibilityManager.zoomTo(), this.viralViewerApi.viralContextMenu.hideContextMenu();
46993
47049
  }
46994
47050
  ), this.viralViewerApi.viralContextMenu.addContextItem(
46995
47051
  4,
46996
47052
  "Properties",
46997
- ol.properties(void 0, Ce.secondary),
47053
+ ol.properties(void 0, Ee.secondary),
46998
47054
  (e) => {
46999
47055
  this.viralViewerApi.viralDraggableModal.show(), this.viralViewerApi.viralContextMenu.hideContextMenu();
47000
47056
  }
@@ -47034,18 +47090,16 @@ class p3 {
47034
47090
  }
47035
47091
  ));
47036
47092
  }
47037
- //#endregion
47038
- //#region Window
47039
47093
  windowHandler() {
47040
47094
  window.onresize = () => {
47041
47095
  this.viralViewerApi.viralCamera.resizeCanvas();
47042
- }, this.viralViewerApi.options.container.onresize = () => {
47043
- this.viralViewerApi.viralCamera.resizeCanvas();
47044
- };
47096
+ }, this.resizeObserver = new ResizeObserver((e) => {
47097
+ this.viralViewerApi.viralCamera && this.viralViewerApi.viralCamera.resizeCanvas();
47098
+ }), this.resizeObserver.observe(this.viralViewerApi.options.container);
47045
47099
  }
47046
- // Callback function to handle resize events
47047
- handleResize(e) {
47048
- this.viralViewerApi.viralCamera && this.viralViewerApi.viralCamera.resizeCanvas();
47100
+ // Call this when disposing the viewer to prevent memory leaks
47101
+ disposeWindowHandler() {
47102
+ this.resizeObserver && (this.resizeObserver.disconnect(), this.resizeObserver = null);
47049
47103
  }
47050
47104
  hoverElementHandler() {
47051
47105
  const e = new Ub(
@@ -47097,7 +47151,7 @@ class p3 {
47097
47151
  var n;
47098
47152
  if (e !== null && performance.now() - e < t) {
47099
47153
  let o = this.viralViewerApi.viralCamera.clientToWorld();
47100
- if (console.log(o), o && (o == null ? void 0 : o.length) > 0)
47154
+ if (o && (o == null ? void 0 : o.length) > 0)
47101
47155
  if ((n = this.viralViewerApi.viralSectionBox) != null && n.isEnabling) {
47102
47156
  let l = o.find(
47103
47157
  (c) => c.object.name == "Clipping Plane"
@@ -47225,7 +47279,7 @@ class p3 {
47225
47279
  }
47226
47280
  //#endregion
47227
47281
  }
47228
- function m3() {
47282
+ function v3() {
47229
47283
  class s {
47230
47284
  constructor() {
47231
47285
  this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
@@ -47310,8 +47364,8 @@ function m3() {
47310
47364
  }), self.postMessage(a);
47311
47365
  };
47312
47366
  }
47313
- const g3 = m3;
47314
- class v3 extends Q {
47367
+ const x3 = v3;
47368
+ class b3 extends Q {
47315
47369
  constructor() {
47316
47370
  super(), this._viralMeshes = [], this._viralInstancedMeshes = [];
47317
47371
  }
@@ -47352,15 +47406,15 @@ class v3 extends Q {
47352
47406
  this.geometry = null, this.removeFromParent();
47353
47407
  }
47354
47408
  }
47355
- class x3 {
47409
+ class y3 {
47356
47410
  constructor() {
47357
- this.modelId = -1, this.elements = [], this.materials = [], this.mapMaterialsToMaterialManager = new jr(), this.seperateModel = new v3();
47411
+ this.modelId = -1, this.elements = [], this.materials = [], this.mapMaterialsToMaterialManager = new jr(), this.seperateModel = new b3();
47358
47412
  }
47359
47413
  dispose() {
47360
47414
  this.elements = [], this.materials = [], this.mapMaterialsToMaterialManager = new jr(), this.seperateModel.dispose();
47361
47415
  }
47362
47416
  }
47363
- function b3() {
47417
+ function _3() {
47364
47418
  class s {
47365
47419
  constructor() {
47366
47420
  this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
@@ -47451,8 +47505,8 @@ function b3() {
47451
47505
  }), self.postMessage(a);
47452
47506
  };
47453
47507
  }
47454
- const y3 = b3;
47455
- class _3 {
47508
+ const w3 = _3;
47509
+ class S3 {
47456
47510
  constructor() {
47457
47511
  this.MIN_VERTEX_INSTANCES_FOR_INSTANCING = 1e3, this.MIN_INSTANCES_FOR_INSTANCING = 3, this.MAX_DRAW_CALLS = 25, this.MIN_INSTANCED_VERTEX_RATIO = 0.6, this.HIGH_VERTEX_THRESHOLD = 500;
47458
47512
  }
@@ -47635,18 +47689,18 @@ class _3 {
47635
47689
  }
47636
47690
  }
47637
47691
  }
47638
- const w3 = new _3();
47692
+ const M3 = new S3();
47639
47693
  class Ab {
47640
47694
  // Or 5K objects
47641
47695
  //#endregion
47642
47696
  constructor(e) {
47643
47697
  this.viralViewerApi = e, this.lastRenderTime = 0, this.elementBuffer = /* @__PURE__ */ new Map(), this.BATCH_THRESHOLD_VERTICES = 1e5, this.BATCH_THRESHOLD_OBJECTS = 5e3;
47644
- const t = new Blob([`(${g3})()`]), i = URL.createObjectURL(t);
47698
+ const t = new Blob([`(${x3})()`]), i = URL.createObjectURL(t);
47645
47699
  this.workerPool = new Ar(
47646
47700
  navigator.hardwareConcurrency || this.viralViewerApi.options.numberOfWorker,
47647
47701
  i
47648
47702
  );
47649
- const n = new Blob([`(${y3})()`]), r = URL.createObjectURL(n);
47703
+ const n = new Blob([`(${w3})()`]), r = URL.createObjectURL(n);
47650
47704
  this.workerPool2 = new Ar(
47651
47705
  this.viralViewerApi.options.numberOfWorker,
47652
47706
  r
@@ -47659,7 +47713,7 @@ class Ab {
47659
47713
  */
47660
47714
  initial(e) {
47661
47715
  console.log(e);
47662
- let t = new x3();
47716
+ let t = new y3();
47663
47717
  t.modelId = this.viralViewerApi.viralScene.mainModels.length, this.viralViewerApi.viralScene.mainModels.push(t);
47664
47718
  let i = this.viralViewerApi.viralScene.mainModels.length - 1;
47665
47719
  for (let n = 0; n < e.length; n++) {
@@ -47699,7 +47753,7 @@ class Ab {
47699
47753
  */
47700
47754
  loadElement(e, t, i = () => {
47701
47755
  }, n = null) {
47702
- const { highDuplicationElements: r, lowDuplicationElements: a } = w3.analyze(t), o = a.map((p) => p.element), l = r.map((p) => p.element), c = o.length > 0, h = l.length > 0;
47756
+ const { highDuplicationElements: r, lowDuplicationElements: a } = M3.analyze(t), o = a.map((p) => p.element), l = r.map((p) => p.element), c = o.length > 0, h = l.length > 0;
47703
47757
  if (!c && !h) {
47704
47758
  i();
47705
47759
  return;
@@ -47824,7 +47878,7 @@ class Ab {
47824
47878
  * Uses onBeforeCompile to inject custom shader code for RGBA vertex colors
47825
47879
  */
47826
47880
  createOptimizedMaterial(e) {
47827
- const t = KC.getDeviceType() == "pc", i = (a, o = 2) => {
47881
+ const t = e3.getDeviceType() == "pc", i = (a, o = 2) => {
47828
47882
  if (!a)
47829
47883
  return 16777215;
47830
47884
  const l = a.clone();
@@ -47997,7 +48051,7 @@ class Ab {
47997
48051
  }
47998
48052
  //#endregion
47999
48053
  }
48000
- class S3 {
48054
+ class A3 {
48001
48055
  constructor(e) {
48002
48056
  this.viralViewerApi = e, this.elements = [], this._loadElementPatchWorker = new Ab(e);
48003
48057
  }
@@ -48094,7 +48148,7 @@ class S3 {
48094
48148
  const i = await (await this.viralViewerApi.viralDataManager.gzipFetch(
48095
48149
  e
48096
48150
  )).arrayBuffer(), n = new Uint8Array(i);
48097
- return zR.parseBuffer(n);
48151
+ return VR.parseBuffer(n);
48098
48152
  }
48099
48153
  async getTracking(e) {
48100
48154
  return await (await this.viralViewerApi.viralDataManager.normalFetch(
@@ -48115,7 +48169,7 @@ class S3 {
48115
48169
  }
48116
48170
  //#endregion
48117
48171
  }
48118
- var M3 = { 746: (s, e, t) => {
48172
+ var T3 = { 746: (s, e, t) => {
48119
48173
  t.d(e, { Z: () => i });
48120
48174
  const i = `
48121
48175
  precision highp float;
@@ -49034,7 +49088,7 @@ function Pn(s) {
49034
49088
  if (e !== void 0)
49035
49089
  return e.exports;
49036
49090
  var t = pv[s] = { exports: {} };
49037
- return M3[s](t, t.exports, Pn), t.exports;
49091
+ return T3[s](t, t.exports, Pn), t.exports;
49038
49092
  }
49039
49093
  Pn.d = (s, e) => {
49040
49094
  for (var t in e)
@@ -49042,8 +49096,8 @@ Pn.d = (s, e) => {
49042
49096
  }, Pn.o = (s, e) => Object.prototype.hasOwnProperty.call(s, e);
49043
49097
  var Ft = {};
49044
49098
  (() => {
49045
- Pn.d(Ft, { HY: () => c, K8: () => i, vF: () => g, jM: () => m, st: () => b, J7: () => ht, KV: () => Te, Tl: () => ee, gv: () => mt, LR: () => ce, C9: () => I, zF: () => Ee, XL: () => ge, uv: () => ve, vs: () => ue, YJ: () => N, i9: () => l, uD: () => o, lV: () => r, Sp: () => n, RJ: () => Ss, SB: () => kn, TL: () => x, oe: () => y, AB: () => a, dZ: () => _, Gf: () => le, gK: () => w, BT: () => S, bt: () => T, sX: () => E });
49046
- const s = (e = { AdditiveBlending: () => Hl, Box3: () => ft, BufferAttribute: () => ot, BufferGeometry: () => dt, CanvasTexture: () => np, Color: () => Ie, DataTexture: () => Bn, EventDispatcher: () => Ws, Frustum: () => Oo, GLSL3: () => ep, LessEqualDepth: () => la, LineBasicMaterial: () => dn, LineSegments: () => Ci, LinearFilter: () => jt, Matrix4: () => Pe, NearestFilter: () => Dt, NoBlending: () => $t, Object3D: () => Lt, Points: () => _o, RGBAFormat: () => Kt, RawShaderMaterial: () => hm, Scene: () => lc, ShaderMaterial: () => gt, Sphere: () => ni, Texture: () => ci, Uint8BufferAttribute: () => U1, Vector2: () => K, Vector3: () => P, Vector4: () => Mt, WebGLRenderTarget: () => Tt }, t = {}, Pn.d(t, e), t);
49099
+ Pn.d(Ft, { HY: () => c, K8: () => i, vF: () => g, jM: () => m, st: () => b, J7: () => ht, KV: () => Te, Tl: () => ee, gv: () => mt, LR: () => ce, C9: () => I, zF: () => Pe, XL: () => ge, uv: () => ve, vs: () => ue, YJ: () => N, i9: () => l, uD: () => o, lV: () => r, Sp: () => n, RJ: () => Ss, SB: () => kn, TL: () => x, oe: () => y, AB: () => a, dZ: () => _, Gf: () => le, gK: () => w, BT: () => S, bt: () => T, sX: () => E });
49100
+ const s = (e = { AdditiveBlending: () => Hl, Box3: () => ft, BufferAttribute: () => ot, BufferGeometry: () => dt, CanvasTexture: () => np, Color: () => Ie, DataTexture: () => Bn, EventDispatcher: () => Ws, Frustum: () => Oo, GLSL3: () => ep, LessEqualDepth: () => la, LineBasicMaterial: () => dn, LineSegments: () => Ci, LinearFilter: () => jt, Matrix4: () => Ce, NearestFilter: () => Dt, NoBlending: () => $t, Object3D: () => Lt, Points: () => _o, RGBAFormat: () => Kt, RawShaderMaterial: () => hm, Scene: () => lc, ShaderMaterial: () => gt, Sphere: () => ni, Texture: () => ci, Uint8BufferAttribute: () => U1, Vector2: () => K, Vector3: () => P, Vector4: () => Mt, WebGLRenderTarget: () => Tt }, t = {}, Pn.d(t, e), t);
49047
49101
  var e, t, i, n, r, a, o, l;
49048
49102
  class c extends s.ShaderMaterial {
49049
49103
  constructor() {
@@ -49375,7 +49429,7 @@ var Ft = {};
49375
49429
  }
49376
49430
  }
49377
49431
  ge.idCount = 0;
49378
- class Ee {
49432
+ class Pe {
49379
49433
  constructor(A, R, O, F, q) {
49380
49434
  this.loader = A, this.boundingBox = R, this.tightBoundingBox = O, this.offset = F, this.xhrRequest = q, this.disposed = !1, this.needsUpdate = !0, this.octreeDir = "", this.hierarchyStepSize = -1, this.nodes = {}, this.numNodesLoading = 0, this.maxNumNodesLoading = 3, this.spacing = 0, this.pointAttributes = new mt([]), this.projection = null, this.url = null;
49381
49435
  }
@@ -50162,7 +50216,7 @@ var Ft = {};
50162
50216
  ze.min.set(at, wt, Nt), ze.max.set(Yt, zt, tt);
50163
50217
  }
50164
50218
  return Ze.min.sub(je), Ze.max.sub(je), ze.min.sub(je), ze.max.sub(je), { offset: je, boundingBox: Ze, tightBoundingBox: ze };
50165
- }(Be), $ = new lt({ getUrl: De, version: Be.version, boundingBox: D, scale: Be.scale, xhrRequest: Me }), G = new Ee($, D, Y, xt, Me);
50219
+ }(Be), $ = new lt({ getUrl: De, version: Be.version, boundingBox: D, scale: Be.scale, xhrRequest: Me }), G = new Pe($, D, Y, xt, Me);
50166
50220
  G.url = Se, G.octreeDir = Be.octreeDir, G.needsUpdate = !0, G.spacing = Be.spacing, G.hierarchyStepSize = Be.hierarchyStepSize, G.projection = Be.projection, G.offset = xt, G.pointAttributes = new mt(Be.pointAttributes), console.log(G.pointAttributes);
50167
50221
  const W = {}, xe = new le(Be.version);
50168
50222
  return function(ye, He, Ue, Ze) {
@@ -50305,9 +50359,9 @@ Ft.XL;
50305
50359
  Ft.uv;
50306
50360
  Ft.vs;
50307
50361
  Ft.YJ;
50308
- var A3 = Ft.i9;
50362
+ var E3 = Ft.i9;
50309
50363
  Ft.uD;
50310
- var T3 = Ft.lV, E3 = Ft.Sp, P3 = Ft.RJ;
50364
+ var P3 = Ft.lV, C3 = Ft.Sp, I3 = Ft.RJ;
50311
50365
  Ft.SB;
50312
50366
  Ft.TL;
50313
50367
  Ft.oe;
@@ -50318,9 +50372,9 @@ Ft.gK;
50318
50372
  Ft.BT;
50319
50373
  Ft.bt;
50320
50374
  Ft.sX;
50321
- class C3 {
50375
+ class R3 {
50322
50376
  constructor(e) {
50323
- this.viralViewerApi = e, this.potree = new P3(), this.pointClouds = [];
50377
+ this.viralViewerApi = e, this.potree = new I3(), this.pointClouds = [];
50324
50378
  }
50325
50379
  /**
50326
50380
  *
@@ -50335,7 +50389,7 @@ class C3 {
50335
50389
  this.viralViewerApi.viralRenderer.postProcessingRenderer.disableOutline(), this.potree.pointBudget = n, this.potree.loadPointCloudCustom(e, t, i).then((a) => {
50336
50390
  var d;
50337
50391
  let o = a.material;
50338
- o.size = 1, o.pointSizeType = E3.ADAPTIVE, o.shape = T3.CIRCLE, o.pointColorType = A3.RGB, o.inputColorEncoding = 1, o.outputColorEncoding = 1, console.log(a.boundingBox);
50392
+ o.size = 1, o.pointSizeType = C3.ADAPTIVE, o.shape = P3.CIRCLE, o.pointColorType = E3.RGB, o.inputColorEncoding = 1, o.outputColorEncoding = 1, console.log(a.boundingBox);
50339
50393
  let l = new P(0, -1.5, 3), c = new hn(-Math.PI / 2, 0, 0), h = new P(2, 2, 2);
50340
50394
  a.position.copy(l), a.rotation.copy(c), a.scale.copy(h), this.viralViewerApi.viralScene.addModel(a), this.viralViewerApi.viralScene.selectables.push(a), this.pointClouds.push(a), this.viralViewerApi.viralCamera.camera && ((d = this.viralViewerApi.viralCamera.cameraControls) == null || d.fitToBox(
50341
50395
  a.boundingBox,
@@ -50344,7 +50398,7 @@ class C3 {
50344
50398
  });
50345
50399
  }
50346
50400
  }
50347
- class I3 {
50401
+ class D3 {
50348
50402
  constructor(e) {
50349
50403
  this.viralViewerApi = e, this.elements = [], this._loadElementBatchWorker = new Ab(e);
50350
50404
  }
@@ -50451,7 +50505,7 @@ class I3 {
50451
50505
  u.Offset.Z,
50452
50506
  u.Offset.Y,
50453
50507
  1
50454
- ], g = new Pe();
50508
+ ], g = new Ce();
50455
50509
  g.fromArray(v), p.applyMatrix4(g);
50456
50510
  const m = new _i(p.geometry), b = new Ci(
50457
50511
  m,
@@ -50526,7 +50580,7 @@ class I3 {
50526
50580
  l.Offset.Z,
50527
50581
  l.Offset.Y,
50528
50582
  1
50529
- ], u = new Pe();
50583
+ ], u = new Ce();
50530
50584
  u.fromArray(d), h.applyMatrix4(u);
50531
50585
  var a = h.getAttribute("position").array;
50532
50586
  n = n.concat(Array.from(a)), h.dispose();
@@ -50848,7 +50902,7 @@ class I3 {
50848
50902
  ), this.viralViewerApi.viralMaterialManager.mergeMaterials = [], this.viralViewerApi.viralVisibilityManager.disableGroundShadow(), this.viralViewerApi.viralRenderer.render(), this.viralViewerApi.viralDataManager.dataTree = [], this.viralViewerApi.viralScene.selectables = [];
50849
50903
  }
50850
50904
  }
50851
- class R3 {
50905
+ class L3 {
50852
50906
  constructor(e) {
50853
50907
  this.viralViewerApi = e, this.objectLoader = new aM(), this.gltfLoader = new VP();
50854
50908
  }
@@ -50862,9 +50916,9 @@ class R3 {
50862
50916
  this.gltfLoader.load(e, t, i, n);
50863
50917
  }
50864
50918
  }
50865
- class D3 {
50919
+ class O3 {
50866
50920
  constructor(e) {
50867
- this.viralViewerApi = e, this.revitLoader = new I3(this.viralViewerApi), this.pointCloudLoader = new C3(this.viralViewerApi), this.threeLoader = new R3(this.viralViewerApi), this.flatbufferLoader = new S3(this.viralViewerApi);
50921
+ this.viralViewerApi = e, this.revitLoader = new D3(this.viralViewerApi), this.pointCloudLoader = new R3(this.viralViewerApi), this.threeLoader = new L3(this.viralViewerApi), this.flatbufferLoader = new A3(this.viralViewerApi);
50868
50922
  }
50869
50923
  }
50870
50924
  var Rl = function() {
@@ -50919,24 +50973,24 @@ Rl.Panel = function(s, e, t) {
50919
50973
  }
50920
50974
  };
50921
50975
  };
50922
- class L3 {
50976
+ class N3 {
50923
50977
  constructor(e) {
50924
50978
  this.viralViewerApi = e, this.stats = null, this.viralViewerApi.targetElement && (this.stats = Rl(), this.stats.showPanel(0), this.viralViewerApi.targetElement.appendChild(this.stats.dom));
50925
50979
  }
50926
50980
  }
50927
- const Tb = 0, O3 = 1, N3 = 2, mv = 2, qu = 1.25, gv = 1, Dl = 6 * 4 + 4 + 4, Td = 65535, B3 = Math.pow(2, -24), Zu = Symbol("SKIP_GENERATION");
50928
- function U3(s) {
50981
+ const Tb = 0, B3 = 1, U3 = 2, mv = 2, qu = 1.25, gv = 1, Dl = 6 * 4 + 4 + 4, Td = 65535, F3 = Math.pow(2, -24), Zu = Symbol("SKIP_GENERATION");
50982
+ function z3(s) {
50929
50983
  return s.index ? s.index.count : s.attributes.position.count;
50930
50984
  }
50931
50985
  function Pr(s) {
50932
- return U3(s) / 3;
50986
+ return z3(s) / 3;
50933
50987
  }
50934
- function F3(s, e = ArrayBuffer) {
50988
+ function k3(s, e = ArrayBuffer) {
50935
50989
  return s > 65535 ? new Uint32Array(new e(4 * s)) : new Uint16Array(new e(2 * s));
50936
50990
  }
50937
- function z3(s, e) {
50991
+ function V3(s, e) {
50938
50992
  if (!s.index) {
50939
- const t = s.attributes.position.count, i = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, n = F3(t, i);
50993
+ const t = s.attributes.position.count, i = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, n = k3(t, i);
50940
50994
  s.setIndex(new ot(n, 1));
50941
50995
  for (let r = 0; r < t; r++)
50942
50996
  n[r] = r;
@@ -50967,7 +51021,7 @@ function Pb(s, e) {
50967
51021
  }
50968
51022
  return t;
50969
51023
  }
50970
- function k3(s, e) {
51024
+ function X3(s, e) {
50971
51025
  const t = Pr(s), i = Pb(s, e).sort((a, o) => a.offset - o.offset), n = i[i.length - 1];
50972
51026
  n.count = Math.min(t - n.offset, n.count);
50973
51027
  let r = 0;
@@ -50985,7 +51039,7 @@ function $u(s, e, t, i, n) {
50985
51039
  }
50986
51040
  i[0] = r, i[1] = a, i[2] = o, i[3] = l, i[4] = c, i[5] = h, n[0] = d, n[1] = u, n[2] = f, n[3] = p, n[4] = v, n[5] = g;
50987
51041
  }
50988
- function V3(s, e = null, t = null, i = null) {
51042
+ function H3(s, e = null, t = null, i = null) {
50989
51043
  const n = s.attributes.position, r = s.index ? s.index.array : null, a = Pr(s), o = n.normalized;
50990
51044
  let l;
50991
51045
  e === null ? l = new Float32Array(a * 6) : l = e, t = t || 0, i = i || a;
@@ -51005,7 +51059,7 @@ function V3(s, e = null, t = null, i = null) {
51005
51059
  let E = y;
51006
51060
  _ > E && (E = _), w > E && (E = w);
51007
51061
  const S = (E - T) / 2, M = x * 2;
51008
- l[v + M + 0] = T + S, l[v + M + 1] = S + (Math.abs(T) + S) * B3;
51062
+ l[v + M + 0] = T + S, l[v + M + 1] = S + (Math.abs(T) + S) * F3;
51009
51063
  }
51010
51064
  }
51011
51065
  return l;
@@ -51041,20 +51095,20 @@ function ll(s) {
51041
51095
  const e = s[3] - s[0], t = s[4] - s[1], i = s[5] - s[2];
51042
51096
  return 2 * (e * t + t * i + i * e);
51043
51097
  }
51044
- const Ds = 32, X3 = (s, e) => s.candidate - e.candidate, sr = new Array(Ds).fill().map(() => ({
51098
+ const Ds = 32, Y3 = (s, e) => s.candidate - e.candidate, sr = new Array(Ds).fill().map(() => ({
51045
51099
  count: 0,
51046
51100
  bounds: new Float32Array(6),
51047
51101
  rightCacheBounds: new Float32Array(6),
51048
51102
  leftCacheBounds: new Float32Array(6),
51049
51103
  candidate: 0
51050
51104
  })), wh = new Float32Array(6);
51051
- function H3(s, e, t, i, n, r) {
51105
+ function G3(s, e, t, i, n, r) {
51052
51106
  let a = -1, o = 0;
51053
51107
  if (r === Tb)
51054
51108
  a = vv(e), a !== -1 && (o = (e[a] + e[a + 3]) / 2);
51055
- else if (r === O3)
51056
- a = vv(s), a !== -1 && (o = Y3(t, i, n, a));
51057
- else if (r === N3) {
51109
+ else if (r === B3)
51110
+ a = vv(s), a !== -1 && (o = W3(t, i, n, a));
51111
+ else if (r === U3) {
51058
51112
  const l = ll(s);
51059
51113
  let c = qu * n;
51060
51114
  const h = i * 6, d = (i + n) * 6;
@@ -51076,7 +51130,7 @@ function H3(s, e, t, i, n, r) {
51076
51130
  E[S] = 1 / 0, E[S + 3] = -1 / 0, T[S] = 1 / 0, T[S + 3] = -1 / 0, w[S] = 1 / 0, w[S + 3] = -1 / 0;
51077
51131
  _h(y, t, w);
51078
51132
  }
51079
- m.sort(X3);
51133
+ m.sort(Y3);
51080
51134
  let x = n;
51081
51135
  for (let y = 0; y < x; y++) {
51082
51136
  const _ = m[y];
@@ -51136,7 +51190,7 @@ function H3(s, e, t, i, n, r) {
51136
51190
  console.warn(`MeshBVH: Invalid build strategy value ${r} used.`);
51137
51191
  return { axis: a, pos: o };
51138
51192
  }
51139
- function Y3(s, e, t, i) {
51193
+ function W3(s, e, t, i) {
51140
51194
  let n = 0;
51141
51195
  for (let r = e, a = e + t; r < a; r++)
51142
51196
  n += s[r * 6 + i * 2];
@@ -51147,7 +51201,7 @@ class Ku {
51147
51201
  this.boundingData = new Float32Array(6);
51148
51202
  }
51149
51203
  }
51150
- function G3(s, e, t, i, n, r) {
51204
+ function Q3(s, e, t, i, n, r) {
51151
51205
  let a = i, o = i + n - 1;
51152
51206
  const l = r.pos, c = r.axis * 2;
51153
51207
  for (; ; ) {
@@ -51169,7 +51223,7 @@ function G3(s, e, t, i, n, r) {
51169
51223
  return a;
51170
51224
  }
51171
51225
  }
51172
- function W3(s, e, t, i, n, r) {
51226
+ function j3(s, e, t, i, n, r) {
51173
51227
  let a = i, o = i + n - 1;
51174
51228
  const l = r.pos, c = r.axis * 2;
51175
51229
  for (; ; ) {
@@ -51208,11 +51262,11 @@ function Cb(s, e) {
51208
51262
  return e[s + 7];
51209
51263
  }
51210
51264
  let Ib, Sl, Wh, Rb;
51211
- const Q3 = Math.pow(2, 32);
51265
+ const q3 = Math.pow(2, 32);
51212
51266
  function up(s) {
51213
51267
  return "count" in s ? 1 : 1 + up(s.left) + up(s.right);
51214
51268
  }
51215
- function j3(s, e, t) {
51269
+ function Z3(s, e, t) {
51216
51270
  return Ib = new Float32Array(t), Sl = new Uint32Array(t), Wh = new Uint16Array(t), Rb = new Uint8Array(t), fp(s, e);
51217
51271
  }
51218
51272
  function fp(s, e) {
@@ -51235,18 +51289,18 @@ function fp(s, e) {
51235
51289
  else {
51236
51290
  const a = e.left, o = e.right, l = e.splitAxis;
51237
51291
  let c;
51238
- if (c = fp(s + Dl, a), c / 4 > Q3)
51292
+ if (c = fp(s + Dl, a), c / 4 > q3)
51239
51293
  throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");
51240
51294
  return Sl[t + 6] = c / 4, c = fp(c, o), Sl[t + 7] = l, c;
51241
51295
  }
51242
51296
  }
51243
- function q3(s, e) {
51297
+ function $3(s, e) {
51244
51298
  const t = (s.index ? s.index.count : s.attributes.position.count) / 3, i = t > 2 ** 16, n = i ? 4 : 2, r = e ? new SharedArrayBuffer(t * n) : new ArrayBuffer(t * n), a = i ? new Uint32Array(r) : new Uint16Array(r);
51245
51299
  for (let o = 0, l = a.length; o < l; o++)
51246
51300
  a[o] = o;
51247
51301
  return a;
51248
51302
  }
51249
- function Z3(s, e, t, i, n) {
51303
+ function K3(s, e, t, i, n) {
51250
51304
  const {
51251
51305
  maxDepth: r,
51252
51306
  verbose: a,
@@ -51254,7 +51308,7 @@ function Z3(s, e, t, i, n) {
51254
51308
  strategy: l,
51255
51309
  onProgress: c,
51256
51310
  indirect: h
51257
- } = n, d = s._indirectBuffer, u = s.geometry, f = u.index ? u.index.array : null, p = h ? W3 : G3, v = Pr(u), g = new Float32Array(6);
51311
+ } = n, d = s._indirectBuffer, u = s.geometry, f = u.index ? u.index.array : null, p = h ? j3 : Q3, v = Pr(u), g = new Float32Array(6);
51258
51312
  let m = !1;
51259
51313
  const b = new Ku();
51260
51314
  return $u(e, t, i, b.boundingData, g), y(b, t, i, g), b;
@@ -51264,7 +51318,7 @@ function Z3(s, e, t, i, n) {
51264
51318
  function y(_, w, T, E = null, S = 0) {
51265
51319
  if (!m && S >= r && (m = !0, a && (console.warn(`MeshBVH: Max depth of ${r} reached when generating BVH. Consider increasing maxDepth.`), console.warn(u))), T <= o || S >= r)
51266
51320
  return x(w + T), _.offset = w, _.count = T, _;
51267
- const M = H3(_.boundingData, E, e, w, T, l);
51321
+ const M = G3(_.boundingData, E, e, w, T, l);
51268
51322
  if (M.axis === -1)
51269
51323
  return x(w + T), _.offset = w, _.count = T, _;
51270
51324
  const C = p(d, f, e, w, T, M);
@@ -51280,15 +51334,15 @@ function Z3(s, e, t, i, n) {
51280
51334
  return _;
51281
51335
  }
51282
51336
  }
51283
- function $3(s, e) {
51337
+ function J3(s, e) {
51284
51338
  const t = s.geometry;
51285
- e.indirect && (s._indirectBuffer = q3(t, e.useSharedArrayBuffer), k3(t, e.range) && !e.verbose && console.warn(
51339
+ e.indirect && (s._indirectBuffer = $3(t, e.useSharedArrayBuffer), X3(t, e.range) && !e.verbose && console.warn(
51286
51340
  'MeshBVH: Provided geometry contains groups or a range that do not fully span the vertex contents while using the "indirect" option. BVH may incorrectly report intersections on unrendered portions of the geometry.'
51287
- )), s._indirectBuffer || z3(t, e);
51288
- const i = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, n = Eb(t, e.range), r = V3(t, null, n[0].offset, n[0].count), a = e.indirect ? n : Pb(t, e.range);
51341
+ )), s._indirectBuffer || V3(t, e);
51342
+ const i = e.useSharedArrayBuffer ? SharedArrayBuffer : ArrayBuffer, n = Eb(t, e.range), r = H3(t, null, n[0].offset, n[0].count), a = e.indirect ? n : Pb(t, e.range);
51289
51343
  s._roots = a.map((o) => {
51290
- const l = Z3(s, r, o.offset, o.count, e), c = up(l), h = new i(Dl * c);
51291
- return j3(0, l, h), h;
51344
+ const l = K3(s, r, o.offset, o.count, e), c = up(l), h = new i(Dl * c);
51345
+ return Z3(0, l, h), h;
51292
51346
  });
51293
51347
  }
51294
51348
  class Gs {
@@ -51330,7 +51384,7 @@ Gs.prototype.setFromBox = function() {
51330
51384
  this.min = a, this.max = o;
51331
51385
  };
51332
51386
  }();
51333
- const K3 = function() {
51387
+ const eI = function() {
51334
51388
  const s = new P(), e = new P(), t = new P();
51335
51389
  return function(n, r, a) {
51336
51390
  const o = n.start, l = s, c = r.start, h = e;
@@ -51342,7 +51396,7 @@ const K3 = function() {
51342
51396
  }(), vm = function() {
51343
51397
  const s = new K(), e = new P(), t = new P();
51344
51398
  return function(n, r, a, o) {
51345
- K3(n, r, s);
51399
+ eI(n, r, s);
51346
51400
  let l = s.x, c = s.y;
51347
51401
  if (l >= 0 && l <= 1 && c >= 0 && c <= 1) {
51348
51402
  n.at(l, a), r.at(c, o);
@@ -51368,7 +51422,7 @@ const K3 = function() {
51368
51422
  }
51369
51423
  }
51370
51424
  };
51371
- }(), J3 = function() {
51425
+ }(), tI = function() {
51372
51426
  const s = new P(), e = new P(), t = new ji(), i = new _s();
51373
51427
  return function(r, a) {
51374
51428
  const { radius: o, center: l } = r, { a: c, b: h, c: d } = a;
@@ -51382,7 +51436,7 @@ const K3 = function() {
51382
51436
  }
51383
51437
  return !1;
51384
51438
  };
51385
- }(), eI = ["x", "y", "z"], Bs = 1e-15, yv = Bs * Bs;
51439
+ }(), iI = ["x", "y", "z"], Bs = 1e-15, yv = Bs * Bs;
51386
51440
  function Tn(s) {
51387
51441
  return Math.abs(s) < Bs;
51388
51442
  }
@@ -51391,7 +51445,7 @@ class es extends vn {
51391
51445
  super(...e), this.isExtendedTriangle = !0, this.satAxes = new Array(4).fill().map(() => new P()), this.satBounds = new Array(4).fill().map(() => new Gs()), this.points = [this.a, this.b, this.c], this.plane = new ji(), this.isDegenerateIntoSegment = !1, this.isDegenerateIntoPoint = !1, this.degenerateSegment = new _s(), this.needsUpdate = !0;
51392
51446
  }
51393
51447
  intersectsSphere(e) {
51394
- return J3(e, this);
51448
+ return tI(e, this);
51395
51449
  }
51396
51450
  update() {
51397
51451
  const e = this.a, t = this.b, i = this.c, n = this.points, r = this.satAxes, a = this.satBounds, o = r[0], l = a[0];
@@ -51513,7 +51567,7 @@ es.prototype.intersectsTriangle = function() {
51513
51567
  let Ne = 0, ce = Math.abs(pe.x);
51514
51568
  const we = Math.abs(pe.y);
51515
51569
  we > ce && (ce = we, Ne = 1), Math.abs(pe.z) > ce && (Ne = 2);
51516
- const Fe = eI[Ne], ne = this.a[Fe], ee = this.b[Fe], Te = this.c[Fe], Xe = y.a[Fe], Ge = y.b[Fe], ht = y.c[Fe];
51570
+ const Fe = iI[Ne], ne = this.a[Fe], ee = this.b[Fe], Te = this.c[Fe], Xe = y.a[Fe], Ge = y.b[Fe], ht = y.c[Fe];
51517
51571
  if (p(this, ne, ee, Te, U, z, M, C, L, h, o))
51518
51572
  return u(this, y, _, w);
51519
51573
  if (p(y, Xe, Ge, ht, Z, ie, X, j, re, d, l))
@@ -51564,7 +51618,7 @@ es.prototype.distanceToTriangle = function() {
51564
51618
  }();
51565
51619
  class Ji {
51566
51620
  constructor(e, t, i) {
51567
- this.isOrientedBox = !0, this.min = new P(), this.max = new P(), this.matrix = new Pe(), this.invMatrix = new Pe(), this.points = new Array(8).fill().map(() => new P()), this.satAxes = new Array(3).fill().map(() => new P()), this.satBounds = new Array(3).fill().map(() => new Gs()), this.alignedSatBounds = new Array(3).fill().map(() => new Gs()), this.needsUpdate = !1, e && this.min.copy(e), t && this.max.copy(t), i && this.matrix.copy(i);
51621
+ this.isOrientedBox = !0, this.min = new P(), this.max = new P(), this.matrix = new Ce(), this.invMatrix = new Ce(), this.points = new Array(8).fill().map(() => new P()), this.satAxes = new Array(3).fill().map(() => new P()), this.satBounds = new Array(3).fill().map(() => new Gs()), this.alignedSatBounds = new Array(3).fill().map(() => new Gs()), this.needsUpdate = !1, e && this.min.copy(e), t && this.max.copy(t), i && this.matrix.copy(i);
51568
51622
  }
51569
51623
  set(e, t, i) {
51570
51624
  this.min.copy(e), this.max.copy(t), this.matrix.copy(i), this.needsUpdate = !0;
@@ -51701,13 +51755,13 @@ class xm {
51701
51755
  this._primitives.push(e);
51702
51756
  }
51703
51757
  }
51704
- class tI extends xm {
51758
+ class nI extends xm {
51705
51759
  constructor() {
51706
51760
  super(() => new es());
51707
51761
  }
51708
51762
  }
51709
- const On = /* @__PURE__ */ new tI();
51710
- class iI {
51763
+ const On = /* @__PURE__ */ new nI();
51764
+ class sI {
51711
51765
  constructor() {
51712
51766
  this.float32Array = null, this.uint16Array = null, this.uint32Array = null;
51713
51767
  const e = [];
@@ -51719,10 +51773,10 @@ class iI {
51719
51773
  };
51720
51774
  }
51721
51775
  }
51722
- const Jt = new iI();
51776
+ const Jt = new sI();
51723
51777
  let gr, oo;
51724
51778
  const ja = [], Sh = /* @__PURE__ */ new xm(() => new ft());
51725
- function nI(s, e, t, i, n, r) {
51779
+ function rI(s, e, t, i, n, r) {
51726
51780
  gr = Sh.getPrimitive(), oo = Sh.getPrimitive(), ja.push(gr, oo), Jt.setBuffer(s._roots[e]);
51727
51781
  const a = pp(0, s.geometry, t, i, n, r);
51728
51782
  Jt.clearBuffer(), Sh.releasePrimitive(gr), Sh.releasePrimitive(oo), ja.pop(), ja.pop();
@@ -51794,7 +51848,7 @@ function pp(s, e, t, i, n = null, r = 0, a = 0) {
51794
51848
  }
51795
51849
  }
51796
51850
  const cl = /* @__PURE__ */ new P(), Ju = /* @__PURE__ */ new P();
51797
- function sI(s, e, t = {}, i = 0, n = 1 / 0) {
51851
+ function aI(s, e, t = {}, i = 0, n = 1 / 0) {
51798
51852
  const r = i * i, a = n * n;
51799
51853
  let o = 1 / 0, l = null;
51800
51854
  if (s.shapecast(
@@ -51812,8 +51866,8 @@ function sI(s, e, t = {}, i = 0, n = 1 / 0) {
51812
51866
  const c = Math.sqrt(o);
51813
51867
  return t.point ? t.point.copy(Ju) : t.point = Ju.clone(), t.distance = c, t.faceIndex = l, t;
51814
51868
  }
51815
- const Mh = parseInt(Do) >= 169, rI = parseInt(Do) <= 161, Xr = /* @__PURE__ */ new P(), Hr = /* @__PURE__ */ new P(), Yr = /* @__PURE__ */ new P(), Ah = /* @__PURE__ */ new K(), Th = /* @__PURE__ */ new K(), Eh = /* @__PURE__ */ new K(), _v = /* @__PURE__ */ new P(), wv = /* @__PURE__ */ new P(), Sv = /* @__PURE__ */ new P(), hl = /* @__PURE__ */ new P();
51816
- function aI(s, e, t, i, n, r, a, o) {
51869
+ const Mh = parseInt(Do) >= 169, oI = parseInt(Do) <= 161, Xr = /* @__PURE__ */ new P(), Hr = /* @__PURE__ */ new P(), Yr = /* @__PURE__ */ new P(), Ah = /* @__PURE__ */ new K(), Th = /* @__PURE__ */ new K(), Eh = /* @__PURE__ */ new K(), _v = /* @__PURE__ */ new P(), wv = /* @__PURE__ */ new P(), Sv = /* @__PURE__ */ new P(), hl = /* @__PURE__ */ new P();
51870
+ function lI(s, e, t, i, n, r, a, o) {
51817
51871
  let l;
51818
51872
  if (r === $i ? l = s.intersectTriangle(i, t, e, !0, n) : l = s.intersectTriangle(e, t, i, r !== pi, n), l === null)
51819
51873
  return null;
@@ -51823,9 +51877,9 @@ function aI(s, e, t, i, n, r, a, o) {
51823
51877
  point: n.clone()
51824
51878
  };
51825
51879
  }
51826
- function oI(s, e, t, i, n, r, a, o, l, c, h) {
51880
+ function cI(s, e, t, i, n, r, a, o, l, c, h) {
51827
51881
  Xr.fromBufferAttribute(e, r), Hr.fromBufferAttribute(e, a), Yr.fromBufferAttribute(e, o);
51828
- const d = aI(s, Xr, Hr, Yr, hl, l, c, h);
51882
+ const d = lI(s, Xr, Hr, Yr, hl, l, c, h);
51829
51883
  if (d) {
51830
51884
  if (i) {
51831
51885
  Ah.fromBufferAttribute(i, r), Th.fromBufferAttribute(i, a), Eh.fromBufferAttribute(i, o), d.uv = new K();
@@ -51835,7 +51889,7 @@ function oI(s, e, t, i, n, r, a, o, l, c, h) {
51835
51889
  if (n) {
51836
51890
  Ah.fromBufferAttribute(n, r), Th.fromBufferAttribute(n, a), Eh.fromBufferAttribute(n, o), d.uv1 = new K();
51837
51891
  const f = vn.getInterpolation(hl, Xr, Hr, Yr, Ah, Th, Eh, d.uv1);
51838
- Mh || (d.uv1 = f), rI && (d.uv2 = d.uv1);
51892
+ Mh || (d.uv1 = f), oI && (d.uv2 = d.uv1);
51839
51893
  }
51840
51894
  if (t) {
51841
51895
  _v.fromBufferAttribute(t, r), wv.fromBufferAttribute(t, a), Sv.fromBufferAttribute(t, o), d.normal = new P();
@@ -51861,7 +51915,7 @@ function Ed(s, e, t, i, n, r, a) {
51861
51915
  let l = o + 0, c = o + 1, h = o + 2;
51862
51916
  const d = s.index;
51863
51917
  s.index && (l = d.getX(l), c = d.getX(c), h = d.getX(h));
51864
- const { position: u, normal: f, uv: p, uv1: v } = s.attributes, g = oI(t, u, f, p, v, l, c, h, e, r, a);
51918
+ const { position: u, normal: f, uv: p, uv1: v } = s.attributes, g = cI(t, u, f, p, v, l, c, h, e, r, a);
51865
51919
  return g ? (g.faceIndex = i, n && n.push(g), g) : null;
51866
51920
  }
51867
51921
  function xi(s, e, t, i) {
@@ -51869,12 +51923,12 @@ function xi(s, e, t, i) {
51869
51923
  let o = e, l = e + 1, c = e + 2;
51870
51924
  t && (o = t.getX(o), l = t.getX(l), c = t.getX(c)), n.x = i.getX(o), n.y = i.getY(o), n.z = i.getZ(o), r.x = i.getX(l), r.y = i.getY(l), r.z = i.getZ(l), a.x = i.getX(c), a.y = i.getY(c), a.z = i.getZ(c);
51871
51925
  }
51872
- function lI(s, e, t, i, n, r, a, o) {
51926
+ function hI(s, e, t, i, n, r, a, o) {
51873
51927
  const { geometry: l, _indirectBuffer: c } = s;
51874
51928
  for (let h = i, d = i + n; h < d; h++)
51875
51929
  Ed(l, e, t, h, r, a, o);
51876
51930
  }
51877
- function cI(s, e, t, i, n, r, a) {
51931
+ function dI(s, e, t, i, n, r, a) {
51878
51932
  const { geometry: o, _indirectBuffer: l } = s;
51879
51933
  let c = 1 / 0, h = null;
51880
51934
  for (let d = i, u = i + n; d < u; d++) {
@@ -51883,7 +51937,7 @@ function cI(s, e, t, i, n, r, a) {
51883
51937
  }
51884
51938
  return h;
51885
51939
  }
51886
- function hI(s, e, t, i, n, r, a) {
51940
+ function uI(s, e, t, i, n, r, a) {
51887
51941
  const { geometry: o } = t, { index: l } = o, c = o.attributes.position;
51888
51942
  for (let h = s, d = e + s; h < d; h++) {
51889
51943
  let u;
@@ -51892,7 +51946,7 @@ function hI(s, e, t, i, n, r, a) {
51892
51946
  }
51893
51947
  return !1;
51894
51948
  }
51895
- function dI(s, e = null) {
51949
+ function fI(s, e = null) {
51896
51950
  e && Array.isArray(e) && (e = new Set(e));
51897
51951
  const t = s.geometry, i = t.index ? t.index.array : null, n = t.attributes.position;
51898
51952
  let r, a, o, l, c = 0;
@@ -51935,14 +51989,14 @@ function Tr(s, e, t, i, n) {
51935
51989
  let m = e[s], b = e[s + 3], x = e[s + 1], y = e[s + 3 + 1], _ = e[s + 2], w = e[s + 3 + 2];
51936
51990
  return d >= 0 ? (r = (m - p) * d, a = (b - p) * d) : (r = (b - p) * d, a = (m - p) * d), u >= 0 ? (o = (x - v) * u, l = (y - v) * u) : (o = (y - v) * u, l = (x - v) * u), r > l || o > a || ((o > r || isNaN(r)) && (r = o), (l < a || isNaN(a)) && (a = l), f >= 0 ? (c = (_ - g) * f, h = (w - g) * f) : (c = (w - g) * f, h = (_ - g) * f), r > h || c > a) ? !1 : ((c > r || r !== r) && (r = c), (h < a || a !== a) && (a = h), r <= n && a >= i);
51937
51991
  }
51938
- function uI(s, e, t, i, n, r, a, o) {
51992
+ function pI(s, e, t, i, n, r, a, o) {
51939
51993
  const { geometry: l, _indirectBuffer: c } = s;
51940
51994
  for (let h = i, d = i + n; h < d; h++) {
51941
51995
  let u = c ? c[h] : h;
51942
51996
  Ed(l, e, t, u, r, a, o);
51943
51997
  }
51944
51998
  }
51945
- function fI(s, e, t, i, n, r, a) {
51999
+ function mI(s, e, t, i, n, r, a) {
51946
52000
  const { geometry: o, _indirectBuffer: l } = s;
51947
52001
  let c = 1 / 0, h = null;
51948
52002
  for (let d = i, u = i + n; d < u; d++) {
@@ -51951,7 +52005,7 @@ function fI(s, e, t, i, n, r, a) {
51951
52005
  }
51952
52006
  return h;
51953
52007
  }
51954
- function pI(s, e, t, i, n, r, a) {
52008
+ function gI(s, e, t, i, n, r, a) {
51955
52009
  const { geometry: o } = t, { index: l } = o, c = o.attributes.position;
51956
52010
  for (let h = s, d = e + s; h < d; h++) {
51957
52011
  let u;
@@ -51960,14 +52014,14 @@ function pI(s, e, t, i, n, r, a) {
51960
52014
  }
51961
52015
  return !1;
51962
52016
  }
51963
- function mI(s, e, t, i, n, r, a) {
52017
+ function vI(s, e, t, i, n, r, a) {
51964
52018
  Jt.setBuffer(s._roots[e]), mp(0, s, t, i, n, r, a), Jt.clearBuffer();
51965
52019
  }
51966
52020
  function mp(s, e, t, i, n, r, a) {
51967
52021
  const { float32Array: o, uint16Array: l, uint32Array: c } = Jt, h = s * 2;
51968
52022
  if (ln(h, l)) {
51969
52023
  const u = _n(s, c), f = Rn(h, l);
51970
- lI(e, t, i, u, f, n, r, a);
52024
+ hI(e, t, i, u, f, n, r, a);
51971
52025
  } else {
51972
52026
  const u = Dn(s);
51973
52027
  Tr(u, o, i, r, a) && mp(u, e, t, i, n, r, a);
@@ -51975,8 +52029,8 @@ function mp(s, e, t, i, n, r, a) {
51975
52029
  Tr(f, o, i, r, a) && mp(f, e, t, i, n, r, a);
51976
52030
  }
51977
52031
  }
51978
- const gI = ["x", "y", "z"];
51979
- function vI(s, e, t, i, n, r) {
52032
+ const xI = ["x", "y", "z"];
52033
+ function bI(s, e, t, i, n, r) {
51980
52034
  Jt.setBuffer(s._roots[e]);
51981
52035
  const a = gp(0, s, t, i, n, r);
51982
52036
  return Jt.clearBuffer(), a;
@@ -51986,9 +52040,9 @@ function gp(s, e, t, i, n, r) {
51986
52040
  let c = s * 2;
51987
52041
  if (ln(c, o)) {
51988
52042
  const d = _n(s, l), u = Rn(c, o);
51989
- return cI(e, t, i, d, u, n, r);
52043
+ return dI(e, t, i, d, u, n, r);
51990
52044
  } else {
51991
- const d = Cb(s, l), u = gI[d], p = i.direction[u] >= 0;
52045
+ const d = Cb(s, l), u = xI[d], p = i.direction[u] >= 0;
51992
52046
  let v, g;
51993
52047
  p ? (v = Dn(s), g = Ln(s, l)) : (v = Ln(s, l), g = Dn(s));
51994
52048
  const b = Tr(v, a, i, n, r) ? gp(v, e, t, i, n, r) : null;
@@ -52004,8 +52058,8 @@ function gp(s, e, t, i, n, r) {
52004
52058
  return b && y ? b.distance <= y.distance ? b : y : b || y || null;
52005
52059
  }
52006
52060
  }
52007
- const Ph = /* @__PURE__ */ new ft(), qa = /* @__PURE__ */ new es(), Za = /* @__PURE__ */ new es(), dl = /* @__PURE__ */ new Pe(), Mv = /* @__PURE__ */ new Ji(), Ch = /* @__PURE__ */ new Ji();
52008
- function xI(s, e, t, i) {
52061
+ const Ph = /* @__PURE__ */ new ft(), qa = /* @__PURE__ */ new es(), Za = /* @__PURE__ */ new es(), dl = /* @__PURE__ */ new Ce(), Mv = /* @__PURE__ */ new Ji(), Ch = /* @__PURE__ */ new Ji();
52062
+ function yI(s, e, t, i) {
52009
52063
  Jt.setBuffer(s._roots[e]);
52010
52064
  const n = vp(0, s, t, i);
52011
52065
  return Jt.clearBuffer(), n;
@@ -52040,12 +52094,12 @@ function vp(s, e, t, i, n = null) {
52040
52094
  return di(h, r, Ph), !!(n.intersectsBox(Ph) && vp(h, e, t, i, n) || (di(d, r, Ph), n.intersectsBox(Ph) && vp(d, e, t, i, n)));
52041
52095
  }
52042
52096
  }
52043
- const Ih = /* @__PURE__ */ new Pe(), ef = /* @__PURE__ */ new Ji(), ul = /* @__PURE__ */ new Ji(), bI = /* @__PURE__ */ new P(), yI = /* @__PURE__ */ new P(), _I = /* @__PURE__ */ new P(), wI = /* @__PURE__ */ new P();
52044
- function SI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52097
+ const Ih = /* @__PURE__ */ new Ce(), ef = /* @__PURE__ */ new Ji(), ul = /* @__PURE__ */ new Ji(), _I = /* @__PURE__ */ new P(), wI = /* @__PURE__ */ new P(), SI = /* @__PURE__ */ new P(), MI = /* @__PURE__ */ new P();
52098
+ function AI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52045
52099
  e.boundingBox || e.computeBoundingBox(), ef.set(e.boundingBox.min, e.boundingBox.max, t), ef.needsUpdate = !0;
52046
52100
  const o = s.geometry, l = o.attributes.position, c = o.index, h = e.attributes.position, d = e.index, u = On.getPrimitive(), f = On.getPrimitive();
52047
- let p = bI, v = yI, g = null, m = null;
52048
- n && (g = _I, m = wI);
52101
+ let p = _I, v = wI, g = null, m = null;
52102
+ n && (g = SI, m = MI);
52049
52103
  let b = 1 / 0, x = null, y = null;
52050
52104
  return Ih.copy(t).invert(), ul.matrix.copy(Ih), s.shapecast(
52051
52105
  {
@@ -52084,7 +52138,7 @@ function SI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52084
52138
  }
52085
52139
  ), On.releasePrimitive(u), On.releasePrimitive(f), b === 1 / 0 ? null : (i.point ? i.point.copy(v) : i.point = v.clone(), i.distance = b, i.faceIndex = x, n && (n.point ? n.point.copy(m) : n.point = m.clone(), n.point.applyMatrix4(Ih), v.applyMatrix4(Ih), n.distance = v.sub(n.point).length(), n.faceIndex = y), i);
52086
52140
  }
52087
- function MI(s, e = null) {
52141
+ function TI(s, e = null) {
52088
52142
  e && Array.isArray(e) && (e = new Set(e));
52089
52143
  const t = s.geometry, i = t.index ? t.index.array : null, n = t.attributes.position;
52090
52144
  let r, a, o, l, c = 0;
@@ -52125,14 +52179,14 @@ function MI(s, e = null) {
52125
52179
  }
52126
52180
  }
52127
52181
  }
52128
- function AI(s, e, t, i, n, r, a) {
52182
+ function EI(s, e, t, i, n, r, a) {
52129
52183
  Jt.setBuffer(s._roots[e]), xp(0, s, t, i, n, r, a), Jt.clearBuffer();
52130
52184
  }
52131
52185
  function xp(s, e, t, i, n, r, a) {
52132
52186
  const { float32Array: o, uint16Array: l, uint32Array: c } = Jt, h = s * 2;
52133
52187
  if (ln(h, l)) {
52134
52188
  const u = _n(s, c), f = Rn(h, l);
52135
- uI(e, t, i, u, f, n, r, a);
52189
+ pI(e, t, i, u, f, n, r, a);
52136
52190
  } else {
52137
52191
  const u = Dn(s);
52138
52192
  Tr(u, o, i, r, a) && xp(u, e, t, i, n, r, a);
@@ -52140,8 +52194,8 @@ function xp(s, e, t, i, n, r, a) {
52140
52194
  Tr(f, o, i, r, a) && xp(f, e, t, i, n, r, a);
52141
52195
  }
52142
52196
  }
52143
- const TI = ["x", "y", "z"];
52144
- function EI(s, e, t, i, n, r) {
52197
+ const PI = ["x", "y", "z"];
52198
+ function CI(s, e, t, i, n, r) {
52145
52199
  Jt.setBuffer(s._roots[e]);
52146
52200
  const a = bp(0, s, t, i, n, r);
52147
52201
  return Jt.clearBuffer(), a;
@@ -52151,9 +52205,9 @@ function bp(s, e, t, i, n, r) {
52151
52205
  let c = s * 2;
52152
52206
  if (ln(c, o)) {
52153
52207
  const d = _n(s, l), u = Rn(c, o);
52154
- return fI(e, t, i, d, u, n, r);
52208
+ return mI(e, t, i, d, u, n, r);
52155
52209
  } else {
52156
- const d = Cb(s, l), u = TI[d], p = i.direction[u] >= 0;
52210
+ const d = Cb(s, l), u = PI[d], p = i.direction[u] >= 0;
52157
52211
  let v, g;
52158
52212
  p ? (v = Dn(s), g = Ln(s, l)) : (v = Ln(s, l), g = Dn(s));
52159
52213
  const b = Tr(v, a, i, n, r) ? bp(v, e, t, i, n, r) : null;
@@ -52169,8 +52223,8 @@ function bp(s, e, t, i, n, r) {
52169
52223
  return b && y ? b.distance <= y.distance ? b : y : b || y || null;
52170
52224
  }
52171
52225
  }
52172
- const Rh = /* @__PURE__ */ new ft(), $a = /* @__PURE__ */ new es(), Ka = /* @__PURE__ */ new es(), fl = /* @__PURE__ */ new Pe(), Av = /* @__PURE__ */ new Ji(), Dh = /* @__PURE__ */ new Ji();
52173
- function PI(s, e, t, i) {
52226
+ const Rh = /* @__PURE__ */ new ft(), $a = /* @__PURE__ */ new es(), Ka = /* @__PURE__ */ new es(), fl = /* @__PURE__ */ new Ce(), Av = /* @__PURE__ */ new Ji(), Dh = /* @__PURE__ */ new Ji();
52227
+ function II(s, e, t, i) {
52174
52228
  Jt.setBuffer(s._roots[e]);
52175
52229
  const n = yp(0, s, t, i);
52176
52230
  return Jt.clearBuffer(), n;
@@ -52206,12 +52260,12 @@ function yp(s, e, t, i, n = null) {
52206
52260
  return di(h, r, Rh), !!(n.intersectsBox(Rh) && yp(h, e, t, i, n) || (di(d, r, Rh), n.intersectsBox(Rh) && yp(d, e, t, i, n)));
52207
52261
  }
52208
52262
  }
52209
- const Lh = /* @__PURE__ */ new Pe(), tf = /* @__PURE__ */ new Ji(), pl = /* @__PURE__ */ new Ji(), CI = /* @__PURE__ */ new P(), II = /* @__PURE__ */ new P(), RI = /* @__PURE__ */ new P(), DI = /* @__PURE__ */ new P();
52210
- function LI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52263
+ const Lh = /* @__PURE__ */ new Ce(), tf = /* @__PURE__ */ new Ji(), pl = /* @__PURE__ */ new Ji(), RI = /* @__PURE__ */ new P(), DI = /* @__PURE__ */ new P(), LI = /* @__PURE__ */ new P(), OI = /* @__PURE__ */ new P();
52264
+ function NI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52211
52265
  e.boundingBox || e.computeBoundingBox(), tf.set(e.boundingBox.min, e.boundingBox.max, t), tf.needsUpdate = !0;
52212
52266
  const o = s.geometry, l = o.attributes.position, c = o.index, h = e.attributes.position, d = e.index, u = On.getPrimitive(), f = On.getPrimitive();
52213
- let p = CI, v = II, g = null, m = null;
52214
- n && (g = RI, m = DI);
52267
+ let p = RI, v = DI, g = null, m = null;
52268
+ n && (g = LI, m = OI);
52215
52269
  let b = 1 / 0, x = null, y = null;
52216
52270
  return Lh.copy(t).invert(), pl.matrix.copy(Lh), s.shapecast(
52217
52271
  {
@@ -52254,18 +52308,18 @@ function LI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52254
52308
  }
52255
52309
  ), On.releasePrimitive(u), On.releasePrimitive(f), b === 1 / 0 ? null : (i.point ? i.point.copy(v) : i.point = v.clone(), i.distance = b, i.faceIndex = x, n && (n.point ? n.point.copy(m) : n.point = m.clone(), n.point.applyMatrix4(Lh), v.applyMatrix4(Lh), n.distance = v.sub(n.point).length(), n.faceIndex = y), i);
52256
52310
  }
52257
- function OI() {
52311
+ function BI() {
52258
52312
  return typeof SharedArrayBuffer < "u";
52259
52313
  }
52260
52314
  const Ll = new Jt.constructor(), ld = new Jt.constructor(), or = new xm(() => new ft()), Ja = new ft(), eo = new ft(), nf = new ft(), sf = new ft();
52261
52315
  let rf = !1;
52262
- function NI(s, e, t, i) {
52316
+ function UI(s, e, t, i) {
52263
52317
  if (rf)
52264
52318
  throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");
52265
52319
  rf = !0;
52266
52320
  const n = s._roots, r = e._roots;
52267
52321
  let a, o = 0, l = 0;
52268
- const c = new Pe().copy(t).invert();
52322
+ const c = new Ce().copy(t).invert();
52269
52323
  for (let h = 0, d = n.length; h < d; h++) {
52270
52324
  Ll.setBuffer(n[h]), l = 0;
52271
52325
  const u = or.getPrimitive();
@@ -52471,7 +52525,7 @@ function Gn(s, e, t, i, n, r = 0, a = 0, o = 0, l = 0, c = null, h = !1) {
52471
52525
  }
52472
52526
  return T;
52473
52527
  }
52474
- const Oh = /* @__PURE__ */ new Ji(), Tv = /* @__PURE__ */ new ft(), BI = {
52528
+ const Oh = /* @__PURE__ */ new Ji(), Tv = /* @__PURE__ */ new ft(), FI = {
52475
52529
  strategy: Tb,
52476
52530
  maxDepth: 40,
52477
52531
  maxLeafTris: 10,
@@ -52527,16 +52581,16 @@ class bm {
52527
52581
  } else
52528
52582
  throw new Error("MeshBVH: Only BufferGeometries are supported.");
52529
52583
  if (t = Object.assign({
52530
- ...BI,
52584
+ ...FI,
52531
52585
  // undocumented options
52532
52586
  // Whether to skip generating the tree. Used for deserialization.
52533
52587
  [Zu]: !1
52534
- }, t), t.useSharedArrayBuffer && !OI())
52588
+ }, t), t.useSharedArrayBuffer && !BI())
52535
52589
  throw new Error("MeshBVH: SharedArrayBuffer is not available.");
52536
- this.geometry = e, this._roots = null, this._indirectBuffer = null, t[Zu] || ($3(this, t), !e.boundingBox && t.setBoundingBox && (e.boundingBox = this.getBoundingBox(new ft()))), this.resolveTriangleIndex = t.indirect ? (i) => this._indirectBuffer[i] : (i) => i;
52590
+ this.geometry = e, this._roots = null, this._indirectBuffer = null, t[Zu] || (J3(this, t), !e.boundingBox && t.setBoundingBox && (e.boundingBox = this.getBoundingBox(new ft()))), this.resolveTriangleIndex = t.indirect ? (i) => this._indirectBuffer[i] : (i) => i;
52537
52591
  }
52538
52592
  refit(e = null) {
52539
- return (this.indirect ? MI : dI)(this, e);
52593
+ return (this.indirect ? TI : fI)(this, e);
52540
52594
  }
52541
52595
  traverse(e, t = 0) {
52542
52596
  const i = this._roots[t], n = new Uint32Array(i), r = new Uint16Array(i);
@@ -52554,7 +52608,7 @@ class bm {
52554
52608
  }
52555
52609
  /* Core Cast Functions */
52556
52610
  raycast(e, t = wn, i = 0, n = 1 / 0) {
52557
- const r = this._roots, a = this.geometry, o = [], l = t.isMaterial, c = Array.isArray(t), h = a.groups, d = l ? t.side : t, u = this.indirect ? AI : mI;
52611
+ const r = this._roots, a = this.geometry, o = [], l = t.isMaterial, c = Array.isArray(t), h = a.groups, d = l ? t.side : t, u = this.indirect ? EI : vI;
52558
52612
  for (let f = 0, p = r.length; f < p; f++) {
52559
52613
  const v = c ? t[h[f].materialIndex].side : d, g = o.length;
52560
52614
  if (u(this, f, v, e, o, i, n), c) {
@@ -52568,7 +52622,7 @@ class bm {
52568
52622
  raycastFirst(e, t = wn, i = 0, n = 1 / 0) {
52569
52623
  const r = this._roots, a = this.geometry, o = t.isMaterial, l = Array.isArray(t);
52570
52624
  let c = null;
52571
- const h = a.groups, d = o ? t.side : t, u = this.indirect ? EI : vI;
52625
+ const h = a.groups, d = o ? t.side : t, u = this.indirect ? CI : bI;
52572
52626
  for (let f = 0, p = r.length; f < p; f++) {
52573
52627
  const v = l ? t[h[f].materialIndex].side : d, g = u(this, f, v, e, i, n);
52574
52628
  g != null && (c == null || g.distance < c.distance) && (c = g, l && (g.face.materialIndex = h[f].materialIndex));
@@ -52577,13 +52631,13 @@ class bm {
52577
52631
  }
52578
52632
  intersectsGeometry(e, t) {
52579
52633
  let i = !1;
52580
- const n = this._roots, r = this.indirect ? PI : xI;
52634
+ const n = this._roots, r = this.indirect ? II : yI;
52581
52635
  for (let a = 0, o = n.length; a < o && (i = r(this, a, e, t), !i); a++)
52582
52636
  ;
52583
52637
  return i;
52584
52638
  }
52585
52639
  shapecast(e) {
52586
- const t = On.getPrimitive(), i = this.indirect ? pI : hI;
52640
+ const t = On.getPrimitive(), i = this.indirect ? gI : uI;
52587
52641
  let {
52588
52642
  boundsTraverseOrder: n,
52589
52643
  intersectsBounds: r,
@@ -52599,7 +52653,7 @@ class bm {
52599
52653
  const h = this._roots;
52600
52654
  for (let d = 0, u = h.length; d < u; d++) {
52601
52655
  const f = h[d];
52602
- if (l = nI(this, d, r, a, n, c), l)
52656
+ if (l = rI(this, d, r, a, n, c), l)
52603
52657
  break;
52604
52658
  c += f.byteLength;
52605
52659
  }
@@ -52639,7 +52693,7 @@ class bm {
52639
52693
  } else
52640
52694
  n = p;
52641
52695
  }
52642
- return NI(this, e, t, n);
52696
+ return UI(this, e, t, n);
52643
52697
  }
52644
52698
  /* Derived Cast Functions */
52645
52699
  intersectsBox(e, t) {
@@ -52659,7 +52713,7 @@ class bm {
52659
52713
  );
52660
52714
  }
52661
52715
  closestPointToGeometry(e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52662
- return (this.indirect ? LI : SI)(
52716
+ return (this.indirect ? NI : AI)(
52663
52717
  this,
52664
52718
  e,
52665
52719
  t,
@@ -52670,7 +52724,7 @@ class bm {
52670
52724
  );
52671
52725
  }
52672
52726
  closestPointToPoint(e, t = {}, i = 0, n = 1 / 0) {
52673
- return sI(
52727
+ return aI(
52674
52728
  this,
52675
52729
  e,
52676
52730
  t,
@@ -52687,11 +52741,11 @@ class bm {
52687
52741
  function Ev(s, e, t) {
52688
52742
  return s === null ? null : (s.point.applyMatrix4(e.matrixWorld), s.distance = s.point.distanceTo(t.ray.origin), s.object = e, s);
52689
52743
  }
52690
- const Nh = /* @__PURE__ */ new Lo(), Pv = /* @__PURE__ */ new P(), Cv = /* @__PURE__ */ new Pe(), UI = Q.prototype.raycast, FI = Xx.prototype.raycast, Iv = /* @__PURE__ */ new P(), Ni = /* @__PURE__ */ new Q(), Bh = [];
52691
- function zI(s, e) {
52692
- this.isBatchedMesh ? kI.call(this, s, e) : VI.call(this, s, e);
52744
+ const Nh = /* @__PURE__ */ new Lo(), Pv = /* @__PURE__ */ new P(), Cv = /* @__PURE__ */ new Ce(), zI = Q.prototype.raycast, kI = Xx.prototype.raycast, Iv = /* @__PURE__ */ new P(), Ni = /* @__PURE__ */ new Q(), Bh = [];
52745
+ function VI(s, e) {
52746
+ this.isBatchedMesh ? XI.call(this, s, e) : HI.call(this, s, e);
52693
52747
  }
52694
- function kI(s, e) {
52748
+ function XI(s, e) {
52695
52749
  if (this.boundsTrees) {
52696
52750
  const t = this.boundsTrees, i = this._drawInfo || this._instanceInfo, n = this._drawRanges || this._geometryInfo, r = this.matrixWorld;
52697
52751
  Ni.material = this.material, Ni.geometry = this.geometry;
@@ -52715,9 +52769,9 @@ function kI(s, e) {
52715
52769
  }
52716
52770
  Ni.geometry.boundsTree = a, Ni.geometry.drawRange = o, Ni.material = null, Ni.geometry = null;
52717
52771
  } else
52718
- FI.call(this, s, e);
52772
+ kI.call(this, s, e);
52719
52773
  }
52720
- function VI(s, e) {
52774
+ function HI(s, e) {
52721
52775
  if (this.geometry.boundsTree) {
52722
52776
  if (this.material === void 0)
52723
52777
  return;
@@ -52734,40 +52788,40 @@ function VI(s, e) {
52734
52788
  }
52735
52789
  }
52736
52790
  } else
52737
- UI.call(this, s, e);
52791
+ zI.call(this, s, e);
52738
52792
  }
52739
- function XI(s = {}) {
52793
+ function YI(s = {}) {
52740
52794
  return this.boundsTree = new bm(this, s), this.boundsTree;
52741
52795
  }
52742
- function HI() {
52796
+ function GI() {
52743
52797
  this.boundsTree = null;
52744
52798
  }
52745
- class YI {
52799
+ class WI {
52746
52800
  constructor() {
52747
- dt.prototype.computeBoundsTree = XI, dt.prototype.disposeBoundsTree = HI, Q.prototype.raycast = zI;
52801
+ dt.prototype.computeBoundsTree = YI, dt.prototype.disposeBoundsTree = GI, Q.prototype.raycast = VI;
52748
52802
  }
52749
52803
  applyThreeMeshBVH(e) {
52750
52804
  e.boundsTree || e.computeBoundsTree();
52751
52805
  }
52752
52806
  }
52753
- class GI {
52807
+ class QI {
52754
52808
  constructor(e) {
52755
52809
  this.viralViewerApi = e, this.hoverMaterial = new ia({
52756
- color: Et.hexToThreejsColor(Ce.secondary),
52810
+ color: Et.hexToThreejsColor(Ee.secondary),
52757
52811
  opacity: 0.7,
52758
52812
  transparent: !0,
52759
52813
  depthTest: !1,
52760
52814
  name: "Render Material",
52761
52815
  flatShading: !0
52762
52816
  }), this.selectedMaterial = new ia({
52763
- color: Et.hexToThreejsColor(Ce.secondary),
52817
+ color: Et.hexToThreejsColor(Ee.secondary),
52764
52818
  opacity: 0.7,
52765
52819
  transparent: !0,
52766
52820
  name: "Render Material",
52767
52821
  depthTest: !1,
52768
52822
  flatShading: !0
52769
52823
  }), this.edgeMaterial = new bb({
52770
- color: Et.hexToThreejsColor(Ce.edge),
52824
+ color: Et.hexToThreejsColor(Ee.edge),
52771
52825
  linewidth: 2,
52772
52826
  resolution: new K(window.innerWidth, window.innerHeight),
52773
52827
  transparent: !0,
@@ -52801,7 +52855,7 @@ class GI {
52801
52855
  }
52802
52856
  }
52803
52857
  }
52804
- class WI {
52858
+ class jI {
52805
52859
  constructor() {
52806
52860
  this.events = {
52807
52861
  [At.LOADED_SCENE]: [],
@@ -52841,7 +52895,7 @@ class WI {
52841
52895
  i && i.forEach((n) => n(...t));
52842
52896
  }
52843
52897
  }
52844
- class QI {
52898
+ class qI {
52845
52899
  constructor(e, t) {
52846
52900
  this.viralViewerApi = e, this.options = t, this.viralViewerApi.on(
52847
52901
  At.LOADED_SCENE,
@@ -52916,14 +52970,14 @@ const Db = {
52916
52970
  importLink: "https://fonts.googleapis.com/css2?family=Quicksand:wght@300&display=swap",
52917
52971
  fontFamily: "Quicksand, sans-serif"
52918
52972
  }
52919
- }, jI = (s) => {
52973
+ }, ZI = (s) => {
52920
52974
  const e = document.createElement("style");
52921
52975
  e.innerHTML = `@import url(${Db[s]});`, document.head.appendChild(e);
52922
- }, qI = (s, e) => {
52976
+ }, $I = (s, e) => {
52923
52977
  let t = Db[e];
52924
52978
  s && t && (s.style.fontFamily = t.fontFamily);
52925
52979
  };
52926
- class ZI {
52980
+ class KI {
52927
52981
  constructor(e) {
52928
52982
  this.viralViewerApi = e, this.hoverMeshes = [], this.hoverInstancedMesh = null, this.selectedMeshes = [], this.selectedInstancedMeshes = [], this.isolateMeshes = [], this.isolateInstancedMeshes = [], this.hiddenMeshes = [], this.hiddenInstancedMeshes = [], this.exceptElements = [], this.isolateModelId = "0", this.sunConfiguration = Fb, this._ground = null, this.opacity = 1, this._fog = new md(13421772, 1, 1e3), this.rainGeometry = new dt(), this.rain = null, this._isGeneratedRain = !1, this._batchColors = /* @__PURE__ */ new Map(), this._originalBatchMaterials = /* @__PURE__ */ new Map(), this._batchVisualizationEnabled = !1, this.showHidePercentage = 100, this.randomColor = 100;
52929
52983
  }
@@ -53021,10 +53075,10 @@ class ZI {
53021
53075
  * Select elements (replaces current selection)
53022
53076
  */
53023
53077
  selectElements(e) {
53024
- e.length > 0 && (this.viralViewerApi.viralScene.mergedModel.select(
53078
+ e.length > 0 && (this.viralViewerApi.emit(At.SELECT_ELEMENTS, e), this.viralViewerApi.viralScene.mergedModel.select(
53025
53079
  e,
53026
53080
  this.exceptElements
53027
- ), this.addToOutline(e), this.enableOutline());
53081
+ ), this.viralViewerApi.viralRenderer.render());
53028
53082
  }
53029
53083
  /**
53030
53084
  * Add elements to current selection (multi-select with Shift)
@@ -53052,7 +53106,22 @@ class ZI {
53052
53106
  * Unselect all elements
53053
53107
  */
53054
53108
  unselectElements() {
53055
- this.viralViewerApi.viralScene.mergedModel.select([], this.exceptElements), this.addToOutline([]), this.disableOutline();
53109
+ this.viralViewerApi.viralScene.mergedModel.unselect(), this.viralViewerApi.viralRenderer.render();
53110
+ }
53111
+ selectAllElements() {
53112
+ console.time("⏱️ selectAllElements - gathering elements");
53113
+ let e = [];
53114
+ for (let t = 0; t < this.viralViewerApi.viralDataManager.dataTree.length; t++) {
53115
+ const n = this.viralViewerApi.viralDataManager.dataTree[t].getAllElements();
53116
+ for (let r = 0; r < n.length; r++) {
53117
+ const a = n[r];
53118
+ e.push({
53119
+ elementId: a.elementId.toString(),
53120
+ modelId: t.toString()
53121
+ });
53122
+ }
53123
+ }
53124
+ console.timeEnd("⏱️ selectAllElements - gathering elements"), console.log(`📊 Total elements gathered: ${e.length}`), this.selectElements(e);
53056
53125
  }
53057
53126
  isolateModel(e = [this.isolateModelId]) {
53058
53127
  this.viralViewerApi.viralScene.mergedModel.resetVisibility(), this.viralViewerApi.viralScene.mergedModel.isolateModel(e), this.viralViewerApi.viralRenderer.render();
@@ -53678,7 +53747,7 @@ class bt {
53678
53747
  return i && n && r;
53679
53748
  }
53680
53749
  }
53681
- function $I() {
53750
+ function JI() {
53682
53751
  class s {
53683
53752
  constructor() {
53684
53753
  this.children = /* @__PURE__ */ new Map(), this.keys = /* @__PURE__ */ new Set();
@@ -53760,10 +53829,10 @@ function $I() {
53760
53829
  }
53761
53830
  };
53762
53831
  }
53763
- const KI = $I;
53764
- class JI {
53832
+ const eR = JI;
53833
+ class tR {
53765
53834
  constructor() {
53766
- const e = new Blob([`(${KI})()`]), t = URL.createObjectURL(e);
53835
+ const e = new Blob([`(${eR})()`]), t = URL.createObjectURL(e);
53767
53836
  this.workerPool = new Ar(
53768
53837
  2,
53769
53838
  t
@@ -53776,7 +53845,7 @@ class JI {
53776
53845
  });
53777
53846
  }
53778
53847
  }
53779
- function eR() {
53848
+ function iR() {
53780
53849
  self.addEventListener(
53781
53850
  "message",
53782
53851
  (s) => {
@@ -53810,10 +53879,10 @@ function eR() {
53810
53879
  !1
53811
53880
  );
53812
53881
  }
53813
- const tR = eR;
53814
- class iR {
53882
+ const nR = iR;
53883
+ class sR {
53815
53884
  constructor() {
53816
- const e = new Blob([`(${tR})()`]), t = URL.createObjectURL(e);
53885
+ const e = new Blob([`(${nR})()`]), t = URL.createObjectURL(e);
53817
53886
  this.workerPool = new Ar(
53818
53887
  2,
53819
53888
  t
@@ -53821,18 +53890,18 @@ class iR {
53821
53890
  }
53822
53891
  fetch(e, t = (r) => {
53823
53892
  }, i, n) {
53824
- let r = new nR(e, i, n);
53893
+ let r = new rR(e, i, n);
53825
53894
  this.workerPool.Enqueue(r, (a) => {
53826
53895
  t(a);
53827
53896
  });
53828
53897
  }
53829
53898
  }
53830
- class nR {
53899
+ class rR {
53831
53900
  constructor(e, t, i) {
53832
53901
  this.url = "", this.url = e, this.byteRangeStart = t, this.byteRangeEnd = i;
53833
53902
  }
53834
53903
  }
53835
- function sR() {
53904
+ function aR() {
53836
53905
  class s {
53837
53906
  constructor(t, i, n) {
53838
53907
  this.X = 0, this.Y = 0, this.Z = 0, this.X = t, this.Y = i, this.Z = n;
@@ -53854,10 +53923,10 @@ function sR() {
53854
53923
  self.postMessage(i());
53855
53924
  };
53856
53925
  }
53857
- const rR = sR;
53858
- class aR {
53926
+ const oR = aR;
53927
+ class lR {
53859
53928
  constructor() {
53860
- const e = new Blob([`(${rR})()`]), t = URL.createObjectURL(e);
53929
+ const e = new Blob([`(${oR})()`]), t = URL.createObjectURL(e);
53861
53930
  this.workerPool = new Ar(navigator.hardwareConcurrency || 10, t);
53862
53931
  }
53863
53932
  getBoundingBox(e, t = (i) => {
@@ -53870,7 +53939,7 @@ class aR {
53870
53939
  );
53871
53940
  }
53872
53941
  }
53873
- function oR() {
53942
+ function cR() {
53874
53943
  self.onmessage = function(s) {
53875
53944
  const e = s.data;
53876
53945
  function t(n, r, a = 0.1) {
@@ -53888,10 +53957,10 @@ function oR() {
53888
53957
  self.postMessage(i);
53889
53958
  };
53890
53959
  }
53891
- const lR = oR;
53892
- class cR {
53960
+ const hR = cR;
53961
+ class dR {
53893
53962
  constructor() {
53894
- const e = new Blob([`(${lR})()`]), t = URL.createObjectURL(e);
53963
+ const e = new Blob([`(${hR})()`]), t = URL.createObjectURL(e);
53895
53964
  this.workerPool = new Ar(4, t);
53896
53965
  }
53897
53966
  checkIntersect(e, t = (i) => {
@@ -53901,7 +53970,7 @@ class cR {
53901
53970
  });
53902
53971
  }
53903
53972
  }
53904
- function hR() {
53973
+ function uR() {
53905
53974
  class s {
53906
53975
  constructor(f, p, v) {
53907
53976
  this.x = 0, this.y = 0, this.z = 0, this.x = f, this.y = p, this.z = v;
@@ -53983,10 +54052,10 @@ function hR() {
53983
54052
  self.postMessage(!1);
53984
54053
  };
53985
54054
  }
53986
- const dR = hR;
53987
- class uR {
54055
+ const fR = uR;
54056
+ class pR {
53988
54057
  constructor() {
53989
- const e = new Blob([`(${dR})()`]), t = URL.createObjectURL(e);
54058
+ const e = new Blob([`(${fR})()`]), t = URL.createObjectURL(e);
53990
54059
  this.workerPool = new Ar(
53991
54060
  navigator.hardwareConcurrency || 10,
53992
54061
  t
@@ -53999,9 +54068,9 @@ class uR {
53999
54068
  });
54000
54069
  }
54001
54070
  }
54002
- class fR {
54071
+ class mR {
54003
54072
  constructor(e) {
54004
- this.viralViewerApi = e, this.dataTree = [], this.trackingData = /* @__PURE__ */ new Map(), this.fetchDataWorker = new iR(), this.buildTreeNodeWorker = new JI(), this._boundingBoxWorker = new aR(), this._boundingBoxIntersectWorker = new cR(), this._checkClashWorker = new uR(), this.searchValue = "", this.firstElementId = "211850", this.secondElementId = "680539", this.groupByKeyword = "Category", this._shallowCompare = (t, i) => JSON.stringify(Object.keys(t).sort()) === JSON.stringify(Object.keys(i).sort()) && JSON.stringify(Object.values(t).sort()) === JSON.stringify(Object.values(i).sort());
54073
+ this.viralViewerApi = e, this.dataTree = [], this.trackingData = /* @__PURE__ */ new Map(), this.fetchDataWorker = new sR(), this.buildTreeNodeWorker = new tR(), this._boundingBoxWorker = new lR(), this._boundingBoxIntersectWorker = new dR(), this._checkClashWorker = new pR(), this.searchValue = "", this.firstElementId = "211850", this.secondElementId = "680539", this.groupByKeyword = "Category", this._shallowCompare = (t, i) => JSON.stringify(Object.keys(t).sort()) === JSON.stringify(Object.keys(i).sort()) && JSON.stringify(Object.values(t).sort()) === JSON.stringify(Object.values(i).sort());
54005
54074
  }
54006
54075
  addTrackingData(e, t) {
54007
54076
  this.trackingData.set(e, t);
@@ -54156,40 +54225,40 @@ class fR {
54156
54225
  }
54157
54226
  return this.viralViewerApi.viralVisibilityManager.exceptElements = [], this.viralViewerApi.viralScene.mergedModel.changeColor(
54158
54227
  i.deleted.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54159
- Et.hexToRGB(Ce.deleted)
54228
+ Et.hexToRGB(Ee.deleted)
54160
54229
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54161
54230
  elements: i.deleted.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54162
- color: Et.hexToRGB(Ce.deleted)
54231
+ color: Et.hexToRGB(Ee.deleted)
54163
54232
  }), this.viralViewerApi.viralScene.mergedModel.changeColor(
54164
54233
  i.added.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54165
- Et.hexToRGB(Ce.added)
54234
+ Et.hexToRGB(Ee.added)
54166
54235
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54167
54236
  elements: i.added.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54168
- color: Et.hexToRGB(Ce.added)
54237
+ color: Et.hexToRGB(Ee.added)
54169
54238
  }), this.viralViewerApi.viralScene.mergedModel.changeColor(
54170
54239
  i.modified.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54171
- Et.hexToRGB(Ce.modified)
54240
+ Et.hexToRGB(Ee.modified)
54172
54241
  ), this.viralViewerApi.viralScene.mergedModel.changeColor(
54173
54242
  i.modified.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54174
- Et.hexToRGB(Ce.modified)
54243
+ Et.hexToRGB(Ee.modified)
54175
54244
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54176
54245
  elements: i.modified.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54177
- color: Et.hexToRGB(Ce.modified)
54246
+ color: Et.hexToRGB(Ee.modified)
54178
54247
  }), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54179
54248
  elements: i.modified.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54180
- color: Et.hexToRGB(Ce.modified)
54249
+ color: Et.hexToRGB(Ee.modified)
54181
54250
  }), this.viralViewerApi.viralScene.mergedModel.changeColor(
54182
54251
  i.notChanged.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54183
- Et.hexToRGB(Ce.notChanged)
54252
+ Et.hexToRGB(Ee.notChanged)
54184
54253
  ), this.viralViewerApi.viralScene.mergedModel.changeColor(
54185
54254
  i.notChanged.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54186
- Et.hexToRGB(Ce.notChanged)
54255
+ Et.hexToRGB(Ee.notChanged)
54187
54256
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54188
54257
  elements: i.notChanged.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54189
- color: Et.hexToRGB(Ce.notChanged)
54258
+ color: Et.hexToRGB(Ee.notChanged)
54190
54259
  }), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54191
54260
  elements: i.notChanged.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54192
- color: Et.hexToRGB(Ce.notChanged)
54261
+ color: Et.hexToRGB(Ee.notChanged)
54193
54262
  }), this.viralViewerApi.viralRenderer.render(), i;
54194
54263
  }
54195
54264
  uncompareModels() {
@@ -54362,7 +54431,7 @@ class fR {
54362
54431
  }
54363
54432
  //#endregion
54364
54433
  }
54365
- class pR {
54434
+ class gR {
54366
54435
  constructor(e) {
54367
54436
  this.viralViewerApi = e, this.spinner = null, this.logo = `<svg
54368
54437
  width="348.25488"
@@ -54423,9 +54492,9 @@ class pR {
54423
54492
  100% { transform: rotate(360deg); }
54424
54493
  }`, t = document.createElement("style");
54425
54494
  if (t.innerHTML = e, document.head.appendChild(t), this.viralViewerApi.targetElement) {
54426
- this.spinner = document.createElement("div"), this.spinner.setAttribute("style", `position: absolute;top:0px;left:0px;right:0px;bottom:0px;background-color: ${Ce.background};justify-content: center;align-items: center;display:none; z-index: 100`);
54495
+ this.spinner = document.createElement("div"), this.spinner.setAttribute("style", `position: absolute;top:0px;left:0px;right:0px;bottom:0px;background-color: ${Ee.background};justify-content: center;align-items: center;display:none; z-index: 100`);
54427
54496
  const i = document.createElement("div"), n = document.createElement("div");
54428
- n.setAttribute("style", `width: 200px; height: 200px; border-radius: 50%; border: 2px solid #ccc; border-top: 2px solid ${Ce.primary}; animation: spin 1.5s linear infinite;`);
54497
+ n.setAttribute("style", `width: 200px; height: 200px; border-radius: 50%; border: 2px solid #ccc; border-top: 2px solid ${Ee.primary}; animation: spin 1.5s linear infinite;`);
54429
54498
  const r = Md.createElementFromHTML(this.logo);
54430
54499
  r.setAttribute("style", "height:150px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)"), i.appendChild(n), i.appendChild(r), this.spinner.appendChild(i), this.viralViewerApi.targetElement.appendChild(this.spinner);
54431
54500
  }
@@ -54437,35 +54506,71 @@ class pR {
54437
54506
  this.spinner && this.spinner.style.setProperty("display", "none");
54438
54507
  }
54439
54508
  }
54440
- class mR {
54509
+ class vR {
54441
54510
  constructor(e) {
54442
54511
  this.viralViewerApi = e, this.modal = null, this.modalTitle = null, this.modalBody = null, this.modalBodyLeft = null, this.modalBodyRight = null, this.properties = {}, this.rawModal = `<div class="modal" id="myModal">
54443
54512
  <div class="modal-content">
54444
54513
  <div id="modal-header" style="
54445
- cursor: pointer;
54514
+ cursor: move;
54446
54515
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
54447
54516
  padding-bottom: 5px;
54517
+ margin-bottom: 10px;
54518
+ flex-shrink: 0;
54448
54519
  ">
54449
54520
  <span class="close" id="closeBtn">&times;</span>
54450
- <h2 style="margin: 0px !important;color:${Ce.secondary}" id="modal-title">
54521
+ <h2 style="margin: 0px !important;color:${Ee.secondary};white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" id="modal-title">
54451
54522
  </h2>
54452
54523
  </div>
54453
- <div id="modal-body" style="max-height:80vh;overflow:auto;display:flex">
54454
- <div id="modal-body-left" style="flex:1;"></div>
54455
- <div id="modal-body-right" style="margin-left:10px"></div>
54524
+ <div id="modal-body" style="overflow: auto;display:flex;flex: 1;min-height: 0;">
54525
+ <div id="modal-body-left" style="flex:1;min-width: 0;"></div>
54526
+ <div id="modal-body-right" style="margin-left:10px;min-width: 0;"></div>
54456
54527
  </div>
54528
+ <div class="resize-handle" id="resizeHandle"></div>
54457
54529
  </div>
54458
54530
  </div>`, this.rawModalStyle = `.modal {
54459
54531
  display: none;
54460
54532
  position: fixed;
54461
54533
  z-index: 1;
54534
+ min-width: 200px;
54535
+ min-height: 150px;
54462
54536
  }
54463
54537
 
54464
54538
  .modal-content {
54465
- background-color: ${Ce.background};
54539
+ background-color: ${Ee.background};
54466
54540
  border: 1px solid #ccc;
54467
54541
  border-radius: 5px;
54468
54542
  padding: 10px;
54543
+ position: relative;
54544
+ width: 100%;
54545
+ height: 100%;
54546
+ box-sizing: border-box;
54547
+ display: flex;
54548
+ flex-direction: column;
54549
+ overflow: hidden;
54550
+ }
54551
+
54552
+ .resize-handle {
54553
+ position: absolute;
54554
+ bottom: 0;
54555
+ right: 0;
54556
+ width: 15px;
54557
+ height: 15px;
54558
+ cursor: nwse-resize;
54559
+ background: linear-gradient(135deg, transparent 0%, transparent 50%, ${Ee.secondary} 50%, ${Ee.secondary} 100%);
54560
+ opacity: 0.5;
54561
+ border-bottom-right-radius: 5px;
54562
+ }
54563
+
54564
+ .resize-handle:hover {
54565
+ opacity: 1;
54566
+ }
54567
+
54568
+ #modal-body-left p,
54569
+ #modal-body-right p {
54570
+ white-space: nowrap;
54571
+ overflow: hidden;
54572
+ text-overflow: ellipsis;
54573
+ max-width: 100%;
54469
54574
  }
54470
54575
 
54471
54576
  .close {
@@ -54475,7 +54580,7 @@ class mR {
54475
54580
  }
54476
54581
 
54477
54582
  .close:hover {
54478
- color: ${Ce.accent};
54583
+ color: ${Ee.accent};
54479
54584
  }
54480
54585
  ::-webkit-scrollbar {
54481
54586
  width: 5px;
@@ -54503,22 +54608,41 @@ class mR {
54503
54608
  ::-webkit-scrollbar-thumb:hover {
54504
54609
  background: rgba(0, 0, 0, 0.5);
54505
54610
  }
54506
- `, this.isDragging = !1, this.offsetX = 0, this.offsetY = 0, this.inject();
54611
+ `, this.isDragging = !1, this.isResizing = !1, this.offsetX = 0, this.offsetY = 0, this.minWidth = 200, this.minHeight = 150, this.inject();
54507
54612
  }
54508
54613
  inject() {
54509
54614
  if (this.viralViewerApi.targetElement) {
54510
54615
  const e = document.createElement("style");
54511
54616
  e.innerHTML = this.rawModalStyle, document.head.appendChild(e), this.modal = Md.createElementFromHTML(this.rawModal), this.viralViewerApi.targetElement.appendChild(this.modal);
54512
- const t = document.getElementById("modal-header");
54617
+ const t = document.getElementById("modal-header"), i = document.getElementById("resizeHandle");
54513
54618
  this.modalTitle = document.getElementById("modal-title"), this.modalBody = document.getElementById("modal-body"), this.modalBodyLeft = document.getElementById("modal-body-left"), this.modalBodyRight = document.getElementById("modal-body-right");
54514
- const i = document.getElementById("closeBtn");
54515
- t.addEventListener("mousedown", (n) => {
54516
- this.isDragging = !0, this.offsetX = n.clientX - this.modal.getBoundingClientRect().left, this.offsetY = n.clientY - this.modal.getBoundingClientRect().top, this.modal.style.zIndex = "2";
54517
- }), this.viralViewerApi.targetElement.addEventListener("mousemove", (n) => {
54518
- this.isDragging && (this.modal.style.left = n.clientX - this.offsetX + "px", this.modal.style.top = n.clientY - this.offsetY + "px");
54519
- }), this.modal.addEventListener("mouseup", () => {
54520
- this.isDragging = !1, this.modal.style.zIndex = "1";
54521
- }), i.addEventListener("click", () => {
54619
+ const n = document.getElementById("closeBtn");
54620
+ t.addEventListener("mousedown", (o) => {
54621
+ o.preventDefault(), this.isDragging = !0, this.viralViewerApi.targetElement.getBoundingClientRect();
54622
+ const l = this.modal.getBoundingClientRect();
54623
+ this.offsetX = o.clientX - l.left, this.offsetY = o.clientY - l.top, this.modal.style.zIndex = "2";
54624
+ }), i.addEventListener("mousedown", (o) => {
54625
+ o.preventDefault(), o.stopPropagation(), this.isResizing = !0, this.modal.style.zIndex = "2";
54626
+ });
54627
+ const r = (o) => {
54628
+ if (this.isDragging) {
54629
+ const l = this.viralViewerApi.targetElement.getBoundingClientRect(), c = this.modal.getBoundingClientRect();
54630
+ let h = o.clientX - l.left - this.offsetX, d = o.clientY - l.top - this.offsetY;
54631
+ h = Math.max(0, Math.min(h, l.width - c.width)), d = Math.max(0, Math.min(d, l.height - c.height)), this.modal.style.left = h + "px", this.modal.style.top = d + "px";
54632
+ }
54633
+ if (this.isResizing) {
54634
+ const l = this.viralViewerApi.targetElement.getBoundingClientRect(), c = this.modal.getBoundingClientRect();
54635
+ let h = o.clientX - c.left, d = o.clientY - c.top;
54636
+ h = Math.max(this.minWidth, h), d = Math.max(this.minHeight, d);
54637
+ const u = l.width - (c.left - l.left), f = l.height - (c.top - l.top);
54638
+ h = Math.min(h, u), d = Math.min(d, f), this.modal.style.width = h + "px", this.modal.style.height = d + "px";
54639
+ }
54640
+ };
54641
+ document.addEventListener("mousemove", r);
54642
+ const a = () => {
54643
+ (this.isDragging || this.isResizing) && (this.isDragging = !1, this.isResizing = !1, this.modal.style.zIndex = "1");
54644
+ };
54645
+ document.addEventListener("mouseup", a), n.addEventListener("click", () => {
54522
54646
  this.modal.style.display = "none";
54523
54647
  });
54524
54648
  }
@@ -54530,7 +54654,11 @@ class mR {
54530
54654
  this.modal && (this.modal.style.display = "none");
54531
54655
  }
54532
54656
  updatePosition(e, t) {
54533
- this.isDragging && (this.modal.style.left = e - this.offsetX + "px", this.modal.style.top = t - this.offsetY + "px");
54657
+ if (this.isDragging && this.modal && this.viralViewerApi.targetElement) {
54658
+ const i = this.viralViewerApi.targetElement.getBoundingClientRect(), n = this.modal.getBoundingClientRect();
54659
+ let r = e - i.left - this.offsetX, a = t - i.top - this.offsetY;
54660
+ r = Math.max(0, Math.min(r, i.width - n.width)), a = Math.max(0, Math.min(a, i.height - n.height)), this.modal.style.left = r + "px", this.modal.style.top = a + "px";
54661
+ }
54534
54662
  }
54535
54663
  updateModalContent(e, t) {
54536
54664
  var n, r;
@@ -54538,12 +54666,12 @@ class mR {
54538
54666
  this.modalBodyLeft.innerHTML = "", this.modalBodyRight.innerHTML = "";
54539
54667
  for (var i in this.properties) {
54540
54668
  let a = this.properties[i];
54541
- this.modalBodyLeft.innerHTML += `<p style="margin:0px !important;color:${Ce.primary};font-weight:600;height:16px;font-size:14px">${a.name}</p>`, this.modalBodyRight.innerHTML += `<p style="margin:0px !important;color:${Ce.primary};height:16px;font-size:14px">${a.value}</p>`;
54669
+ this.modalBodyLeft.innerHTML += `<p style="margin:0px !important;color:${Ee.primary};font-weight:600;font-size:14px;line-height:20px;" title="${a.name}">${a.name}</p>`, this.modalBodyRight.innerHTML += `<p style="margin:0px !important;color:${Ee.primary};font-size:14px;line-height:20px;" title="${a.value}">${a.value}</p>`;
54542
54670
  }
54543
54671
  }
54544
54672
  }
54545
54673
  }
54546
- class gR {
54674
+ class xR {
54547
54675
  constructor(e) {
54548
54676
  this.viralTools = e;
54549
54677
  }
@@ -54552,7 +54680,7 @@ class gR {
54552
54680
  e.activate && console.log((t = this.viralTools.viralViewerApi.viralCamera.camera) == null ? void 0 : t.position);
54553
54681
  }
54554
54682
  }
54555
- class vR {
54683
+ class bR {
54556
54684
  constructor(e) {
54557
54685
  this.viralTools = e;
54558
54686
  }
@@ -54560,7 +54688,7 @@ class vR {
54560
54688
  this.viralTools.viralViewerApi.targetElement && e.activate;
54561
54689
  }
54562
54690
  }
54563
- class xR {
54691
+ class yR {
54564
54692
  constructor(e) {
54565
54693
  this.viralTools = e;
54566
54694
  }
@@ -54568,7 +54696,7 @@ class xR {
54568
54696
  this.viralTools.viralViewerApi.targetElement && (e.activate ? this.viralTools.viralViewerApi.targetElement.style.setProperty("background-color", "#303030") : this.viralTools.viralViewerApi.targetElement.style.setProperty("background-color", "unset"), this.viralTools.viralViewerApi.localStorageService.setObject("viral-viewer-tool", this.viralTools.tools));
54569
54697
  }
54570
54698
  }
54571
- class bR {
54699
+ class _R {
54572
54700
  constructor(e) {
54573
54701
  this.viralTools = e, this.isActivated = !1;
54574
54702
  }
@@ -54588,7 +54716,7 @@ class bR {
54588
54716
  }
54589
54717
  }
54590
54718
  }
54591
- class yR {
54719
+ class wR {
54592
54720
  constructor(e) {
54593
54721
  this.viralTools = e, this.viralToolMeasureScene = new lc(), this.isActivated = !1, this.measures = [], this.point1 = null, this.point2 = null, this.tempPoint2 = null, this.defaultSprite = this.makeSprite(), this.measureObject = new Q(), this.tempMeasure = new Q(), this.tempSprite1 = null, this.tempLine = null, this.tempSprite2 = null;
54594
54722
  }
@@ -54647,7 +54775,7 @@ class yR {
54647
54775
  let r = document.createElement("canvas"), a = r.getContext("2d"), o = 32;
54648
54776
  r.width = o, r.height = o;
54649
54777
  let l = o * 0.8 / 2;
54650
- return a && (a.shadowBlur = 5, a.shadowColor = "#555", a.fillStyle = "#fff", a.beginPath(), a.arc(o / 2, o / 2, l, 0, Math.PI * 2), a.closePath(), a.fill(), a.shadowBlur = 0, a.fillStyle = Ce.primary, a.beginPath(), a.arc(o / 2, o / 2, l * 0.5, 0, Math.PI * 2), a.closePath(), a.fill()), r;
54778
+ return a && (a.shadowBlur = 5, a.shadowColor = "#555", a.fillStyle = "#fff", a.beginPath(), a.arc(o / 2, o / 2, l, 0, Math.PI * 2), a.closePath(), a.fill(), a.shadowBlur = 0, a.fillStyle = Ee.primary, a.beginPath(), a.arc(o / 2, o / 2, l * 0.5, 0, Math.PI * 2), a.closePath(), a.fill()), r;
54651
54779
  }
54652
54780
  let t = new np(e()), i = new id({
54653
54781
  map: t,
@@ -54657,7 +54785,7 @@ class yR {
54657
54785
  }
54658
54786
  makeLine(e, t) {
54659
54787
  let i = new dn({
54660
- color: Et.hexToThreejsColor(Ce.primary),
54788
+ color: Et.hexToThreejsColor(Ee.primary),
54661
54789
  linewidth: 20
54662
54790
  });
54663
54791
  const n = [e, t], r = new dt().setFromPoints(n);
@@ -54671,7 +54799,7 @@ class yR {
54671
54799
  if (r) {
54672
54800
  r.font = "bolder " + a + 'px "Open Sans", Arial';
54673
54801
  let d = "~ " + Math.round(e.distanceTo(t)), u = r.measureText(d), f = 20, p = 10, v = 10;
54674
- n.width = u.width + f * 2 + v * 2, n.height = a + p * 2 + v * 2, r.shadowBlur = 10, r.shadowColor = "#555", r.fillStyle = Ce.primary, i(r, v, v, n.width - v * 2, n.height - v * 2, 10), r.shadowBlur = 0, r.fillStyle = "#fff", r.textAlign = "left", r.textBaseline = "top", r.font = "bolder " + a + 'px "Open Sans", Arial', r.fillText(d, f + v, p + v);
54802
+ n.width = u.width + f * 2 + v * 2, n.height = a + p * 2 + v * 2, r.shadowBlur = 10, r.shadowColor = "#555", r.fillStyle = Ee.primary, i(r, v, v, n.width - v * 2, n.height - v * 2, 10), r.shadowBlur = 0, r.fillStyle = "#fff", r.textAlign = "left", r.textBaseline = "top", r.font = "bolder " + a + 'px "Open Sans", Arial', r.fillText(d, f + v, p + v);
54675
54803
  }
54676
54804
  let o = new np(n), l = new tp(new id({
54677
54805
  map: o,
@@ -54688,7 +54816,7 @@ class yR {
54688
54816
  e.code == "Escape" && (Et.clearChildren(this.tempMeasure), this.point1 = null, this.point2 = null, this.tempPoint2 = null, this.viralTools.viralViewerApi.viralRenderer.render());
54689
54817
  }
54690
54818
  }
54691
- class _R {
54819
+ class SR {
54692
54820
  constructor(e) {
54693
54821
  this.viralTools = e;
54694
54822
  }
@@ -54724,14 +54852,14 @@ class _R {
54724
54852
  }
54725
54853
  }
54726
54854
  }
54727
- class wR {
54855
+ class MR {
54728
54856
  constructor(e) {
54729
54857
  this.viralViewerApi = e, this.tools = [
54730
54858
  {
54731
54859
  name: "navigation",
54732
54860
  tools: [
54733
54861
  {
54734
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>cursor-move</title><path d="M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z" /></svg>`,
54862
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>cursor-move</title><path d="M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z" /></svg>`,
54735
54863
  index: 0,
54736
54864
  activate: !0,
54737
54865
  allowDehydrated: !1,
@@ -54740,7 +54868,7 @@ class wR {
54740
54868
  }
54741
54869
  },
54742
54870
  {
54743
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>nature-people-outline</title><path d="M16 20V16.12C19.47 15.71 22.17 12.76 22.17 9.17C22.17 5.3 19.04 2.17 15.17 2.17C13.31 2.17 11.53 2.91 10.22 4.22C8.91 5.53 8.17 7.31 8.17 9.17C8.17 9.95 8.3 10.69 8.53 11.38C8.64 11.71 8.77 12.03 8.93 12.33C9.91 14.27 11.78 15.68 14 16.06V20H6V17H7V12.95C7 12.72 6.89 12.5 6.74 12.33L6.71 12.29L6.66 12.25C6.5 12.09 6.25 12 6 12H3C2.76 12 2.5 12.09 2.34 12.25L2.29 12.29C2.11 12.5 2 12.74 2 13V17H3V22H19V20H16M15.08 14.22L14.33 14.09C11.96 13.69 10.17 11.64 10.17 9.17C10.17 7.84 10.7 6.57 11.63 5.63C12.57 4.7 13.85 4.17 15.17 4.17C17.93 4.17 20.17 6.41 20.17 9.17C20.17 11.73 18.24 13.84 15.77 14.13L15.08 14.21M4.5 11C5.33 11 6 10.33 6 9.5C6 8.67 5.33 8 4.5 8C3.67 8 3 8.67 3 9.5C3 10.33 3.67 11 4.5 11Z" /></svg>`,
54871
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>nature-people-outline</title><path d="M16 20V16.12C19.47 15.71 22.17 12.76 22.17 9.17C22.17 5.3 19.04 2.17 15.17 2.17C13.31 2.17 11.53 2.91 10.22 4.22C8.91 5.53 8.17 7.31 8.17 9.17C8.17 9.95 8.3 10.69 8.53 11.38C8.64 11.71 8.77 12.03 8.93 12.33C9.91 14.27 11.78 15.68 14 16.06V20H6V17H7V12.95C7 12.72 6.89 12.5 6.74 12.33L6.71 12.29L6.66 12.25C6.5 12.09 6.25 12 6 12H3C2.76 12 2.5 12.09 2.34 12.25L2.29 12.29C2.11 12.5 2 12.74 2 13V17H3V22H19V20H16M15.08 14.22L14.33 14.09C11.96 13.69 10.17 11.64 10.17 9.17C10.17 7.84 10.7 6.57 11.63 5.63C12.57 4.7 13.85 4.17 15.17 4.17C17.93 4.17 20.17 6.41 20.17 9.17C20.17 11.73 18.24 13.84 15.77 14.13L15.08 14.21M4.5 11C5.33 11 6 10.33 6 9.5C6 8.67 5.33 8 4.5 8C3.67 8 3 8.67 3 9.5C3 10.33 3.67 11 4.5 11Z" /></svg>`,
54744
54872
  index: 1,
54745
54873
  activate: !1,
54746
54874
  allowDehydrated: !1,
@@ -54753,7 +54881,7 @@ class wR {
54753
54881
  name: "helper",
54754
54882
  tools: [
54755
54883
  {
54756
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>flag-variant-outline</title><path d="M6,3A1,1 0 0,1 7,4V4.88C8.06,4.44 9.5,4 11,4C14,4 14,6 16,6C19,6 20,4 20,4V12C20,12 19,14 16,14C13,14 13,12 11,12C8,12 7,14 7,14V21H5V4A1,1 0 0,1 6,3M7,7.25V11.5C7,11.5 9,10 11,10C13,10 14,12 16,12C18,12 18,11 18,11V7.5C18,7.5 17,8 16,8C14,8 13,6 11,6C9,6 7,7.25 7,7.25Z" /></svg>`,
54884
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>flag-variant-outline</title><path d="M6,3A1,1 0 0,1 7,4V4.88C8.06,4.44 9.5,4 11,4C14,4 14,6 16,6C19,6 20,4 20,4V12C20,12 19,14 16,14C13,14 13,12 11,12C8,12 7,14 7,14V21H5V4A1,1 0 0,1 6,3M7,7.25V11.5C7,11.5 9,10 11,10C13,10 14,12 16,12C18,12 18,11 18,11V7.5C18,7.5 17,8 16,8C14,8 13,6 11,6C9,6 7,7.25 7,7.25Z" /></svg>`,
54757
54885
  index: 0,
54758
54886
  activate: !1,
54759
54887
  allowDehydrated: !1,
@@ -54761,7 +54889,7 @@ class wR {
54761
54889
  action: (t) => this.viralToolElevation.activate(t)
54762
54890
  },
54763
54891
  {
54764
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>ruler</title><path d="M1.39,18.36L3.16,16.6L4.58,18L5.64,16.95L4.22,15.54L5.64,14.12L8.11,16.6L9.17,15.54L6.7,13.06L8.11,11.65L9.53,13.06L10.59,12L9.17,10.59L10.59,9.17L13.06,11.65L14.12,10.59L11.65,8.11L13.06,6.7L14.47,8.11L15.54,7.05L14.12,5.64L15.54,4.22L18,6.7L19.07,5.64L16.6,3.16L18.36,1.39L22.61,5.64L5.64,22.61L1.39,18.36Z" /></svg>`,
54892
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>ruler</title><path d="M1.39,18.36L3.16,16.6L4.58,18L5.64,16.95L4.22,15.54L5.64,14.12L8.11,16.6L9.17,15.54L6.7,13.06L8.11,11.65L9.53,13.06L10.59,12L9.17,10.59L10.59,9.17L13.06,11.65L14.12,10.59L11.65,8.11L13.06,6.7L14.47,8.11L15.54,7.05L14.12,5.64L15.54,4.22L18,6.7L19.07,5.64L16.6,3.16L18.36,1.39L22.61,5.64L5.64,22.61L1.39,18.36Z" /></svg>`,
54765
54893
  index: 1,
54766
54894
  activate: !1,
54767
54895
  allowDehydrated: !1,
@@ -54769,7 +54897,7 @@ class wR {
54769
54897
  action: (t) => this.viralToolMeasure.activate(t)
54770
54898
  },
54771
54899
  {
54772
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>vector-intersection</title><path d="M3.14,1A2.14,2.14 0 0,0 1,3.14V5H3V3H5V1H3.14M7,1V3H10V1H7M12,1V3H14V5H16V3.14C16,1.96 15.04,1 13.86,1H12M1,7V10H3V7H1M9,7C7.89,7 7,7.89 7,9C7,11.33 7,16 7,16C7,16 11.57,16 13.86,16A2.14,2.14 0 0,0 16,13.86C16,11.57 16,7 16,7C16,7 11.33,7 9,7M18,7V9H20V11H22V9C22,7.89 21.11,7 20,7H18M9,9H14V14H9V9M1,12V13.86C1,15.04 1.96,16 3.14,16H5V14H3V12H1M20,13V16H22V13H20M7,18V20C7,21.11 7.89,22 9,22H11V20H9V18H7M20,18V20H18V22H20C21.11,22 22,21.11 22,20V18H20M13,20V22H16V20H13Z" /></svg>`,
54900
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>vector-intersection</title><path d="M3.14,1A2.14,2.14 0 0,0 1,3.14V5H3V3H5V1H3.14M7,1V3H10V1H7M12,1V3H14V5H16V3.14C16,1.96 15.04,1 13.86,1H12M1,7V10H3V7H1M9,7C7.89,7 7,7.89 7,9C7,11.33 7,16 7,16C7,16 11.57,16 13.86,16A2.14,2.14 0 0,0 16,13.86C16,11.57 16,7 16,7C16,7 11.33,7 9,7M18,7V9H20V11H22V9C22,7.89 21.11,7 20,7H18M9,9H14V14H9V9M1,12V13.86C1,15.04 1.96,16 3.14,16H5V14H3V12H1M20,13V16H22V13H20M7,18V20C7,21.11 7.89,22 9,22H11V20H9V18H7M20,18V20H18V22H20C21.11,22 22,21.11 22,20V18H20M13,20V22H16V20H13Z" /></svg>`,
54773
54901
  index: 2,
54774
54902
  activate: !1,
54775
54903
  allowDehydrated: !1,
@@ -54783,7 +54911,7 @@ class wR {
54783
54911
  name: "environment",
54784
54912
  tools: [
54785
54913
  {
54786
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>white-balance-sunny</title><path d="M3.55 19.09L4.96 20.5L6.76 18.71L5.34 17.29M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12C18 8.68 15.31 6 12 6M20 13H23V11H20M17.24 18.71L19.04 20.5L20.45 19.09L18.66 17.29M20.45 5L19.04 3.6L17.24 5.39L18.66 6.81M13 1H11V4H13M6.76 5.39L4.96 3.6L3.55 5L5.34 6.81L6.76 5.39M1 13H4V11H1M13 20H11V23H13" /></svg>`,
54914
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>white-balance-sunny</title><path d="M3.55 19.09L4.96 20.5L6.76 18.71L5.34 17.29M12 6C8.69 6 6 8.69 6 12S8.69 18 12 18 18 15.31 18 12C18 8.68 15.31 6 12 6M20 13H23V11H20M17.24 18.71L19.04 20.5L20.45 19.09L18.66 17.29M20.45 5L19.04 3.6L17.24 5.39L18.66 6.81M13 1H11V4H13M6.76 5.39L4.96 3.6L3.55 5L5.34 6.81L6.76 5.39M1 13H4V11H1M13 20H11V23H13" /></svg>`,
54787
54915
  index: 0,
54788
54916
  activate: !1,
54789
54917
  allowDehydrated: !1,
@@ -54791,7 +54919,7 @@ class wR {
54791
54919
  action: (t) => this.viralToolSunlight.activate(t)
54792
54920
  },
54793
54921
  {
54794
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M480-120q-75 0-140.5-28.5t-114-77q-48.5-48.5-77-114T120-480q0-75 28.5-140.5t77-114q48.5-48.5 114-77T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-120ZM200-480q0 83 44.5 152T365-225q-42-51-63.5-120T280-492q0-66 16-125t46-107q-66 38-104 103t-38 141Zm348 272q75-19 130-74t74-130L548-208Zm-67-18 278-278q-2-14-4-28.5t-7-28.5L444-257q8 9 17.5 16.5T481-226Zm-74-79 315-315q-6-10-12-19.5T696-658L385-348q5 11 10.5 21.5T407-305Zm-40-108 286-287q-10-8-19.5-14.5T613-727L360-474q1 16 2.5 31t4.5 30Zm0-152 185-186q-15-4-30-6t-30-3q-49 29-81 79t-44 116Zm-25-159Z"/></svg>`,
54922
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M480-120q-75 0-140.5-28.5t-114-77q-48.5-48.5-77-114T120-480q0-75 28.5-140.5t77-114q48.5-48.5 114-77T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-120ZM200-480q0 83 44.5 152T365-225q-42-51-63.5-120T280-492q0-66 16-125t46-107q-66 38-104 103t-38 141Zm348 272q75-19 130-74t74-130L548-208Zm-67-18 278-278q-2-14-4-28.5t-7-28.5L444-257q8 9 17.5 16.5T481-226Zm-74-79 315-315q-6-10-12-19.5T696-658L385-348q5 11 10.5 21.5T407-305Zm-40-108 286-287q-10-8-19.5-14.5T613-727L360-474q1 16 2.5 31t4.5 30Zm0-152 185-186q-15-4-30-6t-30-3q-49 29-81 79t-44 116Zm-25-159Z"/></svg>`,
54795
54923
  index: 1,
54796
54924
  activate: !1,
54797
54925
  allowDehydrated: !1,
@@ -54804,7 +54932,7 @@ class wR {
54804
54932
  name: "theme",
54805
54933
  tools: [
54806
54934
  {
54807
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>moon-waning-crescent</title><path d="M2 12A10 10 0 0 0 15 21.54A10 10 0 0 1 15 2.46A10 10 0 0 0 2 12Z" /></svg>`,
54935
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>moon-waning-crescent</title><path d="M2 12A10 10 0 0 0 15 21.54A10 10 0 0 1 15 2.46A10 10 0 0 0 2 12Z" /></svg>`,
54808
54936
  index: 0,
54809
54937
  activate: !1,
54810
54938
  allowDehydrated: !0,
@@ -54817,7 +54945,7 @@ class wR {
54817
54945
  name: "debug",
54818
54946
  tools: [
54819
54947
  {
54820
- svg: `<svg fill="${Ce.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>cube-scan</title><path d="M17 22L22 19V13L17 16V22M17 8V2L22 5V11L17 8M1 8L6 11L11 8L6 5L1 8M6 13L1 10V16L6 19V13M13 16L8 13V19L13 22V16M13 8L8 5V11L13 8Z" /></svg>`,
54948
+ svg: `<svg fill="${Ee.primary}" style="height: 20px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>cube-scan</title><path d="M17 22L22 19V13L17 16V22M17 8V2L22 5V11L17 8M1 8L6 11L11 8L6 5L1 8M6 13L1 10V16L6 19V13M13 16L8 13V19L13 22V16M13 8L8 5V11L13 8Z" /></svg>`,
54821
54949
  index: 0,
54822
54950
  activate: !1,
54823
54951
  allowDehydrated: !1,
@@ -54828,7 +54956,7 @@ class wR {
54828
54956
  }
54829
54957
  ]
54830
54958
  }
54831
- ], this.items = [], this.viralToolAvatar = new vR(this), this.viralToolDarkMode = new xR(this), this.viralToolSunlight = new _R(this), this.viralToolElevation = new bR(this), this.viralToolMeasure = new yR(this), this.viralToolAmbientOcclusion = new gR(this), this.dehydratedCachedData(), this.executeToolsByDefault(), this.injectTools(), this.viralViewerApi.emit(At.LOADED_TOOLS);
54959
+ ], this.items = [], this.viralToolAvatar = new bR(this), this.viralToolDarkMode = new yR(this), this.viralToolSunlight = new SR(this), this.viralToolElevation = new _R(this), this.viralToolMeasure = new wR(this), this.viralToolAmbientOcclusion = new xR(this), this.dehydratedCachedData(), this.executeToolsByDefault(), this.injectTools(), this.viralViewerApi.emit(At.LOADED_TOOLS);
54832
54960
  }
54833
54961
  //#region Init
54834
54962
  injectTools() {
@@ -54842,7 +54970,7 @@ class wR {
54842
54970
  const i = this.tools[t], n = document.createElement("div");
54843
54971
  n.setAttribute(
54844
54972
  "style",
54845
- `padding: 8px 10px 10px 10px; display: flex;flex-direction: row;justify-content: center; align-items: center; background-color: ${Ce.background}; border-radius: 10px; pointer-events: visible;margin: 0 2.5px;`
54973
+ `padding: 8px 10px 10px 10px; display: flex;flex-direction: row;justify-content: center; align-items: center; background-color: ${Ee.background}; border-radius: 10px; pointer-events: visible;margin: 0 2.5px;`
54846
54974
  );
54847
54975
  for (let r = 0; r < i.tools.length; r++) {
54848
54976
  const a = i.tools[r], o = document.createElement("div");
@@ -54855,10 +54983,10 @@ class wR {
54855
54983
  const l = document.createElement("div");
54856
54984
  l.setAttribute(
54857
54985
  "style",
54858
- `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ce.background};`
54986
+ `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ee.background};`
54859
54987
  ), a.activate && l.setAttribute(
54860
54988
  "style",
54861
- `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ce.secondary};`
54989
+ `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ee.secondary};`
54862
54990
  ), o.appendChild(l);
54863
54991
  const c = document.createElement("div");
54864
54992
  c.setAttribute(
@@ -54873,7 +55001,7 @@ class wR {
54873
55001
  c.style.setProperty("background-color", "unset");
54874
55002
  };
54875
55003
  const h = Md.createElementFromHTML(a.svg);
54876
- a.activate && h && h.setAttribute("fill", `${Ce.secondary}`), c.appendChild(h), o.appendChild(c), n.appendChild(o);
55004
+ a.activate && h && h.setAttribute("fill", `${Ee.secondary}`), c.appendChild(h), o.appendChild(c), n.appendChild(o);
54877
55005
  }
54878
55006
  e.appendChild(n);
54879
55007
  }
@@ -54907,15 +55035,15 @@ class wR {
54907
55035
  if (n) {
54908
55036
  n.activate = !n.activate;
54909
55037
  const r = t.children[0], o = t.children[1].children[0];
54910
- n.activate ? (r.style.setProperty("border-color", `${Ce.secondary}`), o.setAttribute("fill", `${Ce.secondary}`)) : (r.style.setProperty(
55038
+ n.activate ? (r.style.setProperty("border-color", `${Ee.secondary}`), o.setAttribute("fill", `${Ee.secondary}`)) : (r.style.setProperty(
54911
55039
  "border-color",
54912
- `${Ce.background}`
54913
- ), o.setAttribute("fill", `${Ce.primary}`)), n.action(n);
55040
+ `${Ee.background}`
55041
+ ), o.setAttribute("fill", `${Ee.primary}`)), n.action(n);
54914
55042
  }
54915
55043
  }
54916
55044
  //#endregion
54917
55045
  }
54918
- class SR {
55046
+ class AR {
54919
55047
  constructor(e) {
54920
55048
  this.viralNavigationCube = e, this.camera = null, this.cameraControls = null, this.cameraControlOldPosition = new P(), this.cameraControlNewPosition = new P(), this.cameraControlHasMoved = !1, this.setupCamera(), this.setupHandle();
54921
55049
  }
@@ -54946,7 +55074,7 @@ class SR {
54946
55074
  window.addEventListener("mousedown", e, !1), window.addEventListener("mousemove", t, !1), window.addEventListener("touchstart", e, !1), window.addEventListener("touchmove", t, !0);
54947
55075
  }
54948
55076
  }
54949
- class MR {
55077
+ class TR {
54950
55078
  constructor(e) {
54951
55079
  this.viralNavigationCube = e, this.renderer = new vb({
54952
55080
  alpha: !0,
@@ -54975,7 +55103,7 @@ class MR {
54975
55103
  // }
54976
55104
  // }
54977
55105
  }
54978
- class AR {
55106
+ class ER {
54979
55107
  constructor(e) {
54980
55108
  this.viralNavigationCube = e, this.scene = new lc(), this.objects = [], this.cube = null, this.activePlane = null, this.addCube(), this.addPlanes();
54981
55109
  }
@@ -54986,9 +55114,9 @@ class AR {
54986
55114
  let e = [], t = ["RIGHT", "LEFT", "TOP", "BOTTOM", "FRONT", "BACK"], i = new ab(), n = document.createElement("canvas"), r = n.getContext("2d"), a = 64;
54987
55115
  if (n.width = a, n.height = a, r) {
54988
55116
  r.font = 'bolder 12px "Open sans", Arial', r.textBaseline = "middle", r.textAlign = "center";
54989
- let o = `${Ce.background}`;
55117
+ let o = `${Ee.background}`;
54990
55118
  for (let l = 0; l < 6; l++)
54991
- t[l] == "TOP" || t[l] == "BOTTOM", r.fillStyle = o, r.fillRect(0, 0, a, a), r.strokeStyle = `${Ce.primary}`, r.setLineDash([8, 8]), r.lineWidth = 4, r.strokeRect(0, 0, a, a), r.fillStyle = `${Ce.primary}`, r.fillText(t[l], a / 2, a / 2), e[l] = new Ii({
55119
+ t[l] == "TOP" || t[l] == "BOTTOM", r.fillStyle = o, r.fillRect(0, 0, a, a), r.strokeStyle = `${Ee.primary}`, r.setLineDash([8, 8]), r.lineWidth = 4, r.strokeRect(0, 0, a, a), r.fillStyle = `${Ee.primary}`, r.fillText(t[l], a / 2, a / 2), e[l] = new Ii({
54992
55120
  map: i.load(n.toDataURL())
54993
55121
  });
54994
55122
  this.cube = new Q(new oi(1, 1, 1), e), this.addObject(this.cube);
@@ -55091,8 +55219,8 @@ class AR {
55091
55219
  he.rotation.x = Math.PI / 2, he.position.y = l, he.position.z = t / 2 + n / 2, he.position.x = t / 2 + n / 2;
55092
55220
  let ge = new Q(o, e.clone());
55093
55221
  ge.rotation.x = Math.PI / 2, ge.position.y = l, ge.position.z = t / 2 + n / 2, ge.position.x = -(t / 2 + n / 2);
55094
- let Ee = new Q(r, e.clone());
55095
- Ee.rotation.x = Math.PI / 2, Ee.position.y = -l, Ee.name = "BOTTOM";
55222
+ let Pe = new Q(r, e.clone());
55223
+ Pe.rotation.x = Math.PI / 2, Pe.position.y = -l, Pe.name = "BOTTOM";
55096
55224
  let ve = new Q(a, e.clone());
55097
55225
  ve.rotation.x = Math.PI / 2, ve.position.y = -l, ve.position.x = t / 2 + n / 2;
55098
55226
  let Qe = new Q(a, e.clone());
@@ -55112,7 +55240,7 @@ class AR {
55112
55240
  let ae = new Ii({
55113
55241
  color: 11184810
55114
55242
  }), te = new ii(1, 1), qe = new Q(te, ae);
55115
- qe.rotation.x = -Math.PI / 2, qe.position.y = -0.6, this.addObject(c), this.addObject(b), this.addObject(C), this.addObject(pe), this.addObject(Xe), this.addObject(Ee), this.addObject(qe);
55243
+ qe.rotation.x = -Math.PI / 2, qe.position.y = -0.6, this.addObject(c), this.addObject(b), this.addObject(C), this.addObject(pe), this.addObject(Xe), this.addObject(Pe), this.addObject(qe);
55116
55244
  const Oe = new Q();
55117
55245
  Oe.name = "1131", Oe.add(h), Oe.add(L), this.addObject(Oe);
55118
55246
  const Ke = new Q();
@@ -55155,7 +55283,7 @@ class AR {
55155
55283
  mi.name = "corner8", mi.add(M), mi.add(Z), mi.add(H), this.addObject(mi);
55156
55284
  }
55157
55285
  }
55158
- class TR {
55286
+ class PR {
55159
55287
  constructor(e) {
55160
55288
  this.viralNavigationCube = e, this._mouseDownTime = null, this.clickThreshold = 250, this._handleClick = async (t) => {
55161
55289
  var h, d, u, f, p, v, g, m, b, x, y, _, w, T, E, S, M, C, L, U, z;
@@ -55325,10 +55453,10 @@ class TR {
55325
55453
  }
55326
55454
  //#endregion
55327
55455
  }
55328
- class ER {
55456
+ class CR {
55329
55457
  //* view cube from third party (new approach)
55330
55458
  constructor(e) {
55331
- this.viralViewerApi = e, this.targetElement = null, this.cubeScene = null, this.cubeRenderer = null, this.cubeCamera = null, this.cubeMouse = null, this.injectCubeWrapperElement(), this.targetElement = document.getElementById("orientCubeWrapper"), this.targetElement && (this.cubeScene = new AR(this), this.cubeRenderer = new MR(this), this.cubeCamera = new SR(this), this.cubeMouse = new TR(this)), this.viralViewerApi.emit(At.LOADED_CUBE);
55459
+ this.viralViewerApi = e, this.targetElement = null, this.cubeScene = null, this.cubeRenderer = null, this.cubeCamera = null, this.cubeMouse = null, this.injectCubeWrapperElement(), this.targetElement = document.getElementById("orientCubeWrapper"), this.targetElement && (this.cubeScene = new ER(this), this.cubeRenderer = new TR(this), this.cubeCamera = new AR(this), this.cubeMouse = new PR(this)), this.viralViewerApi.emit(At.LOADED_CUBE);
55332
55460
  }
55333
55461
  injectCubeWrapperElement() {
55334
55462
  if (this.viralViewerApi.targetElement) {
@@ -55349,7 +55477,7 @@ class ER {
55349
55477
  this.viralViewerApi.viralCamera.focusModelByName();
55350
55478
  }
55351
55479
  }
55352
- class PR {
55480
+ class IR {
55353
55481
  static generateRandomString(e) {
55354
55482
  const t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
55355
55483
  let i = "";
@@ -55360,16 +55488,16 @@ class PR {
55360
55488
  return i;
55361
55489
  }
55362
55490
  }
55363
- const CR = 0.032;
55364
- class IR {
55491
+ const RR = 0.032;
55492
+ class DR {
55365
55493
  constructor(e, t, i, n, r = 2, a = 1, o, l) {
55366
- this.viralViewerApi = e, this.scaleRatio = r, this.mixer = null, this.idleAnimation = null, this.walkAnimation = null, this.avatar = null, this.destination = null, this.isReady = !1, this.name = "", this.id = PR.generateRandomString(10), this.MOVEMENT_SPEED = 0.032, this.talkContent = "", o && (this.id = o), l && (this.name = l, this.nameDiv = document.createElement("div"), this.nameDiv.setAttribute(
55494
+ this.viralViewerApi = e, this.scaleRatio = r, this.mixer = null, this.idleAnimation = null, this.walkAnimation = null, this.avatar = null, this.destination = null, this.isReady = !1, this.name = "", this.id = IR.generateRandomString(10), this.MOVEMENT_SPEED = 0.032, this.talkContent = "", o && (this.id = o), l && (this.name = l, this.nameDiv = document.createElement("div"), this.nameDiv.setAttribute(
55367
55495
  "style",
55368
55496
  "position: absolute; top:0; left:0;transform: translateX(-50%); pointer-events: none; background-color:rgba(226, 230, 220,1); color:rgb(23, 49, 44); padding: 5px ; border-radius:5px; font-size:x-small"
55369
55497
  ), this.nameDiv.id = this.id, this.nameDiv.append(this.name), this.viralViewerApi.targetElement.appendChild(this.nameDiv)), this.chatDiv = document.createElement("div"), this.chatDiv.setAttribute(
55370
55498
  "style",
55371
55499
  "position: absolute;display:none; top:0; left:0;transform: translate(-50%, -100%); pointer-events: none; background-color:rgba(226, 230, 220,1); color:rgb(23, 49, 44); padding: 5px ; border-radius:5px; font-size:x-small"
55372
- ), this.viralViewerApi.targetElement.appendChild(this.chatDiv), this.MOVEMENT_SPEED = CR * a, this.viralViewerApi.viralLoader.threeLoader.loadGLTF(
55500
+ ), this.viralViewerApi.targetElement.appendChild(this.chatDiv), this.MOVEMENT_SPEED = RR * a, this.viralViewerApi.viralLoader.threeLoader.loadGLTF(
55373
55501
  t,
55374
55502
  (c) => {
55375
55503
  this.avatar = c.scene;
@@ -55443,12 +55571,12 @@ class IR {
55443
55571
  (e = this.avatar) == null || e.removeFromParent(), this.mixer = null, this.walkAnimation = null, this.avatar = null, (i = (t = this.nameDiv) == null ? void 0 : t.parentNode) == null || i.removeChild(this.nameDiv), (r = (n = this.chatDiv) == null ? void 0 : n.parentNode) == null || r.removeChild(this.chatDiv);
55444
55572
  }
55445
55573
  }
55446
- class RR {
55574
+ class LR {
55447
55575
  constructor(e) {
55448
55576
  this.viralViewerApi = e, this.avatars = [];
55449
55577
  }
55450
55578
  load(e, t, i, n = 2, r = 1, a, o) {
55451
- let l = new IR(
55579
+ let l = new DR(
55452
55580
  this.viralViewerApi,
55453
55581
  e,
55454
55582
  t,
@@ -55465,7 +55593,7 @@ class RR {
55465
55593
  t && t.dispose(), this.avatars = this.avatars.filter((i) => i.id != e);
55466
55594
  }
55467
55595
  }
55468
- class DR {
55596
+ class OR {
55469
55597
  constructor(e) {
55470
55598
  this.viralViewerApi = e, this.isGeneratingMergeModel = !1;
55471
55599
  }
@@ -55495,7 +55623,7 @@ class DR {
55495
55623
  i.Offset.Z,
55496
55624
  i.Offset.Y,
55497
55625
  1
55498
- ], a = new Pe();
55626
+ ], a = new Ce();
55499
55627
  a.fromArray(r);
55500
55628
  let o = [];
55501
55629
  for (let c = 0; c < t.length; c++) {
@@ -55600,7 +55728,7 @@ class DR {
55600
55728
  }), this.viralViewerApi.options.isDev && Pi.memory("merge model successfully!"), this.viralViewerApi.viralScene.mergedModel.setReady(!0), this.isGeneratingMergeModel = !1, console.log(this.viralViewerApi.viralScene.mergedModel.children), console.log("Time to generate model: ", performance.now() - e), this.viralViewerApi.emit(At.GENERATED_MERGE_MODEL);
55601
55729
  }
55602
55730
  }
55603
- class LR {
55731
+ class NR {
55604
55732
  constructor(e) {
55605
55733
  this.viralViewerApi = e, this.planeEdges = null, this._isGenerated = !1, this.planeMaterial = new Ii({
55606
55734
  color: 16777215,
@@ -55609,7 +55737,7 @@ class LR {
55609
55737
  opacity: 0.1
55610
55738
  // wireframe: true,
55611
55739
  }), this._planX0 = null, this._planX1 = null, this._planY0 = null, this._planY1 = null, this._planZ0 = null, this._planZ1 = null, this._edgesX0 = null, this._edgesX1 = null, this._edgesY0 = null, this._edgesY1 = null, this._edgesZ0 = null, this._edgeX0 = null, this._edgeX1 = null, this._edgeY0 = null, this._edgeY1 = null, this._edgeZ0 = null, this.edgeMaterial = new dn({
55612
- color: Et.hexToThreejsColor(Ce.accent)
55740
+ color: Et.hexToThreejsColor(Ee.accent)
55613
55741
  // Blue edges
55614
55742
  }), this._isEnabling = !1;
55615
55743
  }
@@ -55697,14 +55825,14 @@ class LR {
55697
55825
  this.createPlaneEdges();
55698
55826
  }
55699
55827
  }
55700
- class OR {
55828
+ class BR {
55701
55829
  constructor(e) {
55702
55830
  this.viralViewerApi = e, this.contextMenu = null, this.injectContextMenu();
55703
55831
  }
55704
55832
  injectContextMenu() {
55705
55833
  this.viralViewerApi.targetElement && (this.contextMenu = document.createElement("div"), this.contextMenu.setAttribute("id", "viral-pivot-point"), this.contextMenu.setAttribute(
55706
55834
  "style",
55707
- `position: absolute;top:0px;left:0px;background-color: ${Ce.secondary}; border-radius:5px; height: 10px; width:10px; opacity:80%; transform: translate(-50%, -50%);display: none`
55835
+ `position: absolute;top:0px;left:0px;background-color: ${Ee.secondary}; border-radius:5px; height: 10px; width:10px; opacity:80%; transform: translate(-50%, -50%);display: none`
55708
55836
  ), this.viralViewerApi.targetElement.appendChild(this.contextMenu));
55709
55837
  }
55710
55838
  show(e, t) {
@@ -55714,7 +55842,7 @@ class OR {
55714
55842
  this.contextMenu && this.contextMenu.style.setProperty("display", "none");
55715
55843
  }
55716
55844
  }
55717
- class NR {
55845
+ class UR {
55718
55846
  constructor(e) {
55719
55847
  this.viralViewerApi = e, this.panel = null, this.batchListContainer = null, this.isVisible = !1, this.selectedBatchMesh = null, this.inject();
55720
55848
  }
@@ -55729,7 +55857,7 @@ class NR {
55729
55857
  right: 10px;
55730
55858
  width: 300px;
55731
55859
  max-height: 80vh;
55732
- background-color: ${Ce.background};
55860
+ background-color: ${Ee.background};
55733
55861
  border: 1px solid #ccc;
55734
55862
  border-radius: 8px;
55735
55863
  padding: 15px;
@@ -55743,8 +55871,8 @@ class NR {
55743
55871
  const e = document.createElement("div");
55744
55872
  e.innerHTML = `
55745
55873
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
55746
- <h3 style="margin: 0; color: ${Ce.secondary}; font-size: 16px;">Batch Debug Panel</h3>
55747
- <span id="batch-debug-close" style="cursor: pointer; font-size: 20px; color: ${Ce.secondary};">&times;</span>
55874
+ <h3 style="margin: 0; color: ${Ee.secondary}; font-size: 16px;">Batch Debug Panel</h3>
55875
+ <span id="batch-debug-close" style="cursor: pointer; font-size: 20px; color: ${Ee.secondary};">&times;</span>
55748
55876
  </div>
55749
55877
  `, this.panel.appendChild(e);
55750
55878
  const t = document.createElement("div");
@@ -55756,7 +55884,7 @@ class NR {
55756
55884
  t.appendChild(i), t.appendChild(n), this.panel.appendChild(t);
55757
55885
  const r = document.createElement("div");
55758
55886
  r.innerHTML = `
55759
- <h4 style="margin: 10px 0 5px 0; color: ${Ce.secondary}; font-size: 14px;">Batched Meshes</h4>
55887
+ <h4 style="margin: 10px 0 5px 0; color: ${Ee.secondary}; font-size: 14px;">Batched Meshes</h4>
55760
55888
  `, this.panel.appendChild(r), this.batchListContainer = document.createElement("div"), this.batchListContainer.setAttribute(
55761
55889
  "style",
55762
55890
  `
@@ -55773,7 +55901,7 @@ class NR {
55773
55901
  `
55774
55902
  flex: 1;
55775
55903
  padding: 8px;
55776
- background-color: ${Ce.primary};
55904
+ background-color: ${Ee.primary};
55777
55905
  color: white;
55778
55906
  border: none;
55779
55907
  border-radius: 4px;
@@ -55783,9 +55911,9 @@ class NR {
55783
55911
  transition: background-color 0.2s;
55784
55912
  `
55785
55913
  ), i.addEventListener("mouseenter", () => {
55786
- i.style.backgroundColor = Ce.accent;
55914
+ i.style.backgroundColor = Ee.accent;
55787
55915
  }), i.addEventListener("mouseleave", () => {
55788
- i.style.backgroundColor = Ce.primary;
55916
+ i.style.backgroundColor = Ee.primary;
55789
55917
  }), i;
55790
55918
  }
55791
55919
  injectStyles() {
@@ -55804,12 +55932,12 @@ class NR {
55804
55932
  background-color: rgba(0, 0, 0, 0.1);
55805
55933
  }
55806
55934
  .batch-item.selected {
55807
- border-color: ${Ce.accent};
55935
+ border-color: ${Ee.accent};
55808
55936
  background-color: rgba(128, 214, 218, 0.2);
55809
55937
  }
55810
55938
  .batch-item-title {
55811
55939
  font-weight: 600;
55812
- color: ${Ce.secondary};
55940
+ color: ${Ee.secondary};
55813
55941
  font-size: 13px;
55814
55942
  margin-bottom: 4px;
55815
55943
  }
@@ -55890,7 +56018,7 @@ class NR {
55890
56018
  background-color: rgba(128, 214, 218, 0.1);
55891
56019
  border-radius: 4px;
55892
56020
  font-size: 11px;
55893
- color: ${Ce.secondary};
56021
+ color: ${Ee.secondary};
55894
56022
  text-align: center;
55895
56023
  `
55896
56024
  ), i.innerHTML = `
@@ -55933,7 +56061,7 @@ class NR {
55933
56061
  this.clearIsolation(), this.panel && (this.panel.remove(), this.panel = null);
55934
56062
  }
55935
56063
  }
55936
- class BR {
56064
+ class FR {
55937
56065
  constructor(e) {
55938
56066
  this.viralViewerApi = e, this.panel = null, this.contentContainer = null, this.isVisible = !1, this.lastAnalysis = null, this.inject();
55939
56067
  }
@@ -55948,7 +56076,7 @@ class BR {
55948
56076
  left: 10px;
55949
56077
  width: 450px;
55950
56078
  max-height: 85vh;
55951
- background-color: ${Ce.background};
56079
+ background-color: ${Ee.background};
55952
56080
  border: 1px solid #ccc;
55953
56081
  border-radius: 8px;
55954
56082
  padding: 15px;
@@ -55963,8 +56091,8 @@ class BR {
55963
56091
  const e = document.createElement("div");
55964
56092
  e.innerHTML = `
55965
56093
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px;">
55966
- <h3 style="margin: 0; color: ${Ce.secondary}; font-size: 16px;">🔍 Render Debug Panel</h3>
55967
- <span id="render-debug-close" style="cursor: pointer; font-size: 20px; color: ${Ce.secondary};">&times;</span>
56094
+ <h3 style="margin: 0; color: ${Ee.secondary}; font-size: 16px;">🔍 Render Debug Panel</h3>
56095
+ <span id="render-debug-close" style="cursor: pointer; font-size: 20px; color: ${Ee.secondary};">&times;</span>
55968
56096
  </div>
55969
56097
  `, this.panel.appendChild(e);
55970
56098
  const t = document.createElement("div");
@@ -55988,7 +56116,7 @@ class BR {
55988
56116
  "style",
55989
56117
  `
55990
56118
  padding: 8px 12px;
55991
- background-color: ${Ce.primary};
56119
+ background-color: ${Ee.primary};
55992
56120
  color: white;
55993
56121
  border: none;
55994
56122
  border-radius: 4px;
@@ -55998,9 +56126,9 @@ class BR {
55998
56126
  transition: background-color 0.2s;
55999
56127
  `
56000
56128
  ), i.addEventListener("mouseenter", () => {
56001
- i.style.backgroundColor = Ce.accent;
56129
+ i.style.backgroundColor = Ee.accent;
56002
56130
  }), i.addEventListener("mouseleave", () => {
56003
- i.style.backgroundColor = Ce.primary;
56131
+ i.style.backgroundColor = Ee.primary;
56004
56132
  }), i;
56005
56133
  }
56006
56134
  injectStyles() {
@@ -56014,7 +56142,7 @@ class BR {
56014
56142
  }
56015
56143
  .render-section-title {
56016
56144
  font-weight: 600;
56017
- color: ${Ce.secondary};
56145
+ color: ${Ee.secondary};
56018
56146
  font-size: 13px;
56019
56147
  margin-bottom: 8px;
56020
56148
  display: flex;
@@ -56060,7 +56188,7 @@ class BR {
56060
56188
  }
56061
56189
  .stat-value {
56062
56190
  font-weight: 600;
56063
- color: ${Ce.secondary};
56191
+ color: ${Ee.secondary};
56064
56192
  }
56065
56193
  .warning-box {
56066
56194
  padding: 8px;
@@ -56536,7 +56664,7 @@ class BR {
56536
56664
  this.panel && (this.panel.remove(), this.panel = null);
56537
56665
  }
56538
56666
  }
56539
- class UR {
56667
+ class zR {
56540
56668
  constructor(e) {
56541
56669
  this.viralViewerApi = e, this.panel = null, this.instancedListContainer = null, this.isVisible = !1, this.selectedInstancedMesh = null, this.selectedInternalMesh = null, this.inject();
56542
56670
  }
@@ -56551,7 +56679,7 @@ class UR {
56551
56679
  right: 320px;
56552
56680
  width: 350px;
56553
56681
  max-height: 80vh;
56554
- background-color: ${Ce.background};
56682
+ background-color: ${Ee.background};
56555
56683
  border: 1px solid #ccc;
56556
56684
  border-radius: 8px;
56557
56685
  padding: 15px;
@@ -56565,8 +56693,8 @@ class UR {
56565
56693
  const e = document.createElement("div");
56566
56694
  e.innerHTML = `
56567
56695
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
56568
- <h3 style="margin: 0; color: ${Ce.secondary}; font-size: 16px;">🔄 Instanced Debug Panel</h3>
56569
- <span id="instanced-debug-close" style="cursor: pointer; font-size: 20px; color: ${Ce.secondary};">&times;</span>
56696
+ <h3 style="margin: 0; color: ${Ee.secondary}; font-size: 16px;">🔄 Instanced Debug Panel</h3>
56697
+ <span id="instanced-debug-close" style="cursor: pointer; font-size: 20px; color: ${Ee.secondary};">&times;</span>
56570
56698
  </div>
56571
56699
  `, this.panel.appendChild(e);
56572
56700
  const t = document.createElement("div");
@@ -56578,7 +56706,7 @@ class UR {
56578
56706
  t.appendChild(i), t.appendChild(n), t.appendChild(r), this.panel.appendChild(t);
56579
56707
  const a = document.createElement("div");
56580
56708
  a.innerHTML = `
56581
- <h4 style="margin: 10px 0 5px 0; color: ${Ce.secondary}; font-size: 14px;">Instanced Meshes (ViralInstancedMeshV2)</h4>
56709
+ <h4 style="margin: 10px 0 5px 0; color: ${Ee.secondary}; font-size: 14px;">Instanced Meshes (ViralInstancedMeshV2)</h4>
56582
56710
  `, this.panel.appendChild(a), this.instancedListContainer = document.createElement("div"), this.instancedListContainer.setAttribute(
56583
56711
  "style",
56584
56712
  `
@@ -56595,7 +56723,7 @@ class UR {
56595
56723
  `
56596
56724
  flex: 1;
56597
56725
  padding: 8px;
56598
- background-color: ${Ce.primary};
56726
+ background-color: ${Ee.primary};
56599
56727
  color: white;
56600
56728
  border: none;
56601
56729
  border-radius: 4px;
@@ -56606,9 +56734,9 @@ class UR {
56606
56734
  min-width: 80px;
56607
56735
  `
56608
56736
  ), i.addEventListener("mouseenter", () => {
56609
- i.style.backgroundColor = Ce.accent;
56737
+ i.style.backgroundColor = Ee.accent;
56610
56738
  }), i.addEventListener("mouseleave", () => {
56611
- i.style.backgroundColor = Ce.primary;
56739
+ i.style.backgroundColor = Ee.primary;
56612
56740
  }), i;
56613
56741
  }
56614
56742
  injectStyles() {
@@ -56629,12 +56757,12 @@ class UR {
56629
56757
  background-color: rgba(0, 0, 0, 0.1);
56630
56758
  }
56631
56759
  .instanced-item.selected {
56632
- border-color: ${Ce.accent};
56760
+ border-color: ${Ee.accent};
56633
56761
  background-color: rgba(128, 214, 218, 0.2);
56634
56762
  }
56635
56763
  .instanced-item-title {
56636
56764
  font-weight: 600;
56637
- color: ${Ce.secondary};
56765
+ color: ${Ee.secondary};
56638
56766
  font-size: 13px;
56639
56767
  margin-bottom: 4px;
56640
56768
  }
@@ -56681,7 +56809,7 @@ class UR {
56681
56809
  }
56682
56810
  .internal-mesh-item.selected {
56683
56811
  background-color: rgba(33, 150, 243, 0.2);
56684
- border-left-color: ${Ce.accent};
56812
+ border-left-color: ${Ee.accent};
56685
56813
  }
56686
56814
  `, document.head.appendChild(e);
56687
56815
  }
@@ -56798,7 +56926,7 @@ class UR {
56798
56926
  background-color: rgba(128, 214, 218, 0.1);
56799
56927
  border-radius: 4px;
56800
56928
  font-size: 11px;
56801
- color: ${Ce.secondary};
56929
+ color: ${Ee.secondary};
56802
56930
  text-align: center;
56803
56931
  `
56804
56932
  ), r.innerHTML = `
@@ -56925,7 +57053,7 @@ class UR {
56925
57053
  this.clearIsolation(), this.panel && (this.panel.remove(), this.panel = null);
56926
57054
  }
56927
57055
  }
56928
- class sD extends WI {
57056
+ class aD extends jI {
56929
57057
  constructor(e = {
56930
57058
  isDev: !1,
56931
57059
  cameraZUp: !1,
@@ -56937,12 +57065,12 @@ class sD extends WI {
56937
57065
  adaptiveEdges: !0,
56938
57066
  adaptiveAmbientOcclusion: !0
56939
57067
  }) {
56940
- super(), this.viralCompressProcessor = new bw(), this.localStorageService = new d3(), this.viralStats = null, this.viralGeometryHandler = null, this.viralSectionBox = null, this.viralBatchDebugPanel = null, this.viralRenderDebugPanel = null, this.viralInstancedDebugPanel = null, this.options = e, this.viralLifecycleEventHandler = new QI(
57068
+ super(), this.viralCompressProcessor = new bw(), this.localStorageService = new f3(), this.viralStats = null, this.viralGeometryHandler = null, this.viralSectionBox = null, this.viralBatchDebugPanel = null, this.viralRenderDebugPanel = null, this.viralInstancedDebugPanel = null, this.options = e, this.viralLifecycleEventHandler = new qI(
56941
57069
  this,
56942
57070
  this.options
56943
- ), this.targetElement = e.container, jI("QUICK_SAND"), qI(this.targetElement, "QUICK_SAND"), this.options.enableTools && (this.viralTools = new wR(this)), this.viralSpinner = new pR(this), this.viralDraggableModal = new mR(this), this.viralContextMenu = new f3(this), this.viralPivotPoint = new OR(this), this.viralScene = new FC(this), this.viralMaterialManager = new GI(this), this.viralRenderer = new c3(this), this.viralCamera = new vP(this), this.options.enableNavigationCube && (this.viralNavigationCube = new ER(this)), this.viralMouse = new UC(this), this.viralKeyboard = new u3(this), this.viralAnimation = new h3(this), this.viralVisibilityManager = new ZI(this), this.viralCentralizedEventHandler = new p3(this), this.viralLoader = new D3(this), this.viralBVH = new YI(), this.viralDataManager = new fR(this), this.viralAvatarManager = new RR(this), this.options.isDev && (this.viralStats = new L3(this)), this.options.isDev ? this.viralAnimation.devAnimation() : this.viralAnimation.animation();
57071
+ ), this.targetElement = e.container, ZI("QUICK_SAND"), $I(this.targetElement, "QUICK_SAND"), this.options.enableTools && (this.viralTools = new MR(this)), this.viralSpinner = new gR(this), this.viralDraggableModal = new vR(this), this.viralContextMenu = new m3(this), this.viralPivotPoint = new BR(this), this.viralScene = new kC(this), this.viralMaterialManager = new QI(this), this.viralRenderer = new d3(this), this.viralCamera = new vP(this), this.options.enableNavigationCube && (this.viralNavigationCube = new CR(this)), this.viralMouse = new zC(this), this.viralKeyboard = new p3(this), this.viralAnimation = new u3(this), this.viralVisibilityManager = new KI(this), this.viralCentralizedEventHandler = new g3(this), this.viralLoader = new O3(this), this.viralBVH = new WI(), this.viralDataManager = new mR(this), this.viralAvatarManager = new LR(this), this.options.isDev && (this.viralStats = new N3(this)), this.options.isDev ? this.viralAnimation.devAnimation() : this.viralAnimation.animation();
56944
57072
  let t = window;
56945
- t.VIRAL_VIEWER = this, this.viralGeometryHandler = new DR(this), this.viralSectionBox = new LR(this), this.viralBatchDebugPanel = new NR(this), this.viralRenderDebugPanel = new BR(this), this.viralInstancedDebugPanel = new UR(this), this.options.isDev && import("./lil-gui.esm-BtfdsiIY.mjs").then(({ GUI: i }) => {
57073
+ t.VIRAL_VIEWER = this, this.viralGeometryHandler = new OR(this), this.viralSectionBox = new NR(this), this.viralBatchDebugPanel = new UR(this), this.viralRenderDebugPanel = new FR(this), this.viralInstancedDebugPanel = new zR(this), this.options.isDev && import("./lil-gui.esm-BtfdsiIY.mjs").then(({ GUI: i }) => {
56946
57074
  var g, m, b, x, y;
56947
57075
  const n = new i({ title: "Controls" }), r = n.addFolder("Sun Light");
56948
57076
  r.add(this.viralScene.sunLight, "visible").onChange(() => {
@@ -56968,7 +57096,7 @@ class sD extends WI {
56968
57096
  a.add(this.viralVisibilityManager, "isolateModelId"), a.add(this.viralVisibilityManager, "isolateModel"), a.add(this.viralVisibilityManager, "enableEdge"), a.add(this.viralVisibilityManager, "disableEdge"), a.add(this.viralVisibilityManager, "enableGroundShadow"), a.add(
56969
57097
  this.viralVisibilityManager,
56970
57098
  "disableGroundShadow"
56971
- ), a.add(this.viralVisibilityManager, "enableAllWhite"), a.add(this.viralVisibilityManager, "disableAllWhite"), a.add(this.viralVisibilityManager, "enableNight"), a.add(this.viralVisibilityManager, "disableNight"), a.add(this.viralVisibilityManager, "enableFog"), a.add(this.viralVisibilityManager, "disableFog"), a.add(this.viralVisibilityManager, "enableRain"), a.add(this.viralVisibilityManager, "disableRain"), a.add(this.viralVisibilityManager, "showBatches"), a.add(this.viralVisibilityManager, "hideBatches");
57099
+ ), a.add(this.viralVisibilityManager, "enableAllWhite"), a.add(this.viralVisibilityManager, "disableAllWhite"), a.add(this.viralVisibilityManager, "enableNight"), a.add(this.viralVisibilityManager, "disableNight"), a.add(this.viralVisibilityManager, "enableFog"), a.add(this.viralVisibilityManager, "disableFog"), a.add(this.viralVisibilityManager, "enableRain"), a.add(this.viralVisibilityManager, "disableRain"), a.add(this.viralVisibilityManager, "showBatches"), a.add(this.viralVisibilityManager, "hideBatches"), a.add(this.viralVisibilityManager, "selectAllElements");
56972
57100
  const o = n.addFolder("Debug Panels"), l = {
56973
57101
  showBatchDebugPanel: () => {
56974
57102
  var _;
@@ -57389,9 +57517,9 @@ class ra {
57389
57517
  return i;
57390
57518
  }
57391
57519
  }
57392
- const FR = {}, ta = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
57520
+ const kR = {}, ta = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
57393
57521
  __proto__: null,
57394
- default: FR
57522
+ default: kR
57395
57523
  }, Symbol.toStringTag, { value: "Module" }));
57396
57524
  class Wi {
57397
57525
  constructor() {
@@ -57578,7 +57706,7 @@ class ur {
57578
57706
  return ur.startViralutionInformation(e), ur.addData(e, t), ur.endViralutionInformation(e);
57579
57707
  }
57580
57708
  }
57581
- class zR {
57709
+ class VR {
57582
57710
  /**
57583
57711
  * Reads a FlatBuffer from a URL and parses it into the elementData structure
57584
57712
  * @param url - Full URL or path to fetch the .fb file from
@@ -58363,25 +58491,25 @@ class wp {
58363
58491
  }
58364
58492
  }
58365
58493
  export {
58366
- zR as A,
58494
+ VR as A,
58367
58495
  dt as B,
58368
58496
  kb as C,
58369
58497
  jr as D,
58370
- HR as E,
58371
- XR as F,
58498
+ GR as E,
58499
+ YR as F,
58372
58500
  Xb as G,
58373
58501
  Md as H,
58374
- ZR as I,
58502
+ KR as I,
58375
58503
  wp as J,
58376
58504
  Pi as L,
58377
- $R as T,
58505
+ JR as T,
58378
58506
  Fn as V,
58379
58507
  ot as a,
58380
- BR as b,
58381
- NR as c,
58382
- UR as d,
58383
- VR as e,
58384
- YR as f,
58508
+ FR as b,
58509
+ UR as c,
58510
+ zR as d,
58511
+ HR as e,
58512
+ WR as f,
58385
58513
  fs as g,
58386
58514
  yi as h,
58387
58515
  Ls as i,
@@ -58392,14 +58520,14 @@ export {
58392
58520
  wm as n,
58393
58521
  Sp as o,
58394
58522
  Lv as p,
58395
- qR as q,
58523
+ $R as q,
58396
58524
  Ub as r,
58397
58525
  Sm as s,
58398
58526
  Fb as t,
58399
58527
  zb as u,
58400
58528
  Vb as v,
58401
- sD as w,
58529
+ aD as w,
58402
58530
  Et as x,
58403
- nD as y,
58404
- BC as z
58531
+ rD as y,
58532
+ FC as z
58405
58533
  };