@planara/core 2.8.0 → 3.1.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/README.md +5 -0
- package/dist/api/modules/controls-state-api.d.ts +23 -0
- package/dist/api/modules/controls-state-api.d.ts.map +1 -0
- package/dist/api/modules/index.d.ts +5 -0
- package/dist/api/modules/index.d.ts.map +1 -0
- package/dist/api/modules/mesh-api.d.ts +30 -0
- package/dist/api/modules/mesh-api.d.ts.map +1 -0
- package/dist/api/modules/raycast-api.d.ts +28 -0
- package/dist/api/modules/raycast-api.d.ts.map +1 -0
- package/dist/api/modules/transform-api.d.ts +33 -0
- package/dist/api/modules/transform-api.d.ts.map +1 -0
- package/dist/api/renderer/camera-api.d.ts +26 -0
- package/dist/api/renderer/camera-api.d.ts.map +1 -0
- package/dist/api/renderer/dom-api.d.ts +24 -0
- package/dist/api/renderer/dom-api.d.ts.map +1 -0
- package/dist/api/renderer/index.d.ts +4 -0
- package/dist/api/renderer/index.d.ts.map +1 -0
- package/dist/api/renderer/scene-api.d.ts +26 -0
- package/dist/api/renderer/scene-api.d.ts.map +1 -0
- package/dist/constants/colors.d.ts +12 -0
- package/dist/constants/colors.d.ts.map +1 -1
- package/dist/constants/figure-geometries.d.ts +55 -4
- package/dist/constants/figure-geometries.d.ts.map +1 -1
- package/dist/constants/index.d.ts +6 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/layers.d.ts +12 -0
- package/dist/constants/layers.d.ts.map +1 -1
- package/dist/constants/messages.d.ts +18 -0
- package/dist/constants/messages.d.ts.map +1 -0
- package/dist/constants/threshold.d.ts +42 -2
- package/dist/constants/threshold.d.ts.map +1 -1
- package/dist/controllers/index.d.ts +2 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/renderer-controller.d.ts +72 -0
- package/dist/controllers/renderer-controller.d.ts.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/renderer.d.ts +105 -78
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/decorators/index.d.ts +3 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/use-policy.d.ts +5 -0
- package/dist/decorators/use-policy.d.ts.map +1 -0
- package/dist/decorators/use-validator.d.ts +5 -0
- package/dist/decorators/use-validator.d.ts.map +1 -0
- package/dist/errors/index.d.ts +3 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/policy-error.d.ts +9 -0
- package/dist/errors/policy-error.d.ts.map +1 -0
- package/dist/errors/validation-error.d.ts +9 -0
- package/dist/errors/validation-error.d.ts.map +1 -0
- package/dist/events/editor-events.d.ts +3 -7
- package/dist/events/editor-events.d.ts.map +1 -1
- package/dist/events/event-bus.d.ts +103 -6
- package/dist/events/event-bus.d.ts.map +1 -1
- package/dist/events/event-topics.d.ts +3 -3
- package/dist/events/event-topics.d.ts.map +1 -1
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/handlers/display/index.d.ts +2 -0
- package/dist/handlers/display/index.d.ts.map +1 -0
- package/dist/handlers/display/wireframe-handler.d.ts +4 -2
- package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
- package/dist/handlers/scene/add-figure-scene-handler.d.ts +4 -2
- package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -1
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts +4 -4
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -1
- package/dist/handlers/scene/export-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/export-scene-handler.d.ts.map +1 -0
- package/dist/handlers/scene/index.d.ts +6 -0
- package/dist/handlers/scene/index.d.ts.map +1 -0
- package/dist/handlers/scene/load-figure-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/load-figure-scene-handler.d.ts.map +1 -0
- package/dist/handlers/scene/load-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/load-scene-handler.d.ts.map +1 -0
- package/dist/handlers/select/edge-select-handler.d.ts +11 -8
- package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/face-select-handler.d.ts +11 -8
- package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/index.d.ts +5 -0
- package/dist/handlers/select/index.d.ts.map +1 -0
- package/dist/handlers/select/mesh-select-handler.d.ts +8 -7
- package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/vertex-select-handler.d.ts +11 -8
- package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
- package/dist/handlers/tool/base-tool-handler.d.ts +10 -7
- package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/index.d.ts +4 -0
- package/dist/handlers/tool/index.d.ts.map +1 -0
- package/dist/handlers/tool/rotate-tool-handler.d.ts +4 -3
- package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/scale-tool-handler.d.ts +4 -3
- package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/translate-tool-handler.d.ts +4 -3
- package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
- package/dist/hub/editor-hub.d.ts +26 -18
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/hub/index.d.ts +26 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/viewer-hub.d.ts +30 -0
- package/dist/hub/viewer-hub.d.ts.map +1 -0
- package/dist/index.cjs.js +20 -2
- package/dist/index.d.ts +16 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +2615 -1627
- package/dist/index.full.d.ts +650 -245
- package/dist/index.public.d.ts +665 -160
- package/dist/index.umd.js +20 -2
- package/dist/interfaces/api/camera-api.d.ts +64 -0
- package/dist/interfaces/api/camera-api.d.ts.map +1 -0
- package/dist/interfaces/api/controls-state-api.d.ts +63 -0
- package/dist/interfaces/api/controls-state-api.d.ts.map +1 -0
- package/dist/interfaces/api/dom-api.d.ts +49 -0
- package/dist/interfaces/api/dom-api.d.ts.map +1 -0
- package/dist/interfaces/api/index.d.ts +9 -0
- package/dist/interfaces/api/index.d.ts.map +1 -0
- package/dist/interfaces/api/mesh-api.d.ts +93 -12
- package/dist/interfaces/api/mesh-api.d.ts.map +1 -1
- package/dist/interfaces/api/raycast-api.d.ts +6 -1
- package/dist/interfaces/api/raycast-api.d.ts.map +1 -1
- package/dist/interfaces/api/renderer/index.d.ts +6 -0
- package/dist/interfaces/api/renderer/index.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderable.d.ts +45 -0
- package/dist/interfaces/api/renderer/renderable.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-access.d.ts +34 -0
- package/dist/interfaces/api/renderer/renderer-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-camera-access.d.ts +37 -0
- package/dist/interfaces/api/renderer/renderer-camera-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-dom-access.d.ts +51 -0
- package/dist/interfaces/api/renderer/renderer-dom-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-scene-access.d.ts +45 -0
- package/dist/interfaces/api/renderer/renderer-scene-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer-api.d.ts +35 -0
- package/dist/interfaces/api/renderer-api.d.ts.map +1 -0
- package/dist/interfaces/api/scene-api.d.ts +66 -26
- package/dist/interfaces/api/scene-api.d.ts.map +1 -1
- package/dist/interfaces/api/transform-api.d.ts +120 -0
- package/dist/interfaces/api/transform-api.d.ts.map +1 -0
- package/dist/interfaces/command/index.d.ts +9 -0
- package/dist/interfaces/command/index.d.ts.map +1 -0
- package/dist/interfaces/controller/index.d.ts +38 -0
- package/dist/interfaces/controller/index.d.ts.map +1 -0
- package/dist/interfaces/handler/display-handler.d.ts +9 -1
- package/dist/interfaces/handler/display-handler.d.ts.map +1 -1
- package/dist/interfaces/handler/handler.d.ts +2 -0
- package/dist/interfaces/handler/handler.d.ts.map +1 -1
- package/dist/interfaces/handler/index.d.ts +6 -0
- package/dist/interfaces/handler/index.d.ts.map +1 -0
- package/dist/interfaces/handler/scene-handler.d.ts +1 -0
- package/dist/interfaces/handler/scene-handler.d.ts.map +1 -1
- package/dist/interfaces/handler/select-handler.d.ts +1 -0
- package/dist/interfaces/handler/select-handler.d.ts.map +1 -1
- package/dist/interfaces/handler/tool-handler.d.ts +1 -0
- package/dist/interfaces/handler/tool-handler.d.ts.map +1 -1
- package/dist/interfaces/manager/display-manager.d.ts +3 -1
- package/dist/interfaces/manager/display-manager.d.ts.map +1 -1
- package/dist/interfaces/manager/index.d.ts +6 -0
- package/dist/interfaces/manager/index.d.ts.map +1 -0
- package/dist/interfaces/manager/manager.d.ts +12 -1
- package/dist/interfaces/manager/manager.d.ts.map +1 -1
- package/dist/interfaces/manager/scene-manager.d.ts +3 -1
- package/dist/interfaces/manager/scene-manager.d.ts.map +1 -1
- package/dist/interfaces/manager/select-manager.d.ts +3 -1
- package/dist/interfaces/manager/select-manager.d.ts.map +1 -1
- package/dist/interfaces/manager/tool-manager.d.ts +3 -1
- package/dist/interfaces/manager/tool-manager.d.ts.map +1 -1
- package/dist/interfaces/mediator/index.d.ts +51 -0
- package/dist/interfaces/mediator/index.d.ts.map +1 -0
- package/dist/interfaces/middleware/index.d.ts +50 -0
- package/dist/interfaces/middleware/index.d.ts.map +1 -0
- package/dist/interfaces/module/index.d.ts +4 -0
- package/dist/interfaces/module/index.d.ts.map +1 -0
- package/dist/interfaces/module/renderable-module.d.ts +27 -0
- package/dist/interfaces/module/renderable-module.d.ts.map +1 -0
- package/dist/interfaces/module/runtime-module.d.ts +54 -0
- package/dist/interfaces/module/runtime-module.d.ts.map +1 -0
- package/dist/interfaces/module/updatable-module.d.ts +48 -0
- package/dist/interfaces/module/updatable-module.d.ts.map +1 -0
- package/dist/interfaces/policy/index.d.ts +21 -0
- package/dist/interfaces/policy/index.d.ts.map +1 -0
- package/dist/interfaces/store/display-store.d.ts +21 -0
- package/dist/interfaces/store/display-store.d.ts.map +1 -0
- package/dist/interfaces/store/export-store.d.ts +8 -0
- package/dist/interfaces/store/export-store.d.ts.map +1 -0
- package/dist/interfaces/store/index.d.ts +6 -0
- package/dist/interfaces/store/index.d.ts.map +1 -0
- package/dist/interfaces/store/select-store.d.ts +44 -0
- package/dist/interfaces/store/select-store.d.ts.map +1 -0
- package/dist/interfaces/store/tool-store.d.ts +27 -0
- package/dist/interfaces/store/tool-store.d.ts.map +1 -0
- package/dist/interfaces/store/transform-store.d.ts +11 -0
- package/dist/interfaces/store/transform-store.d.ts.map +1 -0
- package/dist/interfaces/validator/index.d.ts +21 -0
- package/dist/interfaces/validator/index.d.ts.map +1 -0
- package/dist/ioc/container.d.ts +3 -1
- package/dist/ioc/container.d.ts.map +1 -1
- package/dist/managers/display/display-manager.d.ts +7 -4
- package/dist/managers/display/display-manager.d.ts.map +1 -1
- package/dist/managers/display/index.d.ts +2 -0
- package/dist/managers/display/index.d.ts.map +1 -0
- package/dist/managers/index.d.ts +5 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/managers/scene/index.d.ts +2 -0
- package/dist/managers/scene/index.d.ts.map +1 -0
- package/dist/managers/scene/scene-manager.d.ts +7 -4
- package/dist/managers/scene/scene-manager.d.ts.map +1 -1
- package/dist/managers/select/index.d.ts +2 -0
- package/dist/managers/select/index.d.ts.map +1 -0
- package/dist/managers/select/select-manager.d.ts +8 -5
- package/dist/managers/select/select-manager.d.ts.map +1 -1
- package/dist/managers/tool/index.d.ts +2 -0
- package/dist/managers/tool/index.d.ts.map +1 -0
- package/dist/managers/tool/tool-manager.d.ts +9 -6
- package/dist/managers/tool/tool-manager.d.ts.map +1 -1
- package/dist/mediator/index.d.ts +14 -0
- package/dist/mediator/index.d.ts.map +1 -0
- package/dist/middlewares/exception-middleware.d.ts +12 -0
- package/dist/middlewares/exception-middleware.d.ts.map +1 -0
- package/dist/middlewares/index.d.ts +2 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/modules/controls-module.d.ts +60 -0
- package/dist/modules/controls-module.d.ts.map +1 -0
- package/dist/modules/gizmo-module.d.ts +32 -0
- package/dist/modules/gizmo-module.d.ts.map +1 -0
- package/dist/modules/index.d.ts +6 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/raycast-module.d.ts +87 -0
- package/dist/modules/raycast-module.d.ts.map +1 -0
- package/dist/modules/scene-module.d.ts +31 -0
- package/dist/modules/scene-module.d.ts.map +1 -0
- package/dist/modules/scene-preview-module.d.ts +26 -0
- package/dist/modules/scene-preview-module.d.ts.map +1 -0
- package/dist/policy/index.d.ts +2 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/tool-policy.d.ts +18 -0
- package/dist/policy/tool-policy.d.ts.map +1 -0
- package/dist/store/editor-store.d.ts +33 -0
- package/dist/store/editor-store.d.ts.map +1 -0
- package/dist/store/export-store.d.ts +12 -0
- package/dist/store/export-store.d.ts.map +1 -0
- package/dist/store/index.d.ts +2 -45
- package/dist/store/index.d.ts.map +1 -1
- package/dist/types/camera/index.d.ts +2 -0
- package/dist/types/camera/index.d.ts.map +1 -0
- package/dist/types/event/index.d.ts +2 -0
- package/dist/types/event/index.d.ts.map +1 -0
- package/dist/types/feature/feature-type.d.ts +16 -0
- package/dist/types/feature/feature-type.d.ts.map +1 -0
- package/dist/types/feature/index.d.ts +2 -0
- package/dist/types/feature/index.d.ts.map +1 -0
- package/dist/types/listener/index.d.ts +3 -0
- package/dist/types/listener/index.d.ts.map +1 -0
- package/dist/types/select/index.d.ts +2 -0
- package/dist/types/select/index.d.ts.map +1 -0
- package/dist/utils/default-renderer-config.d.ts +9 -0
- package/dist/utils/default-renderer-config.d.ts.map +1 -0
- package/dist/utils/helpers.d.ts +14 -1
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/validators/index.d.ts +2 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/obj-validator.d.ts +12 -0
- package/dist/validators/obj-validator.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/core/editor-renderer.d.ts +0 -89
- package/dist/core/editor-renderer.d.ts.map +0 -1
- package/dist/core/preview-renderer.d.ts +0 -16
- package/dist/core/preview-renderer.d.ts.map +0 -1
- package/dist/hub/app-hub.d.ts +0 -13
- package/dist/hub/app-hub.d.ts.map +0 -1
- package/dist/interfaces/api/transform-helpers-api.d.ts +0 -26
- package/dist/interfaces/api/transform-helpers-api.d.ts.map +0 -1
- package/dist/interfaces/policy/tool-availability-policy.d.ts +0 -12
- package/dist/interfaces/policy/tool-availability-policy.d.ts.map +0 -1
- package/dist/interfaces/store/editor-store.d.ts +0 -52
- package/dist/interfaces/store/editor-store.d.ts.map +0 -1
- package/dist/policy/tool-availability-policy.d.ts +0 -13
- package/dist/policy/tool-availability-policy.d.ts.map +0 -1
- package/dist/types/api/editor-api.d.ts +0 -4
- package/dist/types/api/editor-api.d.ts.map +0 -1
- package/dist/utils/renderer-api.d.ts +0 -43
- package/dist/utils/renderer-api.d.ts.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ToolType } from '@planara/types';
|
|
2
|
+
import { TransformListener } from '../../types/listener';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
/**
|
|
5
|
+
* API для взаимодействия и настройки элементов управления сценой.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Предоставляет методы для работы с TransformControls:
|
|
9
|
+
* - прикрепление/открепление контролов к объектам
|
|
10
|
+
* - смена режима трансформации (перемещение, вращение, масштабирование)
|
|
11
|
+
* - подписка на события изменения трансформации
|
|
12
|
+
*
|
|
13
|
+
* Используется хендлерами инструментов (Translate, Rotate, Scale)
|
|
14
|
+
* для управления гизмо и отслеживания изменений.
|
|
15
|
+
*
|
|
16
|
+
* @see {@link ControlsModule} - реализация этого интерфейса
|
|
17
|
+
* @see {@link TransformListener} - тип слушателя событий трансформации
|
|
18
|
+
*
|
|
19
|
+
* @internal
|
|
20
|
+
* @interface
|
|
21
|
+
*/
|
|
22
|
+
export interface ITransformApi {
|
|
23
|
+
/**
|
|
24
|
+
* Прикрепляет Transform Controls к объекту сцены.
|
|
25
|
+
*
|
|
26
|
+
* @param object - объект Three.js, к которому нужно прикрепить контролы
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* После вызова этого метода на объекте появляется гизмо
|
|
30
|
+
* (стрелки, дуги, квадраты), с помощью которого можно
|
|
31
|
+
* перемещать, вращать или масштабировать объект.
|
|
32
|
+
*
|
|
33
|
+
* Если контролы уже прикреплены к другому объекту,
|
|
34
|
+
* они автоматически переключатся на новый.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const mesh = sceneApi.getSelectedMesh();
|
|
39
|
+
* controlsApi.attachTransform(mesh);
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
43
|
+
* @method
|
|
44
|
+
*/
|
|
45
|
+
attachTransform(object: THREE.Object3D): void;
|
|
46
|
+
/**
|
|
47
|
+
* Открепляет Transform Controls от текущего объекта.
|
|
48
|
+
*
|
|
49
|
+
* @remarks
|
|
50
|
+
* Гизмо исчезает, объект перестаёт быть доступным для
|
|
51
|
+
* интерактивной трансформации.
|
|
52
|
+
*
|
|
53
|
+
* Обычно вызывается при смене инструмента или при снятии выделения.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // При смене инструмента
|
|
58
|
+
* public rollback(): void {
|
|
59
|
+
* this.controlsApi.detachTransform();
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
* @method
|
|
65
|
+
*/
|
|
66
|
+
detachTransform(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Изменяет режим трансформации гизмо.
|
|
69
|
+
*
|
|
70
|
+
* @param mode - режим трансформации (Translate, Rotate, Scale)
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* В зависимости от режима, гизмо отображает разные контролы:
|
|
74
|
+
* - `Translate` - стрелки для перемещения
|
|
75
|
+
* - `Rotate` - дуги для вращения
|
|
76
|
+
* - `Scale` - квадраты для масштабирования
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* // Переключение на режим вращения
|
|
81
|
+
* controlsApi.setTransformMode(ToolType.Rotate);
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
setTransformMode(mode: ToolType): void;
|
|
87
|
+
/**
|
|
88
|
+
* Подписывает слушателя на события изменения трансформации.
|
|
89
|
+
*
|
|
90
|
+
* @param callback - функция, которая будет вызвана при изменении
|
|
91
|
+
* @returns функция для отписки от события
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* Событие генерируется в процессе взаимодействия пользователя с гизмо
|
|
95
|
+
* (перемещение, вращение, масштабирование).
|
|
96
|
+
*
|
|
97
|
+
* Возвращаемая функция позволяет отписаться от события:
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const unsubscribe = controlsApi.onTransformChange(() => {
|
|
100
|
+
* console.log('Object transformed');
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* // позже
|
|
104
|
+
* unsubscribe();
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* // Подписка на изменение трансформации
|
|
110
|
+
* this.unsubscribe = this.controlsApi.onTransformChange(() => {
|
|
111
|
+
* this.store.notifySelectedTransformChange();
|
|
112
|
+
* });
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @internal
|
|
116
|
+
* @method
|
|
117
|
+
*/
|
|
118
|
+
onTransformChange(callback: TransformListener): () => void;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=transform-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/transform-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAE9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,IAAI,IAAI,CAAC;IAExB;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;CAC5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/command/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Disposable } from 'tsyringe';
|
|
2
|
+
/**
|
|
3
|
+
* Интерфейс для контроллера, управляющего жизненным циклом модулей.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Контроллер отвечает за:
|
|
7
|
+
* - инициализацию модулей (`IRuntimeModule`)
|
|
8
|
+
* - запуск цикла рендеринга
|
|
9
|
+
* - обновление модулей каждый кадр (`IUpdatableModule`)
|
|
10
|
+
* - рендеринг модулей (`IRenderableModule`)
|
|
11
|
+
* - остановку и очистку ресурсов
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
* @interface
|
|
15
|
+
*/
|
|
16
|
+
export interface IController extends Disposable {
|
|
17
|
+
/**
|
|
18
|
+
* Запускает контроллер.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* Инициализирует все модули и запускает цикл рендеринга.
|
|
22
|
+
*
|
|
23
|
+
* @public
|
|
24
|
+
* @method
|
|
25
|
+
*/
|
|
26
|
+
start(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Останавливает контроллер.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* Останавливает цикл рендеринга и освобождает ресурсы.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
* @method
|
|
35
|
+
*/
|
|
36
|
+
stop(): void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/controller/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C;;;;;;;;OAQG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -4,11 +4,19 @@ import { DisplayMode } from '@planara/types';
|
|
|
4
4
|
* Маркерный интерфейс для всех Display-хендлеров.
|
|
5
5
|
* Используется только для DI.
|
|
6
6
|
*
|
|
7
|
+
* @remarks
|
|
7
8
|
* Расширяет {@link IHandler} и добавляет поле `mode`
|
|
9
|
+
*
|
|
8
10
|
* @internal
|
|
11
|
+
* @interface
|
|
9
12
|
*/
|
|
10
13
|
export interface IDisplayHandler extends IHandler {
|
|
11
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Режим отображения, за который отвечает хендлер.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
* @member
|
|
19
|
+
*/
|
|
12
20
|
mode: DisplayMode;
|
|
13
21
|
}
|
|
14
22
|
//# sourceMappingURL=display-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/display-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"display-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/display-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C;;;;;OAKG;IACH,IAAI,EAAE,WAAW,CAAC;CACnB"}
|
|
@@ -3,7 +3,9 @@ import { Disposable } from 'tsyringe';
|
|
|
3
3
|
* Общий интерфейс для всех хендлеров.
|
|
4
4
|
* Хендлеры выполняют действия по настройке рендерера,
|
|
5
5
|
* управляют состоянием сцены или конкретных режимов отображения.
|
|
6
|
+
*
|
|
6
7
|
* @internal
|
|
8
|
+
* @interface
|
|
7
9
|
*/
|
|
8
10
|
export interface IHandler extends Disposable {
|
|
9
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;GAOG;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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +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
|
|
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;;;;;;;GAOG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,8DAA8D;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/select-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"select-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/select-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,iDAAiD;IACjD,IAAI,EAAE,UAAU,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/tool-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"tool-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/tool-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,8CAA8C;IAC9C,IAAI,EAAE,QAAQ,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/display-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/display-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { Disposable } from 'tsyringe';
|
|
2
|
+
import { FeatureType } from '../../types/feature';
|
|
2
3
|
/**
|
|
3
4
|
* Общий интерфейс для всех менеджеров в хабе.
|
|
4
5
|
* Каждый менеджер отвечает за одну фичу.
|
|
5
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
* @interface
|
|
6
9
|
*/
|
|
7
10
|
export interface IManager extends Disposable {
|
|
11
|
+
/**
|
|
12
|
+
* Тип фичи, за которую отвечает менеджер.
|
|
13
|
+
*
|
|
14
|
+
* @member
|
|
15
|
+
*/
|
|
16
|
+
type: FeatureType;
|
|
8
17
|
/**
|
|
9
18
|
* Выполняет основное действие менеджера.
|
|
19
|
+
*
|
|
20
|
+
* @method
|
|
10
21
|
*/
|
|
11
22
|
manage(...args: unknown[]): void;
|
|
12
23
|
}
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C;;;;OAIG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClC"}
|
|
@@ -1 +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
|
|
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;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/select-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/select-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/tool-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/tool-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;CAAG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ICommand } from '../command';
|
|
2
|
+
import { IResponse } from '@planara/types';
|
|
3
|
+
import { Disposable } from 'tsyringe';
|
|
4
|
+
/**
|
|
5
|
+
* Интерфейс медиатора команд редактора.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Медиатор выступает промежуточным слоем между публичным API хаба
|
|
9
|
+
* и менеджерами конкретных функциональных областей редактора.
|
|
10
|
+
*
|
|
11
|
+
* Основные задачи медиатора:
|
|
12
|
+
* - принять команду от верхнего уровня
|
|
13
|
+
* - определить менеджер, отвечающий за указанную фичу
|
|
14
|
+
* - передать вызов в pipeline middleware
|
|
15
|
+
* - вернуть итоговый ответ выполнения команды
|
|
16
|
+
*
|
|
17
|
+
* В штатном сценарии успешное выполнение команды может не формировать явный ответ и возвращать `null`.
|
|
18
|
+
* Если в процессе обработки возникает исключение, например ошибка политики,
|
|
19
|
+
* оно может быть преобразовано middleware в объект `IResponse`.
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
* @interface
|
|
23
|
+
*/
|
|
24
|
+
export interface IMediator extends Disposable {
|
|
25
|
+
/**
|
|
26
|
+
* Отправляет команду на выполнение через middleware pipeline в соответствующий менеджер редактора.
|
|
27
|
+
*
|
|
28
|
+
* @param command - команда, содержащая тип фичи и аргументы вызова
|
|
29
|
+
*
|
|
30
|
+
* @returns результат выполнения команды:
|
|
31
|
+
* - `null`, если команда выполнена успешно и не требует явного ответа
|
|
32
|
+
* - `IResponse`, если в ходе обработки был сформирован ответ, например при ошибке или блокировке действия
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const response = mediator.send({
|
|
37
|
+
* type: FeatureType.Tool,
|
|
38
|
+
* payload: [ToolType.Rotate],
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* if (response?.blocked) {
|
|
42
|
+
* console.warn(response.message);
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @public
|
|
47
|
+
* @method
|
|
48
|
+
*/
|
|
49
|
+
send(command: ICommand): IResponse | null;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/mediator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;CAC3C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { IResponse } from '@planara/types';
|
|
2
|
+
/**
|
|
3
|
+
* Интерфейс middleware в pipeline обработки команд редактора.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Middleware позволяет внедрять сквозную логику поверх вызова менеджера,
|
|
7
|
+
* не изменяя реализацию самих менеджеров.
|
|
8
|
+
*
|
|
9
|
+
* Middleware образуют цепочку вызовов, в которой каждый элемент
|
|
10
|
+
* получает функцию `next` для передачи управления следующему шагу pipeline.
|
|
11
|
+
*
|
|
12
|
+
* Возвращаемое значение:
|
|
13
|
+
* - `null`, если выполнение завершилось без необходимости формировать ответ
|
|
14
|
+
* - `IResponse`, если middleware сформировал ответ самостоятельно, например при перехвате исключения
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
* @interface
|
|
18
|
+
*/
|
|
19
|
+
export interface IMiddleware {
|
|
20
|
+
/**
|
|
21
|
+
* Выполняет шаг middleware и передаёт управление следующему
|
|
22
|
+
* обработчику в pipeline.
|
|
23
|
+
*
|
|
24
|
+
* @param next - функция вызова следующего шага pipeline
|
|
25
|
+
*
|
|
26
|
+
* @returns результат выполнения текущего шага pipeline:
|
|
27
|
+
* - `null`, если явный ответ не был сформирован
|
|
28
|
+
* - `IResponse`, если middleware сформировал ответ самостоятельно
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* public async handle(next: () => Promise<IResponse | null>): Promise<IResponse | null> {
|
|
33
|
+
* try {
|
|
34
|
+
* return await next();
|
|
35
|
+
* } catch {
|
|
36
|
+
* return {
|
|
37
|
+
* type: ResponseType.Error,
|
|
38
|
+
* message: 'Unexpected error',
|
|
39
|
+
* blocked: true,
|
|
40
|
+
* };
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
* @method
|
|
47
|
+
*/
|
|
48
|
+
handle(next: () => IResponse | null): IResponse | null;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/middleware/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;CACxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IRuntimeModule } from './runtime-module';
|
|
2
|
+
import { IRenderable } from '../api/renderer';
|
|
3
|
+
/**
|
|
4
|
+
* Интерфейс для модулей, требующих кастомного рендеринга.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Некоторые модули должны рендерить дополнительную графику поверх основной сцены:
|
|
8
|
+
* - `GizmoModule` — отображение осей координат (CameraAxesGizmo)
|
|
9
|
+
* - оверлеи, подсказки, вспомогательные элементы
|
|
10
|
+
*
|
|
11
|
+
* В отличие от {@link IUpdatableModule}, который обновляет состояние,
|
|
12
|
+
* `IRenderableModule` отвечает именно за отрисовку дополнительных элементов
|
|
13
|
+
* **после** основного рендера сцены.
|
|
14
|
+
*
|
|
15
|
+
* Оркестрацией вызовов `render()` занимается `EditorRenderer`,
|
|
16
|
+
* который получает все модули через `@injectAll('IRenderableModule')`.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link IRuntimeModule} - для одноразовой инициализации
|
|
19
|
+
* @see {@link IUpdatableModule} - для модулей с периодическим обновлением
|
|
20
|
+
* @see {@link GizmoModule} - пример реализации
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
* @interface
|
|
24
|
+
*/
|
|
25
|
+
export interface IRenderableModule extends IRuntimeModule, IRenderable {
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=renderable-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderable-module.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/renderable-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc,EAAE,WAAW;CAAG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Disposable } from 'tsyringe';
|
|
2
|
+
/**
|
|
3
|
+
* Базовый интерфейс для всех runtime-модулей редактора.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Модули — это независимые компоненты, которые управляют определёнными аспектами редактора:
|
|
7
|
+
* - управление камерой и контролами (`ControlsModule`)
|
|
8
|
+
* - управление сценой и объектами (`SceneModule`)
|
|
9
|
+
* - обработка выделения (`RaycasterModule`)
|
|
10
|
+
* - отображение вспомогательных элементов (`GizmoModule`)
|
|
11
|
+
*
|
|
12
|
+
* Все модули проходят единый жизненный цикл:
|
|
13
|
+
* 1. `init()` — инициализация модуля (подписки, создание объектов)
|
|
14
|
+
* 2. `dispose()` — освобождение ресурсов (отписки, очистка)
|
|
15
|
+
*
|
|
16
|
+
* Оркестрацией модулей занимается {@link EditorHub}.
|
|
17
|
+
*
|
|
18
|
+
* @see {@link ControlsModule} - пример реализации
|
|
19
|
+
* @see {@link SceneModule} - пример реализации
|
|
20
|
+
* @see {@link RaycastModule} - пример реализации
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
* @interface
|
|
24
|
+
*/
|
|
25
|
+
export interface IRuntimeModule extends Disposable {
|
|
26
|
+
/**
|
|
27
|
+
* Инициализирует модуль.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* Вызывается один раз при старте редактора.
|
|
31
|
+
* Здесь модуль должен:
|
|
32
|
+
* - создавать необходимые объекты
|
|
33
|
+
* - подписываться на события
|
|
34
|
+
* - регистрировать обработчики
|
|
35
|
+
*
|
|
36
|
+
* Порядок инициализации модулей не важен, так как модули
|
|
37
|
+
* не должны зависеть друг от друга на этапе `init()`.
|
|
38
|
+
* Взаимодействие происходит через API и EventBus после инициализации.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* public init(): void {
|
|
43
|
+
* // Создание контролов
|
|
44
|
+
* this._orbit = new OrbitControls(...);
|
|
45
|
+
* // Подписка на события
|
|
46
|
+
* this._eventBus.on(EventTopics.SelectClick, this._onClick);
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
init(): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=runtime-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-module.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/runtime-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|