@planara/core 2.3.2 → 2.4.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.es.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import "reflect-metadata";
2
2
  import * as l from "three";
3
- import { Controls as yt, Vector3 as c, Quaternion as O, Raycaster as Ct, Object3D as Te, MeshBasicMaterial as bt, LineBasicMaterial as It, CylinderGeometry as S, BoxGeometry as M, BufferGeometry as Be, Float32BufferAttribute as Ke, Mesh as h, OctahedronGeometry as ue, Line as N, TorusGeometry as te, SphereGeometry as jt, Euler as Rt, Matrix4 as wt, PlaneGeometry as Ht, DoubleSide as kt, MOUSE as J, TOUCH as V, Spherical as Ve, Vector2 as L, Ray as Yt, Plane as Zt, MathUtils as Xt } from "three";
4
- import { FigureType as C, SelectMode as I, Figure as zt, DisplayMode as ae, ToolType as G, SceneMode as he } from "@planara/types";
5
- import { SymmetricAxesHelper as Nt, OrbitWithState as Ft } from "@planara/three";
6
- import { injectable as w, inject as u, injectAll as ve, container as Qt } from "tsyringe";
7
- import { EventEmitter as Ut } from "events";
8
- import { makeAutoObservable as Wt } from "mobx";
9
- const $t = {
3
+ import { Controls as yt, Vector3 as c, Quaternion as O, Raycaster as Ct, Object3D as xe, MeshBasicMaterial as bt, LineBasicMaterial as It, CylinderGeometry as S, BoxGeometry as M, BufferGeometry as Be, Float32BufferAttribute as Ke, Mesh as h, OctahedronGeometry as ue, Line as N, TorusGeometry as te, SphereGeometry as jt, Euler as Rt, Matrix4 as wt, PlaneGeometry as Ht, DoubleSide as kt, MOUSE as J, TOUCH as V, Spherical as Ve, Vector2 as L, Ray as Yt, Plane as Zt, MathUtils as zt } from "three";
4
+ import { FigureType as C, SelectMode as I, Figure as Xt, DisplayMode as ae, ToolType as G, SceneMode as he } from "@planara/types";
5
+ import { SymmetricAxesHelper as Nt, OrbitWithState as Ft, CameraAxesGizmo as Qt } from "@planara/three";
6
+ import { injectable as w, inject as u, injectAll as ve, container as Ut } from "tsyringe";
7
+ import { EventEmitter as Wt } from "events";
8
+ import { makeAutoObservable as $t } from "mobx";
9
+ const Gt = {
10
10
  [C.Plane]: () => new l.PlaneGeometry(1, 1, 1, 1),
11
11
  [C.Cube]: () => new l.BoxGeometry(1, 1, 1, 1, 1, 1),
12
12
  [C.UVSphere]: () => new l.SphereGeometry(0.5, 32, 16),
@@ -177,7 +177,7 @@ const W = new Ct(), v = new c(), F = new c(), m = new O(), Je = {
177
177
  Y: new c(0, 1, 0),
178
178
  Z: new c(0, 0, 1)
179
179
  }, Me = { type: "change" }, et = { type: "mouseDown", mode: null }, tt = { type: "mouseUp", mode: null }, st = { type: "objectChange" };
180
- class Gt extends yt {
180
+ class qt extends yt {
181
181
  /**
182
182
  * Constructs a new controls instance.
183
183
  *
@@ -186,27 +186,27 @@ class Gt extends yt {
186
186
  */
187
187
  constructor(e, s = null) {
188
188
  super(void 0, s);
189
- const i = new es(this);
189
+ const i = new ts(this);
190
190
  this._root = i;
191
- const o = new ts();
191
+ const o = new ss();
192
192
  this._gizmo = o, i.add(o);
193
- const r = new ss();
193
+ const r = new is();
194
194
  this._plane = r, i.add(r);
195
195
  const n = this;
196
- function a(x, Q) {
196
+ function a(T, Q) {
197
197
  let B = Q;
198
- Object.defineProperty(n, x, {
198
+ Object.defineProperty(n, T, {
199
199
  get: function() {
200
200
  return B !== void 0 ? B : Q;
201
201
  },
202
202
  set: function(U) {
203
- B !== U && (B = U, r[x] = U, o[x] = U, n.dispatchEvent({ type: x + "-changed", value: U }), n.dispatchEvent(Me));
203
+ B !== U && (B = U, r[T] = U, o[T] = U, n.dispatchEvent({ type: T + "-changed", value: U }), n.dispatchEvent(Me));
204
204
  }
205
- }), n[x] = Q, r[x] = Q, o[x] = Q;
205
+ }), n[T] = Q, r[T] = Q, o[T] = Q;
206
206
  }
207
207
  a("camera", e), a("object", void 0), a("enabled", !0), a("axis", null), a("mode", "translate"), a("translationSnap", null), a("rotationSnap", null), a("scaleSnap", null), a("space", "world"), a("size", 1), a("dragging", !1), a("showX", !0), a("showY", !0), a("showZ", !0), a("minX", -1 / 0), a("maxX", 1 / 0), a("minY", -1 / 0), a("maxY", 1 / 0), a("minZ", -1 / 0), a("maxZ", 1 / 0);
208
- const d = new c(), g = new c(), b = new O(), H = new O(), T = new c(), q = new O(), le = new c(), k = new c(), Y = new c(), j = 0, Z = new c();
209
- a("worldPosition", d), a("worldPositionStart", g), a("worldQuaternion", b), a("worldQuaternionStart", H), a("cameraPosition", T), a("cameraQuaternion", q), a("pointStart", le), a("pointEnd", k), a("rotationAxis", Y), a("rotationAngle", j), a("eye", Z), this._offset = new c(), this._startNorm = new c(), this._endNorm = new c(), this._cameraScale = new c(), this._parentPosition = new c(), this._parentQuaternion = new O(), this._parentQuaternionInv = new O(), this._parentScale = new c(), this._worldScaleStart = new c(), this._worldQuaternionInv = new O(), this._worldScale = new c(), this._positionStart = new c(), this._quaternionStart = new O(), this._scaleStart = new c(), this._getPointer = qt.bind(this), this._onPointerDown = Kt.bind(this), this._onPointerHover = Bt.bind(this), this._onPointerMove = Vt.bind(this), this._onPointerUp = Jt.bind(this), s !== null && this.connect(s);
208
+ const d = new c(), g = new c(), b = new O(), H = new O(), x = new c(), q = new O(), le = new c(), k = new c(), Y = new c(), j = 0, Z = new c();
209
+ a("worldPosition", d), a("worldPositionStart", g), a("worldQuaternion", b), a("worldQuaternionStart", H), a("cameraPosition", x), a("cameraQuaternion", q), a("pointStart", le), a("pointEnd", k), a("rotationAxis", Y), a("rotationAngle", j), a("eye", Z), this._offset = new c(), this._startNorm = new c(), this._endNorm = new c(), this._cameraScale = new c(), this._parentPosition = new c(), this._parentQuaternion = new O(), this._parentQuaternionInv = new O(), this._parentScale = new c(), this._worldScaleStart = new c(), this._worldQuaternionInv = new O(), this._worldScale = new c(), this._positionStart = new c(), this._quaternionStart = new O(), this._scaleStart = new c(), this._getPointer = Bt.bind(this), this._onPointerDown = Vt.bind(this), this._onPointerHover = Kt.bind(this), this._onPointerMove = Jt.bind(this), this._onPointerUp = es.bind(this), s !== null && this.connect(s);
210
210
  }
211
211
  connect(e) {
212
212
  super.connect(e), this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointermove", this._onPointerHover), this.domElement.addEventListener("pointerup", this._onPointerUp), this.domElement.style.touchAction = "none";
@@ -368,7 +368,7 @@ class Gt extends yt {
368
368
  r.xAxis.color.set(e), r.yAxis.color.set(s), r.zAxis.color.set(i), r.active.color.set(o), r.xAxisTransparent.color.set(e), r.yAxisTransparent.color.set(s), r.zAxisTransparent.color.set(i), r.activeTransparent.color.set(o), r.xAxis._color && r.xAxis._color.set(e), r.yAxis._color && r.yAxis._color.set(s), r.zAxis._color && r.zAxis._color.set(i), r.active._color && r.active._color.set(o), r.xAxisTransparent._color && r.xAxisTransparent._color.set(e), r.yAxisTransparent._color && r.yAxisTransparent._color.set(s), r.zAxisTransparent._color && r.zAxisTransparent._color.set(i), r.activeTransparent._color && r.activeTransparent._color.set(o);
369
369
  }
370
370
  }
371
- function qt(t) {
371
+ function Bt(t) {
372
372
  if (this.domElement.ownerDocument.pointerLockElement)
373
373
  return {
374
374
  x: 0,
@@ -384,7 +384,7 @@ function qt(t) {
384
384
  };
385
385
  }
386
386
  }
387
- function Bt(t) {
387
+ function Kt(t) {
388
388
  if (this.enabled)
389
389
  switch (t.pointerType) {
390
390
  case "mouse":
@@ -393,13 +393,13 @@ function Bt(t) {
393
393
  break;
394
394
  }
395
395
  }
396
- function Kt(t) {
396
+ function Vt(t) {
397
397
  this.enabled && (document.pointerLockElement || this.domElement.setPointerCapture(t.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.pointerHover(this._getPointer(t)), this.pointerDown(this._getPointer(t)));
398
398
  }
399
- function Vt(t) {
399
+ function Jt(t) {
400
400
  this.enabled && this.pointerMove(this._getPointer(t));
401
401
  }
402
- function Jt(t) {
402
+ function es(t) {
403
403
  this.enabled && (this.domElement.releasePointerCapture(t.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.pointerUp(this._getPointer(t)));
404
404
  }
405
405
  function Pe(t, e, s) {
@@ -410,7 +410,7 @@ function Pe(t, e, s) {
410
410
  return !1;
411
411
  }
412
412
  const me = new Rt(), _ = new c(0, 1, 0), it = new c(0, 0, 0), ot = new wt(), fe = new O(), we = new O(), R = new c(), nt = new wt(), ne = new c(1, 0, 0), $ = new c(0, 1, 0), re = new c(0, 0, 1), ge = new c(), se = new c(), ie = new c();
413
- class es extends Te {
413
+ class ts extends xe {
414
414
  constructor(e) {
415
415
  super(), this.isTransformControlsRoot = !0, this.controls = e, this.visible = !1;
416
416
  }
@@ -425,7 +425,7 @@ class es extends Te {
425
425
  });
426
426
  }
427
427
  }
428
- class ts extends Te {
428
+ class ss extends xe {
429
429
  constructor() {
430
430
  super(), this.isTransformControlsGizmo = !0, this.type = "TransformControlsGizmo";
431
431
  const e = new bt({
@@ -458,8 +458,8 @@ class ts extends Te {
458
458
  b.color.setHex(255), b.opacity = 0.5;
459
459
  const H = e.clone();
460
460
  H.opacity = 0.25;
461
- const T = e.clone();
462
- T.color.setHex(16776960), T.opacity = 0.25;
461
+ const x = e.clone();
462
+ x.color.setHex(16776960), x.opacity = 0.25;
463
463
  const q = e.clone();
464
464
  q.color.setHex(16776960);
465
465
  const le = e.clone();
@@ -471,7 +471,7 @@ class ts extends Te {
471
471
  xAxisTransparent: d,
472
472
  yAxisTransparent: g,
473
473
  zAxisTransparent: b,
474
- activeTransparent: T
474
+ activeTransparent: x
475
475
  };
476
476
  const k = new S(0, 0.04, 0.1, 12);
477
477
  k.translate(0, 0.05, 0);
@@ -481,7 +481,7 @@ class ts extends Te {
481
481
  j.setAttribute("position", new Ke([0, 0, 0, 1, 0, 0], 3));
482
482
  const Z = new S(75e-4, 75e-4, 0.5, 3);
483
483
  Z.translate(0, 0.25, 0);
484
- function x(D, ce) {
484
+ function T(D, ce) {
485
485
  const A = new te(D, 75e-4, 3, 64, ce * Math.PI * 2);
486
486
  return A.rotateY(Math.PI / 2), A.rotateX(Math.PI / 2), A;
487
487
  }
@@ -563,25 +563,25 @@ class ts extends Te {
563
563
  ]
564
564
  }, Et = {
565
565
  XYZE: [
566
- [new h(x(0.5, 1), le), null, [0, Math.PI / 2, 0]]
566
+ [new h(T(0.5, 1), le), null, [0, Math.PI / 2, 0]]
567
567
  ],
568
568
  X: [
569
- [new h(x(0.5, 0.5), r)]
569
+ [new h(T(0.5, 0.5), r)]
570
570
  ],
571
571
  Y: [
572
- [new h(x(0.5, 0.5), n), null, [0, 0, -Math.PI / 2]]
572
+ [new h(T(0.5, 0.5), n), null, [0, 0, -Math.PI / 2]]
573
573
  ],
574
574
  Z: [
575
- [new h(x(0.5, 0.5), a), null, [0, Math.PI / 2, 0]]
575
+ [new h(T(0.5, 0.5), a), null, [0, Math.PI / 2, 0]]
576
576
  ],
577
577
  E: [
578
- [new h(x(0.75, 1), T), null, [0, Math.PI / 2, 0]]
578
+ [new h(T(0.75, 1), x), null, [0, Math.PI / 2, 0]]
579
579
  ]
580
- }, Tt = {
580
+ }, xt = {
581
581
  AXIS: [
582
582
  [new N(j, o), [-1e3, 0, 0], null, [1e6, 1, 1], "helper"]
583
583
  ]
584
- }, xt = {
584
+ }, Tt = {
585
585
  XYZE: [
586
586
  [new h(new jt(0.25, 10, 8), i)]
587
587
  ],
@@ -661,8 +661,8 @@ class ts extends Te {
661
661
  [new N(j, o), [0, 0, -1e3], [0, -Math.PI / 2, 0], [1e6, 1, 1], "helper"]
662
662
  ]
663
663
  };
664
- function X(D) {
665
- const ce = new Te();
664
+ function z(D) {
665
+ const ce = new xe();
666
666
  for (const A in D)
667
667
  for (let K = D[A].length; K--; ) {
668
668
  const P = D[A][K][0].clone(), de = D[A][K][1], pe = D[A][K][2], _e = D[A][K][3], Lt = D[A][K][4];
@@ -672,7 +672,7 @@ class ts extends Te {
672
672
  }
673
673
  return ce;
674
674
  }
675
- this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = X(B)), this.add(this.gizmo.rotate = X(Et)), this.add(this.gizmo.scale = X(Dt)), this.add(this.picker.translate = X(U)), this.add(this.picker.rotate = X(xt)), this.add(this.picker.scale = X(Ot)), this.add(this.helper.translate = X(St)), this.add(this.helper.rotate = X(Tt)), this.add(this.helper.scale = X(At)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;
675
+ this.gizmo = {}, this.picker = {}, this.helper = {}, this.add(this.gizmo.translate = z(B)), this.add(this.gizmo.rotate = z(Et)), this.add(this.gizmo.scale = z(Dt)), this.add(this.picker.translate = z(U)), this.add(this.picker.rotate = z(Tt)), this.add(this.picker.scale = z(Ot)), this.add(this.helper.translate = z(St)), this.add(this.helper.rotate = z(xt)), this.add(this.helper.scale = z(At)), this.picker.translate.visible = !1, this.picker.rotate.visible = !1, this.picker.scale.visible = !1;
676
676
  }
677
677
  // updateMatrixWorld will update transformations and appearance of individual handles
678
678
  updateMatrixWorld(e) {
@@ -695,7 +695,7 @@ class ts extends Te {
695
695
  super.updateMatrixWorld(e);
696
696
  }
697
697
  }
698
- class ss extends h {
698
+ class is extends h {
699
699
  constructor() {
700
700
  super(
701
701
  new Ht(1e5, 1e5, 2, 2),
@@ -739,15 +739,15 @@ class ss extends h {
739
739
  R.length() === 0 ? this.quaternion.copy(this.cameraQuaternion) : (nt.lookAt(v.set(0, 0, 0), R, _), this.quaternion.setFromRotationMatrix(nt)), super.updateMatrixWorld(e);
740
740
  }
741
741
  }
742
- var is = Object.getOwnPropertyDescriptor, os = (t, e, s, i) => {
743
- for (var o = i > 1 ? void 0 : i ? is(e, s) : e, r = t.length - 1, n; r >= 0; r--)
742
+ var os = Object.getOwnPropertyDescriptor, ns = (t, e, s, i) => {
743
+ for (var o = i > 1 ? void 0 : i ? os(e, s) : e, r = t.length - 1, n; r >= 0; r--)
744
744
  (n = t[r]) && (o = n(o) || o);
745
745
  return o;
746
746
  };
747
- let xe = class {
747
+ let Te = class {
748
748
  _emitter;
749
749
  constructor() {
750
- this._emitter = new Ut();
750
+ this._emitter = new Wt();
751
751
  }
752
752
  /** Публикация события */
753
753
  emit(t, e) {
@@ -762,13 +762,13 @@ let xe = class {
762
762
  this._emitter.off(t, e);
763
763
  }
764
764
  };
765
- xe = os([
765
+ Te = ns([
766
766
  w()
767
- ], xe);
767
+ ], Te);
768
768
  var ee = /* @__PURE__ */ ((t) => (t.SelectHover = "select.hover", t.SelectClick = "select.click", t.ToolSelect = "tool.select", t))(ee || {});
769
- const ns = 0.03, rs = 10;
770
- var as = Object.getOwnPropertyDescriptor, hs = (t, e, s, i) => {
771
- for (var o = i > 1 ? void 0 : i ? as(e, s) : e, r = t.length - 1, n; r >= 0; r--)
769
+ const rs = 0.03, as = 10;
770
+ var hs = Object.getOwnPropertyDescriptor, ls = (t, e, s, i) => {
771
+ for (var o = i > 1 ? void 0 : i ? hs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
772
772
  (n = t[r]) && (o = n(o) || o);
773
773
  return o;
774
774
  }, rt = (t, e) => (s, i) => e(s, i, t);
@@ -778,7 +778,12 @@ let De = class extends Mt {
778
778
  const s = new l.GridHelper(10, 10);
779
779
  s.position.y = -1e-3, this.scene.add(s);
780
780
  const i = new Nt(6);
781
- this.scene.add(i), this._orbit = new Ft(this.camera, this.renderer.domElement), this._orbit.enableDamping = !0, this._orbit.dampingFactor = 0.05, this._raycaster = new l.Raycaster(), this._mouse = new l.Vector2(), this.scene.add(new l.HemisphereLight(16777215, 4473924, 0.6)), this.camera.layers.enable(0), this.camera.layers.enable(1), this._transform = new Gt(this.camera, this.renderer.domElement), this._transformHelper = this._transform.getHelper(), this.scene.add(this._transformHelper), this._isEventListenersAdded || this._initMouseListeners();
781
+ this.scene.add(i), this._orbit = new Ft(this.camera, this.renderer.domElement), this._orbit.enableDamping = !0, this._orbit.dampingFactor = 0.05, this._cameraGizmo = new Qt(this.renderer, this.camera, {
782
+ size: 96,
783
+ // Размер квадрата
784
+ margin: 36
785
+ // Отступы по сторонам (снизу и справа)
786
+ }), this._raycaster = new l.Raycaster(), this._mouse = new l.Vector2(), this.scene.add(new l.HemisphereLight(16777215, 4473924, 0.6)), this.camera.layers.enable(0), this.camera.layers.enable(1), this._transform = new qt(this.camera, this.renderer.domElement), this._transformHelper = this._transform.getHelper(), this.scene.add(this._transformHelper), this._isEventListenersAdded || this._initMouseListeners();
782
787
  }
783
788
  /** Orbit-контроллер для управления камерой */
784
789
  _orbit;
@@ -796,6 +801,8 @@ let De = class extends Mt {
796
801
  * необходима для отправки только уникальных событий в event bus
797
802
  */
798
803
  _lastHovered = null;
804
+ /** Gizmo для управления отображением perspective camera */
805
+ _cameraGizmo;
799
806
  /**
800
807
  * Обновление состояния рендерера.
801
808
  */
@@ -847,10 +854,10 @@ let De = class extends Mt {
847
854
  e.layers.set(0);
848
855
  break;
849
856
  case I.Edge:
850
- e.layers.set(1), e.params.Line.threshold = ns;
857
+ e.layers.set(1), e.params.Line.threshold = rs;
851
858
  break;
852
859
  case I.Vertex:
853
- e.layers.set(2), e.params.Points.threshold = rs;
860
+ e.layers.set(2), e.params.Points.threshold = as;
854
861
  break;
855
862
  }
856
863
  }
@@ -859,6 +866,9 @@ let De = class extends Mt {
859
866
  this._orbit.enabled = !this._transform.dragging;
860
867
  }), this._isEventListenersAdded = !1), this._orbit?.dispose(), this._transform?.dispose(), this._transformHelper?.parent && this._transformHelper.parent.remove(this._transformHelper), this._lastHovered = null, super.dispose();
861
868
  }
869
+ render() {
870
+ super.render(), this._cameraGizmo.render(this.canvas.width, this.canvas.height);
871
+ }
862
872
  /** Инициализация обработчиков событий на hover/click */
863
873
  _initMouseListeners() {
864
874
  this.canvas.addEventListener("mousemove", this._handleMouseMove, !1), this.canvas.addEventListener("click", this._handleMouseClick, !1), this.canvas.addEventListener("pointerdown", (t) => this._transform.pointerDown(t)), this.canvas.addEventListener("pointermove", (t) => this._transform.pointerMove(t)), this.canvas.addEventListener("pointerup", (t) => this._transform.pointerUp(t)), this.canvas.addEventListener("pointerleave", () => this._transform.pointerHover(null)), this._transform.addEventListener("dragging-changed", () => {
@@ -882,12 +892,12 @@ let De = class extends Mt {
882
892
  s ? n !== this._lastHovered && (this.meshes.forEach((a) => a.userData.isHit = !1), n && (n.userData.isHit = !0), this._lastHovered = n, this._bus.emit(e, r ? { intersection: r } : null)) : this._bus.emit(e, r ? { intersection: r } : null);
883
893
  }
884
894
  };
885
- De = hs([
895
+ De = ls([
886
896
  w(),
887
897
  rt(0, u("Canvas")),
888
898
  rt(1, u("EventBus"))
889
899
  ], De);
890
- const at = { type: "change" }, Ue = { type: "start" }, Pt = { type: "end" }, ye = new Yt(), ht = new Zt(), ls = Math.cos(70 * Xt.DEG2RAD), y = new c(), E = 2 * Math.PI, p = {
900
+ const at = { type: "change" }, Ue = { type: "start" }, Pt = { type: "end" }, ye = new Yt(), ht = new Zt(), cs = Math.cos(70 * zt.DEG2RAD), y = new c(), E = 2 * Math.PI, p = {
891
901
  NONE: -1,
892
902
  ROTATE: 0,
893
903
  DOLLY: 1,
@@ -897,7 +907,7 @@ const at = { type: "change" }, Ue = { type: "start" }, Pt = { type: "end" }, ye
897
907
  TOUCH_DOLLY_PAN: 5,
898
908
  TOUCH_DOLLY_ROTATE: 6
899
909
  }, Se = 1e-6;
900
- class cs extends yt {
910
+ class ds extends yt {
901
911
  /**
902
912
  * Constructs a new controls instance.
903
913
  *
@@ -905,7 +915,7 @@ class cs extends yt {
905
915
  * @param {?HTMLElement} domElement - The HTML element used for event listeners.
906
916
  */
907
917
  constructor(e, s = null) {
908
- super(e, s), this.state = p.NONE, this.target = new c(), this.cursor = new c(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: J.ROTATE, MIDDLE: J.DOLLY, RIGHT: J.PAN }, this.touches = { ONE: V.ROTATE, TWO: V.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new c(), this._lastQuaternion = new O(), this._lastTargetPosition = new c(), this._quat = new O().setFromUnitVectors(e.up, new c(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new Ve(), this._sphericalDelta = new Ve(), this._scale = 1, this._panOffset = new c(), this._rotateStart = new L(), this._rotateEnd = new L(), this._rotateDelta = new L(), this._panStart = new L(), this._panEnd = new L(), this._panDelta = new L(), this._dollyStart = new L(), this._dollyEnd = new L(), this._dollyDelta = new L(), this._dollyDirection = new c(), this._mouse = new L(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = ps.bind(this), this._onPointerDown = ds.bind(this), this._onPointerUp = _s.bind(this), this._onContextMenu = ws.bind(this), this._onMouseWheel = fs.bind(this), this._onKeyDown = gs.bind(this), this._onTouchStart = ys.bind(this), this._onTouchMove = bs.bind(this), this._onMouseDown = us.bind(this), this._onMouseMove = ms.bind(this), this._interceptControlDown = vs.bind(this), this._interceptControlUp = Ms.bind(this), this.domElement !== null && this.connect(this.domElement), this.update();
918
+ super(e, s), this.state = p.NONE, this.target = new c(), this.cursor = new c(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: J.ROTATE, MIDDLE: J.DOLLY, RIGHT: J.PAN }, this.touches = { ONE: V.ROTATE, TWO: V.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new c(), this._lastQuaternion = new O(), this._lastTargetPosition = new c(), this._quat = new O().setFromUnitVectors(e.up, new c(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new Ve(), this._sphericalDelta = new Ve(), this._scale = 1, this._panOffset = new c(), this._rotateStart = new L(), this._rotateEnd = new L(), this._rotateDelta = new L(), this._panStart = new L(), this._panEnd = new L(), this._panDelta = new L(), this._dollyStart = new L(), this._dollyEnd = new L(), this._dollyDelta = new L(), this._dollyDirection = new c(), this._mouse = new L(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = _s.bind(this), this._onPointerDown = ps.bind(this), this._onPointerUp = us.bind(this), this._onContextMenu = vs.bind(this), this._onMouseWheel = gs.bind(this), this._onKeyDown = ys.bind(this), this._onTouchStart = bs.bind(this), this._onTouchMove = ws.bind(this), this._onMouseDown = ms.bind(this), this._onMouseMove = fs.bind(this), this._interceptControlDown = Ms.bind(this), this._interceptControlUp = Ps.bind(this), this.domElement !== null && this.connect(this.domElement), this.update();
909
919
  }
910
920
  connect(e) {
911
921
  super.connect(e), this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
@@ -996,7 +1006,7 @@ class cs extends yt {
996
1006
  g.unproject(this.object), this.object.position.sub(g).add(a), this.object.updateMatrixWorld(), n = y.length();
997
1007
  } else
998
1008
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
999
- n !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(n).add(this.object.position) : (ye.origin.copy(this.object.position), ye.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(ye.direction)) < ls ? this.object.lookAt(this.target) : (ht.setFromNormalAndCoplanarPoint(this.object.up, this.target), ye.intersectPlane(ht, this.target))));
1009
+ n !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(n).add(this.object.position) : (ye.origin.copy(this.object.position), ye.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(ye.direction)) < cs ? this.object.lookAt(this.target) : (ht.setFromNormalAndCoplanarPoint(this.object.up, this.target), ye.intersectPlane(ht, this.target))));
1000
1010
  } else if (this.object.isOrthographicCamera) {
1001
1011
  const n = this.object.zoom;
1002
1012
  this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), n !== this.object.zoom && (this.object.updateProjectionMatrix(), r = !0);
@@ -1193,13 +1203,13 @@ class cs extends yt {
1193
1203
  return e.ctrlKey && !this._controlActive && (i.deltaY *= 10), i;
1194
1204
  }
1195
1205
  }
1196
- function ds(t) {
1206
+ function ps(t) {
1197
1207
  this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(t.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(t) && (this._addPointer(t), t.pointerType === "touch" ? this._onTouchStart(t) : this._onMouseDown(t)));
1198
1208
  }
1199
- function ps(t) {
1209
+ function _s(t) {
1200
1210
  this.enabled !== !1 && (t.pointerType === "touch" ? this._onTouchMove(t) : this._onMouseMove(t));
1201
1211
  }
1202
- function _s(t) {
1212
+ function us(t) {
1203
1213
  switch (this._removePointer(t), this._pointers.length) {
1204
1214
  case 0:
1205
1215
  this.domElement.releasePointerCapture(t.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(Pt), this.state = p.NONE;
@@ -1210,7 +1220,7 @@ function _s(t) {
1210
1220
  break;
1211
1221
  }
1212
1222
  }
1213
- function us(t) {
1223
+ function ms(t) {
1214
1224
  let e;
1215
1225
  switch (t.button) {
1216
1226
  case 0:
@@ -1253,7 +1263,7 @@ function us(t) {
1253
1263
  }
1254
1264
  this.state !== p.NONE && this.dispatchEvent(Ue);
1255
1265
  }
1256
- function ms(t) {
1266
+ function fs(t) {
1257
1267
  switch (this.state) {
1258
1268
  case p.ROTATE:
1259
1269
  if (this.enableRotate === !1) return;
@@ -1269,13 +1279,13 @@ function ms(t) {
1269
1279
  break;
1270
1280
  }
1271
1281
  }
1272
- function fs(t) {
1282
+ function gs(t) {
1273
1283
  this.enabled === !1 || this.enableZoom === !1 || this.state !== p.NONE || (t.preventDefault(), this.dispatchEvent(Ue), this._handleMouseWheel(this._customWheelEvent(t)), this.dispatchEvent(Pt));
1274
1284
  }
1275
- function gs(t) {
1285
+ function ys(t) {
1276
1286
  this.enabled !== !1 && this._handleKeyDown(t);
1277
1287
  }
1278
- function ys(t) {
1288
+ function bs(t) {
1279
1289
  switch (this._trackPointer(t), this._pointers.length) {
1280
1290
  case 1:
1281
1291
  switch (this.touches.ONE) {
@@ -1310,7 +1320,7 @@ function ys(t) {
1310
1320
  }
1311
1321
  this.state !== p.NONE && this.dispatchEvent(Ue);
1312
1322
  }
1313
- function bs(t) {
1323
+ function ws(t) {
1314
1324
  switch (this._trackPointer(t), this.state) {
1315
1325
  case p.TOUCH_ROTATE:
1316
1326
  if (this.enableRotate === !1) return;
@@ -1332,20 +1342,20 @@ function bs(t) {
1332
1342
  this.state = p.NONE;
1333
1343
  }
1334
1344
  }
1335
- function ws(t) {
1345
+ function vs(t) {
1336
1346
  this.enabled !== !1 && t.preventDefault();
1337
1347
  }
1338
- function vs(t) {
1348
+ function Ms(t) {
1339
1349
  t.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
1340
1350
  }
1341
- function Ms(t) {
1351
+ function Ps(t) {
1342
1352
  t.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
1343
1353
  }
1344
- class fi extends Mt {
1354
+ class gi extends Mt {
1345
1355
  /** Orbit-контроллер для управления камерой */
1346
1356
  _orbit;
1347
1357
  constructor(e) {
1348
- super(e), this.camera.position.set(1, 1, 7), this.camera.lookAt(0, 0, 0), this._orbit = new cs(this.camera, this.canvas), this._orbit.target.set(0, 0, 0), this._orbit.minPolarAngle = Math.PI / 2, this._orbit.maxPolarAngle = Math.PI / 2, this._orbit.enableRotate = !0, this._orbit.enableZoom = !1, this._orbit.enablePan = !1;
1358
+ super(e), this.camera.position.set(1, 1, 7), this.camera.lookAt(0, 0, 0), this._orbit = new ds(this.camera, this.canvas), this._orbit.target.set(0, 0, 0), this._orbit.minPolarAngle = Math.PI / 2, this._orbit.maxPolarAngle = Math.PI / 2, this._orbit.enableRotate = !0, this._orbit.enableZoom = !1, this._orbit.enablePan = !1;
1349
1359
  }
1350
1360
  /**
1351
1361
  * Обновление состояния рендерера.
@@ -1354,7 +1364,7 @@ class fi extends Mt {
1354
1364
  this._orbit?.update();
1355
1365
  }
1356
1366
  }
1357
- class gi {
1367
+ class yi {
1358
1368
  /** Позиции вершин */
1359
1369
  _positions = [];
1360
1370
  /** Нормали вершин */
@@ -1396,7 +1406,7 @@ class gi {
1396
1406
  ...this._normals.length > 0 && { normal: this._normals },
1397
1407
  ...this._uvs.length > 0 && { uv: this._uvs }
1398
1408
  };
1399
- return new zt(i);
1409
+ return new Xt(i);
1400
1410
  }
1401
1411
  /**
1402
1412
  * Обрабатывает строку face (f) и разворачивает индексы в массивы для рендеринга
@@ -1421,8 +1431,8 @@ class gi {
1421
1431
  }
1422
1432
  }
1423
1433
  }
1424
- var Ps = Object.getOwnPropertyDescriptor, Ss = (t, e, s, i) => {
1425
- for (var o = i > 1 ? void 0 : i ? Ps(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1434
+ var Ss = Object.getOwnPropertyDescriptor, Es = (t, e, s, i) => {
1435
+ for (var o = i > 1 ? void 0 : i ? Ss(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1426
1436
  (n = t[r]) && (o = n(o) || o);
1427
1437
  return o;
1428
1438
  }, lt = (t, e) => (s, i) => e(s, i, t);
@@ -1443,13 +1453,13 @@ let Oe = class {
1443
1453
  this._handlers && this._handlers.clear(), this._currentMode = ae.Plane, this._store.setDisplayMode(this._currentMode);
1444
1454
  }
1445
1455
  };
1446
- Oe = Ss([
1456
+ Oe = Es([
1447
1457
  w(),
1448
1458
  lt(0, ve("IDisplayHandler")),
1449
1459
  lt(1, u("IEditorStore"))
1450
1460
  ], Oe);
1451
- var z = /* @__PURE__ */ ((t) => (t.Hover = "hover", t.Click = "click", t))(z || {}), Es = Object.getOwnPropertyDescriptor, Ts = (t, e, s, i) => {
1452
- for (var o = i > 1 ? void 0 : i ? Es(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1461
+ var X = /* @__PURE__ */ ((t) => (t.Hover = "hover", t.Click = "click", t))(X || {}), xs = Object.getOwnPropertyDescriptor, Ts = (t, e, s, i) => {
1462
+ for (var o = i > 1 ? void 0 : i ? xs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1453
1463
  (n = t[r]) && (o = n(o) || o);
1454
1464
  return o;
1455
1465
  }, Ee = (t, e) => (s, i) => e(s, i, t);
@@ -1467,11 +1477,11 @@ let Ae = class {
1467
1477
  }
1468
1478
  /** Обработчик события наведения на модель */
1469
1479
  _onHover = (t) => {
1470
- this._handlers.get(this._currentMode)?.handle(t, z.Hover);
1480
+ this._handlers.get(this._currentMode)?.handle(t, X.Hover);
1471
1481
  };
1472
1482
  /** Обработчик события клика на модель */
1473
1483
  _onClick = (t) => {
1474
- this._handlers.get(this._currentMode)?.handle(t, z.Click);
1484
+ this._handlers.get(this._currentMode)?.handle(t, X.Click);
1475
1485
  };
1476
1486
  /** Освобождает ресурсы менеджера. */
1477
1487
  dispose() {
@@ -1484,8 +1494,8 @@ Ae = Ts([
1484
1494
  Ee(1, ve("ISelectHandler")),
1485
1495
  Ee(2, u("IEditorStore"))
1486
1496
  ], Ae);
1487
- var xs = Object.getOwnPropertyDescriptor, Ds = (t, e, s, i) => {
1488
- for (var o = i > 1 ? void 0 : i ? xs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1497
+ var Ds = Object.getOwnPropertyDescriptor, Os = (t, e, s, i) => {
1498
+ for (var o = i > 1 ? void 0 : i ? Ds(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1489
1499
  (n = t[r]) && (o = n(o) || o);
1490
1500
  return o;
1491
1501
  }, ct = (t, e) => (s, i) => e(s, i, t);
@@ -1508,16 +1518,16 @@ let Le = class {
1508
1518
  this._unsubSelected?.(), this._handlers && this._handlers.clear(), this._currentTool = G.Translate, this._store.setToolType(this._currentTool);
1509
1519
  }
1510
1520
  };
1511
- Le = Ds([
1521
+ Le = Os([
1512
1522
  w(),
1513
1523
  ct(0, ve("IToolHandler")),
1514
1524
  ct(1, u("IEditorStore"))
1515
1525
  ], Le);
1516
- var Os = Object.getOwnPropertyDescriptor, As = (t, e, s, i) => {
1517
- for (var o = i > 1 ? void 0 : i ? Os(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1526
+ var As = Object.getOwnPropertyDescriptor, Ls = (t, e, s, i) => {
1527
+ for (var o = i > 1 ? void 0 : i ? As(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1518
1528
  (n = t[r]) && (o = n(o) || o);
1519
1529
  return o;
1520
- }, Ls = (t, e) => (s, i) => e(s, i, t);
1530
+ }, Cs = (t, e) => (s, i) => e(s, i, t);
1521
1531
  let Ce = class {
1522
1532
  /** Текущий режим редактирования сцены */
1523
1533
  _currentMode = he.AddFigure;
@@ -1535,15 +1545,15 @@ let Ce = class {
1535
1545
  this._handlers && this._handlers.clear(), this._currentMode = he.AddFigure;
1536
1546
  }
1537
1547
  };
1538
- Ce = As([
1548
+ Ce = Ls([
1539
1549
  w(),
1540
- Ls(0, ve("ISceneHandler"))
1550
+ Cs(0, ve("ISceneHandler"))
1541
1551
  ], Ce);
1542
- var Cs = Object.getOwnPropertyDescriptor, Is = (t, e, s, i) => {
1543
- for (var o = i > 1 ? void 0 : i ? Cs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1552
+ var Is = Object.getOwnPropertyDescriptor, js = (t, e, s, i) => {
1553
+ for (var o = i > 1 ? void 0 : i ? Is(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1544
1554
  (n = t[r]) && (o = n(o) || o);
1545
1555
  return o;
1546
- }, js = (t, e) => (s, i) => e(s, i, t);
1556
+ }, Rs = (t, e) => (s, i) => e(s, i, t);
1547
1557
  let Ie = class {
1548
1558
  constructor(t) {
1549
1559
  this._api = t;
@@ -1600,13 +1610,13 @@ let Ie = class {
1600
1610
  "wireframe" in e && !this._prevWireframe.has(t) && (this._prevWireframe.set(t, !!e.wireframe), e.wireframe = !0, t.needsUpdate = !0), e.color?.isColor && (this._prevColorMesh.has(t) || this._prevColorMesh.set(t, e.color.clone()), e.color.copy(this._wireColor));
1601
1611
  }
1602
1612
  };
1603
- Ie = Is([
1613
+ Ie = js([
1604
1614
  w(),
1605
- js(0, u("RendererApi"))
1615
+ Rs(0, u("RendererApi"))
1606
1616
  ], Ie);
1607
- const We = 16776960, $e = 16755200, Rs = 2236962;
1608
- var Hs = Object.getOwnPropertyDescriptor, ks = (t, e, s, i) => {
1609
- for (var o = i > 1 ? void 0 : i ? Hs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1617
+ const We = 16776960, $e = 16755200, Hs = 2236962;
1618
+ var ks = Object.getOwnPropertyDescriptor, Ys = (t, e, s, i) => {
1619
+ for (var o = i > 1 ? void 0 : i ? ks(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1610
1620
  (n = t[r]) && (o = n(o) || o);
1611
1621
  return o;
1612
1622
  }, dt = (t, e) => (s, i) => e(s, i, t);
@@ -1628,7 +1638,7 @@ let je = class {
1628
1638
  /** Исходные цвета материалов линий для отката */
1629
1639
  _origLineColors = /* @__PURE__ */ new WeakMap();
1630
1640
  handle(t, e) {
1631
- if (this._api.setRaycastMode(this.mode), e === z.Hover) {
1641
+ if (this._api.setRaycastMode(this.mode), e === X.Hover) {
1632
1642
  if (!t) {
1633
1643
  this._hoveredMesh && this._hoveredMesh !== this._selectedMesh && this._restoreEdgesColor(this._hoveredMesh), this._hoveredMesh = null;
1634
1644
  return;
@@ -1636,7 +1646,7 @@ let je = class {
1636
1646
  const s = t.intersection.object;
1637
1647
  this._hoveredMesh !== s && (this._hoveredMesh && this._hoveredMesh !== this._selectedMesh && this._restoreEdgesColor(this._hoveredMesh), s !== this._selectedMesh && this._paintEdges(s, this._hoverColor), this._hoveredMesh = s);
1638
1648
  }
1639
- if (e === z.Click) {
1649
+ if (e === X.Click) {
1640
1650
  if (!t) {
1641
1651
  this._selectedMesh && (this._restoreEdgesColor(this._selectedMesh), this._selectedMesh = null, this._store.setSelectedObject(null));
1642
1652
  return;
@@ -1681,13 +1691,13 @@ let je = class {
1681
1691
  });
1682
1692
  }
1683
1693
  };
1684
- je = ks([
1694
+ je = Ys([
1685
1695
  w(),
1686
1696
  dt(0, u("RendererApi")),
1687
1697
  dt(1, u("IEditorStore"))
1688
1698
  ], je);
1689
- var Ys = Object.getOwnPropertyDescriptor, Zs = (t, e, s, i) => {
1690
- for (var o = i > 1 ? void 0 : i ? Ys(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1699
+ var Zs = Object.getOwnPropertyDescriptor, zs = (t, e, s, i) => {
1700
+ for (var o = i > 1 ? void 0 : i ? Zs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1691
1701
  (n = t[r]) && (o = n(o) || o);
1692
1702
  return o;
1693
1703
  }, Xs = (t, e) => (s, i) => e(s, i, t);
@@ -1709,7 +1719,7 @@ let Re = class {
1709
1719
  /** Изначальный цвет граней у модели, перед наложением эффектов*/
1710
1720
  _defaultColor = 2236962;
1711
1721
  handle(t, e) {
1712
- this._api.setRaycastMode(this.mode), e === z.Hover && console.log(t), e === z.Click && console.log(t);
1722
+ this._api.setRaycastMode(this.mode), e === X.Hover && console.log(t), e === X.Click && console.log(t);
1713
1723
  }
1714
1724
  rollback() {
1715
1725
  throw new Error("Method not implemented.");
@@ -1719,7 +1729,7 @@ let Re = class {
1719
1729
  throw new Error("Method not implemented.");
1720
1730
  }
1721
1731
  };
1722
- Re = Zs([
1732
+ Re = zs([
1723
1733
  w(),
1724
1734
  Xs(0, u("RendererApi"))
1725
1735
  ], Re);
@@ -1747,8 +1757,8 @@ class Ge {
1747
1757
  this.rollback();
1748
1758
  }
1749
1759
  }
1750
- var zs = Object.getOwnPropertyDescriptor, Ns = (t, e, s, i) => {
1751
- for (var o = i > 1 ? void 0 : i ? zs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1760
+ var Ns = Object.getOwnPropertyDescriptor, Fs = (t, e, s, i) => {
1761
+ for (var o = i > 1 ? void 0 : i ? Ns(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1752
1762
  (n = t[r]) && (o = n(o) || o);
1753
1763
  return o;
1754
1764
  }, pt = (t, e) => (s, i) => e(s, i, t);
@@ -1759,13 +1769,13 @@ let He = class extends Ge {
1759
1769
  super(t, e);
1760
1770
  }
1761
1771
  };
1762
- He = Ns([
1772
+ He = Fs([
1763
1773
  w(),
1764
1774
  pt(0, u("RendererApi")),
1765
1775
  pt(1, u("IEditorStore"))
1766
1776
  ], He);
1767
- var Fs = Object.getOwnPropertyDescriptor, Qs = (t, e, s, i) => {
1768
- for (var o = i > 1 ? void 0 : i ? Fs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1777
+ var Qs = Object.getOwnPropertyDescriptor, Us = (t, e, s, i) => {
1778
+ for (var o = i > 1 ? void 0 : i ? Qs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1769
1779
  (n = t[r]) && (o = n(o) || o);
1770
1780
  return o;
1771
1781
  }, _t = (t, e) => (s, i) => e(s, i, t);
@@ -1776,13 +1786,13 @@ let ke = class extends Ge {
1776
1786
  super(t, e);
1777
1787
  }
1778
1788
  };
1779
- ke = Qs([
1789
+ ke = Us([
1780
1790
  w(),
1781
1791
  _t(0, u("RendererApi")),
1782
1792
  _t(1, u("IEditorStore"))
1783
1793
  ], ke);
1784
- var Us = Object.getOwnPropertyDescriptor, Ws = (t, e, s, i) => {
1785
- for (var o = i > 1 ? void 0 : i ? Us(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1794
+ var Ws = Object.getOwnPropertyDescriptor, $s = (t, e, s, i) => {
1795
+ for (var o = i > 1 ? void 0 : i ? Ws(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1786
1796
  (n = t[r]) && (o = n(o) || o);
1787
1797
  return o;
1788
1798
  }, ut = (t, e) => (s, i) => e(s, i, t);
@@ -1793,14 +1803,14 @@ let Ye = class extends Ge {
1793
1803
  super(t, e);
1794
1804
  }
1795
1805
  };
1796
- Ye = Ws([
1806
+ Ye = $s([
1797
1807
  w(),
1798
1808
  ut(0, u("RendererApi")),
1799
1809
  ut(1, u("IEditorStore"))
1800
1810
  ], Ye);
1801
1811
  const be = 31;
1802
- var $s = Object.getOwnPropertyDescriptor, Gs = (t, e, s, i) => {
1803
- for (var o = i > 1 ? void 0 : i ? $s(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1812
+ var Gs = Object.getOwnPropertyDescriptor, qs = (t, e, s, i) => {
1813
+ for (var o = i > 1 ? void 0 : i ? Gs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1804
1814
  (n = t[r]) && (o = n(o) || o);
1805
1815
  return o;
1806
1816
  }, mt = (t, e) => (s, i) => e(s, i, t);
@@ -1825,7 +1835,7 @@ let Ze = class {
1825
1835
  _selectColor = $e;
1826
1836
  /** Обработка текущего режима выборки. */
1827
1837
  handle(t, e) {
1828
- if (this._api.setRaycastMode(this.mode), e === z.Hover) {
1838
+ if (this._api.setRaycastMode(this.mode), e === X.Hover) {
1829
1839
  if (!t) {
1830
1840
  this._hoverLine.visible = !1, this._hovered = null;
1831
1841
  return;
@@ -1837,7 +1847,7 @@ let Ze = class {
1837
1847
  this._selected && this._same({ lines: i, seg: o }, this._selected) ? this._hoverLine.visible = !1 : (this._writeWorldSegment(this._hoverLine, i, o), this._hoverLine.visible = !0), this._hovered = { lines: i, seg: o };
1838
1848
  return;
1839
1849
  }
1840
- if (e === z.Click) {
1850
+ if (e === X.Click) {
1841
1851
  if (!t) {
1842
1852
  this._selectLine.visible = !1, this._selected = null, this._store.setSelectedObject(null);
1843
1853
  return;
@@ -1893,23 +1903,23 @@ let Ze = class {
1893
1903
  const b = new l.Vector3().addVectors(n, a).multiplyScalar(0.5);
1894
1904
  t.position.copy(b);
1895
1905
  const H = t.geometry;
1896
- let T = H.getAttribute("position");
1897
- (!T || T.count < 2) && (H.setAttribute("position", new l.BufferAttribute(new Float32Array(6), 3)), T = H.getAttribute("position")), T.setXYZ(0, -g / 2, 0, 0), T.setXYZ(1, g / 2, 0, 0), T.needsUpdate = !0, d.normalize();
1906
+ let x = H.getAttribute("position");
1907
+ (!x || x.count < 2) && (H.setAttribute("position", new l.BufferAttribute(new Float32Array(6), 3)), x = H.getAttribute("position")), x.setXYZ(0, -g / 2, 0, 0), x.setXYZ(1, g / 2, 0, 0), x.needsUpdate = !0, d.normalize();
1898
1908
  const q = new l.Quaternion().setFromUnitVectors(new l.Vector3(1, 0, 0), d);
1899
1909
  t.quaternion.copy(q), t.updateMatrixWorld(!0);
1900
1910
  }
1901
1911
  };
1902
- Ze = Gs([
1912
+ Ze = qs([
1903
1913
  w(),
1904
1914
  mt(0, u("RendererApi")),
1905
1915
  mt(1, u("IEditorStore"))
1906
1916
  ], Ze);
1907
- var qs = Object.getOwnPropertyDescriptor, Bs = (t, e, s, i) => {
1908
- for (var o = i > 1 ? void 0 : i ? qs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1917
+ var Bs = Object.getOwnPropertyDescriptor, Ks = (t, e, s, i) => {
1918
+ for (var o = i > 1 ? void 0 : i ? Bs(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1909
1919
  (n = t[r]) && (o = n(o) || o);
1910
1920
  return o;
1911
- }, Ks = (t, e) => (s, i) => e(s, i, t);
1912
- let Xe = class {
1921
+ }, Vs = (t, e) => (s, i) => e(s, i, t);
1922
+ let ze = class {
1913
1923
  constructor(t) {
1914
1924
  this._api = t;
1915
1925
  }
@@ -1919,13 +1929,13 @@ let Xe = class {
1919
1929
  _lastAddedMesh = null;
1920
1930
  /** Добавление базовых фигур на сцену, которые приписаны в `FigureType`. */
1921
1931
  handle(t) {
1922
- const e = $t[t](), s = e.getAttribute("position");
1932
+ const e = Gt[t](), s = e.getAttribute("position");
1923
1933
  s && s.setUsage && s.setUsage(l.DynamicDrawUsage);
1924
1934
  const i = new l.Mesh(e, vt);
1925
1935
  i.layers.enable(0);
1926
1936
  const o = new l.EdgesGeometry(i.geometry), r = new l.LineSegments(
1927
1937
  o,
1928
- new l.LineBasicMaterial({ color: Rs, linewidth: 1 })
1938
+ new l.LineBasicMaterial({ color: Hs, linewidth: 1 })
1929
1939
  );
1930
1940
  r.layers.set(1), i.add(r), this._api.addMesh(i), this._lastAddedMesh = i;
1931
1941
  }
@@ -1938,17 +1948,17 @@ let Xe = class {
1938
1948
  this._lastAddedMesh = null;
1939
1949
  }
1940
1950
  };
1941
- Xe = Bs([
1951
+ ze = Ks([
1942
1952
  w(),
1943
- Ks(0, u("RendererApi"))
1944
- ], Xe);
1945
- const Vs = (t) => !!t && t.isMesh;
1946
- var Js = Object.getOwnPropertyDescriptor, ei = (t, e, s, i) => {
1947
- for (var o = i > 1 ? void 0 : i ? Js(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1953
+ Vs(0, u("RendererApi"))
1954
+ ], ze);
1955
+ const Js = (t) => !!t && t.isMesh;
1956
+ var ei = Object.getOwnPropertyDescriptor, ti = (t, e, s, i) => {
1957
+ for (var o = i > 1 ? void 0 : i ? ei(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1948
1958
  (n = t[r]) && (o = n(o) || o);
1949
1959
  return o;
1950
1960
  }, ft = (t, e) => (s, i) => e(s, i, t);
1951
- let ze = class {
1961
+ let Xe = class {
1952
1962
  constructor(t, e) {
1953
1963
  this._api = t, this._store = e;
1954
1964
  }
@@ -1958,7 +1968,7 @@ let ze = class {
1958
1968
  _lastDeletedMesh = null;
1959
1969
  handle() {
1960
1970
  const t = this._store.getSelectedObject();
1961
- Vs(t) && (this._api.removeMesh(t), this._store.setSelectedObject(null), this._lastDeletedMesh = t);
1971
+ Js(t) && (this._api.removeMesh(t), this._store.setSelectedObject(null), this._lastDeletedMesh = t);
1962
1972
  }
1963
1973
  /** Срабатывает только на `ctrl + z`. */
1964
1974
  rollback() {
@@ -1969,16 +1979,16 @@ let ze = class {
1969
1979
  this._lastDeletedMesh = null;
1970
1980
  }
1971
1981
  };
1972
- ze = ei([
1982
+ Xe = ti([
1973
1983
  w(),
1974
1984
  ft(0, u("RendererApi")),
1975
1985
  ft(1, u("IEditorStore"))
1976
- ], ze);
1977
- var ti = Object.getOwnPropertyDescriptor, si = (t, e, s, i) => {
1978
- for (var o = i > 1 ? void 0 : i ? ti(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1986
+ ], Xe);
1987
+ var si = Object.getOwnPropertyDescriptor, ii = (t, e, s, i) => {
1988
+ for (var o = i > 1 ? void 0 : i ? si(e, s) : e, r = t.length - 1, n; r >= 0; r--)
1979
1989
  (n = t[r]) && (o = n(o) || o);
1980
1990
  return o;
1981
- }, ii = (t, e) => (s, i) => e(s, i, t);
1991
+ }, oi = (t, e) => (s, i) => e(s, i, t);
1982
1992
  let Ne = class {
1983
1993
  constructor(t) {
1984
1994
  this._renderer = t;
@@ -2034,12 +2044,12 @@ let Ne = class {
2034
2044
  this._renderer.enableCameraLayer(t);
2035
2045
  }
2036
2046
  };
2037
- Ne = si([
2047
+ Ne = ii([
2038
2048
  w(),
2039
- ii(0, u("EditorRenderer"))
2049
+ oi(0, u("EditorRenderer"))
2040
2050
  ], Ne);
2041
- var oi = Object.getOwnPropertyDescriptor, ni = (t, e, s, i) => {
2042
- for (var o = i > 1 ? void 0 : i ? oi(e, s) : e, r = t.length - 1, n; r >= 0; r--)
2051
+ var ni = Object.getOwnPropertyDescriptor, ri = (t, e, s, i) => {
2052
+ for (var o = i > 1 ? void 0 : i ? ni(e, s) : e, r = t.length - 1, n; r >= 0; r--)
2043
2053
  (n = t[r]) && (o = n(o) || o);
2044
2054
  return o;
2045
2055
  }, oe = (t, e) => (s, i) => e(s, i, t);
@@ -2072,7 +2082,7 @@ let Fe = class {
2072
2082
  this._displayManager.dispose(), this._selectManager.dispose(), this._renderer.dispose();
2073
2083
  }
2074
2084
  };
2075
- Fe = ni([
2085
+ Fe = ri([
2076
2086
  w(),
2077
2087
  oe(0, u("IDisplayManager")),
2078
2088
  oe(1, u("ISelectManager")),
@@ -2080,8 +2090,8 @@ Fe = ni([
2080
2090
  oe(3, u("ISceneManager")),
2081
2091
  oe(4, u("EditorRenderer"))
2082
2092
  ], Fe);
2083
- var ri = Object.getOwnPropertyDescriptor, ai = (t, e, s, i) => {
2084
- for (var o = i > 1 ? void 0 : i ? ri(e, s) : e, r = t.length - 1, n; r >= 0; r--)
2093
+ var ai = Object.getOwnPropertyDescriptor, hi = (t, e, s, i) => {
2094
+ for (var o = i > 1 ? void 0 : i ? ai(e, s) : e, r = t.length - 1, n; r >= 0; r--)
2085
2095
  (n = t[r]) && (o = n(o) || o);
2086
2096
  return o;
2087
2097
  };
@@ -2097,7 +2107,7 @@ let Qe = class {
2097
2107
  /** Слушатели событий по изменению выбранного объекта. */
2098
2108
  _selectedListeners = /* @__PURE__ */ new Set();
2099
2109
  constructor() {
2100
- Wt(this, {}, { autoBind: !0 });
2110
+ $t(this, {}, { autoBind: !0 });
2101
2111
  }
2102
2112
  /** @inheritdoc */
2103
2113
  getSelectMode() {
@@ -2139,24 +2149,24 @@ let Qe = class {
2139
2149
  return this._selectedListeners.add(t), () => this._selectedListeners.delete(t);
2140
2150
  }
2141
2151
  };
2142
- Qe = ai([
2152
+ Qe = hi([
2143
2153
  w()
2144
2154
  ], Qe);
2145
2155
  let gt = !1;
2146
- const f = Qt.createChildContainer();
2147
- function hi(t) {
2148
- return gt || (f.registerInstance("Canvas", t), f.registerSingleton("EventBus", xe), f.registerSingleton("EditorRenderer", De), f.registerSingleton("RendererApi", Ne), f.registerSingleton("IDisplayHandler", Ie), f.registerSingleton("ISelectHandler", je), f.registerSingleton("ISelectHandler", Re), f.registerSingleton("ISelectHandler", Ze), f.registerSingleton("IToolHandler", He), f.registerSingleton("IToolHandler", ke), f.registerSingleton("IToolHandler", Ye), f.registerSingleton("ISceneHandler", Xe), f.registerSingleton("ISceneHandler", ze), f.registerSingleton("IDisplayManager", Oe), f.registerSingleton("ISelectManager", Ae), f.registerSingleton("IToolManager", Le), f.registerSingleton("ISceneManager", Ce), f.registerSingleton("EditorHub", Fe), f.registerSingleton("IEditorStore", Qe), gt = !0), f;
2156
+ const f = Ut.createChildContainer();
2157
+ function li(t) {
2158
+ return gt || (f.registerInstance("Canvas", t), f.registerSingleton("EventBus", Te), f.registerSingleton("EditorRenderer", De), f.registerSingleton("RendererApi", Ne), f.registerSingleton("IDisplayHandler", Ie), f.registerSingleton("ISelectHandler", je), f.registerSingleton("ISelectHandler", Re), f.registerSingleton("ISelectHandler", Ze), f.registerSingleton("IToolHandler", He), f.registerSingleton("IToolHandler", ke), f.registerSingleton("IToolHandler", Ye), f.registerSingleton("ISceneHandler", ze), f.registerSingleton("ISceneHandler", Xe), f.registerSingleton("IDisplayManager", Oe), f.registerSingleton("ISelectManager", Ae), f.registerSingleton("IToolManager", Le), f.registerSingleton("ISceneManager", Ce), f.registerSingleton("EditorHub", Fe), f.registerSingleton("IEditorStore", Qe), gt = !0), f;
2149
2159
  }
2150
- function yi(t) {
2151
- return hi(t).resolve("EditorHub");
2160
+ function bi(t) {
2161
+ return li(t).resolve("EditorHub");
2152
2162
  }
2153
2163
  export {
2154
2164
  Fe as EditorHub,
2155
2165
  De as EditorRenderer,
2156
- xe as EventBus,
2166
+ Te as EventBus,
2157
2167
  ee as EventTopics,
2158
- gi as ObjLoader,
2159
- fi as PreviewRenderer,
2168
+ yi as ObjLoader,
2169
+ gi as PreviewRenderer,
2160
2170
  Mt as Renderer,
2161
- yi as createAppHub
2171
+ bi as createAppHub
2162
2172
  };