viral-viewer-2 7.0.1 → 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-CvS2hj8P.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-CvS2hj8P.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,7 +47014,7 @@ 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
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
  }
@@ -46966,35 +47022,35 @@ class p3 {
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
  }
@@ -47095,7 +47151,7 @@ class p3 {
47095
47151
  var n;
47096
47152
  if (e !== null && performance.now() - e < t) {
47097
47153
  let o = this.viralViewerApi.viralCamera.clientToWorld();
47098
- if (console.log(o), o && (o == null ? void 0 : o.length) > 0)
47154
+ if (o && (o == null ? void 0 : o.length) > 0)
47099
47155
  if ((n = this.viralViewerApi.viralSectionBox) != null && n.isEnabling) {
47100
47156
  let l = o.find(
47101
47157
  (c) => c.object.name == "Clipping Plane"
@@ -47223,7 +47279,7 @@ class p3 {
47223
47279
  }
47224
47280
  //#endregion
47225
47281
  }
47226
- function m3() {
47282
+ function v3() {
47227
47283
  class s {
47228
47284
  constructor() {
47229
47285
  this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
@@ -47308,8 +47364,8 @@ function m3() {
47308
47364
  }), self.postMessage(a);
47309
47365
  };
47310
47366
  }
47311
- const g3 = m3;
47312
- class v3 extends Q {
47367
+ const x3 = v3;
47368
+ class b3 extends Q {
47313
47369
  constructor() {
47314
47370
  super(), this._viralMeshes = [], this._viralInstancedMeshes = [];
47315
47371
  }
@@ -47350,15 +47406,15 @@ class v3 extends Q {
47350
47406
  this.geometry = null, this.removeFromParent();
47351
47407
  }
47352
47408
  }
47353
- class x3 {
47409
+ class y3 {
47354
47410
  constructor() {
47355
- 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();
47356
47412
  }
47357
47413
  dispose() {
47358
47414
  this.elements = [], this.materials = [], this.mapMaterialsToMaterialManager = new jr(), this.seperateModel.dispose();
47359
47415
  }
47360
47416
  }
47361
- function b3() {
47417
+ function _3() {
47362
47418
  class s {
47363
47419
  constructor() {
47364
47420
  this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
@@ -47449,8 +47505,8 @@ function b3() {
47449
47505
  }), self.postMessage(a);
47450
47506
  };
47451
47507
  }
47452
- const y3 = b3;
47453
- class _3 {
47508
+ const w3 = _3;
47509
+ class S3 {
47454
47510
  constructor() {
47455
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;
47456
47512
  }
@@ -47633,18 +47689,18 @@ class _3 {
47633
47689
  }
47634
47690
  }
47635
47691
  }
47636
- const w3 = new _3();
47692
+ const M3 = new S3();
47637
47693
  class Ab {
47638
47694
  // Or 5K objects
47639
47695
  //#endregion
47640
47696
  constructor(e) {
47641
47697
  this.viralViewerApi = e, this.lastRenderTime = 0, this.elementBuffer = /* @__PURE__ */ new Map(), this.BATCH_THRESHOLD_VERTICES = 1e5, this.BATCH_THRESHOLD_OBJECTS = 5e3;
47642
- const t = new Blob([`(${g3})()`]), i = URL.createObjectURL(t);
47698
+ const t = new Blob([`(${x3})()`]), i = URL.createObjectURL(t);
47643
47699
  this.workerPool = new Ar(
47644
47700
  navigator.hardwareConcurrency || this.viralViewerApi.options.numberOfWorker,
47645
47701
  i
47646
47702
  );
47647
- const n = new Blob([`(${y3})()`]), r = URL.createObjectURL(n);
47703
+ const n = new Blob([`(${w3})()`]), r = URL.createObjectURL(n);
47648
47704
  this.workerPool2 = new Ar(
47649
47705
  this.viralViewerApi.options.numberOfWorker,
47650
47706
  r
@@ -47657,7 +47713,7 @@ class Ab {
47657
47713
  */
47658
47714
  initial(e) {
47659
47715
  console.log(e);
47660
- let t = new x3();
47716
+ let t = new y3();
47661
47717
  t.modelId = this.viralViewerApi.viralScene.mainModels.length, this.viralViewerApi.viralScene.mainModels.push(t);
47662
47718
  let i = this.viralViewerApi.viralScene.mainModels.length - 1;
47663
47719
  for (let n = 0; n < e.length; n++) {
@@ -47697,7 +47753,7 @@ class Ab {
47697
47753
  */
47698
47754
  loadElement(e, t, i = () => {
47699
47755
  }, n = null) {
47700
- 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;
47701
47757
  if (!c && !h) {
47702
47758
  i();
47703
47759
  return;
@@ -47822,7 +47878,7 @@ class Ab {
47822
47878
  * Uses onBeforeCompile to inject custom shader code for RGBA vertex colors
47823
47879
  */
47824
47880
  createOptimizedMaterial(e) {
47825
- const t = KC.getDeviceType() == "pc", i = (a, o = 2) => {
47881
+ const t = e3.getDeviceType() == "pc", i = (a, o = 2) => {
47826
47882
  if (!a)
47827
47883
  return 16777215;
47828
47884
  const l = a.clone();
@@ -47995,7 +48051,7 @@ class Ab {
47995
48051
  }
47996
48052
  //#endregion
47997
48053
  }
47998
- class S3 {
48054
+ class A3 {
47999
48055
  constructor(e) {
48000
48056
  this.viralViewerApi = e, this.elements = [], this._loadElementPatchWorker = new Ab(e);
48001
48057
  }
@@ -48092,7 +48148,7 @@ class S3 {
48092
48148
  const i = await (await this.viralViewerApi.viralDataManager.gzipFetch(
48093
48149
  e
48094
48150
  )).arrayBuffer(), n = new Uint8Array(i);
48095
- return zR.parseBuffer(n);
48151
+ return VR.parseBuffer(n);
48096
48152
  }
48097
48153
  async getTracking(e) {
48098
48154
  return await (await this.viralViewerApi.viralDataManager.normalFetch(
@@ -48113,7 +48169,7 @@ class S3 {
48113
48169
  }
48114
48170
  //#endregion
48115
48171
  }
48116
- var M3 = { 746: (s, e, t) => {
48172
+ var T3 = { 746: (s, e, t) => {
48117
48173
  t.d(e, { Z: () => i });
48118
48174
  const i = `
48119
48175
  precision highp float;
@@ -49032,7 +49088,7 @@ function Pn(s) {
49032
49088
  if (e !== void 0)
49033
49089
  return e.exports;
49034
49090
  var t = pv[s] = { exports: {} };
49035
- return M3[s](t, t.exports, Pn), t.exports;
49091
+ return T3[s](t, t.exports, Pn), t.exports;
49036
49092
  }
49037
49093
  Pn.d = (s, e) => {
49038
49094
  for (var t in e)
@@ -49040,8 +49096,8 @@ Pn.d = (s, e) => {
49040
49096
  }, Pn.o = (s, e) => Object.prototype.hasOwnProperty.call(s, e);
49041
49097
  var Ft = {};
49042
49098
  (() => {
49043
- 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 });
49044
- 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);
49045
49101
  var e, t, i, n, r, a, o, l;
49046
49102
  class c extends s.ShaderMaterial {
49047
49103
  constructor() {
@@ -49373,7 +49429,7 @@ var Ft = {};
49373
49429
  }
49374
49430
  }
49375
49431
  ge.idCount = 0;
49376
- class Ee {
49432
+ class Pe {
49377
49433
  constructor(A, R, O, F, q) {
49378
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;
49379
49435
  }
@@ -50160,7 +50216,7 @@ var Ft = {};
50160
50216
  ze.min.set(at, wt, Nt), ze.max.set(Yt, zt, tt);
50161
50217
  }
50162
50218
  return Ze.min.sub(je), Ze.max.sub(je), ze.min.sub(je), ze.max.sub(je), { offset: je, boundingBox: Ze, tightBoundingBox: ze };
50163
- }(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);
50164
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);
50165
50221
  const W = {}, xe = new le(Be.version);
50166
50222
  return function(ye, He, Ue, Ze) {
@@ -50303,9 +50359,9 @@ Ft.XL;
50303
50359
  Ft.uv;
50304
50360
  Ft.vs;
50305
50361
  Ft.YJ;
50306
- var A3 = Ft.i9;
50362
+ var E3 = Ft.i9;
50307
50363
  Ft.uD;
50308
- var T3 = Ft.lV, E3 = Ft.Sp, P3 = Ft.RJ;
50364
+ var P3 = Ft.lV, C3 = Ft.Sp, I3 = Ft.RJ;
50309
50365
  Ft.SB;
50310
50366
  Ft.TL;
50311
50367
  Ft.oe;
@@ -50316,9 +50372,9 @@ Ft.gK;
50316
50372
  Ft.BT;
50317
50373
  Ft.bt;
50318
50374
  Ft.sX;
50319
- class C3 {
50375
+ class R3 {
50320
50376
  constructor(e) {
50321
- this.viralViewerApi = e, this.potree = new P3(), this.pointClouds = [];
50377
+ this.viralViewerApi = e, this.potree = new I3(), this.pointClouds = [];
50322
50378
  }
50323
50379
  /**
50324
50380
  *
@@ -50333,7 +50389,7 @@ class C3 {
50333
50389
  this.viralViewerApi.viralRenderer.postProcessingRenderer.disableOutline(), this.potree.pointBudget = n, this.potree.loadPointCloudCustom(e, t, i).then((a) => {
50334
50390
  var d;
50335
50391
  let o = a.material;
50336
- 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);
50337
50393
  let l = new P(0, -1.5, 3), c = new hn(-Math.PI / 2, 0, 0), h = new P(2, 2, 2);
50338
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(
50339
50395
  a.boundingBox,
@@ -50342,7 +50398,7 @@ class C3 {
50342
50398
  });
50343
50399
  }
50344
50400
  }
50345
- class I3 {
50401
+ class D3 {
50346
50402
  constructor(e) {
50347
50403
  this.viralViewerApi = e, this.elements = [], this._loadElementBatchWorker = new Ab(e);
50348
50404
  }
@@ -50449,7 +50505,7 @@ class I3 {
50449
50505
  u.Offset.Z,
50450
50506
  u.Offset.Y,
50451
50507
  1
50452
- ], g = new Pe();
50508
+ ], g = new Ce();
50453
50509
  g.fromArray(v), p.applyMatrix4(g);
50454
50510
  const m = new _i(p.geometry), b = new Ci(
50455
50511
  m,
@@ -50524,7 +50580,7 @@ class I3 {
50524
50580
  l.Offset.Z,
50525
50581
  l.Offset.Y,
50526
50582
  1
50527
- ], u = new Pe();
50583
+ ], u = new Ce();
50528
50584
  u.fromArray(d), h.applyMatrix4(u);
50529
50585
  var a = h.getAttribute("position").array;
50530
50586
  n = n.concat(Array.from(a)), h.dispose();
@@ -50846,7 +50902,7 @@ class I3 {
50846
50902
  ), this.viralViewerApi.viralMaterialManager.mergeMaterials = [], this.viralViewerApi.viralVisibilityManager.disableGroundShadow(), this.viralViewerApi.viralRenderer.render(), this.viralViewerApi.viralDataManager.dataTree = [], this.viralViewerApi.viralScene.selectables = [];
50847
50903
  }
50848
50904
  }
50849
- class R3 {
50905
+ class L3 {
50850
50906
  constructor(e) {
50851
50907
  this.viralViewerApi = e, this.objectLoader = new aM(), this.gltfLoader = new VP();
50852
50908
  }
@@ -50860,9 +50916,9 @@ class R3 {
50860
50916
  this.gltfLoader.load(e, t, i, n);
50861
50917
  }
50862
50918
  }
50863
- class D3 {
50919
+ class O3 {
50864
50920
  constructor(e) {
50865
- 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);
50866
50922
  }
50867
50923
  }
50868
50924
  var Rl = function() {
@@ -50917,24 +50973,24 @@ Rl.Panel = function(s, e, t) {
50917
50973
  }
50918
50974
  };
50919
50975
  };
50920
- class L3 {
50976
+ class N3 {
50921
50977
  constructor(e) {
50922
50978
  this.viralViewerApi = e, this.stats = null, this.viralViewerApi.targetElement && (this.stats = Rl(), this.stats.showPanel(0), this.viralViewerApi.targetElement.appendChild(this.stats.dom));
50923
50979
  }
50924
50980
  }
50925
- 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");
50926
- 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) {
50927
50983
  return s.index ? s.index.count : s.attributes.position.count;
50928
50984
  }
50929
50985
  function Pr(s) {
50930
- return U3(s) / 3;
50986
+ return z3(s) / 3;
50931
50987
  }
50932
- function F3(s, e = ArrayBuffer) {
50988
+ function k3(s, e = ArrayBuffer) {
50933
50989
  return s > 65535 ? new Uint32Array(new e(4 * s)) : new Uint16Array(new e(2 * s));
50934
50990
  }
50935
- function z3(s, e) {
50991
+ function V3(s, e) {
50936
50992
  if (!s.index) {
50937
- 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);
50938
50994
  s.setIndex(new ot(n, 1));
50939
50995
  for (let r = 0; r < t; r++)
50940
50996
  n[r] = r;
@@ -50965,7 +51021,7 @@ function Pb(s, e) {
50965
51021
  }
50966
51022
  return t;
50967
51023
  }
50968
- function k3(s, e) {
51024
+ function X3(s, e) {
50969
51025
  const t = Pr(s), i = Pb(s, e).sort((a, o) => a.offset - o.offset), n = i[i.length - 1];
50970
51026
  n.count = Math.min(t - n.offset, n.count);
50971
51027
  let r = 0;
@@ -50983,7 +51039,7 @@ function $u(s, e, t, i, n) {
50983
51039
  }
50984
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;
50985
51041
  }
50986
- function V3(s, e = null, t = null, i = null) {
51042
+ function H3(s, e = null, t = null, i = null) {
50987
51043
  const n = s.attributes.position, r = s.index ? s.index.array : null, a = Pr(s), o = n.normalized;
50988
51044
  let l;
50989
51045
  e === null ? l = new Float32Array(a * 6) : l = e, t = t || 0, i = i || a;
@@ -51003,7 +51059,7 @@ function V3(s, e = null, t = null, i = null) {
51003
51059
  let E = y;
51004
51060
  _ > E && (E = _), w > E && (E = w);
51005
51061
  const S = (E - T) / 2, M = x * 2;
51006
- 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;
51007
51063
  }
51008
51064
  }
51009
51065
  return l;
@@ -51039,20 +51095,20 @@ function ll(s) {
51039
51095
  const e = s[3] - s[0], t = s[4] - s[1], i = s[5] - s[2];
51040
51096
  return 2 * (e * t + t * i + i * e);
51041
51097
  }
51042
- 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(() => ({
51043
51099
  count: 0,
51044
51100
  bounds: new Float32Array(6),
51045
51101
  rightCacheBounds: new Float32Array(6),
51046
51102
  leftCacheBounds: new Float32Array(6),
51047
51103
  candidate: 0
51048
51104
  })), wh = new Float32Array(6);
51049
- function H3(s, e, t, i, n, r) {
51105
+ function G3(s, e, t, i, n, r) {
51050
51106
  let a = -1, o = 0;
51051
51107
  if (r === Tb)
51052
51108
  a = vv(e), a !== -1 && (o = (e[a] + e[a + 3]) / 2);
51053
- else if (r === O3)
51054
- a = vv(s), a !== -1 && (o = Y3(t, i, n, a));
51055
- 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) {
51056
51112
  const l = ll(s);
51057
51113
  let c = qu * n;
51058
51114
  const h = i * 6, d = (i + n) * 6;
@@ -51074,7 +51130,7 @@ function H3(s, e, t, i, n, r) {
51074
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;
51075
51131
  _h(y, t, w);
51076
51132
  }
51077
- m.sort(X3);
51133
+ m.sort(Y3);
51078
51134
  let x = n;
51079
51135
  for (let y = 0; y < x; y++) {
51080
51136
  const _ = m[y];
@@ -51134,7 +51190,7 @@ function H3(s, e, t, i, n, r) {
51134
51190
  console.warn(`MeshBVH: Invalid build strategy value ${r} used.`);
51135
51191
  return { axis: a, pos: o };
51136
51192
  }
51137
- function Y3(s, e, t, i) {
51193
+ function W3(s, e, t, i) {
51138
51194
  let n = 0;
51139
51195
  for (let r = e, a = e + t; r < a; r++)
51140
51196
  n += s[r * 6 + i * 2];
@@ -51145,7 +51201,7 @@ class Ku {
51145
51201
  this.boundingData = new Float32Array(6);
51146
51202
  }
51147
51203
  }
51148
- function G3(s, e, t, i, n, r) {
51204
+ function Q3(s, e, t, i, n, r) {
51149
51205
  let a = i, o = i + n - 1;
51150
51206
  const l = r.pos, c = r.axis * 2;
51151
51207
  for (; ; ) {
@@ -51167,7 +51223,7 @@ function G3(s, e, t, i, n, r) {
51167
51223
  return a;
51168
51224
  }
51169
51225
  }
51170
- function W3(s, e, t, i, n, r) {
51226
+ function j3(s, e, t, i, n, r) {
51171
51227
  let a = i, o = i + n - 1;
51172
51228
  const l = r.pos, c = r.axis * 2;
51173
51229
  for (; ; ) {
@@ -51206,11 +51262,11 @@ function Cb(s, e) {
51206
51262
  return e[s + 7];
51207
51263
  }
51208
51264
  let Ib, Sl, Wh, Rb;
51209
- const Q3 = Math.pow(2, 32);
51265
+ const q3 = Math.pow(2, 32);
51210
51266
  function up(s) {
51211
51267
  return "count" in s ? 1 : 1 + up(s.left) + up(s.right);
51212
51268
  }
51213
- function j3(s, e, t) {
51269
+ function Z3(s, e, t) {
51214
51270
  return Ib = new Float32Array(t), Sl = new Uint32Array(t), Wh = new Uint16Array(t), Rb = new Uint8Array(t), fp(s, e);
51215
51271
  }
51216
51272
  function fp(s, e) {
@@ -51233,18 +51289,18 @@ function fp(s, e) {
51233
51289
  else {
51234
51290
  const a = e.left, o = e.right, l = e.splitAxis;
51235
51291
  let c;
51236
- if (c = fp(s + Dl, a), c / 4 > Q3)
51292
+ if (c = fp(s + Dl, a), c / 4 > q3)
51237
51293
  throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");
51238
51294
  return Sl[t + 6] = c / 4, c = fp(c, o), Sl[t + 7] = l, c;
51239
51295
  }
51240
51296
  }
51241
- function q3(s, e) {
51297
+ function $3(s, e) {
51242
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);
51243
51299
  for (let o = 0, l = a.length; o < l; o++)
51244
51300
  a[o] = o;
51245
51301
  return a;
51246
51302
  }
51247
- function Z3(s, e, t, i, n) {
51303
+ function K3(s, e, t, i, n) {
51248
51304
  const {
51249
51305
  maxDepth: r,
51250
51306
  verbose: a,
@@ -51252,7 +51308,7 @@ function Z3(s, e, t, i, n) {
51252
51308
  strategy: l,
51253
51309
  onProgress: c,
51254
51310
  indirect: h
51255
- } = 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);
51256
51312
  let m = !1;
51257
51313
  const b = new Ku();
51258
51314
  return $u(e, t, i, b.boundingData, g), y(b, t, i, g), b;
@@ -51262,7 +51318,7 @@ function Z3(s, e, t, i, n) {
51262
51318
  function y(_, w, T, E = null, S = 0) {
51263
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)
51264
51320
  return x(w + T), _.offset = w, _.count = T, _;
51265
- const M = H3(_.boundingData, E, e, w, T, l);
51321
+ const M = G3(_.boundingData, E, e, w, T, l);
51266
51322
  if (M.axis === -1)
51267
51323
  return x(w + T), _.offset = w, _.count = T, _;
51268
51324
  const C = p(d, f, e, w, T, M);
@@ -51278,15 +51334,15 @@ function Z3(s, e, t, i, n) {
51278
51334
  return _;
51279
51335
  }
51280
51336
  }
51281
- function $3(s, e) {
51337
+ function J3(s, e) {
51282
51338
  const t = s.geometry;
51283
- 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(
51284
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.'
51285
- )), s._indirectBuffer || z3(t, e);
51286
- 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);
51287
51343
  s._roots = a.map((o) => {
51288
- const l = Z3(s, r, o.offset, o.count, e), c = up(l), h = new i(Dl * c);
51289
- 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;
51290
51346
  });
51291
51347
  }
51292
51348
  class Gs {
@@ -51328,7 +51384,7 @@ Gs.prototype.setFromBox = function() {
51328
51384
  this.min = a, this.max = o;
51329
51385
  };
51330
51386
  }();
51331
- const K3 = function() {
51387
+ const eI = function() {
51332
51388
  const s = new P(), e = new P(), t = new P();
51333
51389
  return function(n, r, a) {
51334
51390
  const o = n.start, l = s, c = r.start, h = e;
@@ -51340,7 +51396,7 @@ const K3 = function() {
51340
51396
  }(), vm = function() {
51341
51397
  const s = new K(), e = new P(), t = new P();
51342
51398
  return function(n, r, a, o) {
51343
- K3(n, r, s);
51399
+ eI(n, r, s);
51344
51400
  let l = s.x, c = s.y;
51345
51401
  if (l >= 0 && l <= 1 && c >= 0 && c <= 1) {
51346
51402
  n.at(l, a), r.at(c, o);
@@ -51366,7 +51422,7 @@ const K3 = function() {
51366
51422
  }
51367
51423
  }
51368
51424
  };
51369
- }(), J3 = function() {
51425
+ }(), tI = function() {
51370
51426
  const s = new P(), e = new P(), t = new ji(), i = new _s();
51371
51427
  return function(r, a) {
51372
51428
  const { radius: o, center: l } = r, { a: c, b: h, c: d } = a;
@@ -51380,7 +51436,7 @@ const K3 = function() {
51380
51436
  }
51381
51437
  return !1;
51382
51438
  };
51383
- }(), eI = ["x", "y", "z"], Bs = 1e-15, yv = Bs * Bs;
51439
+ }(), iI = ["x", "y", "z"], Bs = 1e-15, yv = Bs * Bs;
51384
51440
  function Tn(s) {
51385
51441
  return Math.abs(s) < Bs;
51386
51442
  }
@@ -51389,7 +51445,7 @@ class es extends vn {
51389
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;
51390
51446
  }
51391
51447
  intersectsSphere(e) {
51392
- return J3(e, this);
51448
+ return tI(e, this);
51393
51449
  }
51394
51450
  update() {
51395
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];
@@ -51511,7 +51567,7 @@ es.prototype.intersectsTriangle = function() {
51511
51567
  let Ne = 0, ce = Math.abs(pe.x);
51512
51568
  const we = Math.abs(pe.y);
51513
51569
  we > ce && (ce = we, Ne = 1), Math.abs(pe.z) > ce && (Ne = 2);
51514
- 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];
51515
51571
  if (p(this, ne, ee, Te, U, z, M, C, L, h, o))
51516
51572
  return u(this, y, _, w);
51517
51573
  if (p(y, Xe, Ge, ht, Z, ie, X, j, re, d, l))
@@ -51562,7 +51618,7 @@ es.prototype.distanceToTriangle = function() {
51562
51618
  }();
51563
51619
  class Ji {
51564
51620
  constructor(e, t, i) {
51565
- 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);
51566
51622
  }
51567
51623
  set(e, t, i) {
51568
51624
  this.min.copy(e), this.max.copy(t), this.matrix.copy(i), this.needsUpdate = !0;
@@ -51699,13 +51755,13 @@ class xm {
51699
51755
  this._primitives.push(e);
51700
51756
  }
51701
51757
  }
51702
- class tI extends xm {
51758
+ class nI extends xm {
51703
51759
  constructor() {
51704
51760
  super(() => new es());
51705
51761
  }
51706
51762
  }
51707
- const On = /* @__PURE__ */ new tI();
51708
- class iI {
51763
+ const On = /* @__PURE__ */ new nI();
51764
+ class sI {
51709
51765
  constructor() {
51710
51766
  this.float32Array = null, this.uint16Array = null, this.uint32Array = null;
51711
51767
  const e = [];
@@ -51717,10 +51773,10 @@ class iI {
51717
51773
  };
51718
51774
  }
51719
51775
  }
51720
- const Jt = new iI();
51776
+ const Jt = new sI();
51721
51777
  let gr, oo;
51722
51778
  const ja = [], Sh = /* @__PURE__ */ new xm(() => new ft());
51723
- function nI(s, e, t, i, n, r) {
51779
+ function rI(s, e, t, i, n, r) {
51724
51780
  gr = Sh.getPrimitive(), oo = Sh.getPrimitive(), ja.push(gr, oo), Jt.setBuffer(s._roots[e]);
51725
51781
  const a = pp(0, s.geometry, t, i, n, r);
51726
51782
  Jt.clearBuffer(), Sh.releasePrimitive(gr), Sh.releasePrimitive(oo), ja.pop(), ja.pop();
@@ -51792,7 +51848,7 @@ function pp(s, e, t, i, n = null, r = 0, a = 0) {
51792
51848
  }
51793
51849
  }
51794
51850
  const cl = /* @__PURE__ */ new P(), Ju = /* @__PURE__ */ new P();
51795
- function sI(s, e, t = {}, i = 0, n = 1 / 0) {
51851
+ function aI(s, e, t = {}, i = 0, n = 1 / 0) {
51796
51852
  const r = i * i, a = n * n;
51797
51853
  let o = 1 / 0, l = null;
51798
51854
  if (s.shapecast(
@@ -51810,8 +51866,8 @@ function sI(s, e, t = {}, i = 0, n = 1 / 0) {
51810
51866
  const c = Math.sqrt(o);
51811
51867
  return t.point ? t.point.copy(Ju) : t.point = Ju.clone(), t.distance = c, t.faceIndex = l, t;
51812
51868
  }
51813
- 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();
51814
- 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) {
51815
51871
  let l;
51816
51872
  if (r === $i ? l = s.intersectTriangle(i, t, e, !0, n) : l = s.intersectTriangle(e, t, i, r !== pi, n), l === null)
51817
51873
  return null;
@@ -51821,9 +51877,9 @@ function aI(s, e, t, i, n, r, a, o) {
51821
51877
  point: n.clone()
51822
51878
  };
51823
51879
  }
51824
- 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) {
51825
51881
  Xr.fromBufferAttribute(e, r), Hr.fromBufferAttribute(e, a), Yr.fromBufferAttribute(e, o);
51826
- const d = aI(s, Xr, Hr, Yr, hl, l, c, h);
51882
+ const d = lI(s, Xr, Hr, Yr, hl, l, c, h);
51827
51883
  if (d) {
51828
51884
  if (i) {
51829
51885
  Ah.fromBufferAttribute(i, r), Th.fromBufferAttribute(i, a), Eh.fromBufferAttribute(i, o), d.uv = new K();
@@ -51833,7 +51889,7 @@ function oI(s, e, t, i, n, r, a, o, l, c, h) {
51833
51889
  if (n) {
51834
51890
  Ah.fromBufferAttribute(n, r), Th.fromBufferAttribute(n, a), Eh.fromBufferAttribute(n, o), d.uv1 = new K();
51835
51891
  const f = vn.getInterpolation(hl, Xr, Hr, Yr, Ah, Th, Eh, d.uv1);
51836
- Mh || (d.uv1 = f), rI && (d.uv2 = d.uv1);
51892
+ Mh || (d.uv1 = f), oI && (d.uv2 = d.uv1);
51837
51893
  }
51838
51894
  if (t) {
51839
51895
  _v.fromBufferAttribute(t, r), wv.fromBufferAttribute(t, a), Sv.fromBufferAttribute(t, o), d.normal = new P();
@@ -51859,7 +51915,7 @@ function Ed(s, e, t, i, n, r, a) {
51859
51915
  let l = o + 0, c = o + 1, h = o + 2;
51860
51916
  const d = s.index;
51861
51917
  s.index && (l = d.getX(l), c = d.getX(c), h = d.getX(h));
51862
- 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);
51863
51919
  return g ? (g.faceIndex = i, n && n.push(g), g) : null;
51864
51920
  }
51865
51921
  function xi(s, e, t, i) {
@@ -51867,12 +51923,12 @@ function xi(s, e, t, i) {
51867
51923
  let o = e, l = e + 1, c = e + 2;
51868
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);
51869
51925
  }
51870
- function lI(s, e, t, i, n, r, a, o) {
51926
+ function hI(s, e, t, i, n, r, a, o) {
51871
51927
  const { geometry: l, _indirectBuffer: c } = s;
51872
51928
  for (let h = i, d = i + n; h < d; h++)
51873
51929
  Ed(l, e, t, h, r, a, o);
51874
51930
  }
51875
- function cI(s, e, t, i, n, r, a) {
51931
+ function dI(s, e, t, i, n, r, a) {
51876
51932
  const { geometry: o, _indirectBuffer: l } = s;
51877
51933
  let c = 1 / 0, h = null;
51878
51934
  for (let d = i, u = i + n; d < u; d++) {
@@ -51881,7 +51937,7 @@ function cI(s, e, t, i, n, r, a) {
51881
51937
  }
51882
51938
  return h;
51883
51939
  }
51884
- function hI(s, e, t, i, n, r, a) {
51940
+ function uI(s, e, t, i, n, r, a) {
51885
51941
  const { geometry: o } = t, { index: l } = o, c = o.attributes.position;
51886
51942
  for (let h = s, d = e + s; h < d; h++) {
51887
51943
  let u;
@@ -51890,7 +51946,7 @@ function hI(s, e, t, i, n, r, a) {
51890
51946
  }
51891
51947
  return !1;
51892
51948
  }
51893
- function dI(s, e = null) {
51949
+ function fI(s, e = null) {
51894
51950
  e && Array.isArray(e) && (e = new Set(e));
51895
51951
  const t = s.geometry, i = t.index ? t.index.array : null, n = t.attributes.position;
51896
51952
  let r, a, o, l, c = 0;
@@ -51933,14 +51989,14 @@ function Tr(s, e, t, i, n) {
51933
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];
51934
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);
51935
51991
  }
51936
- function uI(s, e, t, i, n, r, a, o) {
51992
+ function pI(s, e, t, i, n, r, a, o) {
51937
51993
  const { geometry: l, _indirectBuffer: c } = s;
51938
51994
  for (let h = i, d = i + n; h < d; h++) {
51939
51995
  let u = c ? c[h] : h;
51940
51996
  Ed(l, e, t, u, r, a, o);
51941
51997
  }
51942
51998
  }
51943
- function fI(s, e, t, i, n, r, a) {
51999
+ function mI(s, e, t, i, n, r, a) {
51944
52000
  const { geometry: o, _indirectBuffer: l } = s;
51945
52001
  let c = 1 / 0, h = null;
51946
52002
  for (let d = i, u = i + n; d < u; d++) {
@@ -51949,7 +52005,7 @@ function fI(s, e, t, i, n, r, a) {
51949
52005
  }
51950
52006
  return h;
51951
52007
  }
51952
- function pI(s, e, t, i, n, r, a) {
52008
+ function gI(s, e, t, i, n, r, a) {
51953
52009
  const { geometry: o } = t, { index: l } = o, c = o.attributes.position;
51954
52010
  for (let h = s, d = e + s; h < d; h++) {
51955
52011
  let u;
@@ -51958,14 +52014,14 @@ function pI(s, e, t, i, n, r, a) {
51958
52014
  }
51959
52015
  return !1;
51960
52016
  }
51961
- function mI(s, e, t, i, n, r, a) {
52017
+ function vI(s, e, t, i, n, r, a) {
51962
52018
  Jt.setBuffer(s._roots[e]), mp(0, s, t, i, n, r, a), Jt.clearBuffer();
51963
52019
  }
51964
52020
  function mp(s, e, t, i, n, r, a) {
51965
52021
  const { float32Array: o, uint16Array: l, uint32Array: c } = Jt, h = s * 2;
51966
52022
  if (ln(h, l)) {
51967
52023
  const u = _n(s, c), f = Rn(h, l);
51968
- lI(e, t, i, u, f, n, r, a);
52024
+ hI(e, t, i, u, f, n, r, a);
51969
52025
  } else {
51970
52026
  const u = Dn(s);
51971
52027
  Tr(u, o, i, r, a) && mp(u, e, t, i, n, r, a);
@@ -51973,8 +52029,8 @@ function mp(s, e, t, i, n, r, a) {
51973
52029
  Tr(f, o, i, r, a) && mp(f, e, t, i, n, r, a);
51974
52030
  }
51975
52031
  }
51976
- const gI = ["x", "y", "z"];
51977
- function vI(s, e, t, i, n, r) {
52032
+ const xI = ["x", "y", "z"];
52033
+ function bI(s, e, t, i, n, r) {
51978
52034
  Jt.setBuffer(s._roots[e]);
51979
52035
  const a = gp(0, s, t, i, n, r);
51980
52036
  return Jt.clearBuffer(), a;
@@ -51984,9 +52040,9 @@ function gp(s, e, t, i, n, r) {
51984
52040
  let c = s * 2;
51985
52041
  if (ln(c, o)) {
51986
52042
  const d = _n(s, l), u = Rn(c, o);
51987
- return cI(e, t, i, d, u, n, r);
52043
+ return dI(e, t, i, d, u, n, r);
51988
52044
  } else {
51989
- 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;
51990
52046
  let v, g;
51991
52047
  p ? (v = Dn(s), g = Ln(s, l)) : (v = Ln(s, l), g = Dn(s));
51992
52048
  const b = Tr(v, a, i, n, r) ? gp(v, e, t, i, n, r) : null;
@@ -52002,8 +52058,8 @@ function gp(s, e, t, i, n, r) {
52002
52058
  return b && y ? b.distance <= y.distance ? b : y : b || y || null;
52003
52059
  }
52004
52060
  }
52005
- 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();
52006
- 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) {
52007
52063
  Jt.setBuffer(s._roots[e]);
52008
52064
  const n = vp(0, s, t, i);
52009
52065
  return Jt.clearBuffer(), n;
@@ -52038,12 +52094,12 @@ function vp(s, e, t, i, n = null) {
52038
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)));
52039
52095
  }
52040
52096
  }
52041
- 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();
52042
- 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) {
52043
52099
  e.boundingBox || e.computeBoundingBox(), ef.set(e.boundingBox.min, e.boundingBox.max, t), ef.needsUpdate = !0;
52044
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();
52045
- let p = bI, v = yI, g = null, m = null;
52046
- n && (g = _I, m = wI);
52101
+ let p = _I, v = wI, g = null, m = null;
52102
+ n && (g = SI, m = MI);
52047
52103
  let b = 1 / 0, x = null, y = null;
52048
52104
  return Ih.copy(t).invert(), ul.matrix.copy(Ih), s.shapecast(
52049
52105
  {
@@ -52082,7 +52138,7 @@ function SI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52082
52138
  }
52083
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);
52084
52140
  }
52085
- function MI(s, e = null) {
52141
+ function TI(s, e = null) {
52086
52142
  e && Array.isArray(e) && (e = new Set(e));
52087
52143
  const t = s.geometry, i = t.index ? t.index.array : null, n = t.attributes.position;
52088
52144
  let r, a, o, l, c = 0;
@@ -52123,14 +52179,14 @@ function MI(s, e = null) {
52123
52179
  }
52124
52180
  }
52125
52181
  }
52126
- function AI(s, e, t, i, n, r, a) {
52182
+ function EI(s, e, t, i, n, r, a) {
52127
52183
  Jt.setBuffer(s._roots[e]), xp(0, s, t, i, n, r, a), Jt.clearBuffer();
52128
52184
  }
52129
52185
  function xp(s, e, t, i, n, r, a) {
52130
52186
  const { float32Array: o, uint16Array: l, uint32Array: c } = Jt, h = s * 2;
52131
52187
  if (ln(h, l)) {
52132
52188
  const u = _n(s, c), f = Rn(h, l);
52133
- uI(e, t, i, u, f, n, r, a);
52189
+ pI(e, t, i, u, f, n, r, a);
52134
52190
  } else {
52135
52191
  const u = Dn(s);
52136
52192
  Tr(u, o, i, r, a) && xp(u, e, t, i, n, r, a);
@@ -52138,8 +52194,8 @@ function xp(s, e, t, i, n, r, a) {
52138
52194
  Tr(f, o, i, r, a) && xp(f, e, t, i, n, r, a);
52139
52195
  }
52140
52196
  }
52141
- const TI = ["x", "y", "z"];
52142
- function EI(s, e, t, i, n, r) {
52197
+ const PI = ["x", "y", "z"];
52198
+ function CI(s, e, t, i, n, r) {
52143
52199
  Jt.setBuffer(s._roots[e]);
52144
52200
  const a = bp(0, s, t, i, n, r);
52145
52201
  return Jt.clearBuffer(), a;
@@ -52149,9 +52205,9 @@ function bp(s, e, t, i, n, r) {
52149
52205
  let c = s * 2;
52150
52206
  if (ln(c, o)) {
52151
52207
  const d = _n(s, l), u = Rn(c, o);
52152
- return fI(e, t, i, d, u, n, r);
52208
+ return mI(e, t, i, d, u, n, r);
52153
52209
  } else {
52154
- 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;
52155
52211
  let v, g;
52156
52212
  p ? (v = Dn(s), g = Ln(s, l)) : (v = Ln(s, l), g = Dn(s));
52157
52213
  const b = Tr(v, a, i, n, r) ? bp(v, e, t, i, n, r) : null;
@@ -52167,8 +52223,8 @@ function bp(s, e, t, i, n, r) {
52167
52223
  return b && y ? b.distance <= y.distance ? b : y : b || y || null;
52168
52224
  }
52169
52225
  }
52170
- 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();
52171
- 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) {
52172
52228
  Jt.setBuffer(s._roots[e]);
52173
52229
  const n = yp(0, s, t, i);
52174
52230
  return Jt.clearBuffer(), n;
@@ -52204,12 +52260,12 @@ function yp(s, e, t, i, n = null) {
52204
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)));
52205
52261
  }
52206
52262
  }
52207
- 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();
52208
- 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) {
52209
52265
  e.boundingBox || e.computeBoundingBox(), tf.set(e.boundingBox.min, e.boundingBox.max, t), tf.needsUpdate = !0;
52210
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();
52211
- let p = CI, v = II, g = null, m = null;
52212
- n && (g = RI, m = DI);
52267
+ let p = RI, v = DI, g = null, m = null;
52268
+ n && (g = LI, m = OI);
52213
52269
  let b = 1 / 0, x = null, y = null;
52214
52270
  return Lh.copy(t).invert(), pl.matrix.copy(Lh), s.shapecast(
52215
52271
  {
@@ -52252,18 +52308,18 @@ function LI(s, e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52252
52308
  }
52253
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);
52254
52310
  }
52255
- function OI() {
52311
+ function BI() {
52256
52312
  return typeof SharedArrayBuffer < "u";
52257
52313
  }
52258
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();
52259
52315
  let rf = !1;
52260
- function NI(s, e, t, i) {
52316
+ function UI(s, e, t, i) {
52261
52317
  if (rf)
52262
52318
  throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");
52263
52319
  rf = !0;
52264
52320
  const n = s._roots, r = e._roots;
52265
52321
  let a, o = 0, l = 0;
52266
- const c = new Pe().copy(t).invert();
52322
+ const c = new Ce().copy(t).invert();
52267
52323
  for (let h = 0, d = n.length; h < d; h++) {
52268
52324
  Ll.setBuffer(n[h]), l = 0;
52269
52325
  const u = or.getPrimitive();
@@ -52469,7 +52525,7 @@ function Gn(s, e, t, i, n, r = 0, a = 0, o = 0, l = 0, c = null, h = !1) {
52469
52525
  }
52470
52526
  return T;
52471
52527
  }
52472
- const Oh = /* @__PURE__ */ new Ji(), Tv = /* @__PURE__ */ new ft(), BI = {
52528
+ const Oh = /* @__PURE__ */ new Ji(), Tv = /* @__PURE__ */ new ft(), FI = {
52473
52529
  strategy: Tb,
52474
52530
  maxDepth: 40,
52475
52531
  maxLeafTris: 10,
@@ -52525,16 +52581,16 @@ class bm {
52525
52581
  } else
52526
52582
  throw new Error("MeshBVH: Only BufferGeometries are supported.");
52527
52583
  if (t = Object.assign({
52528
- ...BI,
52584
+ ...FI,
52529
52585
  // undocumented options
52530
52586
  // Whether to skip generating the tree. Used for deserialization.
52531
52587
  [Zu]: !1
52532
- }, t), t.useSharedArrayBuffer && !OI())
52588
+ }, t), t.useSharedArrayBuffer && !BI())
52533
52589
  throw new Error("MeshBVH: SharedArrayBuffer is not available.");
52534
- 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;
52535
52591
  }
52536
52592
  refit(e = null) {
52537
- return (this.indirect ? MI : dI)(this, e);
52593
+ return (this.indirect ? TI : fI)(this, e);
52538
52594
  }
52539
52595
  traverse(e, t = 0) {
52540
52596
  const i = this._roots[t], n = new Uint32Array(i), r = new Uint16Array(i);
@@ -52552,7 +52608,7 @@ class bm {
52552
52608
  }
52553
52609
  /* Core Cast Functions */
52554
52610
  raycast(e, t = wn, i = 0, n = 1 / 0) {
52555
- 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;
52556
52612
  for (let f = 0, p = r.length; f < p; f++) {
52557
52613
  const v = c ? t[h[f].materialIndex].side : d, g = o.length;
52558
52614
  if (u(this, f, v, e, o, i, n), c) {
@@ -52566,7 +52622,7 @@ class bm {
52566
52622
  raycastFirst(e, t = wn, i = 0, n = 1 / 0) {
52567
52623
  const r = this._roots, a = this.geometry, o = t.isMaterial, l = Array.isArray(t);
52568
52624
  let c = null;
52569
- 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;
52570
52626
  for (let f = 0, p = r.length; f < p; f++) {
52571
52627
  const v = l ? t[h[f].materialIndex].side : d, g = u(this, f, v, e, i, n);
52572
52628
  g != null && (c == null || g.distance < c.distance) && (c = g, l && (g.face.materialIndex = h[f].materialIndex));
@@ -52575,13 +52631,13 @@ class bm {
52575
52631
  }
52576
52632
  intersectsGeometry(e, t) {
52577
52633
  let i = !1;
52578
- const n = this._roots, r = this.indirect ? PI : xI;
52634
+ const n = this._roots, r = this.indirect ? II : yI;
52579
52635
  for (let a = 0, o = n.length; a < o && (i = r(this, a, e, t), !i); a++)
52580
52636
  ;
52581
52637
  return i;
52582
52638
  }
52583
52639
  shapecast(e) {
52584
- const t = On.getPrimitive(), i = this.indirect ? pI : hI;
52640
+ const t = On.getPrimitive(), i = this.indirect ? gI : uI;
52585
52641
  let {
52586
52642
  boundsTraverseOrder: n,
52587
52643
  intersectsBounds: r,
@@ -52597,7 +52653,7 @@ class bm {
52597
52653
  const h = this._roots;
52598
52654
  for (let d = 0, u = h.length; d < u; d++) {
52599
52655
  const f = h[d];
52600
- if (l = nI(this, d, r, a, n, c), l)
52656
+ if (l = rI(this, d, r, a, n, c), l)
52601
52657
  break;
52602
52658
  c += f.byteLength;
52603
52659
  }
@@ -52637,7 +52693,7 @@ class bm {
52637
52693
  } else
52638
52694
  n = p;
52639
52695
  }
52640
- return NI(this, e, t, n);
52696
+ return UI(this, e, t, n);
52641
52697
  }
52642
52698
  /* Derived Cast Functions */
52643
52699
  intersectsBox(e, t) {
@@ -52657,7 +52713,7 @@ class bm {
52657
52713
  );
52658
52714
  }
52659
52715
  closestPointToGeometry(e, t, i = {}, n = {}, r = 0, a = 1 / 0) {
52660
- return (this.indirect ? LI : SI)(
52716
+ return (this.indirect ? NI : AI)(
52661
52717
  this,
52662
52718
  e,
52663
52719
  t,
@@ -52668,7 +52724,7 @@ class bm {
52668
52724
  );
52669
52725
  }
52670
52726
  closestPointToPoint(e, t = {}, i = 0, n = 1 / 0) {
52671
- return sI(
52727
+ return aI(
52672
52728
  this,
52673
52729
  e,
52674
52730
  t,
@@ -52685,11 +52741,11 @@ class bm {
52685
52741
  function Ev(s, e, t) {
52686
52742
  return s === null ? null : (s.point.applyMatrix4(e.matrixWorld), s.distance = s.point.distanceTo(t.ray.origin), s.object = e, s);
52687
52743
  }
52688
- 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 = [];
52689
- function zI(s, e) {
52690
- 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);
52691
52747
  }
52692
- function kI(s, e) {
52748
+ function XI(s, e) {
52693
52749
  if (this.boundsTrees) {
52694
52750
  const t = this.boundsTrees, i = this._drawInfo || this._instanceInfo, n = this._drawRanges || this._geometryInfo, r = this.matrixWorld;
52695
52751
  Ni.material = this.material, Ni.geometry = this.geometry;
@@ -52713,9 +52769,9 @@ function kI(s, e) {
52713
52769
  }
52714
52770
  Ni.geometry.boundsTree = a, Ni.geometry.drawRange = o, Ni.material = null, Ni.geometry = null;
52715
52771
  } else
52716
- FI.call(this, s, e);
52772
+ kI.call(this, s, e);
52717
52773
  }
52718
- function VI(s, e) {
52774
+ function HI(s, e) {
52719
52775
  if (this.geometry.boundsTree) {
52720
52776
  if (this.material === void 0)
52721
52777
  return;
@@ -52732,40 +52788,40 @@ function VI(s, e) {
52732
52788
  }
52733
52789
  }
52734
52790
  } else
52735
- UI.call(this, s, e);
52791
+ zI.call(this, s, e);
52736
52792
  }
52737
- function XI(s = {}) {
52793
+ function YI(s = {}) {
52738
52794
  return this.boundsTree = new bm(this, s), this.boundsTree;
52739
52795
  }
52740
- function HI() {
52796
+ function GI() {
52741
52797
  this.boundsTree = null;
52742
52798
  }
52743
- class YI {
52799
+ class WI {
52744
52800
  constructor() {
52745
- 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;
52746
52802
  }
52747
52803
  applyThreeMeshBVH(e) {
52748
52804
  e.boundsTree || e.computeBoundsTree();
52749
52805
  }
52750
52806
  }
52751
- class GI {
52807
+ class QI {
52752
52808
  constructor(e) {
52753
52809
  this.viralViewerApi = e, this.hoverMaterial = new ia({
52754
- color: Et.hexToThreejsColor(Ce.secondary),
52810
+ color: Et.hexToThreejsColor(Ee.secondary),
52755
52811
  opacity: 0.7,
52756
52812
  transparent: !0,
52757
52813
  depthTest: !1,
52758
52814
  name: "Render Material",
52759
52815
  flatShading: !0
52760
52816
  }), this.selectedMaterial = new ia({
52761
- color: Et.hexToThreejsColor(Ce.secondary),
52817
+ color: Et.hexToThreejsColor(Ee.secondary),
52762
52818
  opacity: 0.7,
52763
52819
  transparent: !0,
52764
52820
  name: "Render Material",
52765
52821
  depthTest: !1,
52766
52822
  flatShading: !0
52767
52823
  }), this.edgeMaterial = new bb({
52768
- color: Et.hexToThreejsColor(Ce.edge),
52824
+ color: Et.hexToThreejsColor(Ee.edge),
52769
52825
  linewidth: 2,
52770
52826
  resolution: new K(window.innerWidth, window.innerHeight),
52771
52827
  transparent: !0,
@@ -52799,7 +52855,7 @@ class GI {
52799
52855
  }
52800
52856
  }
52801
52857
  }
52802
- class WI {
52858
+ class jI {
52803
52859
  constructor() {
52804
52860
  this.events = {
52805
52861
  [At.LOADED_SCENE]: [],
@@ -52839,7 +52895,7 @@ class WI {
52839
52895
  i && i.forEach((n) => n(...t));
52840
52896
  }
52841
52897
  }
52842
- class QI {
52898
+ class qI {
52843
52899
  constructor(e, t) {
52844
52900
  this.viralViewerApi = e, this.options = t, this.viralViewerApi.on(
52845
52901
  At.LOADED_SCENE,
@@ -52914,14 +52970,14 @@ const Db = {
52914
52970
  importLink: "https://fonts.googleapis.com/css2?family=Quicksand:wght@300&display=swap",
52915
52971
  fontFamily: "Quicksand, sans-serif"
52916
52972
  }
52917
- }, jI = (s) => {
52973
+ }, ZI = (s) => {
52918
52974
  const e = document.createElement("style");
52919
52975
  e.innerHTML = `@import url(${Db[s]});`, document.head.appendChild(e);
52920
- }, qI = (s, e) => {
52976
+ }, $I = (s, e) => {
52921
52977
  let t = Db[e];
52922
52978
  s && t && (s.style.fontFamily = t.fontFamily);
52923
52979
  };
52924
- class ZI {
52980
+ class KI {
52925
52981
  constructor(e) {
52926
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;
52927
52983
  }
@@ -53019,10 +53075,10 @@ class ZI {
53019
53075
  * Select elements (replaces current selection)
53020
53076
  */
53021
53077
  selectElements(e) {
53022
- e.length > 0 && (this.viralViewerApi.viralScene.mergedModel.select(
53078
+ e.length > 0 && (this.viralViewerApi.emit(At.SELECT_ELEMENTS, e), this.viralViewerApi.viralScene.mergedModel.select(
53023
53079
  e,
53024
53080
  this.exceptElements
53025
- ), this.addToOutline(e), this.enableOutline());
53081
+ ), this.viralViewerApi.viralRenderer.render());
53026
53082
  }
53027
53083
  /**
53028
53084
  * Add elements to current selection (multi-select with Shift)
@@ -53050,7 +53106,22 @@ class ZI {
53050
53106
  * Unselect all elements
53051
53107
  */
53052
53108
  unselectElements() {
53053
- 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);
53054
53125
  }
53055
53126
  isolateModel(e = [this.isolateModelId]) {
53056
53127
  this.viralViewerApi.viralScene.mergedModel.resetVisibility(), this.viralViewerApi.viralScene.mergedModel.isolateModel(e), this.viralViewerApi.viralRenderer.render();
@@ -53676,7 +53747,7 @@ class bt {
53676
53747
  return i && n && r;
53677
53748
  }
53678
53749
  }
53679
- function $I() {
53750
+ function JI() {
53680
53751
  class s {
53681
53752
  constructor() {
53682
53753
  this.children = /* @__PURE__ */ new Map(), this.keys = /* @__PURE__ */ new Set();
@@ -53758,10 +53829,10 @@ function $I() {
53758
53829
  }
53759
53830
  };
53760
53831
  }
53761
- const KI = $I;
53762
- class JI {
53832
+ const eR = JI;
53833
+ class tR {
53763
53834
  constructor() {
53764
- const e = new Blob([`(${KI})()`]), t = URL.createObjectURL(e);
53835
+ const e = new Blob([`(${eR})()`]), t = URL.createObjectURL(e);
53765
53836
  this.workerPool = new Ar(
53766
53837
  2,
53767
53838
  t
@@ -53774,7 +53845,7 @@ class JI {
53774
53845
  });
53775
53846
  }
53776
53847
  }
53777
- function eR() {
53848
+ function iR() {
53778
53849
  self.addEventListener(
53779
53850
  "message",
53780
53851
  (s) => {
@@ -53808,10 +53879,10 @@ function eR() {
53808
53879
  !1
53809
53880
  );
53810
53881
  }
53811
- const tR = eR;
53812
- class iR {
53882
+ const nR = iR;
53883
+ class sR {
53813
53884
  constructor() {
53814
- const e = new Blob([`(${tR})()`]), t = URL.createObjectURL(e);
53885
+ const e = new Blob([`(${nR})()`]), t = URL.createObjectURL(e);
53815
53886
  this.workerPool = new Ar(
53816
53887
  2,
53817
53888
  t
@@ -53819,18 +53890,18 @@ class iR {
53819
53890
  }
53820
53891
  fetch(e, t = (r) => {
53821
53892
  }, i, n) {
53822
- let r = new nR(e, i, n);
53893
+ let r = new rR(e, i, n);
53823
53894
  this.workerPool.Enqueue(r, (a) => {
53824
53895
  t(a);
53825
53896
  });
53826
53897
  }
53827
53898
  }
53828
- class nR {
53899
+ class rR {
53829
53900
  constructor(e, t, i) {
53830
53901
  this.url = "", this.url = e, this.byteRangeStart = t, this.byteRangeEnd = i;
53831
53902
  }
53832
53903
  }
53833
- function sR() {
53904
+ function aR() {
53834
53905
  class s {
53835
53906
  constructor(t, i, n) {
53836
53907
  this.X = 0, this.Y = 0, this.Z = 0, this.X = t, this.Y = i, this.Z = n;
@@ -53852,10 +53923,10 @@ function sR() {
53852
53923
  self.postMessage(i());
53853
53924
  };
53854
53925
  }
53855
- const rR = sR;
53856
- class aR {
53926
+ const oR = aR;
53927
+ class lR {
53857
53928
  constructor() {
53858
- const e = new Blob([`(${rR})()`]), t = URL.createObjectURL(e);
53929
+ const e = new Blob([`(${oR})()`]), t = URL.createObjectURL(e);
53859
53930
  this.workerPool = new Ar(navigator.hardwareConcurrency || 10, t);
53860
53931
  }
53861
53932
  getBoundingBox(e, t = (i) => {
@@ -53868,7 +53939,7 @@ class aR {
53868
53939
  );
53869
53940
  }
53870
53941
  }
53871
- function oR() {
53942
+ function cR() {
53872
53943
  self.onmessage = function(s) {
53873
53944
  const e = s.data;
53874
53945
  function t(n, r, a = 0.1) {
@@ -53886,10 +53957,10 @@ function oR() {
53886
53957
  self.postMessage(i);
53887
53958
  };
53888
53959
  }
53889
- const lR = oR;
53890
- class cR {
53960
+ const hR = cR;
53961
+ class dR {
53891
53962
  constructor() {
53892
- const e = new Blob([`(${lR})()`]), t = URL.createObjectURL(e);
53963
+ const e = new Blob([`(${hR})()`]), t = URL.createObjectURL(e);
53893
53964
  this.workerPool = new Ar(4, t);
53894
53965
  }
53895
53966
  checkIntersect(e, t = (i) => {
@@ -53899,7 +53970,7 @@ class cR {
53899
53970
  });
53900
53971
  }
53901
53972
  }
53902
- function hR() {
53973
+ function uR() {
53903
53974
  class s {
53904
53975
  constructor(f, p, v) {
53905
53976
  this.x = 0, this.y = 0, this.z = 0, this.x = f, this.y = p, this.z = v;
@@ -53981,10 +54052,10 @@ function hR() {
53981
54052
  self.postMessage(!1);
53982
54053
  };
53983
54054
  }
53984
- const dR = hR;
53985
- class uR {
54055
+ const fR = uR;
54056
+ class pR {
53986
54057
  constructor() {
53987
- const e = new Blob([`(${dR})()`]), t = URL.createObjectURL(e);
54058
+ const e = new Blob([`(${fR})()`]), t = URL.createObjectURL(e);
53988
54059
  this.workerPool = new Ar(
53989
54060
  navigator.hardwareConcurrency || 10,
53990
54061
  t
@@ -53997,9 +54068,9 @@ class uR {
53997
54068
  });
53998
54069
  }
53999
54070
  }
54000
- class fR {
54071
+ class mR {
54001
54072
  constructor(e) {
54002
- 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());
54003
54074
  }
54004
54075
  addTrackingData(e, t) {
54005
54076
  this.trackingData.set(e, t);
@@ -54154,40 +54225,40 @@ class fR {
54154
54225
  }
54155
54226
  return this.viralViewerApi.viralVisibilityManager.exceptElements = [], this.viralViewerApi.viralScene.mergedModel.changeColor(
54156
54227
  i.deleted.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54157
- Et.hexToRGB(Ce.deleted)
54228
+ Et.hexToRGB(Ee.deleted)
54158
54229
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54159
54230
  elements: i.deleted.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54160
- color: Et.hexToRGB(Ce.deleted)
54231
+ color: Et.hexToRGB(Ee.deleted)
54161
54232
  }), this.viralViewerApi.viralScene.mergedModel.changeColor(
54162
54233
  i.added.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54163
- Et.hexToRGB(Ce.added)
54234
+ Et.hexToRGB(Ee.added)
54164
54235
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54165
54236
  elements: i.added.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54166
- color: Et.hexToRGB(Ce.added)
54237
+ color: Et.hexToRGB(Ee.added)
54167
54238
  }), this.viralViewerApi.viralScene.mergedModel.changeColor(
54168
54239
  i.modified.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54169
- Et.hexToRGB(Ce.modified)
54240
+ Et.hexToRGB(Ee.modified)
54170
54241
  ), this.viralViewerApi.viralScene.mergedModel.changeColor(
54171
54242
  i.modified.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54172
- Et.hexToRGB(Ce.modified)
54243
+ Et.hexToRGB(Ee.modified)
54173
54244
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54174
54245
  elements: i.modified.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54175
- color: Et.hexToRGB(Ce.modified)
54246
+ color: Et.hexToRGB(Ee.modified)
54176
54247
  }), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54177
54248
  elements: i.modified.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54178
- color: Et.hexToRGB(Ce.modified)
54249
+ color: Et.hexToRGB(Ee.modified)
54179
54250
  }), this.viralViewerApi.viralScene.mergedModel.changeColor(
54180
54251
  i.notChanged.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54181
- Et.hexToRGB(Ce.notChanged)
54252
+ Et.hexToRGB(Ee.notChanged)
54182
54253
  ), this.viralViewerApi.viralScene.mergedModel.changeColor(
54183
54254
  i.notChanged.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54184
- Et.hexToRGB(Ce.notChanged)
54255
+ Et.hexToRGB(Ee.notChanged)
54185
54256
  ), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54186
54257
  elements: i.notChanged.map((l) => ({ elementId: l.toString(), modelId: e.toString() })),
54187
- color: Et.hexToRGB(Ce.notChanged)
54258
+ color: Et.hexToRGB(Ee.notChanged)
54188
54259
  }), this.viralViewerApi.viralVisibilityManager.exceptElements.push({
54189
54260
  elements: i.notChanged.map((l) => ({ elementId: l.toString(), modelId: t.toString() })),
54190
- color: Et.hexToRGB(Ce.notChanged)
54261
+ color: Et.hexToRGB(Ee.notChanged)
54191
54262
  }), this.viralViewerApi.viralRenderer.render(), i;
54192
54263
  }
54193
54264
  uncompareModels() {
@@ -54360,7 +54431,7 @@ class fR {
54360
54431
  }
54361
54432
  //#endregion
54362
54433
  }
54363
- class pR {
54434
+ class gR {
54364
54435
  constructor(e) {
54365
54436
  this.viralViewerApi = e, this.spinner = null, this.logo = `<svg
54366
54437
  width="348.25488"
@@ -54421,9 +54492,9 @@ class pR {
54421
54492
  100% { transform: rotate(360deg); }
54422
54493
  }`, t = document.createElement("style");
54423
54494
  if (t.innerHTML = e, document.head.appendChild(t), this.viralViewerApi.targetElement) {
54424
- 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`);
54425
54496
  const i = document.createElement("div"), n = document.createElement("div");
54426
- 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;`);
54427
54498
  const r = Md.createElementFromHTML(this.logo);
54428
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);
54429
54500
  }
@@ -54435,35 +54506,71 @@ class pR {
54435
54506
  this.spinner && this.spinner.style.setProperty("display", "none");
54436
54507
  }
54437
54508
  }
54438
- class mR {
54509
+ class vR {
54439
54510
  constructor(e) {
54440
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">
54441
54512
  <div class="modal-content">
54442
54513
  <div id="modal-header" style="
54443
- cursor: pointer;
54514
+ cursor: move;
54444
54515
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
54445
54516
  padding-bottom: 5px;
54517
+ margin-bottom: 10px;
54518
+ flex-shrink: 0;
54446
54519
  ">
54447
54520
  <span class="close" id="closeBtn">&times;</span>
54448
- <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">
54449
54522
  </h2>
54450
54523
  </div>
54451
- <div id="modal-body" style="max-height:80vh;overflow:auto;display:flex">
54452
- <div id="modal-body-left" style="flex:1;"></div>
54453
- <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>
54454
54527
  </div>
54528
+ <div class="resize-handle" id="resizeHandle"></div>
54455
54529
  </div>
54456
54530
  </div>`, this.rawModalStyle = `.modal {
54457
54531
  display: none;
54458
54532
  position: fixed;
54459
54533
  z-index: 1;
54534
+ min-width: 200px;
54535
+ min-height: 150px;
54460
54536
  }
54461
54537
 
54462
54538
  .modal-content {
54463
- background-color: ${Ce.background};
54539
+ background-color: ${Ee.background};
54464
54540
  border: 1px solid #ccc;
54465
54541
  border-radius: 5px;
54466
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%;
54467
54574
  }
54468
54575
 
54469
54576
  .close {
@@ -54473,7 +54580,7 @@ class mR {
54473
54580
  }
54474
54581
 
54475
54582
  .close:hover {
54476
- color: ${Ce.accent};
54583
+ color: ${Ee.accent};
54477
54584
  }
54478
54585
  ::-webkit-scrollbar {
54479
54586
  width: 5px;
@@ -54501,22 +54608,41 @@ class mR {
54501
54608
  ::-webkit-scrollbar-thumb:hover {
54502
54609
  background: rgba(0, 0, 0, 0.5);
54503
54610
  }
54504
- `, 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();
54505
54612
  }
54506
54613
  inject() {
54507
54614
  if (this.viralViewerApi.targetElement) {
54508
54615
  const e = document.createElement("style");
54509
54616
  e.innerHTML = this.rawModalStyle, document.head.appendChild(e), this.modal = Md.createElementFromHTML(this.rawModal), this.viralViewerApi.targetElement.appendChild(this.modal);
54510
- const t = document.getElementById("modal-header");
54617
+ const t = document.getElementById("modal-header"), i = document.getElementById("resizeHandle");
54511
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");
54512
- const i = document.getElementById("closeBtn");
54513
- t.addEventListener("mousedown", (n) => {
54514
- this.isDragging = !0, this.offsetX = n.clientX - this.modal.getBoundingClientRect().left, this.offsetY = n.clientY - this.modal.getBoundingClientRect().top, this.modal.style.zIndex = "2";
54515
- }), this.viralViewerApi.targetElement.addEventListener("mousemove", (n) => {
54516
- this.isDragging && (this.modal.style.left = n.clientX - this.offsetX + "px", this.modal.style.top = n.clientY - this.offsetY + "px");
54517
- }), this.modal.addEventListener("mouseup", () => {
54518
- this.isDragging = !1, this.modal.style.zIndex = "1";
54519
- }), 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", () => {
54520
54646
  this.modal.style.display = "none";
54521
54647
  });
54522
54648
  }
@@ -54528,7 +54654,11 @@ class mR {
54528
54654
  this.modal && (this.modal.style.display = "none");
54529
54655
  }
54530
54656
  updatePosition(e, t) {
54531
- 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
+ }
54532
54662
  }
54533
54663
  updateModalContent(e, t) {
54534
54664
  var n, r;
@@ -54536,12 +54666,12 @@ class mR {
54536
54666
  this.modalBodyLeft.innerHTML = "", this.modalBodyRight.innerHTML = "";
54537
54667
  for (var i in this.properties) {
54538
54668
  let a = this.properties[i];
54539
- 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>`;
54540
54670
  }
54541
54671
  }
54542
54672
  }
54543
54673
  }
54544
- class gR {
54674
+ class xR {
54545
54675
  constructor(e) {
54546
54676
  this.viralTools = e;
54547
54677
  }
@@ -54550,7 +54680,7 @@ class gR {
54550
54680
  e.activate && console.log((t = this.viralTools.viralViewerApi.viralCamera.camera) == null ? void 0 : t.position);
54551
54681
  }
54552
54682
  }
54553
- class vR {
54683
+ class bR {
54554
54684
  constructor(e) {
54555
54685
  this.viralTools = e;
54556
54686
  }
@@ -54558,7 +54688,7 @@ class vR {
54558
54688
  this.viralTools.viralViewerApi.targetElement && e.activate;
54559
54689
  }
54560
54690
  }
54561
- class xR {
54691
+ class yR {
54562
54692
  constructor(e) {
54563
54693
  this.viralTools = e;
54564
54694
  }
@@ -54566,7 +54696,7 @@ class xR {
54566
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));
54567
54697
  }
54568
54698
  }
54569
- class bR {
54699
+ class _R {
54570
54700
  constructor(e) {
54571
54701
  this.viralTools = e, this.isActivated = !1;
54572
54702
  }
@@ -54586,7 +54716,7 @@ class bR {
54586
54716
  }
54587
54717
  }
54588
54718
  }
54589
- class yR {
54719
+ class wR {
54590
54720
  constructor(e) {
54591
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;
54592
54722
  }
@@ -54645,7 +54775,7 @@ class yR {
54645
54775
  let r = document.createElement("canvas"), a = r.getContext("2d"), o = 32;
54646
54776
  r.width = o, r.height = o;
54647
54777
  let l = o * 0.8 / 2;
54648
- 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;
54649
54779
  }
54650
54780
  let t = new np(e()), i = new id({
54651
54781
  map: t,
@@ -54655,7 +54785,7 @@ class yR {
54655
54785
  }
54656
54786
  makeLine(e, t) {
54657
54787
  let i = new dn({
54658
- color: Et.hexToThreejsColor(Ce.primary),
54788
+ color: Et.hexToThreejsColor(Ee.primary),
54659
54789
  linewidth: 20
54660
54790
  });
54661
54791
  const n = [e, t], r = new dt().setFromPoints(n);
@@ -54669,7 +54799,7 @@ class yR {
54669
54799
  if (r) {
54670
54800
  r.font = "bolder " + a + 'px "Open Sans", Arial';
54671
54801
  let d = "~ " + Math.round(e.distanceTo(t)), u = r.measureText(d), f = 20, p = 10, v = 10;
54672
- 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);
54673
54803
  }
54674
54804
  let o = new np(n), l = new tp(new id({
54675
54805
  map: o,
@@ -54686,7 +54816,7 @@ class yR {
54686
54816
  e.code == "Escape" && (Et.clearChildren(this.tempMeasure), this.point1 = null, this.point2 = null, this.tempPoint2 = null, this.viralTools.viralViewerApi.viralRenderer.render());
54687
54817
  }
54688
54818
  }
54689
- class _R {
54819
+ class SR {
54690
54820
  constructor(e) {
54691
54821
  this.viralTools = e;
54692
54822
  }
@@ -54722,14 +54852,14 @@ class _R {
54722
54852
  }
54723
54853
  }
54724
54854
  }
54725
- class wR {
54855
+ class MR {
54726
54856
  constructor(e) {
54727
54857
  this.viralViewerApi = e, this.tools = [
54728
54858
  {
54729
54859
  name: "navigation",
54730
54860
  tools: [
54731
54861
  {
54732
- 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>`,
54733
54863
  index: 0,
54734
54864
  activate: !0,
54735
54865
  allowDehydrated: !1,
@@ -54738,7 +54868,7 @@ class wR {
54738
54868
  }
54739
54869
  },
54740
54870
  {
54741
- 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>`,
54742
54872
  index: 1,
54743
54873
  activate: !1,
54744
54874
  allowDehydrated: !1,
@@ -54751,7 +54881,7 @@ class wR {
54751
54881
  name: "helper",
54752
54882
  tools: [
54753
54883
  {
54754
- 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>`,
54755
54885
  index: 0,
54756
54886
  activate: !1,
54757
54887
  allowDehydrated: !1,
@@ -54759,7 +54889,7 @@ class wR {
54759
54889
  action: (t) => this.viralToolElevation.activate(t)
54760
54890
  },
54761
54891
  {
54762
- 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>`,
54763
54893
  index: 1,
54764
54894
  activate: !1,
54765
54895
  allowDehydrated: !1,
@@ -54767,7 +54897,7 @@ class wR {
54767
54897
  action: (t) => this.viralToolMeasure.activate(t)
54768
54898
  },
54769
54899
  {
54770
- 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>`,
54771
54901
  index: 2,
54772
54902
  activate: !1,
54773
54903
  allowDehydrated: !1,
@@ -54781,7 +54911,7 @@ class wR {
54781
54911
  name: "environment",
54782
54912
  tools: [
54783
54913
  {
54784
- 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>`,
54785
54915
  index: 0,
54786
54916
  activate: !1,
54787
54917
  allowDehydrated: !1,
@@ -54789,7 +54919,7 @@ class wR {
54789
54919
  action: (t) => this.viralToolSunlight.activate(t)
54790
54920
  },
54791
54921
  {
54792
- 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>`,
54793
54923
  index: 1,
54794
54924
  activate: !1,
54795
54925
  allowDehydrated: !1,
@@ -54802,7 +54932,7 @@ class wR {
54802
54932
  name: "theme",
54803
54933
  tools: [
54804
54934
  {
54805
- 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>`,
54806
54936
  index: 0,
54807
54937
  activate: !1,
54808
54938
  allowDehydrated: !0,
@@ -54815,7 +54945,7 @@ class wR {
54815
54945
  name: "debug",
54816
54946
  tools: [
54817
54947
  {
54818
- 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>`,
54819
54949
  index: 0,
54820
54950
  activate: !1,
54821
54951
  allowDehydrated: !1,
@@ -54826,7 +54956,7 @@ class wR {
54826
54956
  }
54827
54957
  ]
54828
54958
  }
54829
- ], 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);
54830
54960
  }
54831
54961
  //#region Init
54832
54962
  injectTools() {
@@ -54840,7 +54970,7 @@ class wR {
54840
54970
  const i = this.tools[t], n = document.createElement("div");
54841
54971
  n.setAttribute(
54842
54972
  "style",
54843
- `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;`
54844
54974
  );
54845
54975
  for (let r = 0; r < i.tools.length; r++) {
54846
54976
  const a = i.tools[r], o = document.createElement("div");
@@ -54853,10 +54983,10 @@ class wR {
54853
54983
  const l = document.createElement("div");
54854
54984
  l.setAttribute(
54855
54985
  "style",
54856
- `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ce.background};`
54986
+ `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ee.background};`
54857
54987
  ), a.activate && l.setAttribute(
54858
54988
  "style",
54859
- `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ce.secondary};`
54989
+ `border-top: 2px solid ; padding-bottom: 2px; border-color: ${Ee.secondary};`
54860
54990
  ), o.appendChild(l);
54861
54991
  const c = document.createElement("div");
54862
54992
  c.setAttribute(
@@ -54871,7 +55001,7 @@ class wR {
54871
55001
  c.style.setProperty("background-color", "unset");
54872
55002
  };
54873
55003
  const h = Md.createElementFromHTML(a.svg);
54874
- 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);
54875
55005
  }
54876
55006
  e.appendChild(n);
54877
55007
  }
@@ -54905,15 +55035,15 @@ class wR {
54905
55035
  if (n) {
54906
55036
  n.activate = !n.activate;
54907
55037
  const r = t.children[0], o = t.children[1].children[0];
54908
- 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(
54909
55039
  "border-color",
54910
- `${Ce.background}`
54911
- ), o.setAttribute("fill", `${Ce.primary}`)), n.action(n);
55040
+ `${Ee.background}`
55041
+ ), o.setAttribute("fill", `${Ee.primary}`)), n.action(n);
54912
55042
  }
54913
55043
  }
54914
55044
  //#endregion
54915
55045
  }
54916
- class SR {
55046
+ class AR {
54917
55047
  constructor(e) {
54918
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();
54919
55049
  }
@@ -54944,7 +55074,7 @@ class SR {
54944
55074
  window.addEventListener("mousedown", e, !1), window.addEventListener("mousemove", t, !1), window.addEventListener("touchstart", e, !1), window.addEventListener("touchmove", t, !0);
54945
55075
  }
54946
55076
  }
54947
- class MR {
55077
+ class TR {
54948
55078
  constructor(e) {
54949
55079
  this.viralNavigationCube = e, this.renderer = new vb({
54950
55080
  alpha: !0,
@@ -54973,7 +55103,7 @@ class MR {
54973
55103
  // }
54974
55104
  // }
54975
55105
  }
54976
- class AR {
55106
+ class ER {
54977
55107
  constructor(e) {
54978
55108
  this.viralNavigationCube = e, this.scene = new lc(), this.objects = [], this.cube = null, this.activePlane = null, this.addCube(), this.addPlanes();
54979
55109
  }
@@ -54984,9 +55114,9 @@ class AR {
54984
55114
  let e = [], t = ["RIGHT", "LEFT", "TOP", "BOTTOM", "FRONT", "BACK"], i = new ab(), n = document.createElement("canvas"), r = n.getContext("2d"), a = 64;
54985
55115
  if (n.width = a, n.height = a, r) {
54986
55116
  r.font = 'bolder 12px "Open sans", Arial', r.textBaseline = "middle", r.textAlign = "center";
54987
- let o = `${Ce.background}`;
55117
+ let o = `${Ee.background}`;
54988
55118
  for (let l = 0; l < 6; l++)
54989
- 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({
54990
55120
  map: i.load(n.toDataURL())
54991
55121
  });
54992
55122
  this.cube = new Q(new oi(1, 1, 1), e), this.addObject(this.cube);
@@ -55089,8 +55219,8 @@ class AR {
55089
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;
55090
55220
  let ge = new Q(o, e.clone());
55091
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);
55092
- let Ee = new Q(r, e.clone());
55093
- 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";
55094
55224
  let ve = new Q(a, e.clone());
55095
55225
  ve.rotation.x = Math.PI / 2, ve.position.y = -l, ve.position.x = t / 2 + n / 2;
55096
55226
  let Qe = new Q(a, e.clone());
@@ -55110,7 +55240,7 @@ class AR {
55110
55240
  let ae = new Ii({
55111
55241
  color: 11184810
55112
55242
  }), te = new ii(1, 1), qe = new Q(te, ae);
55113
- 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);
55114
55244
  const Oe = new Q();
55115
55245
  Oe.name = "1131", Oe.add(h), Oe.add(L), this.addObject(Oe);
55116
55246
  const Ke = new Q();
@@ -55153,7 +55283,7 @@ class AR {
55153
55283
  mi.name = "corner8", mi.add(M), mi.add(Z), mi.add(H), this.addObject(mi);
55154
55284
  }
55155
55285
  }
55156
- class TR {
55286
+ class PR {
55157
55287
  constructor(e) {
55158
55288
  this.viralNavigationCube = e, this._mouseDownTime = null, this.clickThreshold = 250, this._handleClick = async (t) => {
55159
55289
  var h, d, u, f, p, v, g, m, b, x, y, _, w, T, E, S, M, C, L, U, z;
@@ -55323,10 +55453,10 @@ class TR {
55323
55453
  }
55324
55454
  //#endregion
55325
55455
  }
55326
- class ER {
55456
+ class CR {
55327
55457
  //* view cube from third party (new approach)
55328
55458
  constructor(e) {
55329
- 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);
55330
55460
  }
55331
55461
  injectCubeWrapperElement() {
55332
55462
  if (this.viralViewerApi.targetElement) {
@@ -55347,7 +55477,7 @@ class ER {
55347
55477
  this.viralViewerApi.viralCamera.focusModelByName();
55348
55478
  }
55349
55479
  }
55350
- class PR {
55480
+ class IR {
55351
55481
  static generateRandomString(e) {
55352
55482
  const t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
55353
55483
  let i = "";
@@ -55358,16 +55488,16 @@ class PR {
55358
55488
  return i;
55359
55489
  }
55360
55490
  }
55361
- const CR = 0.032;
55362
- class IR {
55491
+ const RR = 0.032;
55492
+ class DR {
55363
55493
  constructor(e, t, i, n, r = 2, a = 1, o, l) {
55364
- 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(
55365
55495
  "style",
55366
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"
55367
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(
55368
55498
  "style",
55369
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"
55370
- ), 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(
55371
55501
  t,
55372
55502
  (c) => {
55373
55503
  this.avatar = c.scene;
@@ -55441,12 +55571,12 @@ class IR {
55441
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);
55442
55572
  }
55443
55573
  }
55444
- class RR {
55574
+ class LR {
55445
55575
  constructor(e) {
55446
55576
  this.viralViewerApi = e, this.avatars = [];
55447
55577
  }
55448
55578
  load(e, t, i, n = 2, r = 1, a, o) {
55449
- let l = new IR(
55579
+ let l = new DR(
55450
55580
  this.viralViewerApi,
55451
55581
  e,
55452
55582
  t,
@@ -55463,7 +55593,7 @@ class RR {
55463
55593
  t && t.dispose(), this.avatars = this.avatars.filter((i) => i.id != e);
55464
55594
  }
55465
55595
  }
55466
- class DR {
55596
+ class OR {
55467
55597
  constructor(e) {
55468
55598
  this.viralViewerApi = e, this.isGeneratingMergeModel = !1;
55469
55599
  }
@@ -55493,7 +55623,7 @@ class DR {
55493
55623
  i.Offset.Z,
55494
55624
  i.Offset.Y,
55495
55625
  1
55496
- ], a = new Pe();
55626
+ ], a = new Ce();
55497
55627
  a.fromArray(r);
55498
55628
  let o = [];
55499
55629
  for (let c = 0; c < t.length; c++) {
@@ -55598,7 +55728,7 @@ class DR {
55598
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);
55599
55729
  }
55600
55730
  }
55601
- class LR {
55731
+ class NR {
55602
55732
  constructor(e) {
55603
55733
  this.viralViewerApi = e, this.planeEdges = null, this._isGenerated = !1, this.planeMaterial = new Ii({
55604
55734
  color: 16777215,
@@ -55607,7 +55737,7 @@ class LR {
55607
55737
  opacity: 0.1
55608
55738
  // wireframe: true,
55609
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({
55610
- color: Et.hexToThreejsColor(Ce.accent)
55740
+ color: Et.hexToThreejsColor(Ee.accent)
55611
55741
  // Blue edges
55612
55742
  }), this._isEnabling = !1;
55613
55743
  }
@@ -55695,14 +55825,14 @@ class LR {
55695
55825
  this.createPlaneEdges();
55696
55826
  }
55697
55827
  }
55698
- class OR {
55828
+ class BR {
55699
55829
  constructor(e) {
55700
55830
  this.viralViewerApi = e, this.contextMenu = null, this.injectContextMenu();
55701
55831
  }
55702
55832
  injectContextMenu() {
55703
55833
  this.viralViewerApi.targetElement && (this.contextMenu = document.createElement("div"), this.contextMenu.setAttribute("id", "viral-pivot-point"), this.contextMenu.setAttribute(
55704
55834
  "style",
55705
- `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`
55706
55836
  ), this.viralViewerApi.targetElement.appendChild(this.contextMenu));
55707
55837
  }
55708
55838
  show(e, t) {
@@ -55712,7 +55842,7 @@ class OR {
55712
55842
  this.contextMenu && this.contextMenu.style.setProperty("display", "none");
55713
55843
  }
55714
55844
  }
55715
- class NR {
55845
+ class UR {
55716
55846
  constructor(e) {
55717
55847
  this.viralViewerApi = e, this.panel = null, this.batchListContainer = null, this.isVisible = !1, this.selectedBatchMesh = null, this.inject();
55718
55848
  }
@@ -55727,7 +55857,7 @@ class NR {
55727
55857
  right: 10px;
55728
55858
  width: 300px;
55729
55859
  max-height: 80vh;
55730
- background-color: ${Ce.background};
55860
+ background-color: ${Ee.background};
55731
55861
  border: 1px solid #ccc;
55732
55862
  border-radius: 8px;
55733
55863
  padding: 15px;
@@ -55741,8 +55871,8 @@ class NR {
55741
55871
  const e = document.createElement("div");
55742
55872
  e.innerHTML = `
55743
55873
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
55744
- <h3 style="margin: 0; color: ${Ce.secondary}; font-size: 16px;">Batch Debug Panel</h3>
55745
- <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>
55746
55876
  </div>
55747
55877
  `, this.panel.appendChild(e);
55748
55878
  const t = document.createElement("div");
@@ -55754,7 +55884,7 @@ class NR {
55754
55884
  t.appendChild(i), t.appendChild(n), this.panel.appendChild(t);
55755
55885
  const r = document.createElement("div");
55756
55886
  r.innerHTML = `
55757
- <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>
55758
55888
  `, this.panel.appendChild(r), this.batchListContainer = document.createElement("div"), this.batchListContainer.setAttribute(
55759
55889
  "style",
55760
55890
  `
@@ -55771,7 +55901,7 @@ class NR {
55771
55901
  `
55772
55902
  flex: 1;
55773
55903
  padding: 8px;
55774
- background-color: ${Ce.primary};
55904
+ background-color: ${Ee.primary};
55775
55905
  color: white;
55776
55906
  border: none;
55777
55907
  border-radius: 4px;
@@ -55781,9 +55911,9 @@ class NR {
55781
55911
  transition: background-color 0.2s;
55782
55912
  `
55783
55913
  ), i.addEventListener("mouseenter", () => {
55784
- i.style.backgroundColor = Ce.accent;
55914
+ i.style.backgroundColor = Ee.accent;
55785
55915
  }), i.addEventListener("mouseleave", () => {
55786
- i.style.backgroundColor = Ce.primary;
55916
+ i.style.backgroundColor = Ee.primary;
55787
55917
  }), i;
55788
55918
  }
55789
55919
  injectStyles() {
@@ -55802,12 +55932,12 @@ class NR {
55802
55932
  background-color: rgba(0, 0, 0, 0.1);
55803
55933
  }
55804
55934
  .batch-item.selected {
55805
- border-color: ${Ce.accent};
55935
+ border-color: ${Ee.accent};
55806
55936
  background-color: rgba(128, 214, 218, 0.2);
55807
55937
  }
55808
55938
  .batch-item-title {
55809
55939
  font-weight: 600;
55810
- color: ${Ce.secondary};
55940
+ color: ${Ee.secondary};
55811
55941
  font-size: 13px;
55812
55942
  margin-bottom: 4px;
55813
55943
  }
@@ -55888,7 +56018,7 @@ class NR {
55888
56018
  background-color: rgba(128, 214, 218, 0.1);
55889
56019
  border-radius: 4px;
55890
56020
  font-size: 11px;
55891
- color: ${Ce.secondary};
56021
+ color: ${Ee.secondary};
55892
56022
  text-align: center;
55893
56023
  `
55894
56024
  ), i.innerHTML = `
@@ -55931,7 +56061,7 @@ class NR {
55931
56061
  this.clearIsolation(), this.panel && (this.panel.remove(), this.panel = null);
55932
56062
  }
55933
56063
  }
55934
- class BR {
56064
+ class FR {
55935
56065
  constructor(e) {
55936
56066
  this.viralViewerApi = e, this.panel = null, this.contentContainer = null, this.isVisible = !1, this.lastAnalysis = null, this.inject();
55937
56067
  }
@@ -55946,7 +56076,7 @@ class BR {
55946
56076
  left: 10px;
55947
56077
  width: 450px;
55948
56078
  max-height: 85vh;
55949
- background-color: ${Ce.background};
56079
+ background-color: ${Ee.background};
55950
56080
  border: 1px solid #ccc;
55951
56081
  border-radius: 8px;
55952
56082
  padding: 15px;
@@ -55961,8 +56091,8 @@ class BR {
55961
56091
  const e = document.createElement("div");
55962
56092
  e.innerHTML = `
55963
56093
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px;">
55964
- <h3 style="margin: 0; color: ${Ce.secondary}; font-size: 16px;">🔍 Render Debug Panel</h3>
55965
- <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>
55966
56096
  </div>
55967
56097
  `, this.panel.appendChild(e);
55968
56098
  const t = document.createElement("div");
@@ -55986,7 +56116,7 @@ class BR {
55986
56116
  "style",
55987
56117
  `
55988
56118
  padding: 8px 12px;
55989
- background-color: ${Ce.primary};
56119
+ background-color: ${Ee.primary};
55990
56120
  color: white;
55991
56121
  border: none;
55992
56122
  border-radius: 4px;
@@ -55996,9 +56126,9 @@ class BR {
55996
56126
  transition: background-color 0.2s;
55997
56127
  `
55998
56128
  ), i.addEventListener("mouseenter", () => {
55999
- i.style.backgroundColor = Ce.accent;
56129
+ i.style.backgroundColor = Ee.accent;
56000
56130
  }), i.addEventListener("mouseleave", () => {
56001
- i.style.backgroundColor = Ce.primary;
56131
+ i.style.backgroundColor = Ee.primary;
56002
56132
  }), i;
56003
56133
  }
56004
56134
  injectStyles() {
@@ -56012,7 +56142,7 @@ class BR {
56012
56142
  }
56013
56143
  .render-section-title {
56014
56144
  font-weight: 600;
56015
- color: ${Ce.secondary};
56145
+ color: ${Ee.secondary};
56016
56146
  font-size: 13px;
56017
56147
  margin-bottom: 8px;
56018
56148
  display: flex;
@@ -56058,7 +56188,7 @@ class BR {
56058
56188
  }
56059
56189
  .stat-value {
56060
56190
  font-weight: 600;
56061
- color: ${Ce.secondary};
56191
+ color: ${Ee.secondary};
56062
56192
  }
56063
56193
  .warning-box {
56064
56194
  padding: 8px;
@@ -56534,7 +56664,7 @@ class BR {
56534
56664
  this.panel && (this.panel.remove(), this.panel = null);
56535
56665
  }
56536
56666
  }
56537
- class UR {
56667
+ class zR {
56538
56668
  constructor(e) {
56539
56669
  this.viralViewerApi = e, this.panel = null, this.instancedListContainer = null, this.isVisible = !1, this.selectedInstancedMesh = null, this.selectedInternalMesh = null, this.inject();
56540
56670
  }
@@ -56549,7 +56679,7 @@ class UR {
56549
56679
  right: 320px;
56550
56680
  width: 350px;
56551
56681
  max-height: 80vh;
56552
- background-color: ${Ce.background};
56682
+ background-color: ${Ee.background};
56553
56683
  border: 1px solid #ccc;
56554
56684
  border-radius: 8px;
56555
56685
  padding: 15px;
@@ -56563,8 +56693,8 @@ class UR {
56563
56693
  const e = document.createElement("div");
56564
56694
  e.innerHTML = `
56565
56695
  <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
56566
- <h3 style="margin: 0; color: ${Ce.secondary}; font-size: 16px;">🔄 Instanced Debug Panel</h3>
56567
- <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>
56568
56698
  </div>
56569
56699
  `, this.panel.appendChild(e);
56570
56700
  const t = document.createElement("div");
@@ -56576,7 +56706,7 @@ class UR {
56576
56706
  t.appendChild(i), t.appendChild(n), t.appendChild(r), this.panel.appendChild(t);
56577
56707
  const a = document.createElement("div");
56578
56708
  a.innerHTML = `
56579
- <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>
56580
56710
  `, this.panel.appendChild(a), this.instancedListContainer = document.createElement("div"), this.instancedListContainer.setAttribute(
56581
56711
  "style",
56582
56712
  `
@@ -56593,7 +56723,7 @@ class UR {
56593
56723
  `
56594
56724
  flex: 1;
56595
56725
  padding: 8px;
56596
- background-color: ${Ce.primary};
56726
+ background-color: ${Ee.primary};
56597
56727
  color: white;
56598
56728
  border: none;
56599
56729
  border-radius: 4px;
@@ -56604,9 +56734,9 @@ class UR {
56604
56734
  min-width: 80px;
56605
56735
  `
56606
56736
  ), i.addEventListener("mouseenter", () => {
56607
- i.style.backgroundColor = Ce.accent;
56737
+ i.style.backgroundColor = Ee.accent;
56608
56738
  }), i.addEventListener("mouseleave", () => {
56609
- i.style.backgroundColor = Ce.primary;
56739
+ i.style.backgroundColor = Ee.primary;
56610
56740
  }), i;
56611
56741
  }
56612
56742
  injectStyles() {
@@ -56627,12 +56757,12 @@ class UR {
56627
56757
  background-color: rgba(0, 0, 0, 0.1);
56628
56758
  }
56629
56759
  .instanced-item.selected {
56630
- border-color: ${Ce.accent};
56760
+ border-color: ${Ee.accent};
56631
56761
  background-color: rgba(128, 214, 218, 0.2);
56632
56762
  }
56633
56763
  .instanced-item-title {
56634
56764
  font-weight: 600;
56635
- color: ${Ce.secondary};
56765
+ color: ${Ee.secondary};
56636
56766
  font-size: 13px;
56637
56767
  margin-bottom: 4px;
56638
56768
  }
@@ -56679,7 +56809,7 @@ class UR {
56679
56809
  }
56680
56810
  .internal-mesh-item.selected {
56681
56811
  background-color: rgba(33, 150, 243, 0.2);
56682
- border-left-color: ${Ce.accent};
56812
+ border-left-color: ${Ee.accent};
56683
56813
  }
56684
56814
  `, document.head.appendChild(e);
56685
56815
  }
@@ -56796,7 +56926,7 @@ class UR {
56796
56926
  background-color: rgba(128, 214, 218, 0.1);
56797
56927
  border-radius: 4px;
56798
56928
  font-size: 11px;
56799
- color: ${Ce.secondary};
56929
+ color: ${Ee.secondary};
56800
56930
  text-align: center;
56801
56931
  `
56802
56932
  ), r.innerHTML = `
@@ -56923,7 +57053,7 @@ class UR {
56923
57053
  this.clearIsolation(), this.panel && (this.panel.remove(), this.panel = null);
56924
57054
  }
56925
57055
  }
56926
- class sD extends WI {
57056
+ class aD extends jI {
56927
57057
  constructor(e = {
56928
57058
  isDev: !1,
56929
57059
  cameraZUp: !1,
@@ -56935,12 +57065,12 @@ class sD extends WI {
56935
57065
  adaptiveEdges: !0,
56936
57066
  adaptiveAmbientOcclusion: !0
56937
57067
  }) {
56938
- 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(
56939
57069
  this,
56940
57070
  this.options
56941
- ), 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();
56942
57072
  let t = window;
56943
- 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 }) => {
56944
57074
  var g, m, b, x, y;
56945
57075
  const n = new i({ title: "Controls" }), r = n.addFolder("Sun Light");
56946
57076
  r.add(this.viralScene.sunLight, "visible").onChange(() => {
@@ -56966,7 +57096,7 @@ class sD extends WI {
56966
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(
56967
57097
  this.viralVisibilityManager,
56968
57098
  "disableGroundShadow"
56969
- ), 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");
56970
57100
  const o = n.addFolder("Debug Panels"), l = {
56971
57101
  showBatchDebugPanel: () => {
56972
57102
  var _;
@@ -57387,9 +57517,9 @@ class ra {
57387
57517
  return i;
57388
57518
  }
57389
57519
  }
57390
- const FR = {}, ta = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
57520
+ const kR = {}, ta = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
57391
57521
  __proto__: null,
57392
- default: FR
57522
+ default: kR
57393
57523
  }, Symbol.toStringTag, { value: "Module" }));
57394
57524
  class Wi {
57395
57525
  constructor() {
@@ -57576,7 +57706,7 @@ class ur {
57576
57706
  return ur.startViralutionInformation(e), ur.addData(e, t), ur.endViralutionInformation(e);
57577
57707
  }
57578
57708
  }
57579
- class zR {
57709
+ class VR {
57580
57710
  /**
57581
57711
  * Reads a FlatBuffer from a URL and parses it into the elementData structure
57582
57712
  * @param url - Full URL or path to fetch the .fb file from
@@ -58361,25 +58491,25 @@ class wp {
58361
58491
  }
58362
58492
  }
58363
58493
  export {
58364
- zR as A,
58494
+ VR as A,
58365
58495
  dt as B,
58366
58496
  kb as C,
58367
58497
  jr as D,
58368
- HR as E,
58369
- XR as F,
58498
+ GR as E,
58499
+ YR as F,
58370
58500
  Xb as G,
58371
58501
  Md as H,
58372
- ZR as I,
58502
+ KR as I,
58373
58503
  wp as J,
58374
58504
  Pi as L,
58375
- $R as T,
58505
+ JR as T,
58376
58506
  Fn as V,
58377
58507
  ot as a,
58378
- BR as b,
58379
- NR as c,
58380
- UR as d,
58381
- VR as e,
58382
- YR as f,
58508
+ FR as b,
58509
+ UR as c,
58510
+ zR as d,
58511
+ HR as e,
58512
+ WR as f,
58383
58513
  fs as g,
58384
58514
  yi as h,
58385
58515
  Ls as i,
@@ -58390,14 +58520,14 @@ export {
58390
58520
  wm as n,
58391
58521
  Sp as o,
58392
58522
  Lv as p,
58393
- qR as q,
58523
+ $R as q,
58394
58524
  Ub as r,
58395
58525
  Sm as s,
58396
58526
  Fb as t,
58397
58527
  zb as u,
58398
58528
  Vb as v,
58399
- sD as w,
58529
+ aD as w,
58400
58530
  Et as x,
58401
- nD as y,
58402
- BC as z
58531
+ rD as y,
58532
+ FC as z
58403
58533
  };