@planara/core 2.8.0 → 3.0.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/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/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/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/renderer-controller.d.ts +74 -0
- package/dist/controllers/renderer-controller.d.ts.map +1 -0
- package/dist/core/renderer.d.ts +110 -78
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/decorators/use-policy.d.ts +5 -0
- package/dist/decorators/use-policy.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/events/editor-events.d.ts +2 -6
- package/dist/events/editor-events.d.ts.map +1 -1
- package/dist/events/event-bus.d.ts +102 -5
- 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/handlers/display/wireframe-handler.d.ts +3 -1
- package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
- package/dist/handlers/scene/add-figure-scene-handler.d.ts +2 -0
- package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -1
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts +2 -2
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -1
- package/dist/handlers/select/edge-select-handler.d.ts +10 -4
- package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/face-select-handler.d.ts +10 -4
- package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/mesh-select-handler.d.ts +5 -3
- package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/vertex-select-handler.d.ts +10 -4
- package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
- package/dist/handlers/tool/base-tool-handler.d.ts +9 -6
- package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
- 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 +22 -17
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +2 -2
- package/dist/index.d.ts +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +1635 -1563
- package/dist/index.full.d.ts +637 -242
- package/dist/index.public.d.ts +652 -157
- package/dist/index.umd.js +2 -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/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/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/controller.d.ts +38 -0
- package/dist/interfaces/controller/controller.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/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/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/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/response/index.d.ts +22 -0
- package/dist/interfaces/response/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/{editor-store.d.ts → select-store.d.ts} +16 -24
- 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/ioc/container.d.ts.map +1 -1
- package/dist/managers/display/display-manager.d.ts +5 -2
- package/dist/managers/display/display-manager.d.ts.map +1 -1
- package/dist/managers/scene/scene-manager.d.ts +3 -0
- package/dist/managers/scene/scene-manager.d.ts.map +1 -1
- package/dist/managers/select/select-manager.d.ts +5 -2
- package/dist/managers/select/select-manager.d.ts.map +1 -1
- package/dist/managers/tool/tool-manager.d.ts +7 -4
- 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 +7 -0
- package/dist/middlewares/exception-middleware.d.ts.map +1 -0
- package/dist/modules/controls-module.d.ts +58 -0
- package/dist/modules/controls-module.d.ts.map +1 -0
- package/dist/modules/gizmo-module.d.ts +34 -0
- package/dist/modules/gizmo-module.d.ts.map +1 -0
- package/dist/modules/raycast-module.d.ts +91 -0
- package/dist/modules/raycast-module.d.ts.map +1 -0
- package/dist/modules/scene-module.d.ts +32 -0
- package/dist/modules/scene-module.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/index.d.ts +4 -14
- package/dist/store/index.d.ts.map +1 -1
- package/dist/types/feature/feature-type.d.ts +16 -0
- package/dist/types/feature/feature-type.d.ts.map +1 -0
- package/dist/types/response/response-type.d.ts +19 -0
- package/dist/types/response/response-type.d.ts.map +1 -0
- package/package.json +1 -1
- 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/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.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,152 @@
|
|
|
1
|
-
import { Figure } from '@planara/types';
|
|
2
1
|
import { Disposable } from 'tsyringe';
|
|
2
|
+
import { IRendererCameraAccess } from '../interfaces/api/renderer/renderer-camera-access';
|
|
3
|
+
import { IRendererAccess } from '../interfaces/api/renderer/renderer-access';
|
|
4
|
+
import { IRendererDomAccess } from '../interfaces/api/renderer/renderer-dom-access';
|
|
5
|
+
import { IRendererSceneAccess } from '../interfaces/api/renderer/renderer-scene-access';
|
|
6
|
+
import { IRenderable } from '../interfaces/api/renderer/renderable';
|
|
3
7
|
import * as THREE from 'three';
|
|
4
8
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
9
|
+
* Базовый класс рендерера для работы с WebGL через Three.js.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* Отвечает за инициализацию сцены, камеры, освещения и цикла рендеринга.
|
|
13
|
+
* Предоставляет низкоуровневый API для доступа к основным компонентам Three.js.
|
|
14
|
+
*
|
|
15
|
+
* **Не содержит логики управления камерой или выделения объектов** —
|
|
16
|
+
* это ответственность модулей (например, `ControlsModule`, `RaycasterModule`).
|
|
17
|
+
*
|
|
18
|
+
* Рендерер реализует интерфейсы нижнего API:
|
|
19
|
+
* - `IRendererAccess` — доступ к WebGLRenderer
|
|
20
|
+
* - `IRendererCameraAccess` — доступ к камере
|
|
21
|
+
* - `IRendererDomAccess` — доступ к DOM-элементам
|
|
22
|
+
* - `IRendererSceneAccess` — доступ к сцене
|
|
23
|
+
*
|
|
24
|
+
* @see {@link IRendererAccess} - доступ к WebGLRenderer
|
|
25
|
+
* @see {@link IRendererCameraAccess} - доступ к камере
|
|
26
|
+
* @see {@link IRendererDomAccess} - доступ к DOM
|
|
27
|
+
* @see {@link IRendererSceneAccess} - доступ к сцене
|
|
28
|
+
*
|
|
7
29
|
* @public
|
|
30
|
+
* @class
|
|
8
31
|
*/
|
|
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);
|
|
25
|
-
/**
|
|
26
|
-
* Обновляет размер рендерера и камеры при изменении размеров canvas.
|
|
27
|
-
*/
|
|
28
|
-
resize(): void;
|
|
29
|
-
/**
|
|
30
|
-
* Выполняет рендеринг сцены с текущей камерой.
|
|
31
|
-
*/
|
|
32
|
-
protected render(): void;
|
|
32
|
+
export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable, Disposable {
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* Запускает основной цикл рендеринга.
|
|
39
|
-
*/
|
|
40
|
-
loop(): void;
|
|
41
|
-
/**
|
|
42
|
-
* Добавление фигуры на сцену.
|
|
43
|
-
* @param figure - Данные фигуры: position, normal, uv
|
|
34
|
+
* Корневой объект сцены Three.js.
|
|
35
|
+
*
|
|
36
|
+
* @protected
|
|
37
|
+
* @member
|
|
44
38
|
*/
|
|
45
|
-
|
|
39
|
+
protected scene: THREE.Scene;
|
|
46
40
|
/**
|
|
47
|
-
*
|
|
41
|
+
* Камера для сцены Three.js.
|
|
48
42
|
*
|
|
49
|
-
* @
|
|
50
|
-
* @
|
|
43
|
+
* @protected
|
|
44
|
+
* @member
|
|
51
45
|
*/
|
|
52
|
-
|
|
46
|
+
protected camera: THREE.PerspectiveCamera;
|
|
53
47
|
/**
|
|
54
|
-
*
|
|
48
|
+
* Экземпляр Three.js WebGLRenderer.
|
|
55
49
|
*
|
|
56
|
-
* @
|
|
57
|
-
* @
|
|
50
|
+
* @protected
|
|
51
|
+
* @member
|
|
58
52
|
*/
|
|
59
|
-
|
|
53
|
+
protected renderer: THREE.WebGLRenderer;
|
|
60
54
|
/**
|
|
61
|
-
*
|
|
55
|
+
* HTML-элемент canvas, на котором рендерится сцена.
|
|
62
56
|
*
|
|
63
|
-
* @
|
|
64
|
-
* @
|
|
57
|
+
* @protected
|
|
58
|
+
* @member
|
|
65
59
|
*/
|
|
66
|
-
|
|
60
|
+
protected canvas: HTMLCanvasElement;
|
|
67
61
|
/**
|
|
68
|
-
*
|
|
62
|
+
* Конструктор рендерера.
|
|
69
63
|
*
|
|
70
|
-
* @param
|
|
71
|
-
* @param layer - (Опц.) Номер слоя, который следует установить объекту перед добавлением.
|
|
64
|
+
* @param _canvas - HTMLCanvasElement для рендеринга
|
|
72
65
|
*
|
|
73
66
|
* @remarks
|
|
74
|
-
*
|
|
75
|
-
*
|
|
67
|
+
* Инициализирует сцену с тёмным фоном, перспективную камеру
|
|
68
|
+
* (45° FOV, near 0.1, far 1000) и базовое освещение:
|
|
69
|
+
* - `AmbientLight` (0xffffff, 0.5) — общий свет
|
|
70
|
+
* - `DirectionalLight` (0xffffff, 1) — направленный свет
|
|
76
71
|
*
|
|
77
72
|
* @example
|
|
78
|
-
*
|
|
79
|
-
*
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const renderer = new Renderer(canvas);
|
|
75
|
+
* ```
|
|
80
76
|
*
|
|
81
|
-
* @
|
|
77
|
+
* @public
|
|
78
|
+
* @constructor
|
|
82
79
|
*/
|
|
83
|
-
|
|
80
|
+
constructor(_canvas: HTMLCanvasElement);
|
|
84
81
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* @param obj - Объект, который необходимо удалить.
|
|
82
|
+
* Обновляет размер рендерера и пропорции камеры.
|
|
88
83
|
*
|
|
89
84
|
* @remarks
|
|
90
|
-
*
|
|
91
|
-
* удалить его напрямую из `this.scene`. В рамках данного API метод не отвечает за
|
|
92
|
-
* освобождение GPU-ресурсов; освобождайте геометрию/материалы отдельно при необходимости.
|
|
85
|
+
* Вызывается при изменении размеров canvas (например, при ресайзе окна браузера).
|
|
93
86
|
*
|
|
94
87
|
* @example
|
|
95
|
-
*
|
|
96
|
-
*
|
|
88
|
+
* ```typescript
|
|
89
|
+
* window.addEventListener('resize', () => renderer.resize());
|
|
90
|
+
* ```
|
|
97
91
|
*
|
|
98
|
-
* @
|
|
92
|
+
* @oublic
|
|
93
|
+
* @method
|
|
99
94
|
*/
|
|
100
|
-
|
|
95
|
+
resize(): void;
|
|
101
96
|
/**
|
|
102
|
-
*
|
|
97
|
+
* Выполняет рендеринг текущего кадра.
|
|
103
98
|
*
|
|
104
|
-
* @
|
|
99
|
+
* @remarks
|
|
100
|
+
* Рендерит сцену с текущей камерой.
|
|
101
|
+
* Вызывается автоматически в цикле `loop()`.
|
|
102
|
+
*
|
|
103
|
+
* @public
|
|
104
|
+
* @method
|
|
105
|
+
*/
|
|
106
|
+
render(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Обновляет состояние рендерера перед рендерингом.
|
|
105
109
|
*
|
|
106
110
|
* @remarks
|
|
107
|
-
*
|
|
108
|
-
*
|
|
111
|
+
* Пустой метод, предназначен для переопределения в наследниках
|
|
112
|
+
* (например, для обновления контролов камеры).
|
|
113
|
+
*
|
|
114
|
+
* @protected
|
|
115
|
+
* @method
|
|
116
|
+
* @virtual
|
|
117
|
+
*/
|
|
118
|
+
protected update(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Запускает основной цикл рендеринга.
|
|
121
|
+
*
|
|
122
|
+
* @remarks
|
|
123
|
+
* Вызывает `update()` и `render()` каждый кадр с помощью `requestAnimationFrame`.
|
|
124
|
+
* **Важно:** вызывать метод только один раз.
|
|
109
125
|
*
|
|
110
126
|
* @example
|
|
111
|
-
*
|
|
112
|
-
*
|
|
127
|
+
* ```typescript
|
|
128
|
+
* renderer.loop();
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @public
|
|
132
|
+
* @method
|
|
133
|
+
*/
|
|
134
|
+
loop(): void;
|
|
135
|
+
getCamera(): THREE.Camera;
|
|
136
|
+
getRenderer(): THREE.WebGLRenderer;
|
|
137
|
+
getCanvas(): HTMLCanvasElement;
|
|
138
|
+
getDomElement(): HTMLElement;
|
|
139
|
+
getScene(): THREE.Scene;
|
|
140
|
+
/**
|
|
141
|
+
* Освобождает ресурсы рендерера.
|
|
142
|
+
*
|
|
143
|
+
* @remarks
|
|
144
|
+
* Удаляет ссылки на сцену, камеру и canvas, вызывает `dispose()` у WebGLRenderer.
|
|
145
|
+
* Вызывается при уничтожении редактора IOC-контейнером.
|
|
113
146
|
*
|
|
114
|
-
* @
|
|
147
|
+
* @public
|
|
148
|
+
* @method
|
|
115
149
|
*/
|
|
116
|
-
enableCameraLayer(layer: number): void;
|
|
117
|
-
/** Освобождает ресурсы рендерера, очищает внутренние данные. */
|
|
118
150
|
dispose(): Promise<void> | void;
|
|
119
151
|
}
|
|
120
152
|
//# 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,EAAE,MAAM,EAAE,MAAM,
|
|
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,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,QACX,YACE,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,UAAU;IAEZ;;;;;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;;;;;;;;;;;;;;;;;;OAkBG;gBACkC,OAAO,EAAE,iBAAiB;IA+B/D;;;;;;;;;;;;;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,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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,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,9 @@
|
|
|
1
|
+
import { ResponseType } from '../types/response/response-type';
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { EventTopics } from './event-topics';
|
|
2
|
-
import { SelectMode } from '@planara/types';
|
|
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,gBAAgB,CAAC;AAE7C
|
|
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,gBAAgB,CAAC;AAE7C;;;;;;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
1
|
import { EditorEvents } from './editor-events';
|
|
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,iBAAiB,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { IDisplayHandler } from '../../interfaces/handler/display-handler';
|
|
2
|
-
import { DisplayMode } from '@planara/types';
|
|
3
2
|
import { IMeshApi } from '../../interfaces/api/mesh-api';
|
|
3
|
+
import { DisplayMode } from '@planara/types';
|
|
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,0CAA0C,CAAC;
|
|
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,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,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"}
|
|
@@ -4,7 +4,9 @@ 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,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS5D
|
|
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,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS5D;;;;;;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
1
|
import { ISceneHandler } from '../../interfaces/handler/scene-handler';
|
|
2
2
|
import { IMeshApi } from '../../interfaces/api/mesh-api';
|
|
3
3
|
import { SceneMode } from '@planara/types';
|
|
4
|
-
import {
|
|
4
|
+
import { ISelectStore } from '../../interfaces/store/select-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,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE;;;;GAIG;AACH,qBACa,wBAAyB,YAAW,aAAa;
|
|
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,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE;;;;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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { IEditorApi } from '../../types/api/editor-api';
|
|
2
1
|
import { ISelectHandler } from '../../interfaces/handler/select-handler';
|
|
3
|
-
import {
|
|
2
|
+
import { ISelectStore } from '../../interfaces/store/select-store';
|
|
3
|
+
import { ISceneApi } from '../../interfaces/api/scene-api';
|
|
4
|
+
import { ICameraApi } from '../../interfaces/api/camera-api';
|
|
5
|
+
import { IRaycastApi } from '../../interfaces/api/raycast-api';
|
|
4
6
|
import { SelectMode } from '@planara/types';
|
|
5
7
|
import { EditorEvents } from '../../events/editor-events';
|
|
6
8
|
import { EventTopics } from '../../events/event-topics';
|
|
@@ -10,10 +12,14 @@ import { SelectEventType } from '../../types/event/select-event-type';
|
|
|
10
12
|
* Управляет сценой через payload события рендерера.
|
|
11
13
|
* Обрабатывает hover и click.
|
|
12
14
|
* Меняет цвет грани конкретной модели из payload, в случае null возвращает исходное состояние.
|
|
15
|
+
*
|
|
13
16
|
* @internal
|
|
17
|
+
* @class
|
|
14
18
|
*/
|
|
15
19
|
export declare class EdgeSelectHandler implements ISelectHandler {
|
|
16
|
-
private
|
|
20
|
+
private _sceneApi;
|
|
21
|
+
private _cameraApi;
|
|
22
|
+
private _raycastApi;
|
|
17
23
|
private _store;
|
|
18
24
|
/** Режим, которым управляет хендлер, нужен только менеджеру */
|
|
19
25
|
readonly mode: SelectMode;
|
|
@@ -29,7 +35,7 @@ export declare class EdgeSelectHandler implements ISelectHandler {
|
|
|
29
35
|
private readonly _hoverColor;
|
|
30
36
|
/** Цвет выделенного ребра */
|
|
31
37
|
private readonly _selectColor;
|
|
32
|
-
constructor(
|
|
38
|
+
constructor(_sceneApi: ISceneApi, _cameraApi: ICameraApi, _raycastApi: IRaycastApi, _store: ISelectStore);
|
|
33
39
|
/** Обработка текущего режима выборки. */
|
|
34
40
|
handle(payload: EditorEvents[EventTopics.SelectHover] | EditorEvents[EventTopics.SelectClick], type: SelectEventType): void;
|
|
35
41
|
/** Откат текущего режима выборки */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/edge-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"edge-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/edge-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAOtE;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAqB/B,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,UAAU;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAvBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAA2D;IAC3E,gEAAgE;IAChE,OAAO,CAAC,SAAS,CAA2D;IAG5E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAGd,SAAS,EAAE,SAAS,EACnB,UAAU,EAAE,UAAU,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAcrD,yCAAyC;IAClC,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAoEP,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAUvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IActC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,KAAK;IAOb,qEAAqE;IACrE,OAAO,CAAC,6BAA6B;IAsCrC,wEAAwE;IACxE,OAAO,CAAC,oBAAoB;CA2E7B"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ISelectHandler } from '../../interfaces/handler/select-handler';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ISelectStore } from '../../interfaces/store/select-store';
|
|
3
|
+
import { ICameraApi } from '../../interfaces/api/camera-api';
|
|
4
|
+
import { ISceneApi } from '../../interfaces/api/scene-api';
|
|
5
|
+
import { IRaycastApi } from '../../interfaces/api/raycast-api';
|
|
4
6
|
import { SelectMode } from '@planara/types';
|
|
5
7
|
import { EditorEvents } from '../../events/editor-events';
|
|
6
8
|
import { EventTopics } from '../../events/event-topics';
|
|
@@ -10,10 +12,14 @@ import { SelectEventType } from '../../types/event/select-event-type';
|
|
|
10
12
|
* Управляет сценой через payload события рендерера.
|
|
11
13
|
* Обрабатывает hover и click.
|
|
12
14
|
* Меняет цвет грани конкретной модели из payload, в случае null возвращает исходное состояние.
|
|
15
|
+
*
|
|
13
16
|
* @internal
|
|
17
|
+
* @class
|
|
14
18
|
*/
|
|
15
19
|
export declare class FaceSelectHandler implements ISelectHandler {
|
|
16
|
-
private
|
|
20
|
+
private _cameraApi;
|
|
21
|
+
private _sceneApi;
|
|
22
|
+
private _raycastApi;
|
|
17
23
|
private _store;
|
|
18
24
|
/** Режим, которым управляет хендлер, нужен только менеджеру */
|
|
19
25
|
readonly mode: SelectMode;
|
|
@@ -33,7 +39,7 @@ export declare class FaceSelectHandler implements ISelectHandler {
|
|
|
33
39
|
private readonly _normalEps;
|
|
34
40
|
/** Погрешность на принадлежность одной плоскости */
|
|
35
41
|
private readonly _planeEps;
|
|
36
|
-
constructor(
|
|
42
|
+
constructor(_cameraApi: ICameraApi, _sceneApi: ISceneApi, _raycastApi: IRaycastApi, _store: ISelectStore);
|
|
37
43
|
/** Обработка текущего режима выборки. */
|
|
38
44
|
handle(payload: EditorEvents[EventTopics.SelectHover] | EditorEvents[EventTopics.SelectClick], type: SelectEventType): void;
|
|
39
45
|
/** Откат текущего режима выборки */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/face-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"face-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/face-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAWtE;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IA+B9B,OAAO,CAAC,UAAU;IACnB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAjCvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAMzC,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAA0B;IAC1C,uDAAuD;IACvD,OAAO,CAAC,SAAS,CAA0B;IAG3C,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAG7C,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAGF,UAAU,EAAE,UAAU,EACvB,SAAS,EAAE,SAAS,EAClB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAcrD,yCAAyC;IAClC,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAyEP,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAWvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAatC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuGzB,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB;IA8C5B,uCAAuC;IACvC,OAAO,CAAC,KAAK;IAUb,6DAA6D;IAC7D,OAAO,CAAC,oBAAoB;IAgB5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA8BxB,iDAAiD;IACjD,OAAO,CAAC,SAAS;IAQjB,0DAA0D;IAC1D,OAAO,CAAC,uBAAuB;IA6C/B,kDAAkD;IAClD,OAAO,CAAC,mBAAmB;IAO3B,+DAA+D;IAC/D,OAAO,CAAC,WAAW;IAInB,0CAA0C;IAC1C,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,wCAAwC;IACxC,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,sBAAsB;IAqE9B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;CAiC/B"}
|