@planara/core 2.7.1 → 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 +65 -6
- 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/app-hub.d.ts +1 -0
- package/dist/hub/app-hub.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 +1750 -1378
- package/dist/index.full.d.ts +635 -229
- package/dist/index.public.d.ts +653 -147
- 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/dist/types/select/face-group.d.ts +24 -0
- package/dist/types/select/face-group.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/core/editor-renderer.d.ts +0 -79
- 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,8 +1,9 @@
|
|
|
1
1
|
import { ISelectHandler } from '../../interfaces/handler/select-handler';
|
|
2
2
|
import { ISelectManager } from '../../interfaces/manager/select-manager';
|
|
3
|
-
import {
|
|
3
|
+
import { ISelectStore } from '../../interfaces/store/select-store';
|
|
4
4
|
import { EventBus } from '../../events/event-bus';
|
|
5
5
|
import { SelectMode } from '@planara/types';
|
|
6
|
+
import { FeatureType } from '../../types/feature/feature-type';
|
|
6
7
|
/**
|
|
7
8
|
* Менеджер, который управляет режимами выборки.
|
|
8
9
|
* Поддерживает режимы Mesh/Face/Edge/Vertex.
|
|
@@ -15,7 +16,9 @@ export declare class SelectManager implements ISelectManager {
|
|
|
15
16
|
private _currentMode;
|
|
16
17
|
/** Хендлеры, которые управляют выборкой */
|
|
17
18
|
private readonly _handlers;
|
|
18
|
-
|
|
19
|
+
/** Тип фичи, за которую отвечает менеджер. */
|
|
20
|
+
type: FeatureType;
|
|
21
|
+
constructor(_eventBus: EventBus, handlers: ISelectHandler[], _store: ISelectStore);
|
|
19
22
|
/** Переключает режим выбора */
|
|
20
23
|
manage(mode: SelectMode): void;
|
|
21
24
|
/** Обработчик события наведения на модель */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;;GAIG;AACH,qBACa,aAAc,YAAW,cAAc;IAW5B,OAAO,CAAC,SAAS;IAEd,OAAO,CAAC,MAAM;IAZvC,4BAA4B;IAC5B,OAAO,CAAC,YAAY,CAA+B;IAEnD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IAEtD,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAsB;gBAGhB,SAAS,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EAAE,EACxB,MAAM,EAAE,YAAY;IAUrD,+BAA+B;IACxB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAYrC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAMd;IAEF,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAMd;IAEF,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { IToolHandler } from '../../interfaces/handler/tool-handler';
|
|
2
2
|
import { IToolManager } from '../../interfaces/manager/tool-manager';
|
|
3
|
-
import {
|
|
3
|
+
import { ITransformStore } from '../../interfaces/store/transform-store';
|
|
4
|
+
import { IPolicy } from '../../interfaces/policy';
|
|
4
5
|
import { ToolType } from '@planara/types';
|
|
6
|
+
import { FeatureType } from '../../types/feature/feature-type';
|
|
5
7
|
export declare class ToolManager implements IToolManager {
|
|
6
8
|
private _store;
|
|
9
|
+
private _policy;
|
|
7
10
|
/** Текущий выбранный инструмент */
|
|
8
11
|
private _currentTool;
|
|
9
12
|
/** Хендлеры, которые управляют инструментами */
|
|
10
13
|
private readonly _handlers;
|
|
11
14
|
/** Событие обновления выбора объекта */
|
|
12
15
|
private readonly _unsubSelected?;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
constructor(handlers: IToolHandler[], _store:
|
|
16
|
+
/** Тип фичи, за которую отвечает менеджер. */
|
|
17
|
+
type: FeatureType;
|
|
18
|
+
constructor(handlers: IToolHandler[], _store: ITransformStore, _policy: IPolicy);
|
|
16
19
|
manage(tool: ToolType): void;
|
|
17
20
|
/** Освобождает ресурсы менеджера. */
|
|
18
21
|
dispose(): Promise<void> | void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/tool-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/tool-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,qBACa,WAAY,YAAW,YAAY;IAerB,OAAO,CAAC,MAAM;IACf,OAAO,CAAC,OAAO;IAfvC,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAgC;IAEpD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAE7C,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAoB;gBAGf,QAAQ,EAAE,YAAY,EAAE,EACpB,MAAM,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO;IAYzC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAcnC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IMediator } from '../interfaces/mediator';
|
|
2
|
+
import { IManager } from '../interfaces/manager/manager';
|
|
3
|
+
import { IMiddleware } from '../interfaces/middleware';
|
|
4
|
+
import { ICommand } from '../interfaces/command';
|
|
5
|
+
import { IResponse } from '../interfaces/response';
|
|
6
|
+
/** */
|
|
7
|
+
export declare class Mediator implements IMediator {
|
|
8
|
+
private readonly _middlewares;
|
|
9
|
+
private readonly _managers;
|
|
10
|
+
constructor(managers: IManager[], _middlewares: IMiddleware[]);
|
|
11
|
+
send(command: ICommand): IResponse | null;
|
|
12
|
+
dispose(): Promise<void> | void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mediator/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD,MAAM;AACN,qBACa,QAAS,YAAW,SAAS;IAKZ,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAG9B,QAAQ,EAAE,QAAQ,EAAE,EACA,YAAY,EAAE,WAAW,EAAE;IAKjE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IAwBzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAMvC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IMiddleware } from '../interfaces/middleware';
|
|
2
|
+
import { IResponse } from '../interfaces/response';
|
|
3
|
+
/** */
|
|
4
|
+
export declare class ExceptionMiddleware implements IMiddleware {
|
|
5
|
+
handle(next: () => IResponse | null): IResponse | null;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=exception-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception-middleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/exception-middleware.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM;AACN,qBACa,mBAAoB,YAAW,WAAW;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CA8B9D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ITransformApi } from '../interfaces/api/transform-api';
|
|
2
|
+
import { IControlsStateApi } from '../interfaces/api/controls-state-api';
|
|
3
|
+
import { ISceneApi } from '../interfaces/api/scene-api';
|
|
4
|
+
import { IDomApi } from '../interfaces/api/dom-api';
|
|
5
|
+
import { ICameraApi } from '../interfaces/api/camera-api';
|
|
6
|
+
import { IUpdatableModule } from '../interfaces/module/updatable-module';
|
|
7
|
+
import { ToolType } from '@planara/types';
|
|
8
|
+
import { TransformListener } from '../types/listener/transform-listener';
|
|
9
|
+
import * as THREE from 'three';
|
|
10
|
+
/**
|
|
11
|
+
* Модуль управления камерой и трансформацией объектов.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Отвечает за:
|
|
15
|
+
* - управление камерой (OrbitControls) — вращение, панорамирование, масштабирование
|
|
16
|
+
* - управление гизмо (TransformControls) — перемещение, вращение, масштабирование объектов
|
|
17
|
+
*
|
|
18
|
+
* Модуль реализует:
|
|
19
|
+
* - `IRuntimeModule` — жизненный цикл (init/dispose)
|
|
20
|
+
* - `IUpdatableModule` — обновление состояния каждый кадр (update)
|
|
21
|
+
* - `IControlsApi` — публичное API для управления контролами
|
|
22
|
+
* - `IControlsStateApi` — публичное API для получения состояния контролов
|
|
23
|
+
*
|
|
24
|
+
* @see {@link ITransformApi} - публичное API для управления
|
|
25
|
+
* @see {@link IControlsStateApi} - публичное API для получения состояния
|
|
26
|
+
* @see {@link OrbitWithState} - расширенный OrbitControls
|
|
27
|
+
* @see {@link ModelingTransformControls} - расширенный TransformControls
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
* @class
|
|
31
|
+
*/
|
|
32
|
+
export declare class ControlsModule implements IUpdatableModule, ITransformApi, IControlsStateApi {
|
|
33
|
+
private _cameraApi;
|
|
34
|
+
private _domApi;
|
|
35
|
+
private _sceneApi;
|
|
36
|
+
/** Orbit-контроллер для управления камерой */
|
|
37
|
+
private _orbit;
|
|
38
|
+
/** Transform-контроллер для редактирования */
|
|
39
|
+
private _transform;
|
|
40
|
+
private _transformHelper;
|
|
41
|
+
private _transformListeners;
|
|
42
|
+
/** Были ли инициализированы обработчики событий (hover/click) */
|
|
43
|
+
private _isEventListenersAdded;
|
|
44
|
+
constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _sceneApi: ISceneApi);
|
|
45
|
+
init(): void;
|
|
46
|
+
attachTransform(object: THREE.Object3D): void;
|
|
47
|
+
detachTransform(): void;
|
|
48
|
+
update(): void;
|
|
49
|
+
setTransformMode(mode: ToolType): void;
|
|
50
|
+
onTransformChange(callback: TransformListener): () => void;
|
|
51
|
+
isOrbitInteracting(): boolean;
|
|
52
|
+
isTransformDragging(): boolean;
|
|
53
|
+
/** Освобождает ресурсы модуля */
|
|
54
|
+
dispose(): Promise<void> | void;
|
|
55
|
+
/** Инициализация обработчиков событий на hover/click */
|
|
56
|
+
private _initMouseListeners;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=controls-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controls-module.d.ts","sourceRoot":"","sources":["../../src/modules/controls-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAI9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,cAAe,YAAW,gBAAgB,EAAE,aAAa,EAAE,iBAAiB;IAa/D,OAAO,CAAC,UAAU;IACrB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,SAAS;IAdxC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAA+B;IAE7C,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAE3D,iEAAiE;IACjE,OAAO,CAAC,sBAAsB,CAAS;gBAGP,UAAU,EAAE,UAAU,EACzB,OAAO,EAAE,OAAO,EACd,SAAS,EAAE,SAAS;IAG5C,IAAI,IAAI,IAAI;IAkBZ,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAI7C,eAAe,IAAI,IAAI;IAIvB,MAAM,IAAI,IAAI;IAId,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAItC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK1D,kBAAkB,IAAI,OAAO;IAI7B,mBAAmB,IAAI,OAAO;IAIrC,iCAAiC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAkCtC,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;CAqB5B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { IRenderableModule } from '../interfaces/module/renderable-module';
|
|
2
|
+
import { ICameraApi } from '../interfaces/api/camera-api';
|
|
3
|
+
import { IDomApi } from '../interfaces/api/dom-api';
|
|
4
|
+
import { IRendererApi } from '../interfaces/api/renderer-api';
|
|
5
|
+
/**
|
|
6
|
+
* Модуль для отображения вспомогательных гизмо (осей, ориентации камеры и т.д.).
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Отвечает за отрисовку дополнительных визуальных элементов поверх сцены.
|
|
10
|
+
*
|
|
11
|
+
* Модуль реализует:
|
|
12
|
+
* - `IRuntimeModule` — для инициализации и очистки
|
|
13
|
+
* - `IRenderableModule` — для кастомного рендеринга поверх сцены
|
|
14
|
+
*
|
|
15
|
+
* @see {@link IRuntimeModule} - управление жизненным циклом
|
|
16
|
+
* @see {@link IRenderableModule} - кастомный рендеринг
|
|
17
|
+
* @see {@link CameraAxesGizmo} - конкретная реализация гизмо
|
|
18
|
+
*
|
|
19
|
+
* @internal
|
|
20
|
+
* @class
|
|
21
|
+
*/
|
|
22
|
+
export declare class GizmoModule implements IRenderableModule {
|
|
23
|
+
private _cameraApi;
|
|
24
|
+
private _domApi;
|
|
25
|
+
private _rendererApi;
|
|
26
|
+
/** Gizmo для управления отображением perspective camera */
|
|
27
|
+
private _cameraGizmo;
|
|
28
|
+
constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _rendererApi: IRendererApi);
|
|
29
|
+
init(): void;
|
|
30
|
+
render(): void;
|
|
31
|
+
/** Освобождение ресурсов модуля */
|
|
32
|
+
dispose(): Promise<void> | void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=gizmo-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gizmo-module.d.ts","sourceRoot":"","sources":["../../src/modules/gizmo-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,WAAY,YAAW,iBAAiB;IAK3B,OAAO,CAAC,UAAU;IACrB,OAAO,CAAC,OAAO;IACP,OAAO,CAAC,YAAY;IANjD,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAgC;gBAGpB,UAAU,EAAE,UAAU,EACzB,OAAO,EAAE,OAAO,EACR,YAAY,EAAE,YAAY;IAGxD,IAAI,IAAI,IAAI;IAaZ,MAAM,IAAI,IAAI;IAOrB,mCAAmC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { EventBus } from '../events/event-bus';
|
|
2
|
+
import { SelectMode } from '@planara/types';
|
|
3
|
+
import { IRuntimeModule } from '../interfaces/module/runtime-module';
|
|
4
|
+
import { IRaycastApi } from '../interfaces/api/raycast-api';
|
|
5
|
+
import { IDomApi } from '../interfaces/api/dom-api';
|
|
6
|
+
import { ICameraApi } from '../interfaces/api/camera-api';
|
|
7
|
+
import { IMeshApi } from '../interfaces/api/mesh-api';
|
|
8
|
+
import { IControlsStateApi } from '../interfaces/api/controls-state-api';
|
|
9
|
+
/**
|
|
10
|
+
* Runtime-модуль raycast-взаимодействия.
|
|
11
|
+
*
|
|
12
|
+
* Отвечает за:
|
|
13
|
+
* - обработку событий мыши на canvas
|
|
14
|
+
* - raycast по объектам сцены
|
|
15
|
+
* - фильтрацию попаданий по текущему режиму выборки
|
|
16
|
+
* - отправку hover/click событий в event bus
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
* @class
|
|
20
|
+
*/
|
|
21
|
+
export declare class RaycastModule implements IRuntimeModule, IRaycastApi {
|
|
22
|
+
private _domApi;
|
|
23
|
+
private _cameraApi;
|
|
24
|
+
private _meshApi;
|
|
25
|
+
private _controlsState;
|
|
26
|
+
private _bus;
|
|
27
|
+
/**
|
|
28
|
+
* Raycast для получения событий наведения/клика по модели
|
|
29
|
+
*
|
|
30
|
+
* @private
|
|
31
|
+
* @member
|
|
32
|
+
*/
|
|
33
|
+
private _raycaster;
|
|
34
|
+
/**
|
|
35
|
+
* Курсор мыши
|
|
36
|
+
*
|
|
37
|
+
* @private
|
|
38
|
+
* @member
|
|
39
|
+
*/
|
|
40
|
+
private _mouse;
|
|
41
|
+
/**
|
|
42
|
+
* Ключ последней модели, на которую наводились,
|
|
43
|
+
* необходим для отправки только уникальных событий в event bus
|
|
44
|
+
*
|
|
45
|
+
* @private
|
|
46
|
+
* @member
|
|
47
|
+
*/
|
|
48
|
+
private _lastHoverKey;
|
|
49
|
+
/**
|
|
50
|
+
* Текуший режим для raycaster
|
|
51
|
+
*
|
|
52
|
+
* @private
|
|
53
|
+
* @member
|
|
54
|
+
*/
|
|
55
|
+
private _currentRaycastMode;
|
|
56
|
+
/**
|
|
57
|
+
* Были ли инициализированы обработчики событий (hover/click)
|
|
58
|
+
*
|
|
59
|
+
* @private
|
|
60
|
+
* @member
|
|
61
|
+
*/
|
|
62
|
+
private _isEventListenersAdded;
|
|
63
|
+
constructor(_domApi: IDomApi, _cameraApi: ICameraApi, _meshApi: IMeshApi, _controlsState: IControlsStateApi, _bus: EventBus);
|
|
64
|
+
init(): void;
|
|
65
|
+
setRaycastMode(mode: SelectMode): void;
|
|
66
|
+
/** Применяет параметры raycaster в зависимости от текущего режима */
|
|
67
|
+
private _applyRaycastParamsByMode;
|
|
68
|
+
/** Возвращает ближайшее пересечение по текущему положению курсора */
|
|
69
|
+
private _getHitIntersection;
|
|
70
|
+
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
71
|
+
private _processRaycastEvent;
|
|
72
|
+
/** Поиск видимой части меша
|
|
73
|
+
* необходимо это для того, чтобы отправлять только видимые элементы модели, а не все попадания
|
|
74
|
+
*/
|
|
75
|
+
private _getVisibleHit;
|
|
76
|
+
/** Строит ключ hover-пересечения с учетом текущего режима выборки */
|
|
77
|
+
private _makeHoverKey;
|
|
78
|
+
/** Обработчик события для hover */
|
|
79
|
+
private _handleMouseMove;
|
|
80
|
+
/** Обработчик события на click */
|
|
81
|
+
private _handleMouseClick;
|
|
82
|
+
/** Обработчик двойного клика */
|
|
83
|
+
private _handleDoubleClick;
|
|
84
|
+
/** Обработчик ухода курсора с canvas */
|
|
85
|
+
private _handleMouseLeave;
|
|
86
|
+
/** Инициализация обработчиков событий на hover/click */
|
|
87
|
+
private _initMouseListeners;
|
|
88
|
+
private _removeMouseListeners;
|
|
89
|
+
dispose(): Promise<void> | void;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=raycast-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raycast-module.d.ts","sourceRoot":"","sources":["../../src/modules/raycast-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAK9E;;;;;;;;;;;GAWG;AACH,qBACa,aAAc,YAAW,cAAc,EAAE,WAAW;IA2C1C,OAAO,CAAC,OAAO;IACZ,OAAO,CAAC,UAAU;IACpB,OAAO,CAAC,QAAQ;IACP,OAAO,CAAC,cAAc;IAC/B,OAAO,CAAC,IAAI;IA9ClC;;;;;OAKG;IACH,OAAO,CAAC,UAAU,CAAmB;IAErC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAA+B;IAE1D;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB,CAAS;gBAGV,OAAO,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,EACxB,QAAQ,EAAE,QAAQ,EACT,cAAc,EAAE,iBAAiB,EAC1C,IAAI,EAAE,QAAQ;IAGrC,IAAI,IAAI,IAAI;IAYZ,cAAc,CAAC,IAAI,EAAE,UAAU;IAatC,qEAAqE;IACrE,OAAO,CAAC,yBAAyB;IAwBjC,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IA4C3B,iGAAiG;IACjG,OAAO,CAAC,oBAAoB;IA0C5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB,qEAAqE;IACrE,OAAO,CAAC,aAAa;IAqBrB,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAEvB;IAEF,gCAAgC;IAChC,OAAO,CAAC,kBAAkB,CAQxB;IAEF,wCAAwC;IACxC,OAAO,CAAC,iBAAiB,CAGvB;IAEF,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,qBAAqB;IAStB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAKvC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IRuntimeModule } from '../interfaces/module/runtime-module';
|
|
2
|
+
import { ISceneApi } from '../interfaces/api/scene-api';
|
|
3
|
+
import { IMeshApi } from '../interfaces/api/mesh-api';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
/**
|
|
6
|
+
* Модуль управления сценой, используется для добавления/удаления фигур,
|
|
7
|
+
* настройки необходимых хелперов на сцене (сетка, оси, свет)
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
* @class
|
|
11
|
+
*/
|
|
12
|
+
export declare class SceneModule implements IRuntimeModule, IMeshApi {
|
|
13
|
+
private _api;
|
|
14
|
+
/** Объекты редактора, участвующие в raycast и редактировании */
|
|
15
|
+
private _meshes;
|
|
16
|
+
/** Сетка сцены */
|
|
17
|
+
private _grid;
|
|
18
|
+
/** Оси сцены */
|
|
19
|
+
private _axes;
|
|
20
|
+
/** Базовый свет сцены */
|
|
21
|
+
private _light;
|
|
22
|
+
constructor(_api: ISceneApi);
|
|
23
|
+
init(): void;
|
|
24
|
+
getMeshes(): THREE.Mesh[];
|
|
25
|
+
addMesh(mesh: THREE.Mesh): void;
|
|
26
|
+
removeMesh(mesh: THREE.Mesh): void;
|
|
27
|
+
addMeshes(meshes: THREE.Mesh[]): void;
|
|
28
|
+
removeMeshes(meshes: THREE.Mesh[]): void;
|
|
29
|
+
/** Освобождает ресурсы модуля */
|
|
30
|
+
dispose(): Promise<void> | void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=scene-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-module.d.ts","sourceRoot":"","sources":["../../src/modules/scene-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;GAMG;AACH,qBACa,WAAY,YAAW,cAAc,EAAE,QAAQ;IAalB,OAAO,CAAC,IAAI;IAZpD,gEAAgE;IAChE,OAAO,CAAC,OAAO,CAAoB;IAEnC,kBAAkB;IAClB,OAAO,CAAC,KAAK,CAAiC;IAE9C,gBAAgB;IAChB,OAAO,CAAC,KAAK,CAA+B;IAE5C,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAsC;gBAEJ,IAAI,EAAE,SAAS;IAExD,IAAI,IAAI,IAAI;IAeZ,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIzB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAQ/B,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IASlC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMrC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAM/C,iCAAiC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CA2BvC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IPolicy } from '../interfaces/policy';
|
|
2
|
+
import { ISelectStore } from '../interfaces/store/select-store';
|
|
3
|
+
import { ToolType } from '@planara/types';
|
|
4
|
+
/**
|
|
5
|
+
* Политика управления инструментами.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Используется для контроллирования доступности инструментами в зависимости от выбранного режима редактирования.
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
* @class
|
|
12
|
+
*/
|
|
13
|
+
export declare class ToolPolicy implements IPolicy {
|
|
14
|
+
private _store;
|
|
15
|
+
constructor(_store: ISelectStore);
|
|
16
|
+
check(tool: ToolType): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=tool-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/policy/tool-policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKnE;;;;;;;;GAQG;AACH,qBACa,UAAW,YAAW,OAAO;IACE,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAE/D,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAanC"}
|
package/dist/store/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IDisplayStore } from '../interfaces/store/display-store';
|
|
2
|
+
import { ISelectStore } from '../interfaces/store/select-store';
|
|
3
|
+
import { IToolStore } from '../interfaces/store/tool-store';
|
|
2
4
|
import { DisplayMode, FigureTransform, SelectMode, ToolType } from '@planara/types';
|
|
3
5
|
import { SelectedListener } from '../types/listener/selected-listener';
|
|
4
6
|
import { TransformListener } from '../types/listener/transform-listener';
|
|
5
7
|
import * as THREE from 'three';
|
|
6
8
|
/** Store для всего редактора. */
|
|
7
|
-
export declare class EditorStore implements
|
|
9
|
+
export declare class EditorStore implements IDisplayStore, ISelectStore, IToolStore {
|
|
8
10
|
/** Текущий режим выборки. */
|
|
9
11
|
private _selectMode;
|
|
10
12
|
/** Текущий выбранный инструмент. */
|
|
@@ -18,29 +20,17 @@ export declare class EditorStore implements IEditorStore {
|
|
|
18
20
|
/** Слушатели событий трансформации выбранного объекта. */
|
|
19
21
|
private _transformListeners;
|
|
20
22
|
constructor();
|
|
21
|
-
/** @inheritdoc */
|
|
22
23
|
getSelectMode(): SelectMode;
|
|
23
|
-
/** @inheritdoc */
|
|
24
24
|
getToolType(): ToolType;
|
|
25
|
-
/** @inheritdoc */
|
|
26
25
|
getDisplayMode(): DisplayMode;
|
|
27
|
-
/** @inheritdoc */
|
|
28
26
|
setSelectMode(mode: SelectMode): void;
|
|
29
|
-
/** @inheritdoc */
|
|
30
27
|
setToolType(toolType: ToolType): void;
|
|
31
|
-
/** @inheritdoc */
|
|
32
28
|
setDisplayMode(mode: DisplayMode): void;
|
|
33
|
-
/** @inheritdoc */
|
|
34
29
|
getSelectedObject(): THREE.Object3D | null;
|
|
35
|
-
/** @inheritdoc */
|
|
36
30
|
getSelectionStats(): FigureTransform | null;
|
|
37
|
-
/** @inheritdoc */
|
|
38
31
|
setSelectedObject(object: THREE.Object3D | null): void;
|
|
39
|
-
/** @inheritdoc */
|
|
40
32
|
onSelectedObjectChange(cb: SelectedListener): () => void;
|
|
41
|
-
/** @inheritdoc */
|
|
42
33
|
onSelectedTransformChange(cb: TransformListener): () => void;
|
|
43
|
-
/** @inheritdoc */
|
|
44
34
|
notifySelectedTransformChange(): void;
|
|
45
35
|
}
|
|
46
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAMjE,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,iCAAiC;AACjC,qBACa,WAAY,YAAW,aAAa,EAAE,YAAY,EAAE,UAAU;IACzE,6BAA6B;IAC7B,OAAO,CAAC,WAAW,CAA+B;IAElD,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAgC;IAEjD,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAkC;IAEtD,iCAAiC;IACjC,OAAO,CAAC,eAAe,CAA+B;IAEtD,yDAAyD;IACzD,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,0DAA0D;IAC1D,OAAO,CAAC,mBAAmB,CAAgC;;IAMpD,aAAa,IAAI,UAAU;IAI3B,WAAW,IAAI,QAAQ;IAIvB,cAAc,IAAI,WAAW;IAI7B,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIrC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIrC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIvC,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI;IAI1C,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAO3C,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;IAQtD,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAKxD,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK5D,6BAA6B,IAAI,IAAI;CAG7C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Тип фичи, совпадает с менеджерами
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare enum FeatureType {
|
|
7
|
+
/** Отображение */
|
|
8
|
+
Display = 0,
|
|
9
|
+
/** Управление сценой */
|
|
10
|
+
Scene = 1,
|
|
11
|
+
/** Выборка */
|
|
12
|
+
Select = 2,
|
|
13
|
+
/** Инструменты */
|
|
14
|
+
Tool = 3
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=feature-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-type.d.ts","sourceRoot":"","sources":["../../../src/types/feature/feature-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,WAAW;IACrB,kBAAkB;IAClB,OAAO,IAAA;IAEP,wBAAwB;IACxB,KAAK,IAAA;IAEL,cAAc;IACd,MAAM,IAAA;IAEN,kBAAkB;IAClB,IAAI,IAAA;CACL"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum типов ответа от менеджеров и политик.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Используется в `IResponse.type`.
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
* @enum
|
|
9
|
+
*/
|
|
10
|
+
export declare enum ResponseType {
|
|
11
|
+
/** Действие заблокировано, инструмент недоступен */
|
|
12
|
+
ToolNotAllowed = "TOOL_NOT_ALLOWED",
|
|
13
|
+
/** Действие выполнено успешно */
|
|
14
|
+
Success = "SUCCESS",
|
|
15
|
+
/** Действие не выполнено, потому что нет изменений */
|
|
16
|
+
NoChange = "NO_CHANGE",
|
|
17
|
+
Error = "ERROR"
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=response-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-type.d.ts","sourceRoot":"","sources":["../../../src/types/response/response-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,YAAY;IACtB,oDAAoD;IACpD,cAAc,qBAAqB;IAEnC,iCAAiC;IACjC,OAAO,YAAY;IAEnB,sDAAsD;IACtD,QAAQ,cAAc;IAEtB,KAAK,UAAU;CAChB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* Группа треугольников, образующих одну логическую грань.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export type FaceGroup = {
|
|
7
|
+
/** Меш, которому принадлежит грань. */
|
|
8
|
+
mesh: THREE.Mesh;
|
|
9
|
+
/** Стартовый triangle index, полученный из raycast. */
|
|
10
|
+
faceIndex: number;
|
|
11
|
+
/** Индексы треугольников, входящих в грань. */
|
|
12
|
+
triangleIndices: number[];
|
|
13
|
+
/**
|
|
14
|
+
* Уникальные индексы вершин исходной geometry,
|
|
15
|
+
* которые участвуют в выбранной грани.
|
|
16
|
+
*/
|
|
17
|
+
vertexIndices: number[];
|
|
18
|
+
/**
|
|
19
|
+
* Отображение вершин proxy-геометрии в индексы вершин исходного меша.
|
|
20
|
+
* Нужен для обратной записи transform'а proxy обратно в mesh geometry.
|
|
21
|
+
*/
|
|
22
|
+
proxyVertexMap: number[];
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=face-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"face-group.d.ts","sourceRoot":"","sources":["../../../src/types/select/face-group.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,uCAAuC;IACvC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IAEjB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAElB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planara/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"vite-tsconfig-paths": "^5.1.4"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@planara/three": "^1.3
|
|
62
|
+
"@planara/three": "^1.4.3",
|
|
63
63
|
"@planara/types": "^1.9.0",
|
|
64
64
|
"events": "^3.3.0",
|
|
65
65
|
"mobx": "^6.15.0",
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Renderer } from './renderer';
|
|
2
|
-
import { EventBus } from '../events/event-bus';
|
|
3
|
-
import { Figure, SelectMode, ToolType } from '@planara/types';
|
|
4
|
-
import { TransformListener } from '../types/listener/transform-listener';
|
|
5
|
-
import * as THREE from 'three';
|
|
6
|
-
/**
|
|
7
|
-
* Рендерер для редактора.
|
|
8
|
-
* Добавляет сетку, оси координат и поддержку Orbit для управления камерой.
|
|
9
|
-
* Наследуется от базового Renderer.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export declare class EditorRenderer extends Renderer {
|
|
13
|
-
private _canvas;
|
|
14
|
-
private _bus;
|
|
15
|
-
/** Orbit-контроллер для управления камерой */
|
|
16
|
-
private _orbit;
|
|
17
|
-
/** Transform-контроллер для редактирования */
|
|
18
|
-
private _transform;
|
|
19
|
-
private readonly _transformHelper;
|
|
20
|
-
/** Raycast для получения событий наведения/клика по модели*/
|
|
21
|
-
private readonly _raycaster;
|
|
22
|
-
/** Курсор мыши */
|
|
23
|
-
private readonly _mouse;
|
|
24
|
-
/** Были ли инициализированы обработчики событий (hover/click) */
|
|
25
|
-
private _isEventListenersAdded;
|
|
26
|
-
/**
|
|
27
|
-
* Последняя модель на которую наводились,
|
|
28
|
-
* необходима для отправки только уникальных событий в event bus
|
|
29
|
-
*/
|
|
30
|
-
private _lastHovered;
|
|
31
|
-
/** Gizmo для управления отображением perspective camera */
|
|
32
|
-
private _cameraGizmo;
|
|
33
|
-
private _transformListeners;
|
|
34
|
-
constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
|
|
35
|
-
/**
|
|
36
|
-
* Обновление состояния рендерера.
|
|
37
|
-
*/
|
|
38
|
-
protected update(): void;
|
|
39
|
-
/** Добавление фигуры на сцену */
|
|
40
|
-
addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
41
|
-
/**
|
|
42
|
-
* Смена отображения `TransformControls` в зависимости от типа инструмента.
|
|
43
|
-
* @param mode - тип инструмента для отображения `TransformControls`.
|
|
44
|
-
* @internal
|
|
45
|
-
*/
|
|
46
|
-
setTransformControlsMode(mode: ToolType): void;
|
|
47
|
-
/**
|
|
48
|
-
* Добавление `TransformControls` к объекту.
|
|
49
|
-
* @param object - объект, к которому добавляются `TransformControls`.
|
|
50
|
-
* @internal
|
|
51
|
-
*/
|
|
52
|
-
attachTransformControls(object: THREE.Object3D): void;
|
|
53
|
-
/**
|
|
54
|
-
* Удаление `TransformControls` с последнего выбранного объекта.
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
57
|
-
detachTransformControls(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Подписывает слушателя на изменения трансформации текущего объекта.
|
|
60
|
-
* @internal
|
|
61
|
-
*/
|
|
62
|
-
onTransformChange(cb: TransformListener): () => void;
|
|
63
|
-
/**
|
|
64
|
-
* Настройка режимов для `Raycaster`.
|
|
65
|
-
* @internal
|
|
66
|
-
*/
|
|
67
|
-
setRaycastMode(mode: SelectMode): void;
|
|
68
|
-
dispose(): void;
|
|
69
|
-
protected render(): void;
|
|
70
|
-
/** Инициализация обработчиков событий на hover/click */
|
|
71
|
-
private _initMouseListeners;
|
|
72
|
-
/** Обработчик события для hover */
|
|
73
|
-
private _handleMouseMove;
|
|
74
|
-
/** Обработчик события на click */
|
|
75
|
-
private _handleMouseClick;
|
|
76
|
-
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
77
|
-
private _processRaycastEvent;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=editor-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor-renderer.d.ts","sourceRoot":"","sources":["../../src/core/editor-renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAO9E;;;;;GAKG;AACH,qBACa,cAAe,SAAQ,QAAQ;IA6BtB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,IAAI;IA7BlC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAkB;IAEhC,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,iEAAiE;IACjE,OAAO,CAAC,sBAAsB,CAAS;IAEvC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAA+B;IAEnD,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAmB;IAEvC,OAAO,CAAC,mBAAmB,CAAgC;gBAG/B,OAAO,EAAE,iBAAiB,EACxB,IAAI,EAAE,QAAQ;IA6C5C;;OAEG;IACH,SAAS,CAAC,MAAM;IAIhB,iCAAiC;IACjB,SAAS,CAAC,MAAM,EAAE,MAAM;IAexC;;;;OAIG;IACI,wBAAwB,CAAC,IAAI,EAAE,QAAQ;IAI9C;;;;OAIG;IACI,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ;IAIrD;;;OAGG;IACI,uBAAuB;IAI9B;;;OAGG;IACI,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK3D;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU;IAsBtB,OAAO;cA+BJ,MAAM;IAMzB,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAoB3B,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAEvB;IAEF,iGAAiG;IACjG,OAAO,CAAC,oBAAoB;CAqC7B"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Renderer } from './renderer';
|
|
2
|
-
/**
|
|
3
|
-
* Рендерер для предпросмотра 3D-модели.
|
|
4
|
-
* Настраивает сцену, камеру и орбитальную навигацию по горизонтали.
|
|
5
|
-
* @alpha
|
|
6
|
-
*/
|
|
7
|
-
export declare class PreviewRenderer extends Renderer {
|
|
8
|
-
/** Orbit-контроллер для управления камерой */
|
|
9
|
-
private _orbit;
|
|
10
|
-
constructor(canvas: HTMLCanvasElement);
|
|
11
|
-
/**
|
|
12
|
-
* Обновление состояния рендерера.
|
|
13
|
-
*/
|
|
14
|
-
protected update(): void;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=preview-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview-renderer.d.ts","sourceRoot":"","sources":["../../src/core/preview-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAiB;gBAEZ,MAAM,EAAE,iBAAiB;IAiB5C;;OAEG;IACH,SAAS,CAAC,MAAM;CAIjB"}
|