@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
package/dist/core/renderer.d.ts
CHANGED
|
@@ -1,120 +1,147 @@
|
|
|
1
|
-
import { Figure } from '@planara/types';
|
|
2
1
|
import { Disposable } from 'tsyringe';
|
|
2
|
+
import { IRendererCameraAccess, IRendererAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable } from '../interfaces/api/renderer';
|
|
3
|
+
import { RendererConfig } from '@planara/types';
|
|
3
4
|
import * as THREE from 'three';
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* Базовый класс рендерера для работы с WebGL через Three.js.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Отвечает за инициализацию сцены, камеры, освещения и цикла рендеринга.
|
|
10
|
+
* Предоставляет низкоуровневый API для доступа к основным компонентам Three.js.
|
|
11
|
+
*
|
|
12
|
+
* **Не содержит логики управления камерой или выделения объектов** —
|
|
13
|
+
* это ответственность модулей (например, `ControlsModule`, `RaycasterModule`).
|
|
14
|
+
*
|
|
15
|
+
* Рендерер реализует интерфейсы нижнего API:
|
|
16
|
+
* - `IRendererAccess` — доступ к WebGLRenderer
|
|
17
|
+
* - `IRendererCameraAccess` — доступ к камере
|
|
18
|
+
* - `IRendererDomAccess` — доступ к DOM-элементам
|
|
19
|
+
* - `IRendererSceneAccess` — доступ к сцене
|
|
20
|
+
*
|
|
21
|
+
* @see {@link IRendererAccess} - доступ к WebGLRenderer
|
|
22
|
+
* @see {@link IRendererCameraAccess} - доступ к камере
|
|
23
|
+
* @see {@link IRendererDomAccess} - доступ к DOM
|
|
24
|
+
* @see {@link IRendererSceneAccess} - доступ к сцене
|
|
25
|
+
*
|
|
7
26
|
* @public
|
|
27
|
+
* @class
|
|
8
28
|
*/
|
|
9
|
-
export declare
|
|
10
|
-
|
|
11
|
-
protected scene: THREE.Scene;
|
|
12
|
-
/** Камера для сцены */
|
|
13
|
-
protected camera: THREE.PerspectiveCamera;
|
|
14
|
-
/** Экземпляр рендерера Three.js */
|
|
15
|
-
protected renderer: THREE.WebGLRenderer;
|
|
16
|
-
/** HTML-элемент canvas, на котором рендерится сцена */
|
|
17
|
-
protected canvas: HTMLCanvasElement;
|
|
18
|
-
/** Массив моделей на сцене */
|
|
19
|
-
protected meshes: THREE.Mesh[];
|
|
20
|
-
/**
|
|
21
|
-
* Конструктор рендерера
|
|
22
|
-
* @param canvas - HTMLCanvasElement для рендеринга
|
|
23
|
-
*/
|
|
24
|
-
protected constructor(canvas: HTMLCanvasElement);
|
|
29
|
+
export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable, Disposable {
|
|
30
|
+
private readonly _config;
|
|
25
31
|
/**
|
|
26
|
-
*
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* Выполняет рендеринг сцены с текущей камерой.
|
|
32
|
+
* Корневой объект сцены Three.js.
|
|
33
|
+
*
|
|
34
|
+
* @protected
|
|
35
|
+
* @member
|
|
31
36
|
*/
|
|
32
|
-
protected
|
|
37
|
+
protected scene: THREE.Scene;
|
|
33
38
|
/**
|
|
34
|
-
*
|
|
39
|
+
* Камера для сцены Three.js.
|
|
40
|
+
*
|
|
41
|
+
* @protected
|
|
42
|
+
* @member
|
|
35
43
|
*/
|
|
36
|
-
protected
|
|
44
|
+
protected camera: THREE.PerspectiveCamera;
|
|
37
45
|
/**
|
|
38
|
-
*
|
|
46
|
+
* Экземпляр Three.js WebGLRenderer.
|
|
47
|
+
*
|
|
48
|
+
* @protected
|
|
49
|
+
* @member
|
|
39
50
|
*/
|
|
40
|
-
|
|
51
|
+
protected renderer: THREE.WebGLRenderer;
|
|
41
52
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
53
|
+
* HTML-элемент canvas, на котором рендерится сцена.
|
|
54
|
+
*
|
|
55
|
+
* @protected
|
|
56
|
+
* @member
|
|
44
57
|
*/
|
|
45
|
-
|
|
58
|
+
protected canvas: HTMLCanvasElement;
|
|
46
59
|
/**
|
|
47
|
-
*
|
|
60
|
+
* Конструктор рендерера.
|
|
61
|
+
*
|
|
62
|
+
* @param _canvas - HTMLCanvasElement для рендеринга
|
|
63
|
+
* @param _config - Конфиг для настройки рендерера
|
|
48
64
|
*
|
|
49
|
-
* @
|
|
50
|
-
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* Инициализирует сцену, камеру, WebGLRenderer и базовое освещение
|
|
67
|
+
* на основе переданного `RendererConfig`.
|
|
68
|
+
*
|
|
69
|
+
* По умолчанию используется тёмный фон, перспективная камера
|
|
70
|
+
* и два источника света: AmbientLight и DirectionalLight.
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
* @constructor
|
|
51
74
|
*/
|
|
52
|
-
|
|
75
|
+
constructor(_canvas: HTMLCanvasElement, _config: RendererConfig);
|
|
53
76
|
/**
|
|
54
|
-
*
|
|
77
|
+
* Обновляет размер рендерера и пропорции камеры.
|
|
78
|
+
*
|
|
79
|
+
* @remarks
|
|
80
|
+
* Вызывается при изменении размеров canvas (например, при ресайзе окна браузера).
|
|
55
81
|
*
|
|
56
|
-
* @
|
|
57
|
-
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* window.addEventListener('resize', () => renderer.resize());
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* @public
|
|
88
|
+
* @method
|
|
58
89
|
*/
|
|
59
|
-
|
|
90
|
+
resize(): void;
|
|
60
91
|
/**
|
|
61
|
-
*
|
|
92
|
+
* Выполняет рендеринг текущего кадра.
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* Рендерит сцену с текущей камерой.
|
|
96
|
+
* Вызывается автоматически в цикле `loop()`.
|
|
62
97
|
*
|
|
63
|
-
* @
|
|
64
|
-
* @
|
|
98
|
+
* @public
|
|
99
|
+
* @method
|
|
65
100
|
*/
|
|
66
|
-
|
|
101
|
+
render(): void;
|
|
67
102
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* @param obj - Объект, который нужно добавить в сцену.
|
|
71
|
-
* @param layer - (Опц.) Номер слоя, который следует установить объекту перед добавлением.
|
|
103
|
+
* Обновляет состояние рендерера перед рендерингом.
|
|
72
104
|
*
|
|
73
105
|
* @remarks
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* // Добавить оверлей на слой подсветок:
|
|
79
|
-
* add(overlayLine, OVERLAY_LAYER);
|
|
106
|
+
* Пустой метод, предназначен для переопределения в наследниках
|
|
107
|
+
* (например, для обновления контролов камеры).
|
|
80
108
|
*
|
|
81
|
-
* @
|
|
109
|
+
* @protected
|
|
110
|
+
* @method
|
|
111
|
+
* @virtual
|
|
82
112
|
*/
|
|
83
|
-
|
|
113
|
+
protected update(): void;
|
|
84
114
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* @param obj - Объект, который необходимо удалить.
|
|
115
|
+
* Запускает основной цикл рендеринга.
|
|
88
116
|
*
|
|
89
117
|
* @remarks
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* освобождение GPU-ресурсов; освобождайте геометрию/материалы отдельно при необходимости.
|
|
118
|
+
* Вызывает `update()` и `render()` каждый кадр с помощью `requestAnimationFrame`.
|
|
119
|
+
* **Важно:** вызывать метод только один раз.
|
|
93
120
|
*
|
|
94
121
|
* @example
|
|
95
|
-
*
|
|
96
|
-
*
|
|
122
|
+
* ```typescript
|
|
123
|
+
* renderer.loop();
|
|
124
|
+
* ```
|
|
97
125
|
*
|
|
98
|
-
* @
|
|
126
|
+
* @public
|
|
127
|
+
* @method
|
|
99
128
|
*/
|
|
100
|
-
|
|
129
|
+
loop(): void;
|
|
130
|
+
getCamera(): THREE.Camera;
|
|
131
|
+
getRenderer(): THREE.WebGLRenderer;
|
|
132
|
+
getCanvas(): HTMLCanvasElement;
|
|
133
|
+
getDomElement(): HTMLElement;
|
|
134
|
+
getScene(): THREE.Scene;
|
|
101
135
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* @param layer - Номер слоя, который требуется сделать видимым для камеры.
|
|
136
|
+
* Освобождает ресурсы рендерера.
|
|
105
137
|
*
|
|
106
138
|
* @remarks
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* // Убедиться, что камера видит слой оверлеев:
|
|
112
|
-
* enableCameraLayer(OVERLAY_LAYER);
|
|
139
|
+
* Удаляет ссылки на сцену, камеру и canvas, вызывает `dispose()` у WebGLRenderer.
|
|
140
|
+
* Вызывается при уничтожении редактора IOC-контейнером.
|
|
113
141
|
*
|
|
114
|
-
* @
|
|
142
|
+
* @public
|
|
143
|
+
* @method
|
|
115
144
|
*/
|
|
116
|
-
enableCameraLayer(layer: number): void;
|
|
117
|
-
/** Освобождает ресурсы рендерера, очищает внутренние данные. */
|
|
118
145
|
dispose(): Promise<void> | void;
|
|
119
146
|
}
|
|
120
147
|
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,QACX,YACE,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,UAAU;IAoDgB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlDpD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,KAAK,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAG,KAAK,CAAC,iBAAiB,CAAC;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAG,KAAK,CAAC,aAAa,CAAC;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;gBAEiB,OAAO,EAAE,iBAAiB,EACD,OAAO,EAAE,cAAc;IAoEpE;;;;;;;;;;;;;OAaG;IACI,MAAM;IAMb;;;;;;;;;OASG;IACI,MAAM;IAIb;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAExB;;;;;;;;;;;;;;OAcG;IACI,IAAI;IAMJ,SAAS,IAAI,KAAK,CAAC,MAAM;IAIzB,WAAW,IAAI,KAAK,CAAC,aAAa;IAIlC,SAAS,IAAI,iBAAiB;IAI9B,aAAa,IAAI,WAAW;IAI5B,QAAQ,IAAI,KAAK,CAAC,KAAK;IAI9B;;;;;;;;;OASG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAQvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IPolicy } from '../interfaces/policy';
|
|
2
|
+
type PolicyAccessor<TThis> = (self: TThis) => IPolicy;
|
|
3
|
+
export declare const usePolicy: <TThis extends object>(accessor: PolicyAccessor<TThis>) => <T extends (...args: any[]) => any>(_target: TThis, _propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=use-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-policy.d.ts","sourceRoot":"","sources":["../../src/decorators/use-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,KAAK,cAAc,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;AAEtD,eAAO,MAAM,SAAS,GACnB,KAAK,SAAS,MAAM,EAAE,UAAU,cAAc,CAAC,KAAK,CAAC,MACrD,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAChC,SAAS,KAAK,EACd,cAAc,MAAM,EACpB,YAAY,uBAAuB,CAAC,CAAC,CAAC,+BAiBvC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IValidator } from '../interfaces/validator';
|
|
2
|
+
type ValidatorAccessor<TThis> = (self: TThis) => IValidator;
|
|
3
|
+
export declare const useValidator: <TThis extends object>(accessor: ValidatorAccessor<TThis>) => <T extends (...args: any[]) => any>(_target: TThis, _propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=use-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-validator.d.ts","sourceRoot":"","sources":["../../src/decorators/use-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,KAAK,iBAAiB,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,CAAC;AAE5D,eAAO,MAAM,YAAY,GACtB,KAAK,SAAS,MAAM,EAAE,UAAU,iBAAiB,CAAC,KAAK,CAAC,MACxD,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAChC,SAAS,KAAK,EACd,cAAc,MAAM,EACpB,YAAY,uBAAuB,CAAC,CAAC,CAAC,+BAiBvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ResponseType } from '@planara/types';
|
|
2
|
+
export declare class PolicyError extends Error {
|
|
3
|
+
readonly type: ResponseType;
|
|
4
|
+
readonly code?: string | undefined;
|
|
5
|
+
readonly meta?: unknown | undefined;
|
|
6
|
+
private readonly _name;
|
|
7
|
+
constructor(type: ResponseType, message: string, code?: string | undefined, meta?: unknown | undefined);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=policy-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-error.d.ts","sourceRoot":"","sources":["../../src/errors/policy-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,KAAK;aAIlB,IAAI,EAAE,YAAY;aAElB,IAAI,CAAC,EAAE,MAAM;aACb,IAAI,CAAC,EAAE,OAAO;IANhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;gBAGjC,IAAI,EAAE,YAAY,EAClC,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,IAAI,CAAC,EAAE,OAAO,YAAA;CAKjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ResponseType } from '@planara/types';
|
|
2
|
+
export declare class ValidationError extends Error {
|
|
3
|
+
readonly type: ResponseType;
|
|
4
|
+
readonly code?: string | undefined;
|
|
5
|
+
readonly meta?: unknown | undefined;
|
|
6
|
+
private readonly _name;
|
|
7
|
+
constructor(type: ResponseType, message: string, code?: string | undefined, meta?: unknown | undefined);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=validation-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../../src/errors/validation-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,KAAK;aAItB,IAAI,EAAE,YAAY;aAElB,IAAI,CAAC,EAAE,MAAM;aACb,IAAI,CAAC,EAAE,OAAO;IANhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;gBAGrC,IAAI,EAAE,YAAY,EAClC,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,IAAI,CAAC,EAAE,OAAO,YAAA;CAKjC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { EventTopics } from '
|
|
2
|
-
import { SelectMode } from '@planara/types';
|
|
1
|
+
import { EventTopics } from '.';
|
|
3
2
|
import * as THREE from 'three';
|
|
4
3
|
/**
|
|
5
4
|
* Типы событий редактора.
|
|
6
5
|
* Используются в EventEmitter для типизированной публикации и подписки на события.
|
|
6
|
+
*
|
|
7
7
|
* @public
|
|
8
|
+
* @type
|
|
8
9
|
*/
|
|
9
10
|
export type EditorEvents = {
|
|
10
11
|
/** Событие наведения на объект (hover). Payload: объект с пересечениями или null */
|
|
@@ -15,10 +16,5 @@ export type EditorEvents = {
|
|
|
15
16
|
[EventTopics.SelectClick]: {
|
|
16
17
|
intersection: THREE.Intersection;
|
|
17
18
|
} | null;
|
|
18
|
-
/** Событие выбора объекта для редактирования. Payload: выбранный режим выборки */
|
|
19
|
-
[EventTopics.ToolSelect]: {
|
|
20
|
-
mode: SelectMode;
|
|
21
|
-
mesh: THREE.Object3D | null;
|
|
22
|
-
};
|
|
23
19
|
};
|
|
24
20
|
//# sourceMappingURL=editor-events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-events.d.ts","sourceRoot":"","sources":["../../src/events/editor-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"editor-events.d.ts","sourceRoot":"","sources":["../../src/events/editor-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,oFAAoF;IACpF,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAAE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC;IAEvE,yEAAyE;IACzE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAAE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC;CACxE,CAAC"}
|
|
@@ -1,17 +1,114 @@
|
|
|
1
|
-
import { EditorEvents } from '
|
|
1
|
+
import { EditorEvents } from '.';
|
|
2
2
|
/**
|
|
3
|
-
* Событийная шина редактора с топиками.
|
|
4
|
-
*
|
|
3
|
+
* Событийная шина редактора с типизированными топиками.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Реализует паттерн Publish/Subscribe для слабой связи между компонентами.
|
|
7
|
+
*
|
|
8
|
+
* **Особенности:**
|
|
9
|
+
* - Полная типобезопасность через дженерики (`EditorEvents`)
|
|
10
|
+
* - Отсутствие прямых зависимостей между отправителем и получателем
|
|
11
|
+
* - Централизованное управление событиями
|
|
12
|
+
*
|
|
13
|
+
* **Где используется:**
|
|
14
|
+
* - `RaycasterModule` — публикует события выделения (`SelectHover`, `SelectClick`)
|
|
15
|
+
* - `SelectManager` — подписывается на события выделения
|
|
16
|
+
*
|
|
17
|
+
* @see {@link EditorEvents} - типы событий
|
|
18
|
+
* @see {@link EventTopics} - доступные топики
|
|
19
|
+
*
|
|
5
20
|
* @public
|
|
21
|
+
* @class
|
|
6
22
|
*/
|
|
7
23
|
export declare class EventBus {
|
|
24
|
+
/**
|
|
25
|
+
* Внутренний эмиттер событий Node.js.
|
|
26
|
+
*
|
|
27
|
+
* @private
|
|
28
|
+
* @member
|
|
29
|
+
*/
|
|
8
30
|
private _emitter;
|
|
31
|
+
/** @constructor */
|
|
9
32
|
constructor();
|
|
10
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Публикует событие в шину.
|
|
35
|
+
*
|
|
36
|
+
* @param event - название события (из `EventTopics`)
|
|
37
|
+
* @param payload - данные события (тип зависит от события)
|
|
38
|
+
*
|
|
39
|
+
* @typeParam K - ключ события из `EditorEvents`
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* Все подписчики, зарегистрированные на это событие, получат payload.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // Публикация события клика
|
|
47
|
+
* eventBus.emit(EventTopics.SelectClick, { intersection: hit });
|
|
48
|
+
*
|
|
49
|
+
* // Публикация события сброса выделения
|
|
50
|
+
* eventBus.emit(EventTopics.SelectClick, null);
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
* @method
|
|
55
|
+
*/
|
|
11
56
|
emit<K extends keyof EditorEvents>(event: K, payload: EditorEvents[K]): void;
|
|
12
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Подписывается на событие.
|
|
59
|
+
*
|
|
60
|
+
* @param event - название события (из `EventTopics`)
|
|
61
|
+
* @param listener - функция-обработчик, получающая payload
|
|
62
|
+
*
|
|
63
|
+
* @typeParam K - ключ события из `EditorEvents`
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* **Важно:** для предотвращения утечек памяти необходимо отписываться от событий
|
|
67
|
+
* в `dispose()` методах компонентов.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* // Подписка на событие hover
|
|
72
|
+
* this._eventBus.on(EventTopics.SelectHover, (payload) => {
|
|
73
|
+
* if (payload) {
|
|
74
|
+
* this._handleHover(payload.intersection);
|
|
75
|
+
* } else {
|
|
76
|
+
* this._clearHover();
|
|
77
|
+
* }
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @public
|
|
82
|
+
* @method
|
|
83
|
+
*/
|
|
13
84
|
on<K extends keyof EditorEvents>(event: K, listener: (payload: EditorEvents[K]) => void): void;
|
|
14
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Отписывается от события.
|
|
87
|
+
*
|
|
88
|
+
* @param event - название события (из `EventTopics`)
|
|
89
|
+
* @param listener - функция-обработчик, которую нужно отписать
|
|
90
|
+
*
|
|
91
|
+
* @typeParam K - ключ события из `EditorEvents`
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* Для корректной отписки необходимо передать ту же самую функцию,
|
|
95
|
+
* которая использовалась при подписке.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* // Сохранение ссылки на обработчик
|
|
100
|
+
* private _handleClick = (payload) => { ... };
|
|
101
|
+
*
|
|
102
|
+
* // Подписка
|
|
103
|
+
* eventBus.on(EventTopics.SelectClick, this._handleClick);
|
|
104
|
+
*
|
|
105
|
+
* // Отписка (в dispose)
|
|
106
|
+
* eventBus.off(EventTopics.SelectClick, this._handleClick);
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @public
|
|
110
|
+
* @method
|
|
111
|
+
*/
|
|
15
112
|
off<K extends keyof EditorEvents>(event: K, listener: (payload: EditorEvents[K]) => void): void;
|
|
16
113
|
}
|
|
17
114
|
//# sourceMappingURL=event-bus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,QAAQ;IACnB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAgB;IAEhC,mBAAmB;;IAKnB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAInF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAC3C,IAAI;IAIP;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,YAAY,EACrC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAC3C,IAAI;CAGR"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Топики событий редактора.
|
|
3
3
|
* Используются для подписки/публикации через EventEmitter.
|
|
4
|
+
*
|
|
4
5
|
* @public
|
|
6
|
+
* @enum
|
|
5
7
|
*/
|
|
6
8
|
export declare enum EventTopics {
|
|
7
9
|
/** Событие наведения на объект (hover). Payload: intersection: Intersection | null */
|
|
8
10
|
SelectHover = "select.hover",
|
|
9
11
|
/** Событие клика по объекту. Payload: intersection: Intersection | null */
|
|
10
|
-
SelectClick = "select.click"
|
|
11
|
-
/** Событие выбора объекта для редактирования. Payload: mode: SelectMode, object: THREE.Object3D | null */
|
|
12
|
-
ToolSelect = "tool.select"
|
|
12
|
+
SelectClick = "select.click"
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=event-topics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-topics.d.ts","sourceRoot":"","sources":["../../src/events/event-topics.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"event-topics.d.ts","sourceRoot":"","sources":["../../src/events/event-topics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,WAAW;IACrB,sFAAsF;IACtF,WAAW,iBAAiB;IAE5B,2EAA2E;IAC3E,WAAW,iBAAiB;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { IDisplayHandler } from '../../interfaces/handler
|
|
1
|
+
import { IDisplayHandler } from '../../interfaces/handler';
|
|
2
|
+
import { IMeshApi } from '../../interfaces/api';
|
|
2
3
|
import { DisplayMode } from '@planara/types';
|
|
3
|
-
import { IMeshApi } from '../../interfaces/api/mesh-api';
|
|
4
4
|
/**
|
|
5
5
|
* Хендлер для включения wireframe-режима.
|
|
6
6
|
* Управляет сценой через RendererApi.
|
|
7
|
+
*
|
|
7
8
|
* @internal
|
|
9
|
+
* @class
|
|
8
10
|
*/
|
|
9
11
|
export declare class WireframeHandler implements IDisplayHandler {
|
|
10
12
|
private _api;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireframe-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/display/wireframe-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"wireframe-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/display/wireframe-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;;GAMG;AACH,qBACa,gBAAiB,YAAW,eAAe;IAcf,OAAO,CAAC,IAAI;IAbnD,yBAAyB;IACzB,SAAgB,IAAI,EAAE,WAAW,CAAyB;IAE1D,0DAA0D;IAC1D,OAAO,CAAC,cAAc,CAAsC;IAE5D,qDAAqD;IACrD,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,eAAe,CAAmD;IAE1E,uCAAuC;IACvC,OAAO,CAAC,UAAU,CAA6B;gBAEA,IAAI,EAAE,QAAQ;IAE7D,yCAAyC;IAClC,MAAM,IAAI,IAAI;IAwBrB,gEAAgE;IACzD,QAAQ,IAAI,IAAI;IAuBvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC,mEAAmE;IACnE,OAAO,CAAC,0BAA0B;CAgBnC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { ISceneHandler } from '../../interfaces/handler
|
|
2
|
-
import { IMeshApi } from '../../interfaces/api
|
|
1
|
+
import { ISceneHandler } from '../../interfaces/handler';
|
|
2
|
+
import { IMeshApi } from '../../interfaces/api';
|
|
3
3
|
import { FigureType, SceneMode } from '@planara/types';
|
|
4
4
|
/**
|
|
5
5
|
* Хендлер для добавления базовых фигур на сцену.
|
|
6
6
|
* Управляет сценой через RendererApi.
|
|
7
|
+
*
|
|
7
8
|
* @internal
|
|
9
|
+
* @class
|
|
8
10
|
*/
|
|
9
11
|
export declare class AddFigureSceneHandler implements ISceneHandler {
|
|
10
12
|
private _api;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-figure-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/add-figure-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"add-figure-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/add-figure-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ5D;;;;;;GAMG;AACH,qBACa,qBAAsB,YAAW,aAAa;IAOlB,OAAO,CAAC,IAAI;IANnD,iCAAiC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAuB;IAEtD,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAA2B;gBAEF,IAAI,EAAE,QAAQ;IAE7D,2EAA2E;IACpE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA8BvC,wCAAwC;IACjC,QAAQ,IAAI,IAAI;IASvB,oCAAoC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ISceneHandler } from '../../interfaces/handler
|
|
2
|
-
import { IMeshApi } from '../../interfaces/api
|
|
1
|
+
import { ISceneHandler } from '../../interfaces/handler';
|
|
2
|
+
import { IMeshApi } from '../../interfaces/api';
|
|
3
|
+
import { ISelectStore } from '../../interfaces/store';
|
|
3
4
|
import { SceneMode } from '@planara/types';
|
|
4
|
-
import { IEditorStore } from '../../interfaces/store/editor-store';
|
|
5
5
|
/**
|
|
6
6
|
* Хендлер для удаления фигур со сцены.
|
|
7
7
|
* Управляет сценой через RendererApi.
|
|
@@ -14,7 +14,7 @@ export declare class DeleteFigureSceneHandler implements ISceneHandler {
|
|
|
14
14
|
readonly mode: SceneMode;
|
|
15
15
|
/** Последняя удаленная фигура, сохраняем для отката через `ctrl + z` */
|
|
16
16
|
private _lastDeletedMesh;
|
|
17
|
-
constructor(_api: IMeshApi, _store:
|
|
17
|
+
constructor(_api: IMeshApi, _store: ISelectStore);
|
|
18
18
|
handle(): void;
|
|
19
19
|
/** Срабатывает только на `ctrl + z`. */
|
|
20
20
|
rollback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-figure-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/delete-figure-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"delete-figure-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/delete-figure-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C;;;;GAIG;AACH,qBACa,wBAAyB,YAAW,aAAa;IAQtC,OAAO,CAAC,IAAI;IACT,OAAO,CAAC,MAAM;IARvC,iCAAiC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAA0B;IAEzD,wEAAwE;IACxE,OAAO,CAAC,gBAAgB,CAA2B;gBAGrB,IAAI,EAAE,QAAQ,EACX,MAAM,EAAE,YAAY;IAG9C,MAAM,IAAI,IAAI;IAerB,wCAAwC;IACjC,QAAQ,IAAI,IAAI;IASvB,oCAAoC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ISceneHandler } from '../../interfaces/handler';
|
|
2
|
+
import { ISceneApi } from '../../interfaces/api';
|
|
3
|
+
import { IExportStore } from '../../interfaces/store';
|
|
4
|
+
import { SceneMode } from '@planara/types';
|
|
5
|
+
/**
|
|
6
|
+
* Хендлер для экспорта сцены в виде файла.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
* @class
|
|
10
|
+
*/
|
|
11
|
+
export declare class ExportSceneHandler implements ISceneHandler {
|
|
12
|
+
private _api;
|
|
13
|
+
private readonly _exportStore;
|
|
14
|
+
/** Режим редактирования сцены */
|
|
15
|
+
readonly mode: SceneMode;
|
|
16
|
+
constructor(_api: ISceneApi, _exportStore: IExportStore);
|
|
17
|
+
/** Экспорт всей сцены в ExportStore для последующей загрузки в виде файла. */
|
|
18
|
+
handle(): void;
|
|
19
|
+
rollback(): void;
|
|
20
|
+
/** Освобождает ресурсы хендлера. */
|
|
21
|
+
dispose(): Promise<void> | void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=export-scene-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/export-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C;;;;;GAKG;AACH,qBACa,kBAAmB,YAAW,aAAa;IAK/B,OAAO,CAAC,IAAI;IACV,OAAO,CAAC,QAAQ,CAAC,YAAY;IALtD,iCAAiC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAoB;gBAGpB,IAAI,EAAE,SAAS,EACJ,YAAY,EAAE,YAAY;IAGpE,8EAA8E;IACvE,MAAM,IAAI,IAAI;IAmBd,QAAQ,IAAI,IAAI;IAEvB,oCAAoC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
|