@planara/core 2.1.1 → 2.3.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/constants/colors.d.ts +35 -0
- package/dist/constants/colors.d.ts.map +1 -0
- package/dist/constants/figure-geometries.d.ts +10 -0
- package/dist/constants/figure-geometries.d.ts.map +1 -0
- package/dist/constants/layers.d.ts +39 -0
- package/dist/constants/layers.d.ts.map +1 -0
- package/dist/constants/threshold.d.ts +5 -0
- package/dist/constants/threshold.d.ts.map +1 -0
- package/dist/core/editor-renderer.d.ts +8 -2
- package/dist/core/editor-renderer.d.ts.map +1 -1
- package/dist/core/preview-renderer.d.ts.map +1 -1
- package/dist/core/renderer.d.ts +55 -4
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/events/editor-events.d.ts +4 -4
- package/dist/events/editor-events.d.ts.map +1 -1
- package/dist/events/event-topics.d.ts +2 -2
- package/dist/events/event-topics.d.ts.map +1 -1
- package/dist/extensions/orbit-extension.d.ts +3 -2
- package/dist/extensions/orbit-extension.d.ts.map +1 -1
- package/dist/handlers/display/wireframe-handler.d.ts +14 -13
- package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
- package/dist/handlers/scene/add-figure-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -0
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts +24 -0
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -0
- package/dist/handlers/select/edge-select-handler.d.ts +46 -0
- package/dist/handlers/select/edge-select-handler.d.ts.map +1 -0
- package/dist/handlers/select/face-select-handler.d.ts +34 -0
- package/dist/handlers/select/face-select-handler.d.ts.map +1 -0
- package/dist/handlers/select/mesh-select-handler.d.ts +20 -8
- package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
- package/dist/handlers/tool/base-tool-handler.d.ts +6 -4
- package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/rotate-tool-handler.d.ts +2 -1
- package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/scale-tool-handler.d.ts +2 -1
- package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/translate-tool-handler.d.ts +2 -1
- package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
- package/dist/hub/editor-hub.d.ts +9 -5
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +230 -201
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +9508 -5981
- package/dist/index.full.d.ts +87 -23
- package/dist/index.public.d.ts +36 -23
- package/dist/index.umd.js +197 -168
- package/dist/interfaces/api/raycast-api.d.ts +23 -0
- package/dist/interfaces/api/raycast-api.d.ts.map +1 -0
- package/dist/interfaces/api/scene-api.d.ts +50 -0
- package/dist/interfaces/api/scene-api.d.ts.map +1 -0
- package/dist/interfaces/handler/handler.d.ts +2 -5
- package/dist/interfaces/handler/handler.d.ts.map +1 -1
- package/dist/interfaces/handler/scene-handler.d.ts +14 -0
- package/dist/interfaces/handler/scene-handler.d.ts.map +1 -0
- package/dist/interfaces/manager/display-manager.d.ts +1 -1
- package/dist/interfaces/manager/manager.d.ts +2 -5
- package/dist/interfaces/manager/manager.d.ts.map +1 -1
- package/dist/interfaces/manager/scene-manager.d.ts +8 -0
- package/dist/interfaces/manager/scene-manager.d.ts.map +1 -0
- package/dist/interfaces/manager/select-manager.d.ts +1 -1
- package/dist/interfaces/manager/tool-manager.d.ts +1 -1
- package/dist/interfaces/store/editor-store.d.ts +44 -0
- package/dist/interfaces/store/editor-store.d.ts.map +1 -0
- package/dist/ioc/container.d.ts.map +1 -1
- package/dist/managers/display/display-manager.d.ts +6 -4
- package/dist/managers/display/display-manager.d.ts.map +1 -1
- package/dist/managers/scene/scene-manager.d.ts +19 -0
- package/dist/managers/scene/scene-manager.d.ts.map +1 -0
- package/dist/managers/select/select-manager.d.ts +11 -2
- package/dist/managers/select/select-manager.d.ts.map +1 -1
- package/dist/managers/tool/tool-manager.d.ts +6 -7
- package/dist/managers/tool/tool-manager.d.ts.map +1 -1
- package/dist/store/index.d.ts +37 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/types/api/editor-api.d.ts +4 -0
- package/dist/types/api/editor-api.d.ts.map +1 -0
- package/dist/types/listener/selected-listener.d.ts +3 -0
- package/dist/types/listener/selected-listener.d.ts.map +1 -0
- package/dist/utils/helpers.d.ts +4 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/renderer-api.d.ts +20 -2
- package/dist/utils/renderer-api.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SelectMode } from '@planara/types';
|
|
2
|
+
/**
|
|
3
|
+
* Публичный API для конфигурации Raycaster в редакторе.
|
|
4
|
+
*
|
|
5
|
+
* Хэндлеры получают единый `Intersection`, а текущий режим
|
|
6
|
+
* определяет, какие объекты участвуют в пиккинге и какие пороги
|
|
7
|
+
* используются:
|
|
8
|
+
* Настройка режима может меняться на лету, перед любым вызовом `raycaster.intersectObjects`.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export interface IRaycastAPI {
|
|
12
|
+
/**
|
|
13
|
+
* Устанавливает режим работы Raycaster и связанные с ним таргеты/пороговые параметры.
|
|
14
|
+
*
|
|
15
|
+
* **Поведение по режимам:**
|
|
16
|
+
* - `Mesh`/`Face`
|
|
17
|
+
* - `Edge`
|
|
18
|
+
* - `Vertex`
|
|
19
|
+
* @param mode Текущий режим выбора (`Mesh | Face | Edge | Vertex`).
|
|
20
|
+
*/
|
|
21
|
+
setRaycastMode(mode: SelectMode): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=raycast-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raycast-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/raycast-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;OAQG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACxC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Мини-API для взаимодействия со сценой и слоями камеры.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Абстрагирует прямой доступ к `THREE.Scene`/`THREE.Camera`, позволяя
|
|
7
|
+
* хендлерам добавлять/удалять объекты и управлять видимостью слоёв.
|
|
8
|
+
* Рекомендуется использовать совместно с константами слоёв
|
|
9
|
+
* (например, `MESH_LAYER`, `LINE_LAYER`, `OVERLAY_LAYER`).
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // Добавить оверлей на слой подсветок и убедиться, что камера его видит:
|
|
13
|
+
* sceneApi.add(overlayLine, OVERLAY_LAYER);
|
|
14
|
+
* sceneApi.enableCameraLayer(OVERLAY_LAYER);
|
|
15
|
+
*/
|
|
16
|
+
export interface ISceneApi {
|
|
17
|
+
/**
|
|
18
|
+
* Добавляет объект в сцену.
|
|
19
|
+
*
|
|
20
|
+
* @param obj - Объект для добавления (`THREE.Object3D`).
|
|
21
|
+
* @param layer - (Опц.) Слой, который следует выставить объекту перед добавлением.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Если `layer` указан, реализация должна вызвать `obj.layers.set(layer)` или
|
|
25
|
+
* эквивалентную логику, прежде чем поместить объект в сцену.
|
|
26
|
+
*/
|
|
27
|
+
addObject(obj: THREE.Object3D, layer?: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Удаляет объект из сцены.
|
|
30
|
+
*
|
|
31
|
+
* @param obj - Объект для удаления.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* Реализация может дополнительно освобождать ресурсы (материалы, геометрию)
|
|
35
|
+
* по соглашению, но это не обязательно для интерфейса.
|
|
36
|
+
*/
|
|
37
|
+
removeObject(obj: THREE.Object3D): void;
|
|
38
|
+
/**
|
|
39
|
+
* Включает указанный слой для активной камеры,
|
|
40
|
+
* чтобы объекты на этом слое были видимы.
|
|
41
|
+
*
|
|
42
|
+
* @param layer - Номер слоя, который требуется включить.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Показать оверлеи подсветки:
|
|
46
|
+
* sceneApi.enableCameraLayer(OVERLAY_LAYER);
|
|
47
|
+
*/
|
|
48
|
+
enableCameraLayer(layer: number): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=scene-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/scene-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;OASG;IACH,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErD;;;;;;;;OAQG;IACH,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAExC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { Disposable } from 'tsyringe';
|
|
1
2
|
/**
|
|
2
3
|
* Общий интерфейс для всех хендлеров.
|
|
3
4
|
* Хендлеры выполняют действия по настройке рендерера,
|
|
4
5
|
* управляют состоянием сцены или конкретных режимов отображения.
|
|
5
6
|
* @internal
|
|
6
7
|
*/
|
|
7
|
-
export interface IHandler {
|
|
8
|
+
export interface IHandler extends Disposable {
|
|
8
9
|
/**
|
|
9
10
|
* Выполняет основное действие хендлера.
|
|
10
11
|
* Например, применяет конкретный режим отображения или модифицирует настройки рендерера.
|
|
@@ -15,9 +16,5 @@ export interface IHandler {
|
|
|
15
16
|
* Используется для восстановления предыдущего состояния рендерера.
|
|
16
17
|
*/
|
|
17
18
|
rollback(): void;
|
|
18
|
-
/**
|
|
19
|
-
* Освобождает ресурсы хендлера, удаляет слушатели и очищает внутренние данные.
|
|
20
|
-
*/
|
|
21
|
-
destroy(): void;
|
|
22
19
|
}
|
|
23
20
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C;;;OAGG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;CAClB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IHandler } from './handler';
|
|
2
|
+
import { SceneMode } from '@planara/types';
|
|
3
|
+
/**
|
|
4
|
+
* Маркерный интерфейс для всех Scene-хендлеров.
|
|
5
|
+
* Используется только для DI.
|
|
6
|
+
*
|
|
7
|
+
* Расширяет {@link IHandler} и добавляет поле `mode`
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export interface ISceneHandler extends IHandler {
|
|
11
|
+
/** Режим редактирования сцены, за который отвечает хендлер */
|
|
12
|
+
mode: SceneMode;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=scene-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/scene-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,8DAA8D;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
+
import { Disposable } from 'tsyringe';
|
|
1
2
|
/**
|
|
2
3
|
* Общий интерфейс для всех менеджеров в хабе.
|
|
3
4
|
* Каждый менеджер отвечает за одну фичу.
|
|
4
5
|
* @public
|
|
5
6
|
*/
|
|
6
|
-
export interface IManager {
|
|
7
|
+
export interface IManager extends Disposable {
|
|
7
8
|
/**
|
|
8
9
|
* Выполняет основное действие менеджера.
|
|
9
10
|
*/
|
|
10
11
|
manage(...args: unknown[]): void;
|
|
11
|
-
/**
|
|
12
|
-
* Освобождает ресурсы менеджера.
|
|
13
|
-
*/
|
|
14
|
-
destroy(): void;
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C;;OAEG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/scene-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;CAAG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { DisplayMode, SelectMode, ToolType } from '@planara/types';
|
|
2
|
+
import { SelectedListener } from '../../types/listener/selected-listener';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
export interface IEditorStore {
|
|
5
|
+
/** Возвращает текущий режим выбора. */
|
|
6
|
+
getSelectMode(): SelectMode;
|
|
7
|
+
/** Возвращает текущий активный инструмент. */
|
|
8
|
+
getToolType(): ToolType;
|
|
9
|
+
/** Возвращает текущий режим отображения. */
|
|
10
|
+
getDisplayMode(): DisplayMode;
|
|
11
|
+
/**
|
|
12
|
+
* Устанавливает режим выбора.
|
|
13
|
+
* @param mode - Режим выбора (Mesh/Face/Edge/Vertex и т.п.).
|
|
14
|
+
*/
|
|
15
|
+
setSelectMode(mode: SelectMode): void;
|
|
16
|
+
/**
|
|
17
|
+
* Устанавливает активный инструмент.
|
|
18
|
+
* @param toolType - Тип инструмента (Translate/Rotate/Scale и т.п.).
|
|
19
|
+
*/
|
|
20
|
+
setToolType(toolType: ToolType): void;
|
|
21
|
+
/**
|
|
22
|
+
* Устанавливает режим отображения.
|
|
23
|
+
* @param mode - Режим отображения (зависит от твоего домена).
|
|
24
|
+
*/
|
|
25
|
+
setDisplayMode(mode: DisplayMode): void;
|
|
26
|
+
/**
|
|
27
|
+
* Возвращает текущий выбранный объект сцены.
|
|
28
|
+
* @remarks
|
|
29
|
+
* Предполагается, что до вызова этого метода уже был
|
|
30
|
+
* вызван {@link setSelectedObject}. Иначе результат не определён.
|
|
31
|
+
*/
|
|
32
|
+
getSelectedObject(): THREE.Object3D | null;
|
|
33
|
+
/**
|
|
34
|
+
* Устанавливает текущий выбранный объект сцены.
|
|
35
|
+
* @param object - Ссылка на объект `THREE.Object3D`, который считается выбранным.
|
|
36
|
+
*/
|
|
37
|
+
setSelectedObject(object: THREE.Object3D | null): void;
|
|
38
|
+
/**
|
|
39
|
+
* Регистрирует callback, вызываемый при каждом изменении выбранного 3D-объекта.
|
|
40
|
+
* @param cb - Callback, получающий текущий выбранный объект (`THREE.Object3D | null`).
|
|
41
|
+
*/
|
|
42
|
+
onSelectedObjectChange(cb: SelectedListener): () => void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=editor-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/editor-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,aAAa,IAAI,UAAU,CAAC;IAE5B,8CAA8C;IAC9C,WAAW,IAAI,QAAQ,CAAC;IAExB,4CAA4C;IAC5C,cAAc,IAAI,WAAW,CAAC;IAE9B;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAExC;;;;;OAKG;IACH,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAE3C;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAEvD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CAC1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAsClF,QAAA,MAAM,SAAS,qBAAyC,CAAC;AAEzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAuC9E;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { IDisplayManager } from '../../interfaces/manager/display-manager';
|
|
2
|
-
import { DisplayMode } from '@planara/types';
|
|
3
2
|
import { IDisplayHandler } from '../../interfaces/handler/display-handler';
|
|
3
|
+
import { IEditorStore } from '../../interfaces/store/editor-store';
|
|
4
|
+
import { DisplayMode } from '@planara/types';
|
|
4
5
|
/**
|
|
5
6
|
* Менеджер для управления отображением
|
|
6
7
|
* @internal
|
|
7
8
|
*/
|
|
8
9
|
export declare class DisplayManager implements IDisplayManager {
|
|
10
|
+
private _store;
|
|
9
11
|
/** Текущий режим отображения */
|
|
10
12
|
private _currentMode;
|
|
11
13
|
/** Хендлеры, которые управляют отображением */
|
|
12
14
|
private readonly _handlers;
|
|
13
|
-
constructor(handlers: IDisplayHandler[]);
|
|
15
|
+
constructor(handlers: IDisplayHandler[], _store: IEditorStore);
|
|
14
16
|
/** Установка режима отображения */
|
|
15
17
|
manage(mode: DisplayMode): void;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
+
/** Освобождает ресурсы менеджера. */
|
|
19
|
+
dispose(): Promise<void> | void;
|
|
18
20
|
}
|
|
19
21
|
//# sourceMappingURL=display-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IAS1B,OAAO,CAAC,MAAM;IARxC,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGvB,QAAQ,EAAE,eAAe,EAAE,EACzB,MAAM,EAAE,YAAY;IAKtD,mCAAmC;IAC5B,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAgBtC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAUvC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ISceneManager } from '../../interfaces/manager/scene-manager';
|
|
2
|
+
import { ISceneHandler } from '../../interfaces/handler/scene-handler';
|
|
3
|
+
import { FigureType, SceneMode } from '@planara/types';
|
|
4
|
+
/**
|
|
5
|
+
* Менеджер для управления сценой
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare class SceneManager implements ISceneManager {
|
|
9
|
+
/** Текущий режим редактирования сцены */
|
|
10
|
+
private _currentMode;
|
|
11
|
+
/** Хендлеры, которые управляют отображением */
|
|
12
|
+
private readonly _handlers;
|
|
13
|
+
constructor(handlers: ISceneHandler[]);
|
|
14
|
+
/** Установка режима редактирования сцены */
|
|
15
|
+
manage(mode: SceneMode, figure?: FigureType): void;
|
|
16
|
+
/** Освобождает ресурсы менеджера. */
|
|
17
|
+
dispose(): Promise<void> | void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=scene-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/scene/scene-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D;;;GAGG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,yCAAyC;IACzC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;gBAEN,QAAQ,EAAE,aAAa,EAAE;IAIxE,4CAA4C;IACrC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IAWzD,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CASvC"}
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import { ISelectHandler } from '../../interfaces/handler/select-handler';
|
|
2
2
|
import { ISelectManager } from '../../interfaces/manager/select-manager';
|
|
3
|
+
import { IEditorStore } from '../../interfaces/store/editor-store';
|
|
3
4
|
import { EventBus } from '../../events/event-bus';
|
|
4
5
|
import { SelectMode } from '@planara/types';
|
|
6
|
+
/**
|
|
7
|
+
* Менеджер, который управляет режимами выборки.
|
|
8
|
+
* Поддерживает режимы Mesh/Face/Edge/Vertex.
|
|
9
|
+
* Отвечает за hover/select события при наведении/клике на модель.
|
|
10
|
+
*/
|
|
5
11
|
export declare class SelectManager implements ISelectManager {
|
|
6
12
|
private _eventBus;
|
|
13
|
+
private _store;
|
|
7
14
|
/** Текущий режим выборки */
|
|
8
15
|
private _currentMode;
|
|
9
16
|
/** Хендлеры, которые управляют выборкой */
|
|
10
17
|
private readonly _handlers;
|
|
11
|
-
constructor(_eventBus: EventBus, handlers: ISelectHandler[]);
|
|
18
|
+
constructor(_eventBus: EventBus, handlers: ISelectHandler[], _store: IEditorStore);
|
|
19
|
+
/** Переключает режим выбора */
|
|
12
20
|
manage(mode: SelectMode): void;
|
|
13
21
|
/** Обработчик события наведения на модель */
|
|
14
22
|
private _onHover;
|
|
15
23
|
/** Обработчик события клика на модель */
|
|
16
24
|
private _onClick;
|
|
17
|
-
|
|
25
|
+
/** Освобождает ресурсы менеджера. */
|
|
26
|
+
dispose(): Promise<void> | void;
|
|
18
27
|
}
|
|
19
28
|
//# sourceMappingURL=select-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,qBACa,aAAc,YAAW,cAAc;IAQ5B,OAAO,CAAC,SAAS;IAEb,OAAO,CAAC,MAAM;IATxC,4BAA4B;IAC5B,OAAO,CAAC,YAAY,CAA+B;IAEnD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAGxB,SAAS,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,YAAY;IAUtD,+BAA+B;IACxB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAYrC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAMd;IAEF,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAMd;IAEF,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { IToolHandler } from '../../interfaces/handler/tool-handler';
|
|
2
2
|
import { IToolManager } from '../../interfaces/manager/tool-manager';
|
|
3
|
+
import { IEditorStore } from '../../interfaces/store/editor-store';
|
|
3
4
|
import { ToolType } from '@planara/types';
|
|
4
|
-
import { EventBus } from '../../events/event-bus';
|
|
5
5
|
export declare class ToolManager implements IToolManager {
|
|
6
|
-
private
|
|
6
|
+
private _store;
|
|
7
7
|
/** Текущий выбранный инструмент */
|
|
8
8
|
private _currentTool;
|
|
9
9
|
/** Хендлеры, которые управляют инструментами */
|
|
10
10
|
private readonly _handlers;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
constructor(_eventBus: EventBus, handlers: IToolHandler[]);
|
|
11
|
+
private readonly _unsubSelected?;
|
|
12
|
+
constructor(handlers: IToolHandler[], _store: IEditorStore);
|
|
14
13
|
manage(tool: ToolType): void;
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
/** Освобождает ресурсы менеджера. */
|
|
15
|
+
dispose(): Promise<void> | void;
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=tool-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/tool-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/tool-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qBACa,WAAY,YAAW,YAAY;IAWpB,OAAO,CAAC,MAAM;IAVxC,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAgC;IAEpD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;gBAGhB,QAAQ,EAAE,YAAY,EAAE,EACnB,MAAM,EAAE,YAAY;IAW/C,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAcnC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IEditorStore } from '../interfaces/store/editor-store';
|
|
2
|
+
import { DisplayMode, SelectMode, ToolType } from '@planara/types';
|
|
3
|
+
import { SelectedListener } from '../types/listener/selected-listener';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
/** Store для всего редактора. */
|
|
6
|
+
export declare class EditorStore implements IEditorStore {
|
|
7
|
+
/** Текущий режим выборки. */
|
|
8
|
+
private _selectMode;
|
|
9
|
+
/** Текущий выбранный инструмент. */
|
|
10
|
+
private _toolType;
|
|
11
|
+
/** Выбранный режим отображения. */
|
|
12
|
+
private _displayMode;
|
|
13
|
+
/** Выбранный объект на сцене. */
|
|
14
|
+
private _selectedObject;
|
|
15
|
+
/** Слушатели событий по изменению выбранного объекта. */
|
|
16
|
+
private _selectedListeners;
|
|
17
|
+
constructor();
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
getSelectMode(): SelectMode;
|
|
20
|
+
/** @inheritdoc */
|
|
21
|
+
getToolType(): ToolType;
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
getDisplayMode(): DisplayMode;
|
|
24
|
+
/** @inheritdoc */
|
|
25
|
+
setSelectMode(mode: SelectMode): void;
|
|
26
|
+
/** @inheritdoc */
|
|
27
|
+
setToolType(toolType: ToolType): void;
|
|
28
|
+
/** @inheritdoc */
|
|
29
|
+
setDisplayMode(mode: DisplayMode): void;
|
|
30
|
+
/** @inheritdoc */
|
|
31
|
+
getSelectedObject(): THREE.Object3D | null;
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
setSelectedObject(object: THREE.Object3D | null): void;
|
|
34
|
+
/** @inheritdoc */
|
|
35
|
+
onSelectedObjectChange(cb: SelectedListener): () => void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAMrE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,iCAAiC;AACjC,qBACa,WAAY,YAAW,YAAY;IAC9C,6BAA6B;IAC7B,OAAO,CAAC,WAAW,CAA+B;IAElD,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAgC;IAEjD,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAkC;IAEtD,iCAAiC;IACjC,OAAO,CAAC,eAAe,CAA+B;IAEtD,yDAAyD;IACzD,OAAO,CAAC,kBAAkB,CAA+B;;IAMzD,kBAAkB;IACX,aAAa,IAAI,UAAU;IAIlC,kBAAkB;IACX,WAAW,IAAI,QAAQ;IAI9B,kBAAkB;IACX,cAAc,IAAI,WAAW;IAIpC,kBAAkB;IACX,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI5C,kBAAkB;IACX,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI5C,kBAAkB;IACX,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAI9C,kBAAkB;IACX,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI;IAIjD,kBAAkB;IAClB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;IAQtD,kBAAkB;IAClB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI;CAIzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-api.d.ts","sourceRoot":"","sources":["../../../src/types/api/editor-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selected-listener.d.ts","sourceRoot":"","sources":["../../../src/types/listener/selected-listener.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gDAAgD;AAChD,eAAO,MAAM,MAAM,GAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,CAAC,IAAI,KAAK,CAAC,IAE5D,CAAC"}
|
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
import { IMeshApi } from '../interfaces/api/mesh-api';
|
|
2
2
|
import { ITransformHelpersApi } from '../interfaces/api/transform-helpers-api';
|
|
3
|
+
import { IRaycastAPI } from '../interfaces/api/raycast-api';
|
|
3
4
|
import { EditorRenderer } from '../core/editor-renderer';
|
|
4
|
-
import { ToolType } from '@planara/types';
|
|
5
|
+
import { SelectMode, ToolType } from '@planara/types';
|
|
6
|
+
import { ISceneApi } from '../interfaces/api/scene-api';
|
|
5
7
|
import * as THREE from 'three';
|
|
6
8
|
/**
|
|
7
9
|
* API для EditorRenderer
|
|
8
10
|
* @internal
|
|
9
11
|
*/
|
|
10
|
-
export declare class RendererApi implements IMeshApi, ITransformHelpersApi {
|
|
12
|
+
export declare class RendererApi implements IMeshApi, ITransformHelpersApi, IRaycastAPI, ISceneApi {
|
|
11
13
|
private _renderer;
|
|
12
14
|
constructor(_renderer: EditorRenderer);
|
|
15
|
+
/** @inheritdoc */
|
|
13
16
|
addMesh(mesh: THREE.Mesh): void;
|
|
17
|
+
/** @inheritdoc */
|
|
14
18
|
addMeshes(meshes: THREE.Mesh[]): void;
|
|
19
|
+
/** @inheritdoc */
|
|
15
20
|
removeMesh(mesh: THREE.Mesh): void;
|
|
21
|
+
/** @inheritdoc */
|
|
16
22
|
removeMeshes(meshes: THREE.Mesh[]): void;
|
|
23
|
+
/** @inheritdoc */
|
|
17
24
|
getMeshes(): THREE.Mesh[];
|
|
25
|
+
/** @inheritdoc */
|
|
18
26
|
setMode(tool: ToolType): void;
|
|
27
|
+
/** @inheritdoc */
|
|
19
28
|
attach(obj: THREE.Object3D): void;
|
|
29
|
+
/** @inheritdoc */
|
|
20
30
|
detach(): void;
|
|
31
|
+
/** @inheritdoc */
|
|
32
|
+
setRaycastMode(mode: SelectMode): void;
|
|
33
|
+
/** @inheritdoc */
|
|
34
|
+
addObject(obj: THREE.Object3D, layer?: number): void;
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
removeObject(obj: THREE.Object3D): void;
|
|
37
|
+
/** @inheritdoc */
|
|
38
|
+
enableCameraLayer(layer: number): void;
|
|
21
39
|
}
|
|
22
40
|
//# sourceMappingURL=renderer-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer-api.d.ts","sourceRoot":"","sources":["../../src/utils/renderer-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"renderer-api.d.ts","sourceRoot":"","sources":["../../src/utils/renderer-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;GAGG;AACH,qBACa,WAAY,YAAW,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS;IAC3C,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,cAAc;IAE9E,kBAAkB;IACX,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAItC,kBAAkB;IACX,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAM5C,kBAAkB;IACX,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAIzC,kBAAkB;IACX,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAM/C,kBAAkB;IACX,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIhC,kBAAkB;IACX,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIpC,kBAAkB;IACX,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAIxC,kBAAkB;IACX,MAAM,IAAI,IAAI;IAIrB,kBAAkB;IACX,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI7C,kBAAkB;IACX,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3D,kBAAkB;IACX,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAI9C,kBAAkB;IACX,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAG9C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planara/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -54,8 +54,9 @@
|
|
|
54
54
|
"vite-tsconfig-paths": "^5.1.4"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@planara/types": "^1.
|
|
57
|
+
"@planara/types": "^1.7.2",
|
|
58
58
|
"events": "^3.3.0",
|
|
59
|
+
"mobx": "^6.15.0",
|
|
59
60
|
"reflect-metadata": "^0.2.2",
|
|
60
61
|
"three": "^0.180.0",
|
|
61
62
|
"tsyringe": "^4.10.0"
|