@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
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/display-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;CAAG"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { Disposable } from 'tsyringe';
|
|
2
|
+
import { FeatureType } from '../../types/feature/feature-type';
|
|
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,kCAAkC,CAAC;AAEpE;;;;;;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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/select-manager.ts"],"names":[],"mappings":"AAAA,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":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/tool-manager.ts"],"names":[],"mappings":"AAAA,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 '../response';
|
|
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,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,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 '../response';
|
|
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,aAAa,CAAC;AAE7C;;;;;;;;;;;;;;;;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,27 @@
|
|
|
1
|
+
import { IRuntimeModule } from './runtime-module';
|
|
2
|
+
import { IRenderable } from '../api/renderer/renderable';
|
|
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,4BAA4B,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { IRuntimeModule } from './runtime-module';
|
|
2
|
+
/**
|
|
3
|
+
* Интерфейс для модулей, требующих периодического обновления.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Некоторые модули должны выполнять код каждый кадр анимации:
|
|
7
|
+
* - `ControlsModule` — обновление OrbitControls (`update()`)
|
|
8
|
+
* - анимации, физика, кастомные эффекты
|
|
9
|
+
*
|
|
10
|
+
* В отличие от {@link IRuntimeModule}, который инициализируется один раз,
|
|
11
|
+
* модули с `IUpdatableModule` получают вызов `update()` каждый кадр
|
|
12
|
+
* через цикл рендеринга.
|
|
13
|
+
*
|
|
14
|
+
* Оркестрацией вызовов `update()` занимается `EditorRenderer`.
|
|
15
|
+
*
|
|
16
|
+
* @see {@link IRuntimeModule} - для одноразовой инициализации
|
|
17
|
+
* @see {@link IRenderableModule} - для модулей с кастомным рендером
|
|
18
|
+
* @see {@link ControlsModule} - пример реализации
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export interface IUpdatableModule extends IRuntimeModule {
|
|
23
|
+
/**
|
|
24
|
+
* Вызывается каждый кадр перед рендером.
|
|
25
|
+
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* Здесь модуль должен обновлять своё состояние:
|
|
28
|
+
* - обновлять контролы (`OrbitControls.update()`)
|
|
29
|
+
* - пересчитывать анимации
|
|
30
|
+
* - проверять условия и реагировать на изменения
|
|
31
|
+
*
|
|
32
|
+
* Важно: метод не должен выполнять тяжёлые операции,
|
|
33
|
+
* чтобы не снижать производительность.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* public update(): void {
|
|
38
|
+
* this._orbit.update();
|
|
39
|
+
* this._updateAnimations();
|
|
40
|
+
* this._checkForChanges();
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
update(): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=updatable-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updatable-module.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/updatable-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,IAAI,IAAI,CAAC;CAChB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Интерфейс политики.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Политика проверяет, разрешено ли действие в текущем контексте.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
* @interface
|
|
9
|
+
*/
|
|
10
|
+
export interface IPolicy {
|
|
11
|
+
/**
|
|
12
|
+
* Проверка политики.
|
|
13
|
+
*
|
|
14
|
+
* @param args - параметры, необходимые для проверки
|
|
15
|
+
*
|
|
16
|
+
* @public
|
|
17
|
+
* @method
|
|
18
|
+
*/
|
|
19
|
+
check(...args: unknown[]): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/policy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ResponseType } from '../../types/response/response-type';
|
|
2
|
+
/**
|
|
3
|
+
* Тип ответа от менеджеров или политик редактора.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Используется для единого API на уровне Hub.
|
|
7
|
+
* Все менеджеры возвращают `Response`, чтобы клиент знал статус вызова.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
* @interface
|
|
11
|
+
*/
|
|
12
|
+
export interface IResponse {
|
|
13
|
+
/** Тип ответа (enum ResponseType) */
|
|
14
|
+
type: ResponseType;
|
|
15
|
+
/** Читаемое сообщение для отображения или логирования */
|
|
16
|
+
message: string;
|
|
17
|
+
/** Строковый код для логов или интеграций (опционально) */
|
|
18
|
+
code?: string;
|
|
19
|
+
/** Флаг блокировки действия (true, если вызов запрещён) */
|
|
20
|
+
blocked?: boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/response/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,IAAI,EAAE,YAAY,CAAC;IAEnB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DisplayMode } from '@planara/types';
|
|
2
|
+
/**
|
|
3
|
+
* Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Display фичей,
|
|
4
|
+
* необходим для корректного взаимодействия между группами фичей.
|
|
5
|
+
*
|
|
6
|
+
* Можно получить:
|
|
7
|
+
* - текущий режим отображения
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
* @interface
|
|
11
|
+
*/
|
|
12
|
+
export interface IDisplayStore {
|
|
13
|
+
/** Возвращает текущий режим отображения. */
|
|
14
|
+
getDisplayMode(): DisplayMode;
|
|
15
|
+
/**
|
|
16
|
+
* Устанавливает режим отображения.
|
|
17
|
+
* @param mode - Режим отображения (зависит от твоего домена).
|
|
18
|
+
*/
|
|
19
|
+
setDisplayMode(mode: DisplayMode): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=display-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/display-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,cAAc,IAAI,WAAW,CAAC;IAE9B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CACzC"}
|
|
@@ -1,35 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FigureTransform, SelectMode } from '@planara/types';
|
|
2
2
|
import { SelectedListener } from '../../types/listener/selected-listener';
|
|
3
|
-
import { TransformListener } from '../../types/listener/transform-listener';
|
|
4
3
|
import * as THREE from 'three';
|
|
5
|
-
/**
|
|
6
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Select фичей,
|
|
6
|
+
* необходим для корректного взаимодействия между группами фичей.
|
|
7
|
+
*
|
|
8
|
+
* Можно получить:
|
|
9
|
+
* - режим выборки
|
|
10
|
+
* - выбранный объект
|
|
11
|
+
* - подписаться на изменение объекта
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
* @interface
|
|
15
|
+
*/
|
|
16
|
+
export interface ISelectStore {
|
|
7
17
|
/** Возвращает текущий режим выбора. */
|
|
8
18
|
getSelectMode(): SelectMode;
|
|
9
|
-
/** Возвращает текущий активный инструмент. */
|
|
10
|
-
getToolType(): ToolType;
|
|
11
|
-
/** Возвращает текущий режим отображения. */
|
|
12
|
-
getDisplayMode(): DisplayMode;
|
|
13
19
|
/**
|
|
14
20
|
* Устанавливает режим выбора.
|
|
15
21
|
* @param mode - Режим выбора (Mesh/Face/Edge/Vertex и т.п.).
|
|
16
22
|
*/
|
|
17
23
|
setSelectMode(mode: SelectMode): void;
|
|
18
|
-
/**
|
|
19
|
-
* Устанавливает активный инструмент.
|
|
20
|
-
* @param toolType - Тип инструмента (Translate/Rotate/Scale и т.п.).
|
|
21
|
-
*/
|
|
22
|
-
setToolType(toolType: ToolType): void;
|
|
23
|
-
/**
|
|
24
|
-
* Устанавливает режим отображения.
|
|
25
|
-
* @param mode - Режим отображения (зависит от твоего домена).
|
|
26
|
-
*/
|
|
27
|
-
setDisplayMode(mode: DisplayMode): void;
|
|
28
24
|
/**
|
|
29
25
|
* Возвращает текущий выбранный объект сцены.
|
|
30
26
|
* @remarks
|
|
31
27
|
* Предполагается, что до вызова этого метода уже был
|
|
32
|
-
* вызван {@link
|
|
28
|
+
* вызван {@link ISelectStore.setSelectedObject}. Иначе результат не определён.
|
|
33
29
|
*/
|
|
34
30
|
getSelectedObject(): THREE.Object3D | null;
|
|
35
31
|
/** Возвращает актуальную статистику по трансформации выбранного объекта. */
|
|
@@ -44,9 +40,5 @@ export interface IEditorStore {
|
|
|
44
40
|
* @param cb - Callback, получающий текущий выбранный объект (`THREE.Object3D | null`).
|
|
45
41
|
*/
|
|
46
42
|
onSelectedObjectChange(cb: SelectedListener): () => void;
|
|
47
|
-
/** Подписывает слушателя на изменения трансформации выбранного объекта. */
|
|
48
|
-
onSelectedTransformChange(cb: TransformListener): () => void;
|
|
49
|
-
/** Уведомляет всех подписчиков о том, что трансформация выбранного объекта изменилась. */
|
|
50
|
-
notifySelectedTransformChange(): void;
|
|
51
43
|
}
|
|
52
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=select-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/select-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,aAAa,IAAI,UAAU,CAAC;IAE5B;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAEtC;;;;;OAKG;IACH,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAE3C,4EAA4E;IAC5E,iBAAiB,IAAI,eAAe,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAEvD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CAC1D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ToolType } from '@planara/types';
|
|
2
|
+
import { TransformListener } from '../../types/listener/transform-listener';
|
|
3
|
+
/**
|
|
4
|
+
* Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Tool фичей,
|
|
5
|
+
* необходим для корректного взаимодействия между группами фичей.
|
|
6
|
+
*
|
|
7
|
+
* Можно получить:
|
|
8
|
+
* - выбранный инструмент
|
|
9
|
+
* - подписаться на изменение трансформации объекта
|
|
10
|
+
*
|
|
11
|
+
* @public
|
|
12
|
+
* @interface
|
|
13
|
+
*/
|
|
14
|
+
export interface IToolStore {
|
|
15
|
+
/** Возвращает текущий активный инструмент. */
|
|
16
|
+
getToolType(): ToolType;
|
|
17
|
+
/**
|
|
18
|
+
* Устанавливает активный инструмент.
|
|
19
|
+
* @param toolType - Тип инструмента (Translate/Rotate/Scale и т.п.).
|
|
20
|
+
*/
|
|
21
|
+
setToolType(toolType: ToolType): void;
|
|
22
|
+
/** Подписывает слушателя на изменения трансформации выбранного объекта. */
|
|
23
|
+
onSelectedTransformChange(cb: TransformListener): () => void;
|
|
24
|
+
/** Уведомляет всех подписчиков о том, что трансформация выбранного объекта изменилась. */
|
|
25
|
+
notifySelectedTransformChange(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=tool-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/tool-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,WAAW,IAAI,QAAQ,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEtC,2EAA2E;IAC3E,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IAE7D,0FAA0F;IAC1F,6BAA6B,IAAI,IAAI,CAAC;CACvC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ISelectStore } from './select-store';
|
|
2
|
+
import { IToolStore } from './tool-store';
|
|
3
|
+
/**
|
|
4
|
+
* Обобщенный интерфейс для хендлеров инструментов (`IToolHandler`).
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
* @interface
|
|
8
|
+
*/
|
|
9
|
+
export interface ITransformStore extends ISelectStore, IToolStore {
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=transform-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/transform-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY,EAAE,UAAU;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA8DlF,QAAA,MAAM,SAAS,qBAAyC,CAAC;AAEzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAwF9E;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IDisplayManager } from '../../interfaces/manager/display-manager';
|
|
2
2
|
import { IDisplayHandler } from '../../interfaces/handler/display-handler';
|
|
3
|
-
import {
|
|
3
|
+
import { IDisplayStore } from '../../interfaces/store/display-store';
|
|
4
4
|
import { DisplayMode } from '@planara/types';
|
|
5
|
+
import { FeatureType } from '../../types/feature/feature-type';
|
|
5
6
|
/**
|
|
6
7
|
* Менеджер для управления отображением
|
|
7
8
|
* @internal
|
|
@@ -12,7 +13,9 @@ export declare class DisplayManager implements IDisplayManager {
|
|
|
12
13
|
private _currentMode;
|
|
13
14
|
/** Хендлеры, которые управляют отображением */
|
|
14
15
|
private readonly _handlers;
|
|
15
|
-
|
|
16
|
+
/** Тип фичи, за которую отвечает менеджер. */
|
|
17
|
+
type: FeatureType;
|
|
18
|
+
constructor(handlers: IDisplayHandler[], _store: IDisplayStore);
|
|
16
19
|
/** Установка режима отображения */
|
|
17
20
|
manage(mode: DisplayMode): void;
|
|
18
21
|
/** Освобождает ресурсы менеджера. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IAY3B,OAAO,CAAC,MAAM;IAXvC,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAuB;gBAGf,QAAQ,EAAE,eAAe,EAAE,EAC1B,MAAM,EAAE,aAAa;IAKtD,mCAAmC;IAC5B,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAgBtC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAUvC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ISceneManager } from '../../interfaces/manager/scene-manager';
|
|
2
2
|
import { ISceneHandler } from '../../interfaces/handler/scene-handler';
|
|
3
3
|
import { FigureType, SceneMode } from '@planara/types';
|
|
4
|
+
import { FeatureType } from '../../types/feature/feature-type';
|
|
4
5
|
/**
|
|
5
6
|
* Менеджер для управления сценой
|
|
6
7
|
* @internal
|
|
@@ -10,6 +11,8 @@ export declare class SceneManager implements ISceneManager {
|
|
|
10
11
|
private _currentMode;
|
|
11
12
|
/** Хендлеры, которые управляют отображением */
|
|
12
13
|
private readonly _handlers;
|
|
14
|
+
/** Тип фичи, за которую отвечает менеджер. */
|
|
15
|
+
type: FeatureType;
|
|
13
16
|
constructor(handlers: ISceneHandler[]);
|
|
14
17
|
/** Установка режима редактирования сцены */
|
|
15
18
|
manage(mode: SceneMode, figure?: FigureType): void;
|