@spiffcommerce/preview 5.3.5-4 → 5.3.6-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -3,31 +3,31 @@ import { Engine as pe } from "@babylonjs/core/Engines/engine";
3
3
  import { NullEngine as Ce } from "@babylonjs/core/Engines/nullEngine";
4
4
  import { HighlightLayer as ye } from "@babylonjs/core/Layers/highlightLayer";
5
5
  import { SceneLoader as fe } from "@babylonjs/core/Loading/sceneLoader";
6
- import { CubeTexture as ie } from "@babylonjs/core/Materials/Textures/cubeTexture";
6
+ import { CubeTexture as te } from "@babylonjs/core/Materials/Textures/cubeTexture";
7
7
  import { Color4 as f, Color3 as w } from "@babylonjs/core/Maths/math.color";
8
- import { Vector3 as m, Quaternion as y, Vector2 as se, Matrix as ne } from "@babylonjs/core/Maths/math.vector";
8
+ import { Vector3 as m, Quaternion as y, Vector2 as ie, Matrix as se } from "@babylonjs/core/Maths/math.vector";
9
9
  import { DracoCompression as Me } from "@babylonjs/core/Meshes/Compression/dracoCompression";
10
10
  import { Observable as C } from "@babylonjs/core/Misc/observable";
11
11
  import { Tools as xe } from "@babylonjs/core/Misc/tools";
12
12
  import { Scene as Pe } from "@babylonjs/core/scene";
13
- import { GLTF2 as Ee } from "@babylonjs/loaders/glTF";
14
- import { PBRMaterial as B } from "@babylonjs/core/Materials/PBR/pbrMaterial";
13
+ import { GLTF2 as Ae } from "@babylonjs/loaders/glTF";
14
+ import { PBRMaterial as F } from "@babylonjs/core/Materials/PBR/pbrMaterial";
15
15
  import { MirrorTexture as Te } from "@babylonjs/core/Materials/Textures/mirrorTexture";
16
- import { Color3 as Ae, Vector3 as re, Plane as Re } from "@babylonjs/core/Maths/math";
17
- import { ReflectionProbe as Ie } from "@babylonjs/core/Probes/reflectionProbe";
18
- import { GlowLayer as Oe } from "@babylonjs/core/Layers/glowLayer";
19
- import { ActionManager as A } from "@babylonjs/core/Actions/actionManager";
20
- import { ExecuteCodeAction as ae } from "@babylonjs/core/Actions/directActions";
21
- import { Mesh as Le } from "@babylonjs/core/Meshes/mesh";
16
+ import { Color3 as Re, Vector3 as ne, Plane as Ee } from "@babylonjs/core/Maths/math";
17
+ import { ReflectionProbe as Oe } from "@babylonjs/core/Probes/reflectionProbe";
18
+ import { GlowLayer as Le } from "@babylonjs/core/Layers/glowLayer";
19
+ import { ActionManager as T } from "@babylonjs/core/Actions/actionManager";
20
+ import { ExecuteCodeAction as re } from "@babylonjs/core/Actions/directActions";
21
+ import { Mesh as Ie } from "@babylonjs/core/Meshes/mesh";
22
22
  import { TransformNode as Se } from "@babylonjs/core/Meshes/transformNode";
23
23
  import { DynamicTexture as Fe } from "@babylonjs/core/Materials/Textures/dynamicTexture";
24
24
  import { Texture as Be } from "@babylonjs/core/Materials/Textures/texture";
25
25
  import { Animation as v } from "@babylonjs/core/Animations/animation";
26
- import { QuadraticEase as De, EasingFunction as Ge } from "@babylonjs/core/Animations/easing";
27
- import { AssetsManager as Ne } from "@babylonjs/core/Misc/assetsManager";
28
- import { ColorCurves as oe } from "@babylonjs/core/Materials/colorCurves";
26
+ import { QuadraticEase as De, EasingFunction as ke } from "@babylonjs/core/Animations/easing";
27
+ import { AssetsManager as ze } from "@babylonjs/core/Misc/assetsManager";
28
+ import { ColorCurves as ae } from "@babylonjs/core/Materials/colorCurves";
29
29
  import { ImageProcessingConfiguration as P } from "@babylonjs/core/Materials/imageProcessingConfiguration";
30
- import { DefaultRenderingPipeline as ke } from "@babylonjs/core/PostProcesses/RenderPipeline";
30
+ import { DefaultRenderingPipeline as Ve } from "@babylonjs/core/PostProcesses/RenderPipeline";
31
31
  import { DepthOfFieldEffectBlurLevel as R } from "@babylonjs/core/PostProcesses/depthOfFieldEffect";
32
32
  import "@babylonjs/core/Rendering/depthRendererSceneComponent";
33
33
  import "@babylonjs/core/Engines/Extensions/engine.views";
@@ -39,32 +39,32 @@ import "@babylonjs/core/Animations/animatable";
39
39
  import "@babylonjs/core/Misc/screenshotTools";
40
40
  import "@babylonjs/core/Rendering/boundingBoxRenderer";
41
41
  import "@babylonjs/loaders/glTF/2.0/Extensions";
42
- var S = /* @__PURE__ */ ((s) => (s[s.Orbit = 0] = "Orbit", s[s.Pan = 1] = "Pan", s))(S || {}), F = /* @__PURE__ */ ((s) => (s.None = "None", s.RemoveWhenSelected = "RemoveWhenSelected", s.ApplyWhenSelected = "ApplyWhenSelected", s))(F || {});
43
- class le {
42
+ var I = /* @__PURE__ */ ((s) => (s[s.Orbit = 0] = "Orbit", s[s.Pan = 1] = "Pan", s))(I || {}), S = /* @__PURE__ */ ((s) => (s.None = "None", s.RemoveWhenSelected = "RemoveWhenSelected", s.ApplyWhenSelected = "ApplyWhenSelected", s))(S || {});
43
+ class oe {
44
44
  constructor(e) {
45
45
  this.getSceneClearColor = () => {
46
- var i, a, o, n;
47
- const t = (i = this.customOptions) != null && i.transparentBackground || (a = this.customOptions) != null && a.backgroundImage ? 0 : 1;
48
- if (this.customOptions && ((o = this.customOptions) != null && o.transparentBackground) || (n = this.customOptions) != null && n.backgroundImage)
46
+ var i, r, o, a;
47
+ const t = (i = this.customOptions) != null && i.transparentBackground || (r = this.customOptions) != null && r.backgroundImage ? 0 : 1;
48
+ if (this.customOptions && ((o = this.customOptions) != null && o.transparentBackground) || (a = this.customOptions) != null && a.backgroundImage)
49
49
  return new f(0, 0, 0, t).toLinearSpace();
50
50
  if (this.customOptions && this.customOptions.backgroundColor) {
51
- const r = w.FromHexString(
51
+ const n = w.FromHexString(
52
52
  this.customOptions.backgroundColor
53
53
  );
54
54
  return new f(
55
- r.r,
56
- r.g,
57
- r.b,
55
+ n.r,
56
+ n.g,
57
+ n.b,
58
58
  t
59
59
  ).toLinearSpace();
60
60
  }
61
61
  return new f(0.98, 0.98, 0.98, t).toLinearSpace();
62
62
  }, this.highlightColorFromConfig = () => this.customOptions && this.customOptions.highlightColor ? this.hexToColor4(this.customOptions.highlightColor) : new f(0.98, 0.98, 0.98, 1).toLinearSpace(), this.hexToColor4 = (t, i = 1) => {
63
- const a = w.FromHexString(t);
63
+ const r = w.FromHexString(t);
64
64
  return new f(
65
- a.r,
66
- a.g,
67
- a.b,
65
+ r.r,
66
+ r.g,
67
+ r.b,
68
68
  i
69
69
  ).toLinearSpace();
70
70
  }, this.customOptions = e;
@@ -80,13 +80,13 @@ class le {
80
80
  * Configuration related to the scene
81
81
  */
82
82
  get scene() {
83
- var e, t, i, a, o;
83
+ var e, t, i, r, o;
84
84
  return {
85
85
  clearColor: this.getSceneClearColor(),
86
86
  transparentBackground: ((e = this.customOptions) == null ? void 0 : e.transparentBackground) || ((t = this.customOptions) == null ? void 0 : t.backgroundImage),
87
87
  environment: {
88
88
  file: ((i = this.customOptions) == null ? void 0 : i.environmentFile) ?? "assets/model-viewer/default.env",
89
- intensity: ((a = this.customOptions) == null ? void 0 : a.environmentIntensity) ?? 1,
89
+ intensity: ((r = this.customOptions) == null ? void 0 : r.environmentIntensity) ?? 1,
90
90
  rotationY: (((o = this.customOptions) == null ? void 0 : o.environmentRotationY) ?? 0) * (Math.PI / 180)
91
91
  // Convert to radians
92
92
  }
@@ -96,7 +96,7 @@ class le {
96
96
  * Configuration related to the camera used to view and interact with the scene.
97
97
  */
98
98
  get camera() {
99
- var e, t, i, a, o, n, r, l, c, d, u, g, p;
99
+ var e, t, i, r, o, a, n, l, c, d, u, g, p;
100
100
  return {
101
101
  autoOrientation: ((e = this.customOptions) == null ? void 0 : e.disableAutomaticOrientation) ?? !0,
102
102
  autoRotation: {
@@ -105,8 +105,8 @@ class le {
105
105
  },
106
106
  limits: {
107
107
  min: {
108
- alpha: (a = this.customOptions) != null && a.lowerAlphaLimitDeg ? ((o = this.customOptions) == null ? void 0 : o.lowerAlphaLimitDeg) * Math.PI / 180 : void 0,
109
- beta: (n = this.customOptions) != null && n.lowerBetaLimitDeg ? ((r = this.customOptions) == null ? void 0 : r.lowerBetaLimitDeg) * Math.PI / 180 : void 0,
108
+ alpha: (r = this.customOptions) != null && r.lowerAlphaLimitDeg ? ((o = this.customOptions) == null ? void 0 : o.lowerAlphaLimitDeg) * Math.PI / 180 : void 0,
109
+ beta: (a = this.customOptions) != null && a.lowerBetaLimitDeg ? ((n = this.customOptions) == null ? void 0 : n.lowerBetaLimitDeg) * Math.PI / 180 : void 0,
110
110
  radius: (l = this.customOptions) == null ? void 0 : l.minZoomOverride
111
111
  },
112
112
  max: {
@@ -129,10 +129,10 @@ class le {
129
129
  };
130
130
  }
131
131
  get lighting() {
132
- var e, t, i, a;
132
+ var e, t, i, r;
133
133
  return {
134
134
  exposure: ((t = (e = this.customOptions) == null ? void 0 : e.lighting) == null ? void 0 : t.exposure) ?? 0.9,
135
- contrast: ((a = (i = this.customOptions) == null ? void 0 : i.lighting) == null ? void 0 : a.contrast) ?? 1.6
135
+ contrast: ((r = (i = this.customOptions) == null ? void 0 : i.lighting) == null ? void 0 : r.contrast) ?? 1.6
136
136
  };
137
137
  }
138
138
  get emissiveGlowIntensity() {
@@ -181,7 +181,7 @@ class x {
181
181
  }
182
182
  }
183
183
  }
184
- const ze = 128, h = {
184
+ const Ge = 128, h = {
185
185
  antiAliasing: {
186
186
  samples: 4,
187
187
  fxaaEnabled: !1
@@ -238,7 +238,7 @@ const ze = 128, h = {
238
238
  weight: 1
239
239
  }
240
240
  };
241
- class Ve {
241
+ class Ne {
242
242
  constructor(e) {
243
243
  this.name = "glbPostProcessor", this.enabled = !0, this.loader = e;
244
244
  }
@@ -253,11 +253,11 @@ class Ve {
253
253
  return this.loader.loadNodeAsync(
254
254
  e,
255
255
  t,
256
- function(a) {
256
+ function(r) {
257
257
  t.extras && Object.keys(t.extras).forEach((o) => {
258
- const n = t.extras[o];
259
- a.metadata[o] = n;
260
- }), i(a);
258
+ const a = t.extras[o];
259
+ r.metadata[o] = a;
260
+ }), i(r);
261
261
  }
262
262
  );
263
263
  }
@@ -282,14 +282,14 @@ class Ve {
282
282
  * @param babylonMaterial An instance of a material representation in babylon.
283
283
  */
284
284
  enableMaterialExtrasIfRequired(e, t) {
285
- if (!(!e.extras || !(t instanceof B))) {
285
+ if (!(!e.extras || !(t instanceof F))) {
286
286
  if (e.extras.sheen) {
287
287
  const i = t;
288
288
  i.sheen.isEnabled = !0, i.sheen.intensity = e.extras.sheen;
289
289
  }
290
290
  if (e.extras.translucency) {
291
291
  const i = t;
292
- i.subSurface.isTranslucencyEnabled = !0, i.subSurface.translucencyIntensity = e.extras.translucency, e.extras.translucencyR && e.extras.translucencyG && e.extras.translucencyB && (i.subSurface.tintColor = new Ae(
292
+ i.subSurface.isTranslucencyEnabled = !0, i.subSurface.translucencyIntensity = e.extras.translucency, e.extras.translucencyR && e.extras.translucencyG && e.extras.translucencyB && (i.subSurface.tintColor = new Re(
293
293
  e.extras.translucencyR,
294
294
  e.extras.translucencyG,
295
295
  e.extras.translucencyB
@@ -316,16 +316,16 @@ class Ve {
316
316
  */
317
317
  applyReflections(e) {
318
318
  function t(o) {
319
- const n = [];
320
- return o.transformNodes.forEach((r) => {
321
- r.metadata && r.metadata.reflective && n.push(...r.getChildMeshes());
322
- }), o.meshes.forEach((r) => {
323
- r.metadata && r.metadata.reflective && !n.includes(r) && n.push(r);
324
- }), n;
319
+ const a = [];
320
+ return o.transformNodes.forEach((n) => {
321
+ n.metadata && n.metadata.reflective && a.push(...n.getChildMeshes());
322
+ }), o.meshes.forEach((n) => {
323
+ n.metadata && n.metadata.reflective && !a.includes(n) && a.push(n);
324
+ }), a;
325
325
  }
326
- function i(o, n = 1) {
327
- const r = o.material;
328
- if (!r)
326
+ function i(o, a = 1) {
327
+ const n = o.material;
328
+ if (!n)
329
329
  return;
330
330
  const l = new Te(
331
331
  "mirror",
@@ -340,30 +340,30 @@ class Ve {
340
340
  "Mirror attribute specified on: " + o.name + "But no normals exist to generate a mirror from!"
341
341
  );
342
342
  o.computeWorldMatrix(!0);
343
- const d = o.getWorldMatrix(), u = re.TransformNormal(
344
- new re(c[0], c[1], c[2]),
343
+ const d = o.getWorldMatrix(), u = ne.TransformNormal(
344
+ new ne(c[0], c[1], c[2]),
345
345
  d
346
- ).normalize(), g = Re.FromPositionAndNormal(
346
+ ).normalize(), g = Ee.FromPositionAndNormal(
347
347
  o.position,
348
348
  u.scale(-1)
349
349
  );
350
- l.mirrorPlane = g, l.level = n, r.reflectionTexture = l;
350
+ l.mirrorPlane = g, l.level = a, n.reflectionTexture = l;
351
351
  }
352
- function a(o) {
353
- const n = o.material, r = new Ie(
354
- "probe-" + n.name,
355
- ze,
352
+ function r(o) {
353
+ const a = o.material, n = new Oe(
354
+ "probe-" + a.name,
355
+ Ge,
356
356
  e
357
357
  );
358
- r.attachToMesh(o), r.renderList && r.renderList.push(...t(e)), n.reflectionTexture = r.cubeTexture;
358
+ n.attachToMesh(o), n.renderList && n.renderList.push(...t(e)), a.reflectionTexture = n.cubeTexture;
359
359
  }
360
360
  e.meshes.forEach((o) => {
361
- const n = o.metadata;
362
- n && (n.mirrorTexture && i(o, n.mirrorTexture), n.reflectionProbe && a(o));
361
+ const a = o.metadata;
362
+ a && (a.mirrorTexture && i(o, a.mirrorTexture), a.reflectionProbe && r(o));
363
363
  });
364
364
  }
365
365
  }
366
- class qe {
366
+ class He {
367
367
  constructor(e, t) {
368
368
  this.scene = e, this.intensity = t, this.meshCount = 0;
369
369
  }
@@ -372,7 +372,7 @@ class qe {
372
372
  }
373
373
  includeMeshes(e) {
374
374
  if (e) {
375
- this.glowLayer || (this.glowLayer = new Oe("glow", this.scene), this.glowLayer.intensity = this.intensity);
375
+ this.glowLayer || (this.glowLayer = new Le("glow", this.scene), this.glowLayer.intensity = this.intensity);
376
376
  for (const t of e)
377
377
  this.glowLayer.hasMesh(t) || (this.glowLayer.addIncludedOnlyMesh(t), this.meshCount++);
378
378
  }
@@ -385,38 +385,38 @@ class qe {
385
385
  }
386
386
  }
387
387
  }
388
- const he = /* @__PURE__ */ new Map();
388
+ const le = /* @__PURE__ */ new Map();
389
389
  async function be(s, e, t) {
390
- const i = he.get(s);
390
+ const i = le.get(s);
391
391
  if (i && i.scene.uid === e.uid)
392
392
  return i;
393
393
  {
394
- const a = await fe.LoadAssetContainerAsync(
394
+ const r = await fe.LoadAssetContainerAsync(
395
395
  s,
396
396
  void 0,
397
397
  e,
398
398
  t
399
399
  );
400
- return he.set(s, a), a;
400
+ return le.set(s, r), r;
401
401
  }
402
402
  }
403
- function He(s, e, t, i, a = "") {
403
+ function qe(s, e, t, i, r = "") {
404
404
  t.forEach((o) => {
405
- const n = o.getID(), r = o.getName(), l = x.getDynamicTextureResolution();
406
- s.filter((d) => d.name === a + r).forEach((d) => {
407
- const u = i.get(n), g = !1;
405
+ const a = o.getID(), n = o.getName(), l = x.getDynamicTextureResolution();
406
+ s.filter((d) => d.name === r + n).forEach((d) => {
407
+ const u = i.get(a), g = !1;
408
408
  if (u)
409
- ce(d, u), u.update(g);
409
+ he(d, u), u.update(g);
410
410
  else {
411
411
  const p = _e(
412
- r,
412
+ n,
413
413
  e,
414
414
  l.width,
415
415
  l.height
416
416
  );
417
- i.set(n, p), o.setStaticContext(
417
+ i.set(a, p), o.setStaticContext(
418
418
  p.getContext()
419
- ), ce(d, p), p.onLoadObservable.addOnce(() => {
419
+ ), he(d, p), p.onLoadObservable.addOnce(() => {
420
420
  p.update(g);
421
421
  });
422
422
  }
@@ -424,18 +424,18 @@ function He(s, e, t, i, a = "") {
424
424
  });
425
425
  }
426
426
  function _e(s, e, t, i) {
427
- const a = new Fe(
427
+ const r = new Fe(
428
428
  s,
429
429
  { width: t, height: i },
430
430
  e,
431
431
  x.shouldMipMap(),
432
432
  Be.TRILINEAR_SAMPLINGMODE,
433
433
  pe.TEXTUREFORMAT_RGBA
434
- ), o = a.getContext();
435
- return o && (o.fillStyle = "#f5f5f5", o.fillRect(0, 0, t, i), a.update()), a;
434
+ ), o = r.getContext();
435
+ return o && (o.fillStyle = "#f5f5f5", o.fillRect(0, 0, t, i), r.update()), r;
436
436
  }
437
- function ce(s, e) {
438
- if (s instanceof B) {
437
+ function he(s, e) {
438
+ if (s instanceof F) {
439
439
  const t = s, i = t.albedoTexture;
440
440
  i ? (e.wrapU = i.wrapU, e.wrapV = i.wrapV) : (e.wrapU = 1, e.wrapV = 1), t.albedoTexture = e;
441
441
  } else {
@@ -443,32 +443,32 @@ function ce(s, e) {
443
443
  i && (e.wrapU = i.wrapU, e.wrapV = i.wrapV), t.diffuseTexture = e;
444
444
  }
445
445
  }
446
- function Ue() {
446
+ function Ke() {
447
447
  const s = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);
448
448
  return s() + s() + "-" + s() + "-" + s() + "-" + s() + "-" + s() + s() + s();
449
449
  }
450
- const M = 60, de = 1;
451
- function ue(s) {
450
+ const M = 60, ce = 1;
451
+ function de(s) {
452
452
  return s.targetedAnimations.map((t) => t.animation.framePerSecond).reduce((t, i) => t + i, 0) / s.targetedAnimations.length || 0;
453
453
  }
454
- function Ke(s, e, t, i, a) {
455
- const o = a ? s.filter((n) => n.name === a) : s;
454
+ function We(s, e, t, i, r) {
455
+ const o = r ? s.filter((a) => a.name === r) : s;
456
456
  if (o.length === 0) {
457
- console.warn(`No animations found for name: ${a}`);
457
+ console.warn(`No animations found for name: ${r}`);
458
458
  return;
459
459
  }
460
460
  if (i !== void 0 && t !== void 0 && i === t) {
461
- o.forEach((n) => {
462
- n.stop();
463
- const r = ue(n), l = i * r;
464
- n.start(e, de, l, l);
461
+ o.forEach((a) => {
462
+ a.stop();
463
+ const n = de(a), l = i * n;
464
+ a.start(e, ce, l, l);
465
465
  });
466
466
  return;
467
467
  }
468
- o.forEach((n) => {
469
- n.stop();
470
- const r = ue(n), l = i !== void 0 ? i * r : void 0, c = t !== void 0 ? t * r : void 0;
471
- n.start(e, de, l, c);
468
+ o.forEach((a) => {
469
+ a.stop();
470
+ const n = de(a), l = i !== void 0 ? i * n : void 0, c = t !== void 0 ? t * n : void 0;
471
+ a.start(e, ce, l, c);
472
472
  });
473
473
  }
474
474
  function ve(s) {
@@ -476,92 +476,94 @@ function ve(s) {
476
476
  e.stop();
477
477
  });
478
478
  }
479
- function We(s) {
479
+ function Ue(s) {
480
480
  const e = s.animationGroups;
481
481
  ve(e);
482
482
  }
483
483
  function Ye(s, e, t) {
484
- console.log("ANIM DEBUGGING: start of animate camera in scene"), s.stopAnimation(e), e.animations = [], Math.abs(e.alpha) > 2 * Math.PI && (e.alpha = $e(e.alpha, 0, 2 * Math.PI));
485
- const i = [], a = t.target, o = 0, n = a ? 1 : 0;
486
- if (t.target && Object.keys(t.target).length > 0 ? (i.push(
487
- T(
488
- "cameraTargetLerp",
489
- "target",
490
- new m().copyFrom(e.target),
491
- new m(
492
- t.target.x,
493
- t.target.y,
494
- t.target.z
495
- ),
496
- v.ANIMATIONTYPE_VECTOR3,
497
- o
498
- )
499
- ), console.log(`ANIM DEBUGGING: target components (${t.target.x},${t.target.y},${t.target.z})`)) : console.log("ANIM DEBUGGING: target lacks components"), console.log(`ANIM DEBUGGING: alpha: ${E(t.lonDeg)}, beta: ${E(t.latDeg)}, r ${t.radius}`), i.push(
500
- T(
501
- "cameraAlphaLerp",
502
- "alpha",
503
- e.alpha,
504
- E(t.lonDeg),
505
- v.ANIMATIONTYPE_FLOAT,
506
- n
507
- )
508
- ), i.push(
509
- T(
510
- "cameraBetaLerp",
511
- "beta",
512
- e.beta,
513
- E(t.latDeg),
514
- v.ANIMATIONTYPE_FLOAT,
515
- n
516
- )
517
- ), t.radius !== void 0) {
518
- const c = Math.max(0.01, t.radius);
519
- i.push(
520
- T(
521
- "cameraRadiusLerp",
522
- "radius",
523
- e.radius,
524
- c,
484
+ return new Promise((i) => {
485
+ s.stopAnimation(e), e.animations = [], Math.abs(e.alpha) > 2 * Math.PI && (e.alpha = Qe(e.alpha, 0, 2 * Math.PI));
486
+ const r = [], o = t.target, a = 0, n = o ? 1 : 0;
487
+ if (t.target && Object.keys(t.target).length > 0 && r.push(
488
+ A(
489
+ "cameraTargetLerp",
490
+ "target",
491
+ new m().copyFrom(e.target),
492
+ new m(
493
+ t.target.x,
494
+ t.target.y,
495
+ t.target.z
496
+ ),
497
+ v.ANIMATIONTYPE_VECTOR3,
498
+ a
499
+ )
500
+ ), r.push(
501
+ A(
502
+ "cameraAlphaLerp",
503
+ "alpha",
504
+ e.alpha,
505
+ ue(t.lonDeg),
525
506
  v.ANIMATIONTYPE_FLOAT,
526
507
  n
527
508
  )
528
- );
529
- }
530
- e.animations.push(...i);
531
- const l = e.useAutoRotationBehavior;
532
- e.disableAutoRotationBehavior(), console.log(`ANIM DEBUGGING: animSet has ${i.length} animations`), s.beginAnimation(
533
- e,
534
- 0,
535
- a ? M * 2 : M,
536
- !1,
537
- 1,
538
- () => {
539
- e.animations = [], l && e.enableAutoRotationBehavior();
509
+ ), r.push(
510
+ A(
511
+ "cameraBetaLerp",
512
+ "beta",
513
+ e.beta,
514
+ ue(t.latDeg),
515
+ v.ANIMATIONTYPE_FLOAT,
516
+ n
517
+ )
518
+ ), t.radius !== void 0) {
519
+ const d = Math.max(0.01, t.radius);
520
+ r.push(
521
+ A(
522
+ "cameraRadiusLerp",
523
+ "radius",
524
+ e.radius,
525
+ d,
526
+ v.ANIMATIONTYPE_FLOAT,
527
+ n
528
+ )
529
+ );
540
530
  }
541
- );
531
+ e.animations.push(...r);
532
+ const c = e.useAutoRotationBehavior;
533
+ e.disableAutoRotationBehavior(), s.beginAnimation(
534
+ e,
535
+ 0,
536
+ o ? M * 2 : M,
537
+ !1,
538
+ 1,
539
+ () => {
540
+ e.animations = [], c && e.enableAutoRotationBehavior(), i();
541
+ }
542
+ );
543
+ });
542
544
  }
543
- function E(s) {
545
+ function ue(s) {
544
546
  return s * Math.PI / 180;
545
547
  }
546
- function T(s, e, t, i, a, o = 0, n = v.ANIMATIONLOOPMODE_CONSTANT) {
547
- const r = new De();
548
- r.setEasingMode(Ge.EASINGMODE_EASEINOUT);
548
+ function A(s, e, t, i, r, o = 0, a = v.ANIMATIONLOOPMODE_CONSTANT) {
549
+ const n = new De();
550
+ n.setEasingMode(ke.EASINGMODE_EASEINOUT);
549
551
  const l = new v(
550
552
  s,
551
553
  e,
552
554
  M,
553
- a,
554
- n
555
+ r,
556
+ a
555
557
  ), c = [];
556
558
  return o > 0 && c.push({ frame: 0, value: t }), c.push({ frame: M * o, value: t }), c.push({
557
559
  frame: M * (o + 1),
558
560
  value: i
559
- }), l.setKeys(c), l.setEasingFunction(r), l;
561
+ }), l.setKeys(c), l.setEasingFunction(n), l;
560
562
  }
561
- function $e(s, e, t) {
563
+ function Qe(s, e, t) {
562
564
  return s < e ? s = t - (e - s) % (t - e) : s = e + (s - e) % (t - e);
563
565
  }
564
- const Qe = {
566
+ const Ze = {
565
567
  albedoTexture: "albedoMap",
566
568
  bumpTexture: "normalMap",
567
569
  ambientTexture: "ambientMap",
@@ -571,7 +573,7 @@ const Qe = {
571
573
  refractionTexture: "refractionMap",
572
574
  reflectionTexture: "reflectionMap"
573
575
  };
574
- function Ze(s, e, t, i) {
576
+ function $e(s, e, t, i) {
575
577
  [
576
578
  "albedoTexture",
577
579
  "bumpTexture",
@@ -591,26 +593,26 @@ function Ze(s, e, t, i) {
591
593
  );
592
594
  }), et(s, e);
593
595
  }
594
- function je(s, e, t, i, a) {
595
- const o = Qe[s];
596
+ function je(s, e, t, i, r) {
597
+ const o = Ze[s];
596
598
  if (!o)
597
599
  throw new Error("Unexpected texture name encountered.");
598
- const n = e[o], r = n == null ? void 0 : n.fileLink;
599
- r ? s === "reflectionTexture" ? r.endsWith(".env") || r.endsWith(".dds") ? i.addCubeTextureTask(
600
+ const a = e[o], n = a == null ? void 0 : a.fileLink;
601
+ n ? s === "reflectionTexture" ? n.endsWith(".env") || n.endsWith(".dds") ? i.addCubeTextureTask(
600
602
  s,
601
- r,
603
+ n,
602
604
  void 0,
603
605
  !1,
604
606
  void 0,
605
607
  !0
606
- ) : r.endsWith(".hdr") ? i.addHDRCubeTextureTask(
608
+ ) : n.endsWith(".hdr") ? i.addHDRCubeTextureTask(
607
609
  s,
608
- r,
610
+ n,
609
611
  128,
610
612
  !1,
611
613
  !0,
612
614
  !1
613
- ) : i.addTextureTask(s, r, !1, !1) : i.addTextureTask(s, r, !1, !1) : a && t[s] && (t[s] && t[s].dispose(), t[s] = null, Xe(s, t));
615
+ ) : i.addTextureTask(s, n, !1, !1) : i.addTextureTask(s, n, !1, !1) : r && t[s] && (t[s] && t[s].dispose(), t[s] = null, Xe(s, t));
614
616
  }
615
617
  function Xe(s, e) {
616
618
  s === "opacityTexture" && (e.useAlphaFromAlbedoTexture = !0), s === "metallicTexture" && (e.useRoughnessFromMetallicTextureAlpha = !1, e.useRoughnessFromMetallicTextureGreen = !1, e.useMetallnessFromMetallicTextureBlue = !1), s === "refractionTexture" && (e.subSurface.isRefractionEnabled = !1, e.subSurface.refractionIntensity = 1), s === "reflectionTexture" && (e.environmentIntensity = 1), s === "emissiveTexture" && (e.emissiveIntensity = 0, e.emissiveColor = new w(0, 0, 0), e.reflectionTexture);
@@ -623,7 +625,7 @@ function Je(s, e, t, i) {
623
625
  s === "opacityTexture" && (e.useAlphaFromAlbedoTexture = !1), s === "metallicTexture" && (e.useRoughnessFromMetallicTextureAlpha = !1, e.useRoughnessFromMetallicTextureGreen = !0, e.useMetallnessFromMetallicTextureBlue = !0), s === "refractionTexture" && (e.subSurface.isRefractionEnabled = !0, e.subSurface.refractionIntensity = t.refractionIntensity || 1), s === "reflectionTexture" && (e.environmentIntensity = t.reflectionIntensity || 1), e[s] = i, s === "emissiveTexture" && (e.emissiveColor = new w(1, 1, 1), e.emissiveIntensity = 1);
624
626
  }
625
627
  function et(s, e) {
626
- s.clearCoat && (s.clearCoat === F.RemoveWhenSelected ? (e.clearCoat.isEnabled = !1, e.clearCoat.indexOfRefraction = 1.5) : s.clearCoat === F.ApplyWhenSelected && (e.clearCoat.isEnabled = !0, e.clearCoat.indexOfRefraction = s.clearCoatIOR || e.clearCoat.indexOfRefraction));
628
+ s.clearCoat && (s.clearCoat === S.RemoveWhenSelected ? (e.clearCoat.isEnabled = !1, e.clearCoat.indexOfRefraction = 1.5) : s.clearCoat === S.ApplyWhenSelected && (e.clearCoat.isEnabled = !0, e.clearCoat.indexOfRefraction = s.clearCoatIOR || e.clearCoat.indexOfRefraction));
627
629
  }
628
630
  class tt {
629
631
  constructor(e, t, i) {
@@ -638,27 +640,27 @@ class tt {
638
640
  * instead remove material textures when they aren't defined. this is useful for material editor applications
639
641
  * where we want to undo changes are remove effects from display.
640
642
  */
641
- async applyMaterial(e, t, i, a) {
643
+ async applyMaterial(e, t, i, r) {
642
644
  return new Promise((o) => {
643
- const n = this.materialVariantMap.get(e);
645
+ const a = this.materialVariantMap.get(e);
644
646
  this.materialVariantMap.set(e, {
645
- ...n,
647
+ ...a,
646
648
  ...t
647
649
  });
648
- const r = this.renameClonedAsset(e), l = this.scene.materials.filter(
649
- (d) => d.name === r
650
+ const n = this.renameClonedAsset(e), l = this.scene.materials.filter(
651
+ (d) => d.name === n
650
652
  );
651
653
  if (l.length === 0) {
652
654
  o();
653
655
  return;
654
656
  }
655
- const c = new Ne(this.scene);
657
+ const c = new ze(this.scene);
656
658
  c.useDefaultLoadingScreen = !1, l.forEach(
657
- (d) => Ze(
659
+ (d) => $e(
658
660
  t,
659
661
  d,
660
662
  c,
661
- a
663
+ r
662
664
  )
663
665
  ), c.onProgress = (d, u, g) => {
664
666
  i && i(d / u * 100, 100, g.name);
@@ -666,7 +668,7 @@ class tt {
666
668
  d.forEach((u) => {
667
669
  const g = u;
668
670
  i && i(100, 100, u.name), this.scene.materials.filter(
669
- (b) => b.name === r
671
+ (b) => b.name === n
670
672
  ).forEach(
671
673
  (b) => Je(
672
674
  u.name,
@@ -686,21 +688,21 @@ class tt {
686
688
  * @param model The details for the new model, when undefined we should remove the variant associated to the given key.
687
689
  * @param onProgress A load progress callback that can be used for loading bars and event timing.
688
690
  */
689
- async applyModel(e, t, i, a) {
691
+ async applyModel(e, t, i, r) {
690
692
  var l, c;
691
693
  if (i && t && !this.keysThatRemovedBaseModel.includes(e) && this.keysThatRemovedBaseModel.push(e), !i)
692
694
  return this.keysThatRemovedBaseModel.includes(e) && this.keysThatRemovedBaseModel.length === 1 && await this.setBaseModelEnabled(!0), (l = this.loadedContainerForKey.get(e)) == null || l.dispose(), this.loadedContainerForKey.delete(e), this.loadedMaterialsForKey.delete(e), this.keysThatRemovedBaseModel = this.keysThatRemovedBaseModel.filter(
693
695
  (d) => d !== e
694
696
  ), Promise.resolve(void 0);
695
- const n = (await be(i, this.scene, a)).instantiateModelsToScene(
697
+ const a = (await be(i, this.scene, r)).instantiateModelsToScene(
696
698
  this.renameClonedAsset,
697
699
  !0
698
700
  );
699
- this.loadedContainerForKey.has(e) && ((c = this.loadedContainerForKey.get(e)) == null || c.dispose(), this.loadedContainerForKey.delete(e), this.loadedMaterialsForKey.delete(e)), t && await this.setBaseModelEnabled(!1), this.loadedContainerForKey.set(e, n), this.loadedMaterialsForKey.set(e, we(n));
700
- const r = [];
701
+ this.loadedContainerForKey.has(e) && ((c = this.loadedContainerForKey.get(e)) == null || c.dispose(), this.loadedContainerForKey.delete(e), this.loadedMaterialsForKey.delete(e)), t && await this.setBaseModelEnabled(!1), this.loadedContainerForKey.set(e, a), this.loadedMaterialsForKey.set(e, we(a));
702
+ const n = [];
701
703
  return this.materialVariantMap.forEach(async (d, u) => {
702
- r.push(this.applyMaterial(u, d));
703
- }), await Promise.all(r), n;
704
+ n.push(this.applyMaterial(u, d));
705
+ }), await Promise.all(n), a;
704
706
  }
705
707
  dispose() {
706
708
  this.loadedContainerForKey.forEach((e) => e == null ? void 0 : e.dispose()), this.loadedContainerForKey.clear(), this.loadedMaterialsForKey.forEach(
@@ -726,8 +728,8 @@ function we(s) {
726
728
  const e = [];
727
729
  return s.rootNodes.forEach((t) => {
728
730
  t.getChildMeshes().forEach((i) => {
729
- i.material && !e.includes(i.material) && e.push(i.material), i.subMeshes && i.subMeshes.forEach((a) => {
730
- const o = a.getMaterial(!1);
731
+ i.material && !e.includes(i.material) && e.push(i.material), i.subMeshes && i.subMeshes.forEach((r) => {
732
+ const o = r.getMaterial(!1);
731
733
  o && !e.includes(o) && e.push(o);
732
734
  });
733
735
  });
@@ -747,41 +749,41 @@ class it {
747
749
  const {
748
750
  enablePicking: t,
749
751
  modelDetails: i,
750
- previewService: a,
752
+ previewService: r,
751
753
  progressHandler: o,
752
- scene: n
754
+ scene: a
753
755
  } = e;
754
- this.enablePicking = t, this.contextService = i.contextService, this.id = Ue(), this.previewService = a, this.scene = n, this.variantManager = new tt(
755
- n,
756
+ this.enablePicking = t, this.contextService = i.contextService, this.id = Ke(), this.previewService = r, this.scene = a, this.variantManager = new tt(
757
+ a,
756
758
  this.renameClonedAsset.bind(this),
757
759
  this.setBaseModelEnabled.bind(this)
758
760
  ), this.transformRoot = new Se("root", this.scene);
759
- const r = async () => {
761
+ const n = async () => {
760
762
  if (!i.model)
761
763
  throw new Error(
762
764
  "Model container constructed with no URL. This is currently unsupported."
763
765
  );
764
766
  return this.assetContainer = await be(
765
767
  i.model,
766
- n,
768
+ a,
767
769
  o
768
770
  ), this.initialized = !0, await this.instantiate(), this;
769
771
  };
770
- this.importPromise = r();
772
+ this.importPromise = n();
771
773
  }
772
774
  //#region Interface implementation
773
- async applyMaterialVariant(e, t, i, a) {
775
+ async applyMaterialVariant(e, t, i, r) {
774
776
  if (!this.initialized) {
775
777
  if (this.materialReadyToLoadCallbacks.has(e)) {
776
- const n = this.materialReadyToLoadCallbacks.get(e);
777
- n == null || n.set(
778
+ const a = this.materialReadyToLoadCallbacks.get(e);
779
+ a == null || a.set(
778
780
  t,
779
781
  this.applyMaterialVariant.bind(
780
782
  this,
781
783
  e,
782
784
  t,
783
785
  i,
784
- a
786
+ r
785
787
  )
786
788
  );
787
789
  } else {
@@ -789,15 +791,15 @@ class it {
789
791
  e,
790
792
  /* @__PURE__ */ new Map()
791
793
  );
792
- const n = this.materialReadyToLoadCallbacks.get(e);
793
- n == null || n.set(
794
+ const a = this.materialReadyToLoadCallbacks.get(e);
795
+ a == null || a.set(
794
796
  t,
795
797
  this.applyMaterialVariant.bind(
796
798
  this,
797
799
  e,
798
800
  t,
799
801
  i,
800
- a
802
+ r
801
803
  )
802
804
  );
803
805
  }
@@ -807,36 +809,36 @@ class it {
807
809
  await this.variantManager.applyMaterial(
808
810
  e,
809
811
  i,
810
- (n, r, l) => {
812
+ (a, n, l) => {
811
813
  this.materialVariantObservable.notifyObservers({
812
- remainingCount: n,
813
- totalCount: r,
814
+ remainingCount: a,
815
+ totalCount: n,
814
816
  taskName: l
815
817
  });
816
818
  },
817
- a
819
+ r
818
820
  );
819
821
  };
820
822
  if (this.materialChangesInProgress.includes(e)) {
821
823
  if (this.queuedMaterialChanges.has(e)) {
822
- const n = this.queuedMaterialChanges.get(e);
823
- n == null || n.set(t, o);
824
+ const a = this.queuedMaterialChanges.get(e);
825
+ a == null || a.set(t, o);
824
826
  } else {
825
827
  this.queuedMaterialChanges.set(
826
828
  e,
827
829
  /* @__PURE__ */ new Map()
828
830
  );
829
- const n = this.queuedMaterialChanges.get(e);
830
- n == null || n.set(t, o);
831
+ const a = this.queuedMaterialChanges.get(e);
832
+ a == null || a.set(t, o);
831
833
  }
832
834
  return;
833
835
  }
834
836
  if (this.materialChangesInProgress.push(e), await o(), this.queuedMaterialChanges.has(e)) {
835
- const n = this.queuedMaterialChanges.get(e);
836
- if (!n)
837
+ const a = this.queuedMaterialChanges.get(e);
838
+ if (!a)
837
839
  throw new Error("Target material is undefined");
838
- n.forEach(async (r) => {
839
- await r();
840
+ a.forEach(async (n) => {
841
+ await n();
840
842
  }), this.queuedMaterialChanges.delete(e);
841
843
  }
842
844
  this.materialChangesInProgress.splice(
@@ -857,36 +859,36 @@ class it {
857
859
  );
858
860
  return;
859
861
  }
860
- const a = () => this.variantManager.applyModel(
862
+ const r = () => this.variantManager.applyModel(
861
863
  e,
862
864
  i,
863
865
  t == null ? void 0 : t.model,
864
- (r) => {
866
+ (n) => {
865
867
  this.modelVariantObservable.notifyObservers({
866
- ...r,
868
+ ...n,
867
869
  key: e
868
870
  });
869
871
  }
870
872
  );
871
873
  if (this.modelChangesInProgress.includes(e)) {
872
- this.queuedModelChanges.set(e, a);
874
+ this.queuedModelChanges.set(e, r);
873
875
  return;
874
876
  }
875
- const n = await (async () => {
877
+ const a = await (async () => {
876
878
  this.modelChangesInProgress.push(e);
877
- let r = await a();
879
+ let n = await r();
878
880
  if (this.queuedModelChanges.has(e)) {
879
881
  const l = this.queuedModelChanges.get(e);
880
882
  if (!l)
881
883
  throw new Error("Queued change resolved undefined");
882
- r = await l(), this.queuedModelChanges.delete(e);
884
+ n = await l(), this.queuedModelChanges.delete(e);
883
885
  }
884
886
  return this.modelChangesInProgress.splice(
885
887
  this.modelChangesInProgress.indexOf(e),
886
888
  1
887
- ), r;
889
+ ), n;
888
890
  })();
889
- this.modelInstance && ve(this.modelInstance.animationGroups), this.contextService || (this.contextService = t == null ? void 0 : t.contextService), n ? this.configureModelInstance(n) : this.configureGlowLayer();
891
+ this.modelInstance && ve(this.modelInstance.animationGroups), this.contextService || (this.contextService = t == null ? void 0 : t.contextService), a ? this.configureModelInstance(a) : this.configureGlowLayer();
890
892
  }
891
893
  dispose() {
892
894
  var e;
@@ -897,7 +899,7 @@ class it {
897
899
  this.queuedModelAnimation = e;
898
900
  return;
899
901
  }
900
- this.modelInstance && Ke(
902
+ this.modelInstance && We(
901
903
  [
902
904
  ...this.modelInstance.animationGroups,
903
905
  ...this.variantManager.getAnimationGroups()
@@ -982,15 +984,15 @@ class it {
982
984
  attachPickingHandler(e) {
983
985
  e.rootNodes.forEach((t) => {
984
986
  t.getChildMeshes(!1).forEach((i) => {
985
- i.name === "targetcube_t" || i.name === "backgroundShell" || (i.actionManager || (i.actionManager = new A(this.scene)), i.actionManager.registerAction(
986
- new ae(A.OnPointerOverTrigger, (a) => {
987
- a.meshUnderPointer && i.material && this.materialSelectedObservable.notifyObservers({
987
+ i.name === "targetcube_t" || i.name === "backgroundShell" || (i.actionManager || (i.actionManager = new T(this.scene)), i.actionManager.registerAction(
988
+ new re(T.OnPointerOverTrigger, (r) => {
989
+ r.meshUnderPointer && i.material && this.materialSelectedObservable.notifyObservers({
988
990
  id: i.material.id,
989
991
  name: this.stripIdFromName(i.material.name)
990
992
  });
991
993
  })
992
994
  ), i.actionManager.registerAction(
993
- new ae(A.OnPointerOutTrigger, () => {
995
+ new re(T.OnPointerOutTrigger, () => {
994
996
  i.material && this.materialDeselectedObservable.notifyObservers({
995
997
  id: i.material.id,
996
998
  name: this.stripIdFromName(i.material.name)
@@ -1019,7 +1021,7 @@ class it {
1019
1021
  return this.modelReadyToLoadCallbacks.size;
1020
1022
  }
1021
1023
  configureGlowLayer() {
1022
- const e = (i) => i instanceof B && i.emissiveTexture !== null;
1024
+ const e = (i) => i instanceof F && i.emissiveTexture !== null;
1023
1025
  this.materials.some(e) || this.variantManager.getAllMaterials().some(e) ? this.previewService.getGlowLayerManager().includeMeshes(this.getAllMeshes()) : this.previewService.getGlowLayerManager().removeMeshes(this.getAllMeshes());
1024
1026
  }
1025
1027
  configureModelInstance(e) {
@@ -1028,11 +1030,11 @@ class it {
1028
1030
  throw new Error(
1029
1031
  "Transform disposed! This should never happen unless there is a race condition present!"
1030
1032
  );
1031
- const t = this.transformRoot.position, i = this.transformRoot.rotationQuaternion, a = this.transformRoot.scaling;
1033
+ const t = this.transformRoot.position, i = this.transformRoot.rotationQuaternion, r = this.transformRoot.scaling;
1032
1034
  this.transformRoot.position = m.Zero(), this.transformRoot.rotationQuaternion = y.Identity(), this.transformRoot.scaling = m.One();
1033
- for (const n of e.rootNodes)
1034
- n.parent = this.transformRoot;
1035
- this.transformRoot.position = t, this.transformRoot.rotationQuaternion = i, this.transformRoot.scaling = a, this.canvasPanels = ((o = this.contextService) == null ? void 0 : o.getAll()) || /* @__PURE__ */ new Map(), He(
1035
+ for (const a of e.rootNodes)
1036
+ a.parent = this.transformRoot;
1037
+ this.transformRoot.position = t, this.transformRoot.rotationQuaternion = i, this.transformRoot.scaling = r, this.canvasPanels = ((o = this.contextService) == null ? void 0 : o.getAll()) || /* @__PURE__ */ new Map(), qe(
1036
1038
  this.materials.concat(this.variantManager.getAllMaterials()),
1037
1039
  this.scene,
1038
1040
  this.canvasPanels,
@@ -1050,7 +1052,7 @@ class it {
1050
1052
  getAllMeshes() {
1051
1053
  var e;
1052
1054
  return (e = this.modelInstance) == null ? void 0 : e.rootNodes.map(
1053
- (t) => t.getChildMeshes(!1).filter((i) => i instanceof Le)
1055
+ (t) => t.getChildMeshes(!1).filter((i) => i instanceof Ie)
1054
1056
  ).flat();
1055
1057
  }
1056
1058
  async instantiate() {
@@ -1076,8 +1078,8 @@ class it {
1076
1078
  var e;
1077
1079
  (e = this.canvasPanels) == null || e.forEach(
1078
1080
  (t, i) => {
1079
- const a = this.dynamicTextures.get(i);
1080
- a && t.getStaticContextDirty() && a.isReady() && (a.update(!1), t.setStaticContextDirty(!1));
1081
+ const r = this.dynamicTextures.get(i);
1082
+ r && t.getStaticContextDirty() && r.isReady() && (r.update(!1), t.setStaticContextDirty(!1));
1081
1083
  }
1082
1084
  );
1083
1085
  }
@@ -1111,18 +1113,18 @@ class it {
1111
1113
  }
1112
1114
  //#endregion
1113
1115
  }
1114
- class D extends ge {
1115
- constructor(e, t, i, a, o, n, r, l) {
1116
+ class B extends ge {
1117
+ constructor(e, t, i, r, o, a, n, l) {
1116
1118
  super(
1117
1119
  e,
1118
1120
  t,
1119
1121
  i,
1120
- a,
1122
+ r,
1121
1123
  o,
1122
- n,
1124
+ a,
1123
1125
  l
1124
- ), this.lastFocus = new m(0, 0, 0), this.panDenominator = 1, this.minZ = 0.01, this.setRadius(this.radius), this.enableFramingBehavior(), this.wheelDeltaPercentage = 0.01, this.pinchDeltaPercentage = 5e-3, this.useNaturalPinchZoom = !0, r.camera.autoOrientation && (this.alpha += Math.PI), r && (r.camera.limits.min.beta && (this.lowerBetaLimit = r.camera.limits.min.beta), r.camera.limits.max.beta && (this.upperBetaLimit = r.camera.limits.max.beta), r.camera.limits.min.alpha && (this.lowerAlphaLimit = r.camera.limits.min.alpha), r.camera.limits.max.alpha && (this.upperAlphaLimit = r.camera.limits.max.alpha), r.camera.limits.min.radius && (this.lowerRadiusLimit = r.camera.limits.min.radius), r.camera.limits.max.radius && (this.upperRadiusLimit = r.camera.limits.max.radius), r.camera.autoRotation.enabled && this.enableAutoRotationBehavior(
1125
- r.camera.autoRotation.idleTimeMs
1126
+ ), this.lastFocus = new m(0, 0, 0), this.panDenominator = 1, this.minZ = 0.01, this.setRadius(this.radius), this.enableFramingBehavior(), this.wheelDeltaPercentage = 0.01, this.pinchDeltaPercentage = 5e-3, this.useNaturalPinchZoom = !0, n.camera.autoOrientation && (this.alpha += Math.PI), n && (n.camera.limits.min.beta && (this.lowerBetaLimit = n.camera.limits.min.beta), n.camera.limits.max.beta && (this.upperBetaLimit = n.camera.limits.max.beta), n.camera.limits.min.alpha && (this.lowerAlphaLimit = n.camera.limits.min.alpha), n.camera.limits.max.alpha && (this.upperAlphaLimit = n.camera.limits.max.alpha), n.camera.limits.min.radius && (this.lowerRadiusLimit = n.camera.limits.min.radius), n.camera.limits.max.radius && (this.upperRadiusLimit = n.camera.limits.max.radius), n.camera.autoRotation.enabled && this.enableAutoRotationBehavior(
1127
+ n.camera.autoRotation.idleTimeMs
1126
1128
  ));
1127
1129
  }
1128
1130
  /**
@@ -1148,7 +1150,7 @@ class D extends ge {
1148
1150
  this.useFramingBehavior = !0;
1149
1151
  const e = this.getFramingBehavior();
1150
1152
  e.attach(this), e.framingTime = 0, e.elevationReturnTime = -1, e.zoomStopsAnimation = !1, this.lowerRadiusLimit = null;
1151
- const t = I(this._scene);
1153
+ const t = E(this._scene);
1152
1154
  return e.zoomOnBoundingInfo(t.min, t.max), this.wheelPrecision = 100 / this.radius, this.lowerRadiusLimit === null && (this.lowerRadiusLimit = 0.1), this.lastFocus.copyFrom(this.target), e;
1153
1155
  }
1154
1156
  /**
@@ -1159,14 +1161,14 @@ class D extends ge {
1159
1161
  rerunFramingBehavior(e, t) {
1160
1162
  const i = this.getFramingBehavior();
1161
1163
  i.framingTime = t || 800;
1162
- const a = () => {
1164
+ const r = () => {
1163
1165
  e && e();
1164
- }, o = I(this._scene), n = o.max.subtract(o.min), r = o.min.add(n.scale(0.5));
1165
- this.setRadius(n.length() * 1.5), this.wheelPrecision = 100 / this.radius, this.panningInertia = 0, this.panningOriginTarget.copyFrom(r), this.panDenominator = n.length(), i.zoomOnBoundingInfo(
1166
+ }, o = E(this._scene), a = o.max.subtract(o.min), n = o.min.add(a.scale(0.5));
1167
+ this.setRadius(a.length() * 1.5), this.wheelPrecision = 100 / this.radius, this.panningInertia = 0, this.panningOriginTarget.copyFrom(n), this.panDenominator = a.length(), i.zoomOnBoundingInfo(
1166
1168
  o.min,
1167
1169
  o.max,
1168
1170
  void 0,
1169
- a
1171
+ r
1170
1172
  ), i.framingTime = 0;
1171
1173
  }
1172
1174
  /**
@@ -1196,21 +1198,21 @@ class D extends ge {
1196
1198
  * @param assignActive If true the camera will be assigned as the active camera on the scene.
1197
1199
  */
1198
1200
  static create(e, t, i) {
1199
- const a = I(e), o = a.max.subtract(a.min), n = a.min.add(o.scale(0.5)), r = new D(
1201
+ const r = E(e), o = r.max.subtract(r.min), a = r.min.add(o.scale(0.5)), n = new B(
1200
1202
  "ProductCamera",
1201
1203
  -(Math.PI / 2),
1202
1204
  Math.PI / 2,
1203
1205
  o.length() * 1.5,
1204
- n,
1206
+ a,
1205
1207
  e,
1206
1208
  t
1207
1209
  );
1208
- return r.panningInertia = 0, r.panningOriginTarget.copyFrom(n), r.panDenominator = o.length(), r.onAfterCheckInputsObservable.add(() => {
1209
- r.panningSensibility = 1e3 / r.panDenominator;
1210
- }), i && (e.activeCamera = r), r;
1210
+ return n.panningInertia = 0, n.panningOriginTarget.copyFrom(a), n.panDenominator = o.length(), n.onAfterCheckInputsObservable.add(() => {
1211
+ n.panningSensibility = 1e3 / n.panDenominator;
1212
+ }), i && (e.activeCamera = n), n;
1211
1213
  }
1212
1214
  }
1213
- function I(s) {
1215
+ function E(s) {
1214
1216
  if (s.meshes.length === 0)
1215
1217
  return {
1216
1218
  min: new m(-1, -1, -1),
@@ -1221,7 +1223,7 @@ function I(s) {
1221
1223
  }
1222
1224
  class st {
1223
1225
  constructor(e, t = !1, i = void 0) {
1224
- this.renderingPipeline = new ke(
1226
+ this.renderingPipeline = new Ve(
1225
1227
  "default",
1226
1228
  t,
1227
1229
  e,
@@ -1237,15 +1239,15 @@ class st {
1237
1239
  return this.currentConfiguration;
1238
1240
  }
1239
1241
  setConfiguration(e) {
1240
- var t, i, a, o, n, r, l, c, d, u, g, p, b, G, N, k, z, V, q, H, _, U, K, W, Y, $, Q, Z, j, X, J, ee, te;
1242
+ var t, i, r, o, a, n, l, c, d, u, g, p, b, D, k, z, V, G, N, H, q, _, K, W, U, Y, Q, Z, $, j, X, J, ee;
1241
1243
  if (this.renderingPipeline.isSupported) {
1242
- if (this.renderingPipeline.samples = ((t = e.antiAliasing) == null ? void 0 : t.samples) ?? h.antiAliasing.samples, this.renderingPipeline.fxaaEnabled = ((i = e.antiAliasing) == null ? void 0 : i.fxaaEnabled) ?? h.antiAliasing.fxaaEnabled, this.renderingPipeline.bloomEnabled = ((a = e.bloom) == null ? void 0 : a.enabled) ?? h.bloom.enabled, this.renderingPipeline.bloomKernel = ((o = e.bloom) == null ? void 0 : o.kernel) ?? h.bloom.kernel, this.renderingPipeline.bloomScale = ((n = e.bloom) == null ? void 0 : n.scale) ?? h.bloom.scale, this.renderingPipeline.bloomThreshold = ((r = e.bloom) == null ? void 0 : r.threshold) ?? h.bloom.threshold, this.renderingPipeline.bloomWeight = ((l = e.bloom) == null ? void 0 : l.weight) ?? h.bloom.weight, this.renderingPipeline.chromaticAberrationEnabled = ((c = e.chromaticAberration) == null ? void 0 : c.enabled) ?? h.chromaticAberration.enabled, this.renderingPipeline.chromaticAberration.aberrationAmount = ((d = e.chromaticAberration) == null ? void 0 : d.aberrationAmount) ?? h.chromaticAberration.aberrationAmount, this.renderingPipeline.chromaticAberration.radialIntensity = ((u = e.chromaticAberration) == null ? void 0 : u.radialIntensity) ?? h.chromaticAberration.radialIntensity, this.renderingPipeline.chromaticAberration.direction = (g = e.chromaticAberration) != null && g.direction ? new se(
1244
+ if (this.renderingPipeline.samples = ((t = e.antiAliasing) == null ? void 0 : t.samples) ?? h.antiAliasing.samples, this.renderingPipeline.fxaaEnabled = ((i = e.antiAliasing) == null ? void 0 : i.fxaaEnabled) ?? h.antiAliasing.fxaaEnabled, this.renderingPipeline.bloomEnabled = ((r = e.bloom) == null ? void 0 : r.enabled) ?? h.bloom.enabled, this.renderingPipeline.bloomKernel = ((o = e.bloom) == null ? void 0 : o.kernel) ?? h.bloom.kernel, this.renderingPipeline.bloomScale = ((a = e.bloom) == null ? void 0 : a.scale) ?? h.bloom.scale, this.renderingPipeline.bloomThreshold = ((n = e.bloom) == null ? void 0 : n.threshold) ?? h.bloom.threshold, this.renderingPipeline.bloomWeight = ((l = e.bloom) == null ? void 0 : l.weight) ?? h.bloom.weight, this.renderingPipeline.chromaticAberrationEnabled = ((c = e.chromaticAberration) == null ? void 0 : c.enabled) ?? h.chromaticAberration.enabled, this.renderingPipeline.chromaticAberration.aberrationAmount = ((d = e.chromaticAberration) == null ? void 0 : d.aberrationAmount) ?? h.chromaticAberration.aberrationAmount, this.renderingPipeline.chromaticAberration.radialIntensity = ((u = e.chromaticAberration) == null ? void 0 : u.radialIntensity) ?? h.chromaticAberration.radialIntensity, this.renderingPipeline.chromaticAberration.direction = (g = e.chromaticAberration) != null && g.direction ? new ie(
1243
1245
  e.chromaticAberration.direction.x,
1244
1246
  e.chromaticAberration.direction.y
1245
- ) : new se(
1247
+ ) : new ie(
1246
1248
  h.chromaticAberration.direction.x,
1247
1249
  h.chromaticAberration.direction.y
1248
- ), this.renderingPipeline.imageProcessing.colorCurvesEnabled = ((p = e.colorCurves) == null ? void 0 : p.enabled) ?? h.colorCurves.enabled, this.renderingPipeline.imageProcessing.colorCurves = e.colorCurves ? this.updateColorCurve(e.colorCurves) : new oe(), this.renderingPipeline.depthOfFieldEnabled = ((b = e.depthOfField) == null ? void 0 : b.enabled) ?? h.depthOfField.enabled, e.depthOfField)
1250
+ ), this.renderingPipeline.imageProcessing.colorCurvesEnabled = ((p = e.colorCurves) == null ? void 0 : p.enabled) ?? h.colorCurves.enabled, this.renderingPipeline.imageProcessing.colorCurves = e.colorCurves ? this.updateColorCurve(e.colorCurves) : new ae(), this.renderingPipeline.depthOfFieldEnabled = ((b = e.depthOfField) == null ? void 0 : b.enabled) ?? h.depthOfField.enabled, e.depthOfField)
1249
1251
  switch (e.depthOfField.blurLevel ?? h.depthOfField.blurLevel) {
1250
1252
  case "Low":
1251
1253
  this.renderingPipeline.depthOfFieldBlurLevel = R.Low;
@@ -1257,7 +1259,7 @@ class st {
1257
1259
  this.renderingPipeline.depthOfFieldBlurLevel = R.High;
1258
1260
  break;
1259
1261
  }
1260
- if (this.renderingPipeline.depthOfField.focalLength = ((G = e.depthOfField) == null ? void 0 : G.focalLength) ?? h.depthOfField.focalLength, this.renderingPipeline.depthOfField.fStop = ((N = e.depthOfField) == null ? void 0 : N.fStop) ?? h.depthOfField.fStop, this.renderingPipeline.depthOfField.focusDistance = ((k = e.depthOfField) == null ? void 0 : k.focusDistance) ?? h.depthOfField.focusDistance, this.renderingPipeline.depthOfField.lensSize = ((z = e.depthOfField) == null ? void 0 : z.lensSize) ?? h.depthOfField.lensSize, this.renderingPipeline.grainEnabled = ((V = e.grain) == null ? void 0 : V.enabled) ?? h.grain.enabled, this.renderingPipeline.grain.animated = ((q = e.grain) == null ? void 0 : q.animated) ?? h.grain.animated, this.renderingPipeline.grain.intensity = ((H = e.grain) == null ? void 0 : H.intensity) ?? h.grain.intensity, this.renderingPipeline.imageProcessing.contrast = ((_ = e.misc) == null ? void 0 : _.contrast) ?? h.misc.contrast, this.renderingPipeline.imageProcessing.exposure = ((U = e.misc) == null ? void 0 : U.exposure) ?? h.misc.exposure, this.renderingPipeline.imageProcessing.toneMappingEnabled = ((K = e.misc) == null ? void 0 : K.toneMappingEnabled) ?? h.misc.toneMappingEnabled, this.renderingPipeline.imageProcessing.toneMappingEnabled)
1262
+ if (this.renderingPipeline.depthOfField.focalLength = ((D = e.depthOfField) == null ? void 0 : D.focalLength) ?? h.depthOfField.focalLength, this.renderingPipeline.depthOfField.fStop = ((k = e.depthOfField) == null ? void 0 : k.fStop) ?? h.depthOfField.fStop, this.renderingPipeline.depthOfField.focusDistance = ((z = e.depthOfField) == null ? void 0 : z.focusDistance) ?? h.depthOfField.focusDistance, this.renderingPipeline.depthOfField.lensSize = ((V = e.depthOfField) == null ? void 0 : V.lensSize) ?? h.depthOfField.lensSize, this.renderingPipeline.grainEnabled = ((G = e.grain) == null ? void 0 : G.enabled) ?? h.grain.enabled, this.renderingPipeline.grain.animated = ((N = e.grain) == null ? void 0 : N.animated) ?? h.grain.animated, this.renderingPipeline.grain.intensity = ((H = e.grain) == null ? void 0 : H.intensity) ?? h.grain.intensity, this.renderingPipeline.imageProcessing.contrast = ((q = e.misc) == null ? void 0 : q.contrast) ?? h.misc.contrast, this.renderingPipeline.imageProcessing.exposure = ((_ = e.misc) == null ? void 0 : _.exposure) ?? h.misc.exposure, this.renderingPipeline.imageProcessing.toneMappingEnabled = ((K = e.misc) == null ? void 0 : K.toneMappingEnabled) ?? h.misc.toneMappingEnabled, this.renderingPipeline.imageProcessing.toneMappingEnabled)
1261
1263
  switch (e.misc.toneMappingType ?? h.misc.toneMappingType) {
1262
1264
  case "Standard":
1263
1265
  this.renderingPipeline.imageProcessing.toneMappingType = P.TONEMAPPING_STANDARD;
@@ -1266,8 +1268,8 @@ class st {
1266
1268
  this.renderingPipeline.imageProcessing.toneMappingType = P.TONEMAPPING_ACES;
1267
1269
  break;
1268
1270
  }
1269
- if (this.renderingPipeline.sharpenEnabled = ((W = e.sharpen) == null ? void 0 : W.enabled) ?? h.sharpen.enabled, this.renderingPipeline.sharpen.colorAmount = ((Y = e.sharpen) == null ? void 0 : Y.colorAmount) ?? h.sharpen.colorAmount, this.renderingPipeline.sharpen.edgeAmount = (($ = e.sharpen) == null ? void 0 : $.edgeAmount) ?? h.sharpen.edgeAmount, this.renderingPipeline.imageProcessing.vignetteEnabled = ((Q = e.vignette) == null ? void 0 : Q.enabled) ?? h.vignette.enabled, (Z = e.vignette) != null && Z.center ? (this.renderingPipeline.imageProcessing.vignetteCenterX = e.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = e.vignette.center.y) : (this.renderingPipeline.imageProcessing.vignetteCenterX = h.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = h.vignette.center.y), e.vignette)
1270
- switch (((j = e.vignette) == null ? void 0 : j.blendMode) ?? h.vignette.blendMode) {
1271
+ if (this.renderingPipeline.sharpenEnabled = ((W = e.sharpen) == null ? void 0 : W.enabled) ?? h.sharpen.enabled, this.renderingPipeline.sharpen.colorAmount = ((U = e.sharpen) == null ? void 0 : U.colorAmount) ?? h.sharpen.colorAmount, this.renderingPipeline.sharpen.edgeAmount = ((Y = e.sharpen) == null ? void 0 : Y.edgeAmount) ?? h.sharpen.edgeAmount, this.renderingPipeline.imageProcessing.vignetteEnabled = ((Q = e.vignette) == null ? void 0 : Q.enabled) ?? h.vignette.enabled, (Z = e.vignette) != null && Z.center ? (this.renderingPipeline.imageProcessing.vignetteCenterX = e.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = e.vignette.center.y) : (this.renderingPipeline.imageProcessing.vignetteCenterX = h.vignette.center.x, this.renderingPipeline.imageProcessing.vignetteCenterY = h.vignette.center.y), e.vignette)
1272
+ switch ((($ = e.vignette) == null ? void 0 : $.blendMode) ?? h.vignette.blendMode) {
1271
1273
  case "Multiply":
1272
1274
  this.renderingPipeline.imageProcessing.vignetteBlendMode = P.VIGNETTEMODE_MULTIPLY;
1273
1275
  break;
@@ -1275,26 +1277,26 @@ class st {
1275
1277
  this.renderingPipeline.imageProcessing.vignetteBlendMode = P.VIGNETTEMODE_OPAQUE;
1276
1278
  break;
1277
1279
  }
1278
- (X = e.vignette) != null && X.colorRgba ? this.renderingPipeline.imageProcessing.vignetteColor = new f(
1280
+ (j = e.vignette) != null && j.colorRgba ? this.renderingPipeline.imageProcessing.vignetteColor = new f(
1279
1281
  e.vignette.colorRgba.r,
1280
1282
  e.vignette.colorRgba.g,
1281
1283
  e.vignette.colorRgba.b,
1282
1284
  e.vignette.colorRgba.a
1283
- ) : (J = e.vignette) != null && J.colorHex ? this.renderingPipeline.imageProcessing.vignetteColor = f.FromHexString(e.vignette.colorHex) : this.renderingPipeline.imageProcessing.vignetteColor = new f(
1285
+ ) : (X = e.vignette) != null && X.colorHex ? this.renderingPipeline.imageProcessing.vignetteColor = f.FromHexString(e.vignette.colorHex) : this.renderingPipeline.imageProcessing.vignetteColor = new f(
1284
1286
  h.vignette.colorRgba.r,
1285
1287
  h.vignette.colorRgba.g,
1286
1288
  h.vignette.colorRgba.b,
1287
1289
  h.vignette.colorRgba.a
1288
- ), this.renderingPipeline.imageProcessing.vignetteStretch = ((ee = e.vignette) == null ? void 0 : ee.stretch) ?? h.vignette.stretch, this.renderingPipeline.imageProcessing.vignetteWeight = ((te = e.vignette) == null ? void 0 : te.weight) ?? h.vignette.weight, this.renderingPipeline.prepare(), this.currentConfiguration = e;
1290
+ ), this.renderingPipeline.imageProcessing.vignetteStretch = ((J = e.vignette) == null ? void 0 : J.stretch) ?? h.vignette.stretch, this.renderingPipeline.imageProcessing.vignetteWeight = ((ee = e.vignette) == null ? void 0 : ee.weight) ?? h.vignette.weight, this.renderingPipeline.prepare(), this.currentConfiguration = e;
1289
1291
  }
1290
1292
  }
1291
1293
  updateColorCurve(e) {
1292
- const t = new oe();
1294
+ const t = new ae();
1293
1295
  return t.globalDensity = e.globalDensity ?? t.globalDensity, t.globalExposure = e.globalExposure ?? t.globalExposure, t.globalHue = e.globalHue ?? t.globalHue, t.globalSaturation = e.globalSaturation ?? t.globalSaturation, t.highlightsDensity = e.highlightsDensity ?? t.highlightsDensity, t.highlightsExposure = e.highlightsExposure ?? t.highlightsExposure, t.highlightsHue = e.highlightsHue ?? t.highlightsHue, t.highlightsSaturation = e.highlightsSaturation ?? t.highlightsSaturation, t.midtonesDensity = e.midtonesDensity ?? t.midtonesDensity, t.midtonesExposure = e.midtonesExposure ?? t.midtonesExposure, t.midtonesHue = e.midtonesHue ?? t.midtonesHue, t.midtonesSaturation = e.midtonesSaturation ?? t.midtonesSaturation, t.shadowsDensity = e.shadowsDensity ?? t.shadowsDensity, t.shadowsExposure = e.shadowsExposure ?? t.shadowsExposure, t.shadowsHue = e.shadowsHue ?? t.shadowsHue, t.shadowsSaturation = e.shadowsSaturation ?? t.shadowsSaturation, t;
1294
1296
  }
1295
1297
  }
1296
- Ee.GLTFLoader.RegisterExtension("glbPostProcessor", function(s) {
1297
- return new Ve(s);
1298
+ Ae.GLTFLoader.RegisterExtension("glbPostProcessor", function(s) {
1299
+ return new Ne(s);
1298
1300
  });
1299
1301
  fe.OnPluginActivatedObservable.add((s) => {
1300
1302
  if (s.name === "gltf") {
@@ -1308,26 +1310,29 @@ function O(s) {
1308
1310
  function L(s) {
1309
1311
  return { x: s.x, y: s.y, z: s.z };
1310
1312
  }
1311
- class Kt {
1313
+ class Wt {
1312
1314
  constructor(e) {
1313
1315
  var l;
1314
- this.focusLostNotified = !1, this.focusLostObservable = new C(), this.modelLoadEventCallbacks = [], this.modelContainers = /* @__PURE__ */ new Map(), this.plugins = [], this.initComplete = !1, this.renderLoop = () => {
1316
+ this.focusLostNotified = !1, this.focusLostObservable = new C(), this.modelLoadEventCallbacks = [], this.modelContainers = /* @__PURE__ */ new Map(), this.plugins = [], this.initComplete = !1, this.currentCameraAnimationPromise = Promise.resolve(), this.renderLoop = () => {
1315
1317
  this.engine.views && (this.modelContainers.forEach((c) => {
1316
1318
  c.updateDynamicTextures();
1317
1319
  }), this.scene.render(), !this.camera.target.equalsWithEpsilon(this.camera.lastFocus, 0.1) && !this.focusLostNotified && (this.focusLostObservable.notifyObservers(void 0), this.focusLostNotified = !0), this.screenshotPrepareResolve && (this.screenshotPrepareResolve(), this.screenshotPrepareResolve = void 0));
1318
- }, this.configuration = new le(e);
1320
+ }, this.configuration = new oe(e);
1319
1321
  const i = (() => {
1320
1322
  if (!(e != null && e.noRender))
1321
1323
  return this.configuration.createCanvas();
1322
- })(), a = "1.5.6";
1324
+ })(), r = "1.5.6";
1323
1325
  Me.Configuration = {
1324
1326
  decoder: {
1325
- wasmUrl: `https://www.gstatic.com/draco/versioned/decoders/${a}/draco_wasm_wrapper_gltf.js`,
1326
- wasmBinaryUrl: `https://www.gstatic.com/draco/versioned/decoders/${a}/draco_decoder_gltf.wasm`,
1327
- fallbackUrl: `https://www.gstatic.com/draco/versioned/decoders/${a}/draco_decoder_gltf.js`
1327
+ wasmUrl: `https://www.gstatic.com/draco/versioned/decoders/${r}/draco_wasm_wrapper_gltf.js`,
1328
+ wasmBinaryUrl: `https://www.gstatic.com/draco/versioned/decoders/${r}/draco_decoder_gltf.wasm`,
1329
+ fallbackUrl: `https://www.gstatic.com/draco/versioned/decoders/${r}/draco_decoder_gltf.js`
1328
1330
  }
1329
1331
  }, i && (i.getContext("webgl2") || i.getContext("webgl"));
1330
- const o = console.log, n = i ? new pe(i, !0, {
1332
+ const o = console.log;
1333
+ console.log = () => {
1334
+ };
1335
+ const a = i ? new pe(i, !0, {
1331
1336
  adaptToDeviceRatio: !0,
1332
1337
  limitDeviceRatio: 2,
1333
1338
  premultipliedAlpha: !1,
@@ -1336,18 +1341,18 @@ class Kt {
1336
1341
  stencil: this.configuration.highlights.enabled,
1337
1342
  forceSRGBBufferSupportState: !0
1338
1343
  }) : new Ce();
1339
- console.log = o, n.hideLoadingUI(), window.addEventListener("resize", this.fireResizeEvent.bind(this)), this.engine = n, this.scene = new Pe(n), this.scene.autoClear = !0, this.scene.autoClearDepthAndStencil = !0, this.camera = D.create(this.scene, this.configuration), this.scene.activeCamera = this.camera, this.renderingPipeline = new st(
1344
+ console.log = o, a.hideLoadingUI(), window.addEventListener("resize", this.fireResizeEvent.bind(this)), this.engine = a, this.scene = new Pe(a), this.scene.autoClear = !0, this.scene.autoClearDepthAndStencil = !0, this.camera = B.create(this.scene, this.configuration), this.scene.activeCamera = this.camera, this.renderingPipeline = new st(
1340
1345
  this.scene,
1341
1346
  !1,
1342
1347
  this.camera
1343
1348
  ), this.scene.clearColor = this.configuration.scene.clearColor;
1344
- const r = ie.CreateFromPrefilteredData(
1349
+ const n = te.CreateFromPrefilteredData(
1345
1350
  this.configuration.scene.environment.file,
1346
1351
  this.scene
1347
1352
  );
1348
- r.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = r, this.scene.environmentIntensity = this.configuration.scene.environment.intensity, (l = this.configuration.options) != null && l.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1353
+ n.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = n, this.scene.environmentIntensity = this.configuration.scene.environment.intensity, (l = this.configuration.options) != null && l.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1349
1354
  this.configuration.options.renderingPipelineConfiguration
1350
- ) : (this.scene.imageProcessingConfiguration.exposure = this.configuration.lighting.exposure, this.scene.imageProcessingConfiguration.contrast = this.configuration.lighting.contrast), this.glowLayerManager = new qe(
1355
+ ) : (this.scene.imageProcessingConfiguration.exposure = this.configuration.lighting.exposure, this.scene.imageProcessingConfiguration.contrast = this.configuration.lighting.contrast), this.glowLayerManager = new He(
1351
1356
  this.scene,
1352
1357
  this.configuration.emissiveGlowIntensity
1353
1358
  ), this.initPromise = new Promise((c) => {
@@ -1384,7 +1389,7 @@ class Kt {
1384
1389
  }
1385
1390
  registerView(e) {
1386
1391
  const t = e.height, i = e.width;
1387
- this.engine.registerView(e, void 0, !0), e.setAttribute("height", t.toString()), e.setAttribute("width", i.toString()), this.orbitEnabled() || this.setCameraState(S.Pan), this.reattachControls(e);
1392
+ this.engine.registerView(e, void 0, !0), e.setAttribute("height", t.toString()), e.setAttribute("width", i.toString()), this.orbitEnabled() || this.setCameraState(I.Pan), this.reattachControls(e);
1388
1393
  }
1389
1394
  getNumViewports() {
1390
1395
  var e;
@@ -1398,14 +1403,17 @@ class Kt {
1398
1403
  }
1399
1404
  executeCameraAnimation(e) {
1400
1405
  if (!this.camera || this.scene.activeCamera !== this.camera) {
1401
- this.camera ? console.log("ANIM: DEBUGGING: queueing animation bc wrong camera") : console.log("ANIM: DEBUGGING: queueing animation bc no camera"), this.queuedCameraAnimation = e;
1406
+ this.queuedCameraAnimation = e;
1402
1407
  return;
1403
1408
  }
1404
- console.log("ANIM: DEBUGGING: animating camera in scene"), Ye(
1409
+ const t = () => Ye(
1405
1410
  this.scene,
1406
1411
  this.scene.activeCamera,
1407
1412
  e
1408
- ), console.log("ANIM: DEBUGGING: animated camera in scene");
1413
+ );
1414
+ this.currentCameraAnimationPromise.then(() => {
1415
+ this.currentCameraAnimationPromise = t();
1416
+ });
1409
1417
  }
1410
1418
  getCameraPose() {
1411
1419
  if (this.scene && this.camera)
@@ -1433,18 +1441,19 @@ class Kt {
1433
1441
  throw new Error(
1434
1442
  "No views attached, camera state requires a view to attach controls onto."
1435
1443
  );
1436
- e === S.Orbit ? this.reattachControls(this.engine.views[0].target, 2) : this.reattachControls(this.engine.views[0].target, 0);
1444
+ e === I.Orbit ? this.reattachControls(this.engine.views[0].target, 2) : this.reattachControls(this.engine.views[0].target, 0);
1437
1445
  }
1438
1446
  animateToLastCameraFocus() {
1439
- return new Promise((e) => {
1440
- const t = () => {
1441
- const i = this.configuration;
1447
+ const e = () => new Promise((t) => {
1448
+ const i = () => {
1449
+ const r = this.configuration;
1442
1450
  this.camera.rerunFramingBehavior(() => {
1443
- this.focusLostNotified = !1, i.camera.limits.min.radius && (this.camera.lowerRadiusLimit = i.camera.limits.min.radius), i.camera.limits.max.radius && (this.camera.upperRadiusLimit = i.camera.limits.max.radius), e();
1451
+ this.focusLostNotified = !1, r.camera.limits.min.radius && (this.camera.lowerRadiusLimit = r.camera.limits.min.radius), r.camera.limits.max.radius && (this.camera.upperRadiusLimit = r.camera.limits.max.radius), t();
1444
1452
  });
1445
1453
  };
1446
- this.scene.onAfterRenderObservable.addOnce(t);
1454
+ this.scene.onAfterRenderObservable.addOnce(i);
1447
1455
  });
1456
+ return this.currentCameraAnimationPromise.then(() => (this.currentCameraAnimationPromise = e(), this.currentCameraAnimationPromise));
1448
1457
  }
1449
1458
  setAutoRotation(e) {
1450
1459
  !this.configuration.camera.autoRotation.enabled || !this.camera || (e ? this.camera.enableAutoRotationBehavior(
@@ -1466,9 +1475,9 @@ class Kt {
1466
1475
  this.scene
1467
1476
  );
1468
1477
  try {
1469
- const a = t.latDeg * Math.PI / 180, o = t.lonDeg * Math.PI / 180;
1470
- i.target = t.target ? new m(t.target.x, t.target.y, t.target.z) : m.Zero(), i.alpha = o, i.beta = a, i.radius = t.radius || this.camera.radius, i.minZ = 0.01, this.scene.render();
1471
- const n = await xe.CreateScreenshotUsingRenderTargetAsync(
1478
+ const r = t.latDeg * Math.PI / 180, o = t.lonDeg * Math.PI / 180;
1479
+ i.target = t.target ? new m(t.target.x, t.target.y, t.target.z) : m.Zero(), i.alpha = o, i.beta = r, i.radius = t.radius || this.camera.radius, i.minZ = 0.01, this.scene.render();
1480
+ const a = await xe.CreateScreenshotUsingRenderTargetAsync(
1472
1481
  this.engine,
1473
1482
  i,
1474
1483
  e,
@@ -1476,7 +1485,7 @@ class Kt {
1476
1485
  2,
1477
1486
  !0
1478
1487
  );
1479
- return i.dispose(), n;
1488
+ return i.dispose(), a;
1480
1489
  } catch {
1481
1490
  throw i.isDisposed() || i.dispose(), new Error("Failed to render screenshot");
1482
1491
  }
@@ -1485,32 +1494,32 @@ class Kt {
1485
1494
  const e = this.configuration;
1486
1495
  if (!e)
1487
1496
  return !0;
1488
- const t = e.camera.limits.min.alpha, i = e.camera.limits.max.alpha, a = e.camera.limits.min.beta, o = e.camera.limits.max.beta;
1489
- if (t === void 0 || i === void 0 || a === void 0 || o === void 0)
1497
+ const t = e.camera.limits.min.alpha, i = e.camera.limits.max.alpha, r = e.camera.limits.min.beta, o = e.camera.limits.max.beta;
1498
+ if (t === void 0 || i === void 0 || r === void 0 || o === void 0)
1490
1499
  return !0;
1491
- const n = [t, i], r = [a, o], l = n.every((d) => d === t), c = r.every((d) => d === a);
1500
+ const a = [t, i], n = [r, o], l = a.every((d) => d === t), c = n.every((d) => d === r);
1492
1501
  return !l && !c;
1493
1502
  }
1494
1503
  fireResizeEvent() {
1495
1504
  this.getNumViewports() > 0 && this.engine.resize();
1496
1505
  }
1497
1506
  setHighlights(e, t) {
1498
- var a;
1499
- e.length === 0 && ((a = this.highlightLayer) == null || a.dispose(), this.highlightLayer = void 0), this.highlightLayer || (this.highlightLayer = new ye("highlights", this.scene, {
1507
+ var r;
1508
+ e.length === 0 && ((r = this.highlightLayer) == null || r.dispose(), this.highlightLayer = void 0), this.highlightLayer || (this.highlightLayer = new ye("highlights", this.scene, {
1500
1509
  isStroke: !0,
1501
1510
  blurVerticalSize: 0.85,
1502
1511
  blurHorizontalSize: 0.85
1503
1512
  }), this.highlightLayer.innerGlow = !0, this.highlightLayer.outerGlow = !1), this.highlightLayer.removeAllMeshes();
1504
1513
  const i = t ? new w(t[0], t[1], t[2]).toLinearSpace() : void 0;
1505
1514
  e.forEach((o) => {
1506
- const n = this.scene.materials.find(
1507
- (r) => r.name === o.name && r.id === o.id
1515
+ const a = this.scene.materials.find(
1516
+ (n) => n.name === o.name && n.id === o.id
1508
1517
  );
1509
- n && n.getBindedMeshes().forEach(
1510
- (r) => {
1518
+ a && a.getBindedMeshes().forEach(
1519
+ (n) => {
1511
1520
  var l;
1512
1521
  return (l = this.highlightLayer) == null ? void 0 : l.addMesh(
1513
- r,
1522
+ n,
1514
1523
  i || w.FromHexString("#fcba03")
1515
1524
  );
1516
1525
  }
@@ -1529,9 +1538,9 @@ class Kt {
1529
1538
  progressHandler: t
1530
1539
  });
1531
1540
  return i.getInitializationPromise().then(() => {
1532
- this.modelContainers.size <= 1 && this.camera.rerunFramingBehavior(void 0, 1), We(this.scene), this.queuedCameraAnimation && (this.executeCameraAnimation(this.queuedCameraAnimation), this.queuedCameraAnimation = void 0);
1533
- }), this.configuration.highlights.enabled && (i.registerMaterialSelectedCallback((a) => {
1534
- this.setHighlights([a]);
1541
+ this.modelContainers.size <= 1 && this.camera.rerunFramingBehavior(void 0, 1), Ue(this.scene), this.queuedCameraAnimation && (this.executeCameraAnimation(this.queuedCameraAnimation), this.queuedCameraAnimation = void 0);
1542
+ }), this.configuration.highlights.enabled && (i.registerMaterialSelectedCallback((r) => {
1543
+ this.setHighlights([r]);
1535
1544
  }), i.registerMaterialDeselectedCallback(() => {
1536
1545
  this.setHighlights([]);
1537
1546
  })), this.modelContainers.set(i.getId(), i), this.triggerModelLoadEvent({
@@ -1554,7 +1563,7 @@ class Kt {
1554
1563
  }
1555
1564
  unregisterPlugin(e) {
1556
1565
  const t = this.plugins.indexOf(e);
1557
- t > -1 && this.plugins.splice(t, 1).forEach((a) => a.dispose(!1));
1566
+ t > -1 && this.plugins.splice(t, 1).forEach((r) => r.dispose(!1));
1558
1567
  }
1559
1568
  getGlowLayerManager() {
1560
1569
  return this.glowLayerManager;
@@ -1572,28 +1581,28 @@ class Kt {
1572
1581
  * Flips a transform around the origin.
1573
1582
  */
1574
1583
  flipTransform(e, t, i) {
1575
- const a = ne.Compose(
1584
+ const r = se.Compose(
1576
1585
  O(i || { x: 1, y: 1, z: 1 }),
1577
1586
  y.FromEulerVector(
1578
1587
  O(t || { x: 0, y: 0, z: 0 })
1579
1588
  ),
1580
1589
  O(e || { x: 0, y: 0, z: 0 })
1581
- ), o = ne.RotationAxis(m.Up(), Math.PI), n = a.multiply(o), r = m.Zero(), l = y.Identity(), c = m.Zero();
1582
- return n.decompose(c, l, r), l.multiplyInPlace(y.FromEulerAngles(0, Math.PI, 0)), {
1583
- position: L(r),
1590
+ ), o = se.RotationAxis(m.Up(), Math.PI), a = r.multiply(o), n = m.Zero(), l = y.Identity(), c = m.Zero();
1591
+ return a.decompose(c, l, n), l.multiplyInPlace(y.FromEulerAngles(0, Math.PI, 0)), {
1592
+ position: L(n),
1584
1593
  rotation: L(l.toEulerAngles()),
1585
1594
  scale: L(c)
1586
1595
  };
1587
1596
  }
1588
1597
  updatePreviewOptions(e) {
1589
- var a;
1590
- const t = new le(e);
1598
+ var r;
1599
+ const t = new oe(e);
1591
1600
  this.configuration.highlights.enabled !== t.highlights.enabled && this.engine.setStencilBuffer(t.highlights.enabled), this.scene.clearColor = t.scene.clearColor;
1592
1601
  let i = this.scene.environmentTexture;
1593
- this.configuration.scene.environment.file !== t.scene.environment.file && (i = ie.CreateFromPrefilteredData(
1602
+ this.configuration.scene.environment.file !== t.scene.environment.file && (i = te.CreateFromPrefilteredData(
1594
1603
  t.scene.environment.file,
1595
1604
  this.scene
1596
- ), i.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = i), i.rotationY = t.scene.environment.rotationY, this.scene.environmentIntensity = t.scene.environment.intensity, (a = t.options) != null && a.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1605
+ ), i.rotationY = this.configuration.scene.environment.rotationY, this.scene.environmentTexture = i), i.rotationY = t.scene.environment.rotationY, this.scene.environmentIntensity = t.scene.environment.intensity, (r = t.options) != null && r.renderingPipelineConfiguration ? this.renderingPipeline.setConfiguration(
1597
1606
  t.options.renderingPipelineConfiguration
1598
1607
  ) : (this.scene.imageProcessingConfiguration.exposure = t.lighting.exposure, this.scene.imageProcessingConfiguration.contrast = t.lighting.contrast), this.glowLayerManager.setIntensity(t.emissiveGlowIntensity), this.configuration = t;
1599
1608
  }
@@ -1612,10 +1621,10 @@ class Kt {
1612
1621
  }
1613
1622
  }
1614
1623
  export {
1615
- F as MaterialEffectMode,
1616
- S as ProductCameraRig,
1617
- ze as REFLECTION_PROBE_RESOLUTION,
1624
+ S as MaterialEffectMode,
1625
+ I as ProductCameraRig,
1626
+ Ge as REFLECTION_PROBE_RESOLUTION,
1618
1627
  x as RenderingConfiguration,
1619
- Kt as SpiffCommerce3DPreviewService,
1628
+ Wt as SpiffCommerce3DPreviewService,
1620
1629
  h as renderingPipelineDefaults
1621
1630
  };