@planara/core 2.7.0 → 2.7.1
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/hub/app-hub.d.ts +6 -1
- package/dist/hub/app-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +2 -2
- package/dist/index.es.js +280 -274
- package/dist/index.full.d.ts +7 -1
- package/dist/index.public.d.ts +7 -1
- package/dist/index.umd.js +2 -2
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import * as a from "three";
|
|
3
|
-
import { Controls as
|
|
4
|
-
import { FigureType as
|
|
5
|
-
import { SymmetricAxesHelper as
|
|
6
|
-
import { injectable as u, inject as h, injectAll as
|
|
7
|
-
import { EventEmitter as
|
|
8
|
-
import { makeAutoObservable as
|
|
9
|
-
const
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
3
|
+
import { Controls as Ue, Vector3 as T, MOUSE as I, TOUCH as R, Quaternion as ve, Spherical as ye, Vector2 as w, Ray as We, Plane as Fe, MathUtils as Ze } from "three";
|
|
4
|
+
import { FigureType as S, SelectMode as v, Figure as $e, DisplayMode as V, DEFAULT_TOOL_RULES as Me, ToolType as C, SceneMode as N } from "@planara/types";
|
|
5
|
+
import { SymmetricAxesHelper as Be, OrbitWithState as Xe, CameraAxesGizmo as Ge, ModelingTransformControls as Ke } from "@planara/three";
|
|
6
|
+
import { injectable as u, inject as h, injectAll as W, container as qe } from "tsyringe";
|
|
7
|
+
import { EventEmitter as Qe } from "events";
|
|
8
|
+
import { makeAutoObservable as Je } from "mobx";
|
|
9
|
+
const et = {
|
|
10
|
+
[S.Plane]: () => new a.PlaneGeometry(1, 1, 1, 1),
|
|
11
|
+
[S.Cube]: () => new a.BoxGeometry(1, 1, 1, 1, 1, 1),
|
|
12
|
+
[S.UVSphere]: () => new a.SphereGeometry(0.5, 32, 16),
|
|
13
|
+
[S.Icosphere]: () => new a.IcosahedronGeometry(0.5, 0),
|
|
14
|
+
[S.Cylinder]: () => new a.CylinderGeometry(0.5, 0.5, 1, 32, 1, !1),
|
|
15
|
+
[S.Cone]: () => new a.ConeGeometry(0.5, 1, 32, 1, !1),
|
|
16
|
+
[S.Torus]: () => new a.TorusGeometry(0.5, 0.2, 16, 64),
|
|
17
|
+
[S.Circle]: () => new a.CircleGeometry(0.5, 32),
|
|
18
|
+
[S.Sphere]: () => new a.SphereGeometry(0.5, 32, 16),
|
|
19
|
+
[S.Custom]: function() {
|
|
20
20
|
throw new Error("Custom geometry is not generated here.");
|
|
21
21
|
}
|
|
22
|
-
},
|
|
22
|
+
}, Ie = new a.MeshStandardMaterial({
|
|
23
23
|
color: 12566463,
|
|
24
24
|
metalness: 0,
|
|
25
25
|
roughness: 0.6
|
|
26
|
-
}),
|
|
27
|
-
class
|
|
26
|
+
}), tt = 8;
|
|
27
|
+
class He {
|
|
28
28
|
/** Корневой объект сцены */
|
|
29
29
|
scene;
|
|
30
30
|
/** Камера для сцены */
|
|
@@ -81,7 +81,7 @@ class Ie {
|
|
|
81
81
|
addFigure(e) {
|
|
82
82
|
const s = new a.BufferGeometry();
|
|
83
83
|
s.setAttribute("position", new a.Float32BufferAttribute(e.position, 3)), e.normal && s.setAttribute("normal", new a.Float32BufferAttribute(e.normal, 3)), e.uv && s.setAttribute("uv", new a.Float32BufferAttribute(e.uv, 2));
|
|
84
|
-
const i = new a.Mesh(s,
|
|
84
|
+
const i = new a.Mesh(s, Ie);
|
|
85
85
|
return this.scene.add(i), this.meshes.push(i), i;
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
@@ -172,15 +172,15 @@ class Ie {
|
|
|
172
172
|
this.meshes && (this.meshes.length = 0, this.meshes = []), this.scene = null, this.camera = null, this.renderer?.dispose(), this.canvas = null;
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
var
|
|
176
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
175
|
+
var st = Object.getOwnPropertyDescriptor, it = (t, e, s, i) => {
|
|
176
|
+
for (var r = i > 1 ? void 0 : i ? st(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
177
177
|
(n = t[o]) && (r = n(r) || r);
|
|
178
178
|
return r;
|
|
179
179
|
};
|
|
180
|
-
let
|
|
180
|
+
let G = class {
|
|
181
181
|
_emitter;
|
|
182
182
|
constructor() {
|
|
183
|
-
this._emitter = new
|
|
183
|
+
this._emitter = new Qe();
|
|
184
184
|
}
|
|
185
185
|
/** Публикация события */
|
|
186
186
|
emit(t, e) {
|
|
@@ -195,22 +195,22 @@ let X = class {
|
|
|
195
195
|
this._emitter.off(t, e);
|
|
196
196
|
}
|
|
197
197
|
};
|
|
198
|
-
|
|
198
|
+
G = it([
|
|
199
199
|
u()
|
|
200
|
-
],
|
|
201
|
-
var
|
|
202
|
-
const
|
|
200
|
+
], G);
|
|
201
|
+
var H = /* @__PURE__ */ ((t) => (t.SelectHover = "select.hover", t.SelectClick = "select.click", t.ToolSelect = "tool.select", t))(H || {});
|
|
202
|
+
const rt = 0.03, ot = 0.05, ke = 0, nt = 1, at = 2, L = 31, F = 16776960, Z = 16755200, ht = 2236962, lt = 2236962, ct = (t) => !!t && t.isMesh, Ve = (t) => {
|
|
203
203
|
let e = t;
|
|
204
204
|
for (; e; ) {
|
|
205
205
|
if (e.isMesh) return e;
|
|
206
206
|
e = e.parent;
|
|
207
207
|
}
|
|
208
208
|
return null;
|
|
209
|
-
},
|
|
209
|
+
}, Ne = (t) => {
|
|
210
210
|
const e = new a.BufferGeometry();
|
|
211
211
|
e.setAttribute("position", t.getAttribute("position")), e.computeBoundingSphere(), e.computeBoundingBox();
|
|
212
212
|
const s = new a.PointsMaterial({
|
|
213
|
-
color:
|
|
213
|
+
color: lt,
|
|
214
214
|
size: 6,
|
|
215
215
|
sizeAttenuation: !1,
|
|
216
216
|
depthTest: !1,
|
|
@@ -218,36 +218,36 @@ const it = 0.03, rt = 0.05, He = 0, ot = 1, nt = 2, L = 31, W = 16776960, F = 16
|
|
|
218
218
|
transparent: !0,
|
|
219
219
|
opacity: 0.9
|
|
220
220
|
}), i = new a.Points(e, s);
|
|
221
|
-
return i.layers.set(
|
|
222
|
-
},
|
|
221
|
+
return i.layers.set(at), i.renderOrder = 1e3, i.visible = !1, i;
|
|
222
|
+
}, Ye = (t) => {
|
|
223
223
|
const e = new a.EdgesGeometry(t), s = new a.LineSegments(
|
|
224
224
|
e,
|
|
225
|
-
new a.LineBasicMaterial({ color:
|
|
225
|
+
new a.LineBasicMaterial({ color: ht, linewidth: 1 })
|
|
226
226
|
);
|
|
227
|
-
return s.layers.set(
|
|
228
|
-
},
|
|
227
|
+
return s.layers.set(nt), s;
|
|
228
|
+
}, dt = (t) => {
|
|
229
229
|
const e = { x: t.position.x, y: t.position.y, z: t.position.z }, s = { x: t.rotation.x, y: t.rotation.y, z: t.rotation.z }, i = { x: t.scale.x, y: t.scale.y, z: t.scale.z }, r = new a.Box3().setFromObject(t), o = new a.Vector3();
|
|
230
230
|
r.getSize(o);
|
|
231
231
|
const n = { x: o.x, y: o.y, z: o.z };
|
|
232
232
|
return { position: e, rotation: s, scale: i, size: n };
|
|
233
233
|
};
|
|
234
|
-
var
|
|
235
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
234
|
+
var _t = Object.getOwnPropertyDescriptor, pt = (t, e, s, i) => {
|
|
235
|
+
for (var r = i > 1 ? void 0 : i ? _t(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
236
236
|
(n = t[o]) && (r = n(r) || r);
|
|
237
237
|
return r;
|
|
238
|
-
},
|
|
239
|
-
let
|
|
238
|
+
}, Ee = (t, e) => (s, i) => e(s, i, t);
|
|
239
|
+
let K = class extends He {
|
|
240
240
|
constructor(t, e) {
|
|
241
241
|
super(t), this._canvas = t, this._bus = e;
|
|
242
242
|
const s = new a.GridHelper(10, 10);
|
|
243
243
|
s.position.y = -1e-3, this.scene.add(s);
|
|
244
|
-
const i = new
|
|
245
|
-
this.scene.add(i), this._orbit = new
|
|
244
|
+
const i = new Be(6);
|
|
245
|
+
this.scene.add(i), this._orbit = new Xe(this.camera, this.renderer.domElement), this._orbit.enableDamping = !0, this._orbit.dampingFactor = 0.05, this._cameraGizmo = new Ge(this.renderer, this.camera, {
|
|
246
246
|
size: 96,
|
|
247
247
|
// Размер квадрата
|
|
248
248
|
margin: 36
|
|
249
249
|
// Отступы по сторонам (снизу и справа)
|
|
250
|
-
}), this._raycaster = new a.Raycaster(), this._mouse = new a.Vector2(), this.scene.add(new a.HemisphereLight(16777215, 4473924, 0.6)), this.camera.layers.enable(0), this.camera.layers.enable(1), this._transform = new
|
|
250
|
+
}), this._raycaster = new a.Raycaster(), this._mouse = new a.Vector2(), this.scene.add(new a.HemisphereLight(16777215, 4473924, 0.6)), this.camera.layers.enable(0), this.camera.layers.enable(1), this._transform = new Ke(this.camera, this.renderer.domElement), this._transformHelper = this._transform.getHelper(), this.scene.add(this._transformHelper), this._isEventListenersAdded || this._initMouseListeners();
|
|
251
251
|
}
|
|
252
252
|
/** Orbit-контроллер для управления камерой */
|
|
253
253
|
_orbit;
|
|
@@ -277,10 +277,10 @@ let G = class extends Ie {
|
|
|
277
277
|
/** Добавление фигуры на сцену */
|
|
278
278
|
addFigure(t) {
|
|
279
279
|
const e = super.addFigure(t);
|
|
280
|
-
e.layers.enable(
|
|
281
|
-
const s =
|
|
280
|
+
e.layers.enable(ke);
|
|
281
|
+
const s = Ye(e.geometry);
|
|
282
282
|
e.add(s);
|
|
283
|
-
const i =
|
|
283
|
+
const i = Ne(e.geometry);
|
|
284
284
|
return e.add(i), e;
|
|
285
285
|
}
|
|
286
286
|
/**
|
|
@@ -325,10 +325,10 @@ let G = class extends Ie {
|
|
|
325
325
|
e.layers.set(0);
|
|
326
326
|
break;
|
|
327
327
|
case v.Edge:
|
|
328
|
-
e.layers.set(1), e.params.Line.threshold =
|
|
328
|
+
e.layers.set(1), e.params.Line.threshold = rt;
|
|
329
329
|
break;
|
|
330
330
|
case v.Vertex:
|
|
331
|
-
e.layers.set(2), e.params.Points.threshold =
|
|
331
|
+
e.layers.set(2), e.params.Points.threshold = ot;
|
|
332
332
|
break;
|
|
333
333
|
}
|
|
334
334
|
}
|
|
@@ -350,11 +350,11 @@ let G = class extends Ie {
|
|
|
350
350
|
}
|
|
351
351
|
/** Обработчик события для hover */
|
|
352
352
|
_handleMouseMove = (t) => {
|
|
353
|
-
this._processRaycastEvent(t,
|
|
353
|
+
this._processRaycastEvent(t, H.SelectHover, !0);
|
|
354
354
|
};
|
|
355
355
|
/** Обработчик события на click */
|
|
356
356
|
_handleMouseClick = (t) => {
|
|
357
|
-
this._processRaycastEvent(t,
|
|
357
|
+
this._processRaycastEvent(t, H.SelectClick, !1);
|
|
358
358
|
};
|
|
359
359
|
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
360
360
|
_processRaycastEvent(t, e, s) {
|
|
@@ -365,12 +365,12 @@ let G = class extends Ie {
|
|
|
365
365
|
s ? n !== this._lastHovered && (this.meshes.forEach((c) => c.userData.isHit = !1), n && (n.userData.isHit = !0), this._lastHovered = n, this._bus.emit(e, o ? { intersection: o } : null)) : this._bus.emit(e, o ? { intersection: o } : null);
|
|
366
366
|
}
|
|
367
367
|
};
|
|
368
|
-
|
|
368
|
+
K = pt([
|
|
369
369
|
u(),
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
],
|
|
373
|
-
const
|
|
370
|
+
Ee(0, h("Canvas")),
|
|
371
|
+
Ee(1, h("EventBus"))
|
|
372
|
+
], K);
|
|
373
|
+
const we = { type: "change" }, ue = { type: "start" }, ze = { type: "end" }, U = new We(), Se = new Fe(), ut = Math.cos(70 * Ze.DEG2RAD), p = new T(), g = 2 * Math.PI, l = {
|
|
374
374
|
NONE: -1,
|
|
375
375
|
ROTATE: 0,
|
|
376
376
|
DOLLY: 1,
|
|
@@ -379,8 +379,8 @@ const Se = { type: "change" }, pe = { type: "start" }, Ye = { type: "end" }, z =
|
|
|
379
379
|
TOUCH_PAN: 4,
|
|
380
380
|
TOUCH_DOLLY_PAN: 5,
|
|
381
381
|
TOUCH_DOLLY_ROTATE: 6
|
|
382
|
-
},
|
|
383
|
-
class
|
|
382
|
+
}, B = 1e-6;
|
|
383
|
+
class mt extends Ue {
|
|
384
384
|
/**
|
|
385
385
|
* Constructs a new controls instance.
|
|
386
386
|
*
|
|
@@ -388,7 +388,7 @@ class ut extends ze {
|
|
|
388
388
|
* @param {?HTMLElement} domElement - The HTML element used for event listeners.
|
|
389
389
|
*/
|
|
390
390
|
constructor(e, s = null) {
|
|
391
|
-
super(e, s), this.state = l.NONE, this.target = new T(), this.cursor = new T(), 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:
|
|
391
|
+
super(e, s), this.state = l.NONE, this.target = new T(), this.cursor = new T(), 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: I.ROTATE, MIDDLE: I.DOLLY, RIGHT: I.PAN }, this.touches = { ONE: R.ROTATE, TWO: R.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new T(), this._lastQuaternion = new ve(), this._lastTargetPosition = new T(), this._quat = new ve().setFromUnitVectors(e.up, new T(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new ye(), this._sphericalDelta = new ye(), this._scale = 1, this._panOffset = new T(), this._rotateStart = new w(), this._rotateEnd = new w(), this._rotateDelta = new w(), this._panStart = new w(), this._panEnd = new w(), this._panDelta = new w(), this._dollyStart = new w(), this._dollyEnd = new w(), this._dollyDelta = new w(), this._dollyDirection = new T(), this._mouse = new w(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = gt.bind(this), this._onPointerDown = ft.bind(this), this._onPointerUp = bt.bind(this), this._onContextMenu = Pt.bind(this), this._onMouseWheel = Mt.bind(this), this._onKeyDown = Et.bind(this), this._onTouchStart = wt.bind(this), this._onTouchMove = St.bind(this), this._onMouseDown = vt.bind(this), this._onMouseMove = yt.bind(this), this._interceptControlDown = Ot.bind(this), this._interceptControlUp = Tt.bind(this), this.domElement !== null && this.connect(this.domElement), this.update();
|
|
392
392
|
}
|
|
393
393
|
connect(e) {
|
|
394
394
|
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";
|
|
@@ -449,7 +449,7 @@ class ut extends ze {
|
|
|
449
449
|
* was called, or the initial state.
|
|
450
450
|
*/
|
|
451
451
|
reset() {
|
|
452
|
-
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(
|
|
452
|
+
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(we), this.update(), this.state = l.NONE;
|
|
453
453
|
}
|
|
454
454
|
update(e = null) {
|
|
455
455
|
const s = this.object.position;
|
|
@@ -479,12 +479,12 @@ class ut extends ze {
|
|
|
479
479
|
m.unproject(this.object), this.object.position.sub(m).add(c), this.object.updateMatrixWorld(), n = p.length();
|
|
480
480
|
} else
|
|
481
481
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
|
|
482
|
-
n !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(n).add(this.object.position) : (
|
|
482
|
+
n !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(n).add(this.object.position) : (U.origin.copy(this.object.position), U.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(U.direction)) < ut ? this.object.lookAt(this.target) : (Se.setFromNormalAndCoplanarPoint(this.object.up, this.target), U.intersectPlane(Se, this.target))));
|
|
483
483
|
} else if (this.object.isOrthographicCamera) {
|
|
484
484
|
const n = this.object.zoom;
|
|
485
485
|
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), n !== this.object.zoom && (this.object.updateProjectionMatrix(), o = !0);
|
|
486
486
|
}
|
|
487
|
-
return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) >
|
|
487
|
+
return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) > B || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > B || this._lastTargetPosition.distanceToSquared(this.target) > B ? (this.dispatchEvent(we), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
|
|
488
488
|
}
|
|
489
489
|
_getAutoRotationAngle(e) {
|
|
490
490
|
return e !== null ? g / 60 * this.autoRotateSpeed * e : g / 60 / 60 * this.autoRotateSpeed;
|
|
@@ -676,16 +676,16 @@ class ut extends ze {
|
|
|
676
676
|
return e.ctrlKey && !this._controlActive && (i.deltaY *= 10), i;
|
|
677
677
|
}
|
|
678
678
|
}
|
|
679
|
-
function
|
|
679
|
+
function ft(t) {
|
|
680
680
|
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)));
|
|
681
681
|
}
|
|
682
|
-
function
|
|
682
|
+
function gt(t) {
|
|
683
683
|
this.enabled !== !1 && (t.pointerType === "touch" ? this._onTouchMove(t) : this._onMouseMove(t));
|
|
684
684
|
}
|
|
685
|
-
function
|
|
685
|
+
function bt(t) {
|
|
686
686
|
switch (this._removePointer(t), this._pointers.length) {
|
|
687
687
|
case 0:
|
|
688
|
-
this.domElement.releasePointerCapture(t.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(
|
|
688
|
+
this.domElement.releasePointerCapture(t.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(ze), this.state = l.NONE;
|
|
689
689
|
break;
|
|
690
690
|
case 1:
|
|
691
691
|
const e = this._pointers[0], s = this._pointerPositions[e];
|
|
@@ -693,7 +693,7 @@ function gt(t) {
|
|
|
693
693
|
break;
|
|
694
694
|
}
|
|
695
695
|
}
|
|
696
|
-
function
|
|
696
|
+
function vt(t) {
|
|
697
697
|
let e;
|
|
698
698
|
switch (t.button) {
|
|
699
699
|
case 0:
|
|
@@ -709,11 +709,11 @@ function bt(t) {
|
|
|
709
709
|
e = -1;
|
|
710
710
|
}
|
|
711
711
|
switch (e) {
|
|
712
|
-
case
|
|
712
|
+
case I.DOLLY:
|
|
713
713
|
if (this.enableZoom === !1) return;
|
|
714
714
|
this._handleMouseDownDolly(t), this.state = l.DOLLY;
|
|
715
715
|
break;
|
|
716
|
-
case
|
|
716
|
+
case I.ROTATE:
|
|
717
717
|
if (t.ctrlKey || t.metaKey || t.shiftKey) {
|
|
718
718
|
if (this.enablePan === !1) return;
|
|
719
719
|
this._handleMouseDownPan(t), this.state = l.PAN;
|
|
@@ -722,7 +722,7 @@ function bt(t) {
|
|
|
722
722
|
this._handleMouseDownRotate(t), this.state = l.ROTATE;
|
|
723
723
|
}
|
|
724
724
|
break;
|
|
725
|
-
case
|
|
725
|
+
case I.PAN:
|
|
726
726
|
if (t.ctrlKey || t.metaKey || t.shiftKey) {
|
|
727
727
|
if (this.enableRotate === !1) return;
|
|
728
728
|
this._handleMouseDownRotate(t), this.state = l.ROTATE;
|
|
@@ -734,9 +734,9 @@ function bt(t) {
|
|
|
734
734
|
default:
|
|
735
735
|
this.state = l.NONE;
|
|
736
736
|
}
|
|
737
|
-
this.state !== l.NONE && this.dispatchEvent(
|
|
737
|
+
this.state !== l.NONE && this.dispatchEvent(ue);
|
|
738
738
|
}
|
|
739
|
-
function
|
|
739
|
+
function yt(t) {
|
|
740
740
|
switch (this.state) {
|
|
741
741
|
case l.ROTATE:
|
|
742
742
|
if (this.enableRotate === !1) return;
|
|
@@ -752,13 +752,13 @@ function vt(t) {
|
|
|
752
752
|
break;
|
|
753
753
|
}
|
|
754
754
|
}
|
|
755
|
-
function yt(t) {
|
|
756
|
-
this.enabled === !1 || this.enableZoom === !1 || this.state !== l.NONE || (t.preventDefault(), this.dispatchEvent(pe), this._handleMouseWheel(this._customWheelEvent(t)), this.dispatchEvent(Ye));
|
|
757
|
-
}
|
|
758
755
|
function Mt(t) {
|
|
756
|
+
this.enabled === !1 || this.enableZoom === !1 || this.state !== l.NONE || (t.preventDefault(), this.dispatchEvent(ue), this._handleMouseWheel(this._customWheelEvent(t)), this.dispatchEvent(ze));
|
|
757
|
+
}
|
|
758
|
+
function Et(t) {
|
|
759
759
|
this.enabled !== !1 && this._handleKeyDown(t);
|
|
760
760
|
}
|
|
761
|
-
function
|
|
761
|
+
function wt(t) {
|
|
762
762
|
switch (this._trackPointer(t), this._pointers.length) {
|
|
763
763
|
case 1:
|
|
764
764
|
switch (this.touches.ONE) {
|
|
@@ -791,9 +791,9 @@ function St(t) {
|
|
|
791
791
|
default:
|
|
792
792
|
this.state = l.NONE;
|
|
793
793
|
}
|
|
794
|
-
this.state !== l.NONE && this.dispatchEvent(
|
|
794
|
+
this.state !== l.NONE && this.dispatchEvent(ue);
|
|
795
795
|
}
|
|
796
|
-
function
|
|
796
|
+
function St(t) {
|
|
797
797
|
switch (this._trackPointer(t), this.state) {
|
|
798
798
|
case l.TOUCH_ROTATE:
|
|
799
799
|
if (this.enableRotate === !1) return;
|
|
@@ -815,20 +815,20 @@ function wt(t) {
|
|
|
815
815
|
this.state = l.NONE;
|
|
816
816
|
}
|
|
817
817
|
}
|
|
818
|
-
function
|
|
818
|
+
function Pt(t) {
|
|
819
819
|
this.enabled !== !1 && t.preventDefault();
|
|
820
820
|
}
|
|
821
|
-
function
|
|
821
|
+
function Ot(t) {
|
|
822
822
|
t.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
823
823
|
}
|
|
824
|
-
function
|
|
824
|
+
function Tt(t) {
|
|
825
825
|
t.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
826
826
|
}
|
|
827
|
-
class
|
|
827
|
+
class Es extends He {
|
|
828
828
|
/** Orbit-контроллер для управления камерой */
|
|
829
829
|
_orbit;
|
|
830
830
|
constructor(e) {
|
|
831
|
-
super(e), this.camera.position.set(1, 1, 7), this.camera.lookAt(0, 0, 0), this._orbit = new
|
|
831
|
+
super(e), this.camera.position.set(1, 1, 7), this.camera.lookAt(0, 0, 0), this._orbit = new mt(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;
|
|
832
832
|
}
|
|
833
833
|
/**
|
|
834
834
|
* Обновление состояния рендерера.
|
|
@@ -837,7 +837,7 @@ class Ms extends Ie {
|
|
|
837
837
|
this._orbit?.update();
|
|
838
838
|
}
|
|
839
839
|
}
|
|
840
|
-
class
|
|
840
|
+
class ws {
|
|
841
841
|
/** Позиции вершин */
|
|
842
842
|
_positions = [];
|
|
843
843
|
/** Нормали вершин */
|
|
@@ -874,12 +874,12 @@ class Ss {
|
|
|
874
874
|
}
|
|
875
875
|
}
|
|
876
876
|
const i = {
|
|
877
|
-
type:
|
|
877
|
+
type: S.Custom,
|
|
878
878
|
position: this._positions,
|
|
879
879
|
...this._normals.length > 0 && { normal: this._normals },
|
|
880
880
|
...this._uvs.length > 0 && { uv: this._uvs }
|
|
881
881
|
};
|
|
882
|
-
return new
|
|
882
|
+
return new $e(i);
|
|
883
883
|
}
|
|
884
884
|
/**
|
|
885
885
|
* Обрабатывает строку face (f) и разворачивает индексы в массивы для рендеринга
|
|
@@ -904,41 +904,41 @@ class Ss {
|
|
|
904
904
|
}
|
|
905
905
|
}
|
|
906
906
|
}
|
|
907
|
-
var
|
|
908
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
907
|
+
var Lt = Object.getOwnPropertyDescriptor, Dt = (t, e, s, i) => {
|
|
908
|
+
for (var r = i > 1 ? void 0 : i ? Lt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
909
909
|
(n = t[o]) && (r = n(r) || r);
|
|
910
910
|
return r;
|
|
911
|
-
},
|
|
912
|
-
let
|
|
911
|
+
}, Pe = (t, e) => (s, i) => e(s, i, t);
|
|
912
|
+
let q = class {
|
|
913
913
|
constructor(t, e) {
|
|
914
914
|
this._store = e, this._handlers = new Map(t.map((s) => [s.mode, s]));
|
|
915
915
|
}
|
|
916
916
|
/** Текущий режим отображения */
|
|
917
|
-
_currentMode =
|
|
917
|
+
_currentMode = V.Plane;
|
|
918
918
|
/** Хендлеры, которые управляют отображением */
|
|
919
919
|
_handlers;
|
|
920
920
|
/** Установка режима отображения */
|
|
921
921
|
manage(t) {
|
|
922
|
-
t !== this._currentMode && (this._handlers.get(this._currentMode)?.rollback(), t !==
|
|
922
|
+
t !== this._currentMode && (this._handlers.get(this._currentMode)?.rollback(), t !== V.Plane && this._handlers.get(t)?.handle(), this._currentMode = t, this._store.setDisplayMode(this._currentMode));
|
|
923
923
|
}
|
|
924
924
|
/** Освобождает ресурсы менеджера. */
|
|
925
925
|
dispose() {
|
|
926
|
-
this._handlers && this._handlers.clear(), this._currentMode =
|
|
926
|
+
this._handlers && this._handlers.clear(), this._currentMode = V.Plane, this._store.setDisplayMode(this._currentMode);
|
|
927
927
|
}
|
|
928
928
|
};
|
|
929
|
-
|
|
929
|
+
q = Dt([
|
|
930
930
|
u(),
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
],
|
|
934
|
-
var P = /* @__PURE__ */ ((t) => (t.Hover = "hover", t.Click = "click", t))(P || {}),
|
|
935
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
931
|
+
Pe(0, W("IDisplayHandler")),
|
|
932
|
+
Pe(1, h("IEditorStore"))
|
|
933
|
+
], q);
|
|
934
|
+
var P = /* @__PURE__ */ ((t) => (t.Hover = "hover", t.Click = "click", t))(P || {}), Ct = Object.getOwnPropertyDescriptor, At = (t, e, s, i) => {
|
|
935
|
+
for (var r = i > 1 ? void 0 : i ? Ct(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
936
936
|
(n = t[o]) && (r = n(r) || r);
|
|
937
937
|
return r;
|
|
938
|
-
},
|
|
939
|
-
let
|
|
938
|
+
}, X = (t, e) => (s, i) => e(s, i, t);
|
|
939
|
+
let Q = class {
|
|
940
940
|
constructor(t, e, s) {
|
|
941
|
-
this._eventBus = t, this._store = s, this._handlers = new Map(e.map((i) => [i.mode, i])), this._eventBus.on(
|
|
941
|
+
this._eventBus = t, this._store = s, this._handlers = new Map(e.map((i) => [i.mode, i])), this._eventBus.on(H.SelectHover, this._onHover), this._eventBus.on(H.SelectClick, this._onClick);
|
|
942
942
|
}
|
|
943
943
|
/** Текущий режим выборки */
|
|
944
944
|
_currentMode = v.Mesh;
|
|
@@ -958,31 +958,31 @@ let q = class {
|
|
|
958
958
|
};
|
|
959
959
|
/** Освобождает ресурсы менеджера. */
|
|
960
960
|
dispose() {
|
|
961
|
-
this._handlers && this._handlers.clear(), this._eventBus.off(
|
|
961
|
+
this._handlers && this._handlers.clear(), this._eventBus.off(H.SelectHover, this._onHover), this._currentMode = v.Mesh, this._store.setSelectMode(this._currentMode);
|
|
962
962
|
}
|
|
963
963
|
};
|
|
964
|
-
|
|
964
|
+
Q = At([
|
|
965
965
|
u(),
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
],
|
|
966
|
+
X(0, h("EventBus")),
|
|
967
|
+
X(1, W("ISelectHandler")),
|
|
968
|
+
X(2, h("IEditorStore"))
|
|
969
|
+
], Q);
|
|
970
970
|
class xt {
|
|
971
971
|
/** Доступен ли инструмент при текущем режиме выборки */
|
|
972
972
|
isToolEnabled(e, s) {
|
|
973
|
-
return
|
|
973
|
+
return Me[s].includes(e);
|
|
974
974
|
}
|
|
975
975
|
/** Получение доступных инструментов для режима выборки*/
|
|
976
976
|
getEnabledTools(e) {
|
|
977
|
-
return
|
|
977
|
+
return Me[e];
|
|
978
978
|
}
|
|
979
979
|
}
|
|
980
|
-
var
|
|
981
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
980
|
+
var Rt = Object.getOwnPropertyDescriptor, jt = (t, e, s, i) => {
|
|
981
|
+
for (var r = i > 1 ? void 0 : i ? Rt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
982
982
|
(n = t[o]) && (r = n(r) || r);
|
|
983
983
|
return r;
|
|
984
|
-
},
|
|
985
|
-
let
|
|
984
|
+
}, Oe = (t, e) => (s, i) => e(s, i, t);
|
|
985
|
+
let J = class {
|
|
986
986
|
constructor(t, e) {
|
|
987
987
|
this._store = e, this._handlers = new Map(t.map((s) => [s.mode, s])), this._unsubSelected = this._store.onSelectedObjectChange(() => {
|
|
988
988
|
this._handlers.get(this._currentTool)?.handle();
|
|
@@ -1006,19 +1006,19 @@ let Q = class {
|
|
|
1006
1006
|
this._unsubSelected?.(), this._handlers && this._handlers.clear(), this._currentTool = C.Translate, this._store.setToolType(this._currentTool);
|
|
1007
1007
|
}
|
|
1008
1008
|
};
|
|
1009
|
-
|
|
1009
|
+
J = jt([
|
|
1010
1010
|
u(),
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
],
|
|
1014
|
-
var
|
|
1015
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1011
|
+
Oe(0, W("IToolHandler")),
|
|
1012
|
+
Oe(1, h("IEditorStore"))
|
|
1013
|
+
], J);
|
|
1014
|
+
var It = Object.getOwnPropertyDescriptor, Ht = (t, e, s, i) => {
|
|
1015
|
+
for (var r = i > 1 ? void 0 : i ? It(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1016
1016
|
(n = t[o]) && (r = n(r) || r);
|
|
1017
1017
|
return r;
|
|
1018
|
-
},
|
|
1019
|
-
let
|
|
1018
|
+
}, kt = (t, e) => (s, i) => e(s, i, t);
|
|
1019
|
+
let ee = class {
|
|
1020
1020
|
/** Текущий режим редактирования сцены */
|
|
1021
|
-
_currentMode =
|
|
1021
|
+
_currentMode = N.AddFigure;
|
|
1022
1022
|
/** Хендлеры, которые управляют отображением */
|
|
1023
1023
|
_handlers;
|
|
1024
1024
|
constructor(t) {
|
|
@@ -1026,28 +1026,28 @@ let J = class {
|
|
|
1026
1026
|
}
|
|
1027
1027
|
/** Установка режима редактирования сцены */
|
|
1028
1028
|
manage(t, e) {
|
|
1029
|
-
t ===
|
|
1029
|
+
t === N.AddFigure ? this._handlers.get(t)?.handle(e) : this._handlers.get(t)?.handle(), this._currentMode = t;
|
|
1030
1030
|
}
|
|
1031
1031
|
/** Освобождает ресурсы менеджера. */
|
|
1032
1032
|
dispose() {
|
|
1033
|
-
this._handlers && this._handlers.clear(), this._currentMode =
|
|
1033
|
+
this._handlers && this._handlers.clear(), this._currentMode = N.AddFigure;
|
|
1034
1034
|
}
|
|
1035
1035
|
};
|
|
1036
|
-
|
|
1036
|
+
ee = Ht([
|
|
1037
1037
|
u(),
|
|
1038
|
-
|
|
1039
|
-
],
|
|
1040
|
-
var
|
|
1041
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1038
|
+
kt(0, W("ISceneHandler"))
|
|
1039
|
+
], ee);
|
|
1040
|
+
var Vt = Object.getOwnPropertyDescriptor, Nt = (t, e, s, i) => {
|
|
1041
|
+
for (var r = i > 1 ? void 0 : i ? Vt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1042
1042
|
(n = t[o]) && (r = n(r) || r);
|
|
1043
1043
|
return r;
|
|
1044
|
-
},
|
|
1045
|
-
let
|
|
1044
|
+
}, Yt = (t, e) => (s, i) => e(s, i, t);
|
|
1045
|
+
let te = class {
|
|
1046
1046
|
constructor(t) {
|
|
1047
1047
|
this._api = t;
|
|
1048
1048
|
}
|
|
1049
1049
|
/** Режим отображения. */
|
|
1050
|
-
mode =
|
|
1050
|
+
mode = V.Wireframe;
|
|
1051
1051
|
/** Сохраняем предыдущие значения wireframe для отката. */
|
|
1052
1052
|
_prevWireframe = /* @__PURE__ */ new Map();
|
|
1053
1053
|
/** Сохраняем исходные цвета материалов для отката */
|
|
@@ -1098,16 +1098,16 @@ let ee = class {
|
|
|
1098
1098
|
"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));
|
|
1099
1099
|
}
|
|
1100
1100
|
};
|
|
1101
|
-
|
|
1101
|
+
te = Nt([
|
|
1102
1102
|
u(),
|
|
1103
|
-
|
|
1104
|
-
],
|
|
1105
|
-
var
|
|
1106
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1103
|
+
Yt(0, h("RendererApi"))
|
|
1104
|
+
], te);
|
|
1105
|
+
var zt = Object.getOwnPropertyDescriptor, Ut = (t, e, s, i) => {
|
|
1106
|
+
for (var r = i > 1 ? void 0 : i ? zt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1107
1107
|
(n = t[o]) && (r = n(r) || r);
|
|
1108
1108
|
return r;
|
|
1109
|
-
},
|
|
1110
|
-
let
|
|
1109
|
+
}, Te = (t, e) => (s, i) => e(s, i, t);
|
|
1110
|
+
let se = class {
|
|
1111
1111
|
constructor(t, e) {
|
|
1112
1112
|
this._api = t, this._store = e;
|
|
1113
1113
|
}
|
|
@@ -1119,9 +1119,9 @@ let te = class {
|
|
|
1119
1119
|
_selectedMesh = null;
|
|
1120
1120
|
// Цвета, необходимые для переключения
|
|
1121
1121
|
/** Цвет ребер для фигуры, на которую навелись */
|
|
1122
|
-
_hoverColor =
|
|
1122
|
+
_hoverColor = F;
|
|
1123
1123
|
/** Цвет ребер для выделенной фигуры */
|
|
1124
|
-
_selectColor =
|
|
1124
|
+
_selectColor = Z;
|
|
1125
1125
|
/** Исходные цвета материалов линий для отката */
|
|
1126
1126
|
_origLineColors = /* @__PURE__ */ new WeakMap();
|
|
1127
1127
|
handle(t, e) {
|
|
@@ -1178,17 +1178,17 @@ let te = class {
|
|
|
1178
1178
|
});
|
|
1179
1179
|
}
|
|
1180
1180
|
};
|
|
1181
|
-
|
|
1181
|
+
se = Ut([
|
|
1182
1182
|
u(),
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
],
|
|
1186
|
-
var
|
|
1187
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1183
|
+
Te(0, h("RendererApi")),
|
|
1184
|
+
Te(1, h("IEditorStore"))
|
|
1185
|
+
], se);
|
|
1186
|
+
var Wt = Object.getOwnPropertyDescriptor, Ft = (t, e, s, i) => {
|
|
1187
|
+
for (var r = i > 1 ? void 0 : i ? Wt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1188
1188
|
(n = t[o]) && (r = n(r) || r);
|
|
1189
1189
|
return r;
|
|
1190
|
-
},
|
|
1191
|
-
let
|
|
1190
|
+
}, Zt = (t, e) => (s, i) => e(s, i, t);
|
|
1191
|
+
let ie = class {
|
|
1192
1192
|
constructor(t) {
|
|
1193
1193
|
this._api = t;
|
|
1194
1194
|
}
|
|
@@ -1200,9 +1200,9 @@ let se = class {
|
|
|
1200
1200
|
_selected = null;
|
|
1201
1201
|
// Цвета, необходимые для переключения
|
|
1202
1202
|
/** Цвет грани, на которую навелись */
|
|
1203
|
-
_hoverColor =
|
|
1203
|
+
_hoverColor = F;
|
|
1204
1204
|
/** Цвет выделенной граней */
|
|
1205
|
-
_selectColor =
|
|
1205
|
+
_selectColor = Z;
|
|
1206
1206
|
/** Изначальный цвет граней у модели, перед наложением эффектов*/
|
|
1207
1207
|
_defaultColor = 2236962;
|
|
1208
1208
|
handle(t, e) {
|
|
@@ -1216,16 +1216,16 @@ let se = class {
|
|
|
1216
1216
|
throw new Error("Method not implemented.");
|
|
1217
1217
|
}
|
|
1218
1218
|
};
|
|
1219
|
-
|
|
1219
|
+
ie = Ft([
|
|
1220
1220
|
u(),
|
|
1221
|
-
|
|
1222
|
-
],
|
|
1223
|
-
var
|
|
1224
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1221
|
+
Zt(0, h("RendererApi"))
|
|
1222
|
+
], ie);
|
|
1223
|
+
var $t = Object.getOwnPropertyDescriptor, Bt = (t, e, s, i) => {
|
|
1224
|
+
for (var r = i > 1 ? void 0 : i ? $t(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1225
1225
|
(n = t[o]) && (r = n(r) || r);
|
|
1226
1226
|
return r;
|
|
1227
|
-
},
|
|
1228
|
-
let
|
|
1227
|
+
}, Le = (t, e) => (s, i) => e(s, i, t);
|
|
1228
|
+
let re = class {
|
|
1229
1229
|
constructor(t, e) {
|
|
1230
1230
|
this._api = t, this._store = e, this._api.enableCameraLayer(L), this._hoverVertex = this._makeOverlayVertex(this._hoverColor), this._selectVertex = this._makeOverlayVertex(this._selectColor), this._api.addObject(this._hoverVertex, L), this._api.addObject(this._selectVertex, L);
|
|
1231
1231
|
}
|
|
@@ -1239,9 +1239,9 @@ let ie = class {
|
|
|
1239
1239
|
_selectVertex;
|
|
1240
1240
|
// Цвета, необходимые для переключения
|
|
1241
1241
|
/** Цвет ребра, на которое навелись */
|
|
1242
|
-
_hoverColor =
|
|
1242
|
+
_hoverColor = F;
|
|
1243
1243
|
/** Цвет выделенного ребра */
|
|
1244
|
-
_selectColor =
|
|
1244
|
+
_selectColor = Z;
|
|
1245
1245
|
handle(t, e) {
|
|
1246
1246
|
if (this._api.setRaycastMode(this.mode), e === P.Hover) {
|
|
1247
1247
|
if (!t) {
|
|
@@ -1274,7 +1274,7 @@ let ie = class {
|
|
|
1274
1274
|
dispose() {
|
|
1275
1275
|
this.rollback(), this._api.removeObject(this._hoverVertex), this._api.removeObject(this._selectVertex), this._hoverVertex.geometry.dispose(), this._hoverVertex.material.dispose(), this._selectVertex.geometry.dispose(), this._selectVertex.material.dispose();
|
|
1276
1276
|
}
|
|
1277
|
-
_makeOverlayVertex(t, e =
|
|
1277
|
+
_makeOverlayVertex(t, e = tt) {
|
|
1278
1278
|
const s = new a.BufferGeometry();
|
|
1279
1279
|
s.setAttribute("position", new a.Float32BufferAttribute([0, 0, 0], 3));
|
|
1280
1280
|
const i = new a.PointsMaterial({
|
|
@@ -1303,7 +1303,7 @@ let ie = class {
|
|
|
1303
1303
|
}
|
|
1304
1304
|
/** Готовит метаданные для выбранной вершины и пишет их в _selectVertex.userData */
|
|
1305
1305
|
_prepareVertexMetadata(t, e) {
|
|
1306
|
-
const s =
|
|
1306
|
+
const s = Ve(t);
|
|
1307
1307
|
if (!s) return;
|
|
1308
1308
|
const i = t.geometry.getAttribute("position"), r = new a.Vector3(
|
|
1309
1309
|
i.getX(e),
|
|
@@ -1315,9 +1315,9 @@ let ie = class {
|
|
|
1315
1315
|
const O = s.children.find((M) => M?.isLineSegments);
|
|
1316
1316
|
let y = [];
|
|
1317
1317
|
if (O) {
|
|
1318
|
-
const M = new a.Matrix4().copy(O.matrixWorld).invert(),
|
|
1319
|
-
for (let
|
|
1320
|
-
|
|
1318
|
+
const M = new a.Matrix4().copy(O.matrixWorld).invert(), Y = r.clone().applyMatrix4(M), k = O.geometry.getAttribute("position"), z = new a.Vector3();
|
|
1319
|
+
for (let A = 0; A < k.count; A++)
|
|
1320
|
+
z.fromBufferAttribute(k, A), z.distanceToSquared(Y) < f && y.push(A);
|
|
1321
1321
|
}
|
|
1322
1322
|
this._selectVertex.userData.vertexInfo = {
|
|
1323
1323
|
points: t,
|
|
@@ -1341,12 +1341,12 @@ let ie = class {
|
|
|
1341
1341
|
(!n || n.count < 1) && (o.setAttribute("position", new a.BufferAttribute(new Float32Array(3), 3)), n = o.getAttribute("position")), n.setXYZ(0, 0, 0, 0), n.needsUpdate = !0, t.quaternion.identity(), t.scale.set(1, 1, 1), t.updateMatrixWorld(!0);
|
|
1342
1342
|
}
|
|
1343
1343
|
};
|
|
1344
|
-
|
|
1344
|
+
re = Bt([
|
|
1345
1345
|
u(),
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
],
|
|
1349
|
-
class
|
|
1346
|
+
Le(0, h("RendererApi")),
|
|
1347
|
+
Le(1, h("IEditorStore"))
|
|
1348
|
+
], re);
|
|
1349
|
+
class me {
|
|
1350
1350
|
constructor(e, s) {
|
|
1351
1351
|
this.api = e, this.store = s, this._unsubscribeTransform = this.api.onTransformChange(() => {
|
|
1352
1352
|
this.store.getSelectedObject() && this.store.notifySelectedTransformChange?.();
|
|
@@ -1373,63 +1373,63 @@ class ue {
|
|
|
1373
1373
|
this.rollback(), this._unsubscribeTransform && this._unsubscribeTransform();
|
|
1374
1374
|
}
|
|
1375
1375
|
}
|
|
1376
|
-
var
|
|
1377
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1376
|
+
var Xt = Object.getOwnPropertyDescriptor, Gt = (t, e, s, i) => {
|
|
1377
|
+
for (var r = i > 1 ? void 0 : i ? Xt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1378
1378
|
(n = t[o]) && (r = n(r) || r);
|
|
1379
1379
|
return r;
|
|
1380
|
-
},
|
|
1381
|
-
let
|
|
1380
|
+
}, De = (t, e) => (s, i) => e(s, i, t);
|
|
1381
|
+
let oe = class extends me {
|
|
1382
1382
|
/** Инструмент, которым управляет хендлер, нужен только менеджеру */
|
|
1383
1383
|
mode = C.Translate;
|
|
1384
1384
|
constructor(t, e) {
|
|
1385
1385
|
super(t, e);
|
|
1386
1386
|
}
|
|
1387
1387
|
};
|
|
1388
|
-
|
|
1388
|
+
oe = Gt([
|
|
1389
1389
|
u(),
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
],
|
|
1393
|
-
var
|
|
1394
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1390
|
+
De(0, h("RendererApi")),
|
|
1391
|
+
De(1, h("IEditorStore"))
|
|
1392
|
+
], oe);
|
|
1393
|
+
var Kt = Object.getOwnPropertyDescriptor, qt = (t, e, s, i) => {
|
|
1394
|
+
for (var r = i > 1 ? void 0 : i ? Kt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1395
1395
|
(n = t[o]) && (r = n(r) || r);
|
|
1396
1396
|
return r;
|
|
1397
|
-
},
|
|
1398
|
-
let
|
|
1397
|
+
}, Ce = (t, e) => (s, i) => e(s, i, t);
|
|
1398
|
+
let ne = class extends me {
|
|
1399
1399
|
/** Инструмент, которым управляет хендлер, нужен только менеджеру */
|
|
1400
1400
|
mode = C.Scale;
|
|
1401
1401
|
constructor(t, e) {
|
|
1402
1402
|
super(t, e);
|
|
1403
1403
|
}
|
|
1404
1404
|
};
|
|
1405
|
-
|
|
1405
|
+
ne = qt([
|
|
1406
1406
|
u(),
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
],
|
|
1410
|
-
var
|
|
1411
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1407
|
+
Ce(0, h("RendererApi")),
|
|
1408
|
+
Ce(1, h("IEditorStore"))
|
|
1409
|
+
], ne);
|
|
1410
|
+
var Qt = Object.getOwnPropertyDescriptor, Jt = (t, e, s, i) => {
|
|
1411
|
+
for (var r = i > 1 ? void 0 : i ? Qt(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1412
1412
|
(n = t[o]) && (r = n(r) || r);
|
|
1413
1413
|
return r;
|
|
1414
|
-
},
|
|
1415
|
-
let
|
|
1414
|
+
}, Ae = (t, e) => (s, i) => e(s, i, t);
|
|
1415
|
+
let ae = class extends me {
|
|
1416
1416
|
/** Инструмент, которым управляет хендлер, нужен только менеджеру */
|
|
1417
1417
|
mode = C.Rotate;
|
|
1418
1418
|
constructor(t, e) {
|
|
1419
1419
|
super(t, e);
|
|
1420
1420
|
}
|
|
1421
1421
|
};
|
|
1422
|
-
|
|
1422
|
+
ae = Jt([
|
|
1423
1423
|
u(),
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
],
|
|
1427
|
-
var
|
|
1428
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1424
|
+
Ae(0, h("RendererApi")),
|
|
1425
|
+
Ae(1, h("IEditorStore"))
|
|
1426
|
+
], ae);
|
|
1427
|
+
var es = Object.getOwnPropertyDescriptor, ts = (t, e, s, i) => {
|
|
1428
|
+
for (var r = i > 1 ? void 0 : i ? es(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1429
1429
|
(n = t[o]) && (r = n(r) || r);
|
|
1430
1430
|
return r;
|
|
1431
1431
|
}, xe = (t, e) => (s, i) => e(s, i, t);
|
|
1432
|
-
let
|
|
1432
|
+
let he = class {
|
|
1433
1433
|
constructor(t, e) {
|
|
1434
1434
|
this._api = t, this._store = e, this._api.enableCameraLayer(L), this._hoverLine = this._makeOverlayLine(this._hoverColor), this._selectLine = this._makeOverlayLine(this._selectColor), this._api.addObject(this._hoverLine, L), this._api.addObject(this._selectLine, L);
|
|
1435
1435
|
}
|
|
@@ -1445,9 +1445,9 @@ let ae = class {
|
|
|
1445
1445
|
_selected = null;
|
|
1446
1446
|
// Цвета, необходимые для переключения
|
|
1447
1447
|
/** Цвет ребра, на которое навелись */
|
|
1448
|
-
_hoverColor =
|
|
1448
|
+
_hoverColor = F;
|
|
1449
1449
|
/** Цвет выделенного ребра */
|
|
1450
|
-
_selectColor =
|
|
1450
|
+
_selectColor = Z;
|
|
1451
1451
|
/** Обработка текущего режима выборки. */
|
|
1452
1452
|
handle(t, e) {
|
|
1453
1453
|
if (this._api.setRaycastMode(this.mode), e === P.Hover) {
|
|
@@ -1529,56 +1529,56 @@ let ae = class {
|
|
|
1529
1529
|
}
|
|
1530
1530
|
/** Запись метаданных выбранного ребра для использования инструментов */
|
|
1531
1531
|
_prepareEdgeMetadata(t, e) {
|
|
1532
|
-
const s =
|
|
1532
|
+
const s = Ve(t);
|
|
1533
1533
|
if (!s) return;
|
|
1534
1534
|
const i = t.geometry.getAttribute("position"), r = e * 2, o = r + 1, n = new a.Vector3(i.getX(r), i.getY(r), i.getZ(r)).applyMatrix4(
|
|
1535
1535
|
t.matrixWorld
|
|
1536
1536
|
), c = new a.Vector3(i.getX(o), i.getY(o), i.getZ(o)).applyMatrix4(
|
|
1537
1537
|
t.matrixWorld
|
|
1538
|
-
), _ = new a.Matrix4().copy(s.matrixWorld).invert(), m = n.clone().applyMatrix4(_), f = c.clone().applyMatrix4(_), b = s.geometry.getAttribute("position"), O = new a.Vector3(), y = 1e-6, M = [],
|
|
1539
|
-
for (let
|
|
1540
|
-
O.fromBufferAttribute(b,
|
|
1541
|
-
const
|
|
1542
|
-
for (let
|
|
1543
|
-
|
|
1538
|
+
), _ = new a.Matrix4().copy(s.matrixWorld).invert(), m = n.clone().applyMatrix4(_), f = c.clone().applyMatrix4(_), b = s.geometry.getAttribute("position"), O = new a.Vector3(), y = 1e-6, M = [], Y = [];
|
|
1539
|
+
for (let E = 0; E < b.count; E++)
|
|
1540
|
+
O.fromBufferAttribute(b, E), O.distanceToSquared(m) < y * y ? M.push(E) : O.distanceToSquared(f) < y * y && Y.push(E);
|
|
1541
|
+
const k = new a.Matrix4().copy(t.matrixWorld).invert(), z = n.clone().applyMatrix4(k), A = c.clone().applyMatrix4(k), fe = t.geometry.getAttribute("position"), $ = new a.Vector3(), ge = [], be = [];
|
|
1542
|
+
for (let E = 0; E < fe.count; E++)
|
|
1543
|
+
$.fromBufferAttribute(fe, E), $.distanceToSquared(z) < y * y ? ge.push(E) : $.distanceToSquared(A) < y * y && be.push(E);
|
|
1544
1544
|
this._selectLine.userData.edgeInfo = {
|
|
1545
1545
|
lines: t,
|
|
1546
1546
|
seg: e,
|
|
1547
1547
|
mesh: s,
|
|
1548
1548
|
aIndices: M,
|
|
1549
|
-
bIndices:
|
|
1550
|
-
aEdgeIndices:
|
|
1551
|
-
bEdgeIndices:
|
|
1549
|
+
bIndices: Y,
|
|
1550
|
+
aEdgeIndices: ge,
|
|
1551
|
+
bEdgeIndices: be
|
|
1552
1552
|
};
|
|
1553
1553
|
}
|
|
1554
1554
|
};
|
|
1555
|
-
|
|
1555
|
+
he = ts([
|
|
1556
1556
|
u(),
|
|
1557
1557
|
xe(0, h("RendererApi")),
|
|
1558
1558
|
xe(1, h("IEditorStore"))
|
|
1559
|
-
],
|
|
1560
|
-
var
|
|
1561
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1559
|
+
], he);
|
|
1560
|
+
var ss = Object.getOwnPropertyDescriptor, is = (t, e, s, i) => {
|
|
1561
|
+
for (var r = i > 1 ? void 0 : i ? ss(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1562
1562
|
(n = t[o]) && (r = n(r) || r);
|
|
1563
1563
|
return r;
|
|
1564
|
-
},
|
|
1565
|
-
let
|
|
1564
|
+
}, rs = (t, e) => (s, i) => e(s, i, t);
|
|
1565
|
+
let le = class {
|
|
1566
1566
|
constructor(t) {
|
|
1567
1567
|
this._api = t;
|
|
1568
1568
|
}
|
|
1569
1569
|
/** Режим редактирования сцены */
|
|
1570
|
-
mode =
|
|
1570
|
+
mode = N.AddFigure;
|
|
1571
1571
|
/** Последняя добавленная фигура, нужно для отката через `ctrl + z`. */
|
|
1572
1572
|
_lastAddedMesh = null;
|
|
1573
1573
|
/** Добавление базовых фигур на сцену, которые приписаны в `FigureType`. */
|
|
1574
1574
|
handle(t) {
|
|
1575
|
-
const e =
|
|
1575
|
+
const e = et[t](), s = e.getAttribute("position");
|
|
1576
1576
|
s && s.setUsage && s.setUsage(a.DynamicDrawUsage);
|
|
1577
|
-
const i = new a.Mesh(e,
|
|
1578
|
-
i.layers.enable(
|
|
1579
|
-
const r =
|
|
1577
|
+
const i = new a.Mesh(e, Ie);
|
|
1578
|
+
i.layers.enable(ke);
|
|
1579
|
+
const r = Ye(i.geometry);
|
|
1580
1580
|
i.add(r);
|
|
1581
|
-
const o =
|
|
1581
|
+
const o = Ne(i.geometry);
|
|
1582
1582
|
i.add(o), this._api.addMesh(i), this._lastAddedMesh = i;
|
|
1583
1583
|
}
|
|
1584
1584
|
/** Срабатывает только на `ctrl + z`. */
|
|
@@ -1590,26 +1590,26 @@ let he = class {
|
|
|
1590
1590
|
this._lastAddedMesh = null;
|
|
1591
1591
|
}
|
|
1592
1592
|
};
|
|
1593
|
-
|
|
1593
|
+
le = is([
|
|
1594
1594
|
u(),
|
|
1595
|
-
|
|
1596
|
-
],
|
|
1597
|
-
var
|
|
1598
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1595
|
+
rs(0, h("RendererApi"))
|
|
1596
|
+
], le);
|
|
1597
|
+
var os = Object.getOwnPropertyDescriptor, ns = (t, e, s, i) => {
|
|
1598
|
+
for (var r = i > 1 ? void 0 : i ? os(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1599
1599
|
(n = t[o]) && (r = n(r) || r);
|
|
1600
1600
|
return r;
|
|
1601
|
-
},
|
|
1602
|
-
let
|
|
1601
|
+
}, Re = (t, e) => (s, i) => e(s, i, t);
|
|
1602
|
+
let ce = class {
|
|
1603
1603
|
constructor(t, e) {
|
|
1604
1604
|
this._api = t, this._store = e;
|
|
1605
1605
|
}
|
|
1606
1606
|
/** Режим редактирования сцены */
|
|
1607
|
-
mode =
|
|
1607
|
+
mode = N.DeleteFigure;
|
|
1608
1608
|
/** Последняя удаленная фигура, сохраняем для отката через `ctrl + z` */
|
|
1609
1609
|
_lastDeletedMesh = null;
|
|
1610
1610
|
handle() {
|
|
1611
1611
|
const t = this._store.getSelectedObject();
|
|
1612
|
-
|
|
1612
|
+
ct(t) && (this._api.removeMesh(t), this._store.setSelectedObject(null), this._lastDeletedMesh = t);
|
|
1613
1613
|
}
|
|
1614
1614
|
/** Срабатывает только на `ctrl + z`. */
|
|
1615
1615
|
rollback() {
|
|
@@ -1620,17 +1620,17 @@ let le = class {
|
|
|
1620
1620
|
this._lastDeletedMesh = null;
|
|
1621
1621
|
}
|
|
1622
1622
|
};
|
|
1623
|
-
|
|
1623
|
+
ce = ns([
|
|
1624
1624
|
u(),
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
],
|
|
1628
|
-
var
|
|
1629
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1625
|
+
Re(0, h("RendererApi")),
|
|
1626
|
+
Re(1, h("IEditorStore"))
|
|
1627
|
+
], ce);
|
|
1628
|
+
var as = Object.getOwnPropertyDescriptor, hs = (t, e, s, i) => {
|
|
1629
|
+
for (var r = i > 1 ? void 0 : i ? as(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1630
1630
|
(n = t[o]) && (r = n(r) || r);
|
|
1631
1631
|
return r;
|
|
1632
|
-
},
|
|
1633
|
-
let
|
|
1632
|
+
}, ls = (t, e) => (s, i) => e(s, i, t);
|
|
1633
|
+
let de = class {
|
|
1634
1634
|
constructor(t) {
|
|
1635
1635
|
this._renderer = t;
|
|
1636
1636
|
}
|
|
@@ -1689,16 +1689,16 @@ let ce = class {
|
|
|
1689
1689
|
return this._renderer.onTransformChange(t);
|
|
1690
1690
|
}
|
|
1691
1691
|
};
|
|
1692
|
-
|
|
1692
|
+
de = hs([
|
|
1693
1693
|
u(),
|
|
1694
|
-
|
|
1695
|
-
],
|
|
1696
|
-
var
|
|
1697
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1694
|
+
ls(0, h("EditorRenderer"))
|
|
1695
|
+
], de);
|
|
1696
|
+
var cs = Object.getOwnPropertyDescriptor, ds = (t, e, s, i) => {
|
|
1697
|
+
for (var r = i > 1 ? void 0 : i ? cs(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1698
1698
|
(n = t[o]) && (r = n(r) || r);
|
|
1699
1699
|
return r;
|
|
1700
|
-
},
|
|
1701
|
-
let
|
|
1700
|
+
}, x = (t, e) => (s, i) => e(s, i, t);
|
|
1701
|
+
let _e = class {
|
|
1702
1702
|
constructor(t, e, s, i, r, o) {
|
|
1703
1703
|
this._displayManager = t, this._selectManager = e, this._toolManager = s, this._sceneManager = i, this._renderer = r, this._store = o, this.setSelectMode(v.Mesh), this.setToolMode(C.Translate);
|
|
1704
1704
|
}
|
|
@@ -1740,27 +1740,27 @@ let de = class {
|
|
|
1740
1740
|
this._displayManager.dispose(), this._selectManager.dispose(), this._renderer.dispose();
|
|
1741
1741
|
}
|
|
1742
1742
|
};
|
|
1743
|
-
|
|
1743
|
+
_e = ds([
|
|
1744
1744
|
u(),
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
],
|
|
1752
|
-
var
|
|
1753
|
-
for (var r = i > 1 ? void 0 : i ?
|
|
1745
|
+
x(0, h("IDisplayManager")),
|
|
1746
|
+
x(1, h("ISelectManager")),
|
|
1747
|
+
x(2, h("IToolManager")),
|
|
1748
|
+
x(3, h("ISceneManager")),
|
|
1749
|
+
x(4, h("EditorRenderer")),
|
|
1750
|
+
x(5, h("IEditorStore"))
|
|
1751
|
+
], _e);
|
|
1752
|
+
var _s = Object.getOwnPropertyDescriptor, ps = (t, e, s, i) => {
|
|
1753
|
+
for (var r = i > 1 ? void 0 : i ? _s(e, s) : e, o = t.length - 1, n; o >= 0; o--)
|
|
1754
1754
|
(n = t[o]) && (r = n(r) || r);
|
|
1755
1755
|
return r;
|
|
1756
1756
|
};
|
|
1757
|
-
let
|
|
1757
|
+
let pe = class {
|
|
1758
1758
|
/** Текущий режим выборки. */
|
|
1759
1759
|
_selectMode = v.Mesh;
|
|
1760
1760
|
/** Текущий выбранный инструмент. */
|
|
1761
1761
|
_toolType = C.Translate;
|
|
1762
1762
|
/** Выбранный режим отображения. */
|
|
1763
|
-
_displayMode =
|
|
1763
|
+
_displayMode = V.Plane;
|
|
1764
1764
|
/** Выбранный объект на сцене. */
|
|
1765
1765
|
_selectedObject = null;
|
|
1766
1766
|
/** Слушатели событий по изменению выбранного объекта. */
|
|
@@ -1768,7 +1768,7 @@ let _e = class {
|
|
|
1768
1768
|
/** Слушатели событий трансформации выбранного объекта. */
|
|
1769
1769
|
_transformListeners = /* @__PURE__ */ new Set();
|
|
1770
1770
|
constructor() {
|
|
1771
|
-
|
|
1771
|
+
Je(this, {}, { autoBind: !0 });
|
|
1772
1772
|
}
|
|
1773
1773
|
/** @inheritdoc */
|
|
1774
1774
|
getSelectMode() {
|
|
@@ -1801,7 +1801,7 @@ let _e = class {
|
|
|
1801
1801
|
/** @inheritdoc */
|
|
1802
1802
|
getSelectionStats() {
|
|
1803
1803
|
const t = this._selectedObject;
|
|
1804
|
-
return t ?
|
|
1804
|
+
return t ? dt(t) : null;
|
|
1805
1805
|
}
|
|
1806
1806
|
/** @inheritdoc */
|
|
1807
1807
|
setSelectedObject(t) {
|
|
@@ -1823,22 +1823,28 @@ let _e = class {
|
|
|
1823
1823
|
for (const t of this._transformListeners) t();
|
|
1824
1824
|
}
|
|
1825
1825
|
};
|
|
1826
|
-
|
|
1826
|
+
pe = ps([
|
|
1827
1827
|
u()
|
|
1828
|
-
],
|
|
1829
|
-
let
|
|
1830
|
-
const d =
|
|
1831
|
-
function
|
|
1832
|
-
return
|
|
1828
|
+
], pe);
|
|
1829
|
+
let je = !1;
|
|
1830
|
+
const d = qe.createChildContainer();
|
|
1831
|
+
function us(t) {
|
|
1832
|
+
return je || (d.registerInstance("Canvas", t), d.registerSingleton("EventBus", G), d.registerSingleton("EditorRenderer", K), d.registerSingleton("RendererApi", de), d.registerSingleton("IDisplayHandler", te), d.registerSingleton("ISelectHandler", se), d.registerSingleton("ISelectHandler", ie), d.registerSingleton("ISelectHandler", he), d.registerSingleton("ISelectHandler", re), d.registerSingleton("IToolHandler", oe), d.registerSingleton("IToolHandler", ne), d.registerSingleton("IToolHandler", ae), d.registerSingleton("ISceneHandler", le), d.registerSingleton("ISceneHandler", ce), d.registerSingleton("IDisplayManager", q), d.registerSingleton("ISelectManager", Q), d.registerSingleton("IToolManager", J), d.registerSingleton("ISceneManager", ee), d.registerSingleton("EditorHub", _e), d.registerSingleton("IEditorStore", pe), je = !0), d;
|
|
1833
1833
|
}
|
|
1834
|
-
|
|
1834
|
+
let j = null;
|
|
1835
|
+
const Ss = (t) => (j || (j = us(t)), j.resolve("EditorHub")), Ps = () => {
|
|
1836
|
+
if (!j)
|
|
1837
|
+
throw new Error("EditorHub is not initialized. Call createAppHub(canvas) first.");
|
|
1838
|
+
return j.resolve("EditorHub");
|
|
1839
|
+
};
|
|
1835
1840
|
export {
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1841
|
+
_e as EditorHub,
|
|
1842
|
+
K as EditorRenderer,
|
|
1843
|
+
G as EventBus,
|
|
1844
|
+
H as EventTopics,
|
|
1845
|
+
ws as ObjLoader,
|
|
1846
|
+
Es as PreviewRenderer,
|
|
1847
|
+
He as Renderer,
|
|
1848
|
+
Ss as createAppHub,
|
|
1849
|
+
Ps as getAppHub
|
|
1844
1850
|
};
|