@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.
Files changed (85) hide show
  1. package/dist/constants/colors.d.ts +35 -0
  2. package/dist/constants/colors.d.ts.map +1 -0
  3. package/dist/constants/figure-geometries.d.ts +10 -0
  4. package/dist/constants/figure-geometries.d.ts.map +1 -0
  5. package/dist/constants/layers.d.ts +39 -0
  6. package/dist/constants/layers.d.ts.map +1 -0
  7. package/dist/constants/threshold.d.ts +5 -0
  8. package/dist/constants/threshold.d.ts.map +1 -0
  9. package/dist/core/editor-renderer.d.ts +8 -2
  10. package/dist/core/editor-renderer.d.ts.map +1 -1
  11. package/dist/core/preview-renderer.d.ts.map +1 -1
  12. package/dist/core/renderer.d.ts +55 -4
  13. package/dist/core/renderer.d.ts.map +1 -1
  14. package/dist/events/editor-events.d.ts +4 -4
  15. package/dist/events/editor-events.d.ts.map +1 -1
  16. package/dist/events/event-topics.d.ts +2 -2
  17. package/dist/events/event-topics.d.ts.map +1 -1
  18. package/dist/extensions/orbit-extension.d.ts +3 -2
  19. package/dist/extensions/orbit-extension.d.ts.map +1 -1
  20. package/dist/handlers/display/wireframe-handler.d.ts +14 -13
  21. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  22. package/dist/handlers/scene/add-figure-scene-handler.d.ts +23 -0
  23. package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -0
  24. package/dist/handlers/scene/delete-figure-scene-handler.d.ts +24 -0
  25. package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -0
  26. package/dist/handlers/select/edge-select-handler.d.ts +46 -0
  27. package/dist/handlers/select/edge-select-handler.d.ts.map +1 -0
  28. package/dist/handlers/select/face-select-handler.d.ts +34 -0
  29. package/dist/handlers/select/face-select-handler.d.ts.map +1 -0
  30. package/dist/handlers/select/mesh-select-handler.d.ts +20 -8
  31. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  32. package/dist/handlers/tool/base-tool-handler.d.ts +6 -4
  33. package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
  34. package/dist/handlers/tool/rotate-tool-handler.d.ts +2 -1
  35. package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
  36. package/dist/handlers/tool/scale-tool-handler.d.ts +2 -1
  37. package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
  38. package/dist/handlers/tool/translate-tool-handler.d.ts +2 -1
  39. package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
  40. package/dist/hub/editor-hub.d.ts +9 -5
  41. package/dist/hub/editor-hub.d.ts.map +1 -1
  42. package/dist/index.cjs.js +230 -201
  43. package/dist/index.d.ts +1 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.es.js +9508 -5981
  46. package/dist/index.full.d.ts +87 -23
  47. package/dist/index.public.d.ts +36 -23
  48. package/dist/index.umd.js +197 -168
  49. package/dist/interfaces/api/raycast-api.d.ts +23 -0
  50. package/dist/interfaces/api/raycast-api.d.ts.map +1 -0
  51. package/dist/interfaces/api/scene-api.d.ts +50 -0
  52. package/dist/interfaces/api/scene-api.d.ts.map +1 -0
  53. package/dist/interfaces/handler/handler.d.ts +2 -5
  54. package/dist/interfaces/handler/handler.d.ts.map +1 -1
  55. package/dist/interfaces/handler/scene-handler.d.ts +14 -0
  56. package/dist/interfaces/handler/scene-handler.d.ts.map +1 -0
  57. package/dist/interfaces/manager/display-manager.d.ts +1 -1
  58. package/dist/interfaces/manager/manager.d.ts +2 -5
  59. package/dist/interfaces/manager/manager.d.ts.map +1 -1
  60. package/dist/interfaces/manager/scene-manager.d.ts +8 -0
  61. package/dist/interfaces/manager/scene-manager.d.ts.map +1 -0
  62. package/dist/interfaces/manager/select-manager.d.ts +1 -1
  63. package/dist/interfaces/manager/tool-manager.d.ts +1 -1
  64. package/dist/interfaces/store/editor-store.d.ts +44 -0
  65. package/dist/interfaces/store/editor-store.d.ts.map +1 -0
  66. package/dist/ioc/container.d.ts.map +1 -1
  67. package/dist/managers/display/display-manager.d.ts +6 -4
  68. package/dist/managers/display/display-manager.d.ts.map +1 -1
  69. package/dist/managers/scene/scene-manager.d.ts +19 -0
  70. package/dist/managers/scene/scene-manager.d.ts.map +1 -0
  71. package/dist/managers/select/select-manager.d.ts +11 -2
  72. package/dist/managers/select/select-manager.d.ts.map +1 -1
  73. package/dist/managers/tool/tool-manager.d.ts +6 -7
  74. package/dist/managers/tool/tool-manager.d.ts.map +1 -1
  75. package/dist/store/index.d.ts +37 -0
  76. package/dist/store/index.d.ts.map +1 -0
  77. package/dist/types/api/editor-api.d.ts +4 -0
  78. package/dist/types/api/editor-api.d.ts.map +1 -0
  79. package/dist/types/listener/selected-listener.d.ts +3 -0
  80. package/dist/types/listener/selected-listener.d.ts.map +1 -0
  81. package/dist/utils/helpers.d.ts +4 -0
  82. package/dist/utils/helpers.d.ts.map +1 -0
  83. package/dist/utils/renderer-api.d.ts +20 -2
  84. package/dist/utils/renderer-api.d.ts.map +1 -1
  85. 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,QAAQ;IACvB;;;OAGG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
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,6 +1,6 @@
1
1
  import { IManager } from './manager';
2
2
  /**
3
- * Маркерный интерфейс для менеджеров отображения.
3
+ * Маркерный интерфейс для менеджера отображения.
4
4
  * @public
5
5
  */
6
6
  export interface IDisplayManager extends IManager {
@@ -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":"AAAA;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
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,8 @@
1
+ import { IManager } from './manager';
2
+ /**
3
+ * Маркерный интерфейс для менеджера сцены.
4
+ * @public
5
+ */
6
+ export interface ISceneManager extends IManager {
7
+ }
8
+ //# sourceMappingURL=scene-manager.d.ts.map
@@ -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"}
@@ -1,6 +1,6 @@
1
1
  import { IManager } from './manager';
2
2
  /**
3
- * Маркерный интерфейс для менеджеров выборки.
3
+ * Маркерный интерфейс для менеджера выборки.
4
4
  * @public
5
5
  */
6
6
  export interface ISelectManager extends IManager {
@@ -1,6 +1,6 @@
1
1
  import { IManager } from './manager';
2
2
  /**
3
- * Маркерный интерфейс для менеджеров инструментов.
3
+ * Маркерный интерфейс для менеджера инструментов.
4
4
  * @public
5
5
  */
6
6
  export interface IToolManager extends IManager {
@@ -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;AA4BlF,QAAA,MAAM,SAAS,qBAAyC,CAAC;AAEzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CA+B9E;AAED,OAAO,EAAE,SAAS,EAAE,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
- destroy(): void;
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;AAGhF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IACpD,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAEN,QAAQ,EAAE,eAAe,EAAE;IAI5E,mCAAmC;IAC5B,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IActC,4BAA4B;IACrB,OAAO,IAAI,IAAI;CASvB"}
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
- destroy(): void;
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;AAK9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,qBACa,aAAc,YAAW,cAAc;IAQ5B,OAAO,CAAC,SAAS;IAPvC,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;IAUlD,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAUrC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAMd;IAEF,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAUd;IAEK,OAAO,IAAI,IAAI;CASvB"}
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 _eventBus;
6
+ private _store;
7
7
  /** Текущий выбранный инструмент */
8
8
  private _currentTool;
9
9
  /** Хендлеры, которые управляют инструментами */
10
10
  private readonly _handlers;
11
- /** Объект, с которым взаимодействует инструмент */
12
- private _currentObject;
13
- constructor(_eventBus: EventBus, handlers: IToolHandler[]);
11
+ private readonly _unsubSelected?;
12
+ constructor(handlers: IToolHandler[], _store: IEditorStore);
14
13
  manage(tool: ToolType): void;
15
- private _onSelect;
16
- destroy(): void;
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":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAI1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,qBACa,WAAY,YAAW,YAAY;IAWxB,OAAO,CAAC,SAAS;IAVvC,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAgC;IAEpD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,mDAAmD;IACnD,OAAO,CAAC,cAAc,CAAwB;gBAGhB,SAAS,EAAE,QAAQ,EACpB,QAAQ,EAAE,YAAY,EAAE;IAY9C,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAanC,OAAO,CAAC,SAAS,CAgBf;IAEK,OAAO,IAAI,IAAI;CASvB"}
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,4 @@
1
+ import { IRaycastAPI } from '../../interfaces/api/raycast-api';
2
+ import { ISceneApi } from '../../interfaces/api/scene-api';
3
+ export type IEditorApi = IRaycastAPI & ISceneApi;
4
+ //# sourceMappingURL=editor-api.d.ts.map
@@ -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,3 @@
1
+ import * as THREE from 'three';
2
+ export type SelectedListener = (obj: THREE.Object3D | null) => void;
3
+ //# sourceMappingURL=selected-listener.d.ts.map
@@ -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,4 @@
1
+ import * as THREE from 'three';
2
+ /** Является ли `THREE.Object3D` `THREE.Mesh` */
3
+ export declare const isMesh: (o: THREE.Object3D | null) => o is THREE.Mesh;
4
+ //# sourceMappingURL=helpers.d.ts.map
@@ -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;AAIpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,qBACa,WAAY,YAAW,QAAQ,EAAE,oBAAoB;IAC1B,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,cAAc;IAEhE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAI/B,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMrC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAIlC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMxC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIzB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAI7B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAIjC,MAAM,IAAI,IAAI;CAGtB"}
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.1.1",
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.4.0",
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"