@planara/core 2.8.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/api/modules/controls-state-api.d.ts +23 -0
- package/dist/api/modules/controls-state-api.d.ts.map +1 -0
- package/dist/api/modules/index.d.ts +5 -0
- package/dist/api/modules/index.d.ts.map +1 -0
- package/dist/api/modules/mesh-api.d.ts +30 -0
- package/dist/api/modules/mesh-api.d.ts.map +1 -0
- package/dist/api/modules/raycast-api.d.ts +28 -0
- package/dist/api/modules/raycast-api.d.ts.map +1 -0
- package/dist/api/modules/transform-api.d.ts +33 -0
- package/dist/api/modules/transform-api.d.ts.map +1 -0
- package/dist/api/renderer/camera-api.d.ts +26 -0
- package/dist/api/renderer/camera-api.d.ts.map +1 -0
- package/dist/api/renderer/dom-api.d.ts +24 -0
- package/dist/api/renderer/dom-api.d.ts.map +1 -0
- package/dist/api/renderer/index.d.ts +4 -0
- package/dist/api/renderer/index.d.ts.map +1 -0
- package/dist/api/renderer/scene-api.d.ts +26 -0
- package/dist/api/renderer/scene-api.d.ts.map +1 -0
- package/dist/constants/colors.d.ts +12 -0
- package/dist/constants/colors.d.ts.map +1 -1
- package/dist/constants/figure-geometries.d.ts +55 -4
- package/dist/constants/figure-geometries.d.ts.map +1 -1
- package/dist/constants/index.d.ts +6 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/layers.d.ts +12 -0
- package/dist/constants/layers.d.ts.map +1 -1
- package/dist/constants/messages.d.ts +18 -0
- package/dist/constants/messages.d.ts.map +1 -0
- package/dist/constants/threshold.d.ts +42 -2
- package/dist/constants/threshold.d.ts.map +1 -1
- package/dist/controllers/index.d.ts +2 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/renderer-controller.d.ts +72 -0
- package/dist/controllers/renderer-controller.d.ts.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/renderer.d.ts +105 -78
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/decorators/index.d.ts +3 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/use-policy.d.ts +5 -0
- package/dist/decorators/use-policy.d.ts.map +1 -0
- package/dist/decorators/use-validator.d.ts +5 -0
- package/dist/decorators/use-validator.d.ts.map +1 -0
- package/dist/errors/index.d.ts +3 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/policy-error.d.ts +9 -0
- package/dist/errors/policy-error.d.ts.map +1 -0
- package/dist/errors/validation-error.d.ts +9 -0
- package/dist/errors/validation-error.d.ts.map +1 -0
- package/dist/events/editor-events.d.ts +3 -7
- package/dist/events/editor-events.d.ts.map +1 -1
- package/dist/events/event-bus.d.ts +103 -6
- package/dist/events/event-bus.d.ts.map +1 -1
- package/dist/events/event-topics.d.ts +3 -3
- package/dist/events/event-topics.d.ts.map +1 -1
- package/dist/events/index.d.ts +4 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/handlers/display/index.d.ts +2 -0
- package/dist/handlers/display/index.d.ts.map +1 -0
- package/dist/handlers/display/wireframe-handler.d.ts +4 -2
- package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
- package/dist/handlers/scene/add-figure-scene-handler.d.ts +4 -2
- package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -1
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts +4 -4
- package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -1
- package/dist/handlers/scene/export-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/export-scene-handler.d.ts.map +1 -0
- package/dist/handlers/scene/index.d.ts +6 -0
- package/dist/handlers/scene/index.d.ts.map +1 -0
- package/dist/handlers/scene/load-figure-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/load-figure-scene-handler.d.ts.map +1 -0
- package/dist/handlers/scene/load-scene-handler.d.ts +23 -0
- package/dist/handlers/scene/load-scene-handler.d.ts.map +1 -0
- package/dist/handlers/select/edge-select-handler.d.ts +11 -8
- package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/face-select-handler.d.ts +11 -8
- package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/index.d.ts +5 -0
- package/dist/handlers/select/index.d.ts.map +1 -0
- package/dist/handlers/select/mesh-select-handler.d.ts +8 -7
- package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/vertex-select-handler.d.ts +11 -8
- package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
- package/dist/handlers/tool/base-tool-handler.d.ts +10 -7
- package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/index.d.ts +4 -0
- package/dist/handlers/tool/index.d.ts.map +1 -0
- package/dist/handlers/tool/rotate-tool-handler.d.ts +4 -3
- package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/scale-tool-handler.d.ts +4 -3
- package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
- package/dist/handlers/tool/translate-tool-handler.d.ts +4 -3
- package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
- package/dist/hub/editor-hub.d.ts +26 -18
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/hub/index.d.ts +26 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/viewer-hub.d.ts +30 -0
- package/dist/hub/viewer-hub.d.ts.map +1 -0
- package/dist/index.cjs.js +20 -2
- package/dist/index.d.ts +16 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +2615 -1627
- package/dist/index.full.d.ts +650 -245
- package/dist/index.public.d.ts +665 -160
- package/dist/index.umd.js +20 -2
- package/dist/interfaces/api/camera-api.d.ts +64 -0
- package/dist/interfaces/api/camera-api.d.ts.map +1 -0
- package/dist/interfaces/api/controls-state-api.d.ts +63 -0
- package/dist/interfaces/api/controls-state-api.d.ts.map +1 -0
- package/dist/interfaces/api/dom-api.d.ts +49 -0
- package/dist/interfaces/api/dom-api.d.ts.map +1 -0
- package/dist/interfaces/api/index.d.ts +9 -0
- package/dist/interfaces/api/index.d.ts.map +1 -0
- package/dist/interfaces/api/mesh-api.d.ts +93 -12
- package/dist/interfaces/api/mesh-api.d.ts.map +1 -1
- package/dist/interfaces/api/raycast-api.d.ts +6 -1
- package/dist/interfaces/api/raycast-api.d.ts.map +1 -1
- package/dist/interfaces/api/renderer/index.d.ts +6 -0
- package/dist/interfaces/api/renderer/index.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderable.d.ts +45 -0
- package/dist/interfaces/api/renderer/renderable.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-access.d.ts +34 -0
- package/dist/interfaces/api/renderer/renderer-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-camera-access.d.ts +37 -0
- package/dist/interfaces/api/renderer/renderer-camera-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-dom-access.d.ts +51 -0
- package/dist/interfaces/api/renderer/renderer-dom-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/renderer-scene-access.d.ts +45 -0
- package/dist/interfaces/api/renderer/renderer-scene-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer-api.d.ts +35 -0
- package/dist/interfaces/api/renderer-api.d.ts.map +1 -0
- package/dist/interfaces/api/scene-api.d.ts +66 -26
- package/dist/interfaces/api/scene-api.d.ts.map +1 -1
- package/dist/interfaces/api/transform-api.d.ts +120 -0
- package/dist/interfaces/api/transform-api.d.ts.map +1 -0
- package/dist/interfaces/command/index.d.ts +9 -0
- package/dist/interfaces/command/index.d.ts.map +1 -0
- package/dist/interfaces/controller/index.d.ts +38 -0
- package/dist/interfaces/controller/index.d.ts.map +1 -0
- package/dist/interfaces/handler/display-handler.d.ts +9 -1
- package/dist/interfaces/handler/display-handler.d.ts.map +1 -1
- package/dist/interfaces/handler/handler.d.ts +2 -0
- package/dist/interfaces/handler/handler.d.ts.map +1 -1
- package/dist/interfaces/handler/index.d.ts +6 -0
- package/dist/interfaces/handler/index.d.ts.map +1 -0
- package/dist/interfaces/handler/scene-handler.d.ts +1 -0
- package/dist/interfaces/handler/scene-handler.d.ts.map +1 -1
- package/dist/interfaces/handler/select-handler.d.ts +1 -0
- package/dist/interfaces/handler/select-handler.d.ts.map +1 -1
- package/dist/interfaces/handler/tool-handler.d.ts +1 -0
- package/dist/interfaces/handler/tool-handler.d.ts.map +1 -1
- package/dist/interfaces/manager/display-manager.d.ts +3 -1
- package/dist/interfaces/manager/display-manager.d.ts.map +1 -1
- package/dist/interfaces/manager/index.d.ts +6 -0
- package/dist/interfaces/manager/index.d.ts.map +1 -0
- package/dist/interfaces/manager/manager.d.ts +12 -1
- package/dist/interfaces/manager/manager.d.ts.map +1 -1
- package/dist/interfaces/manager/scene-manager.d.ts +3 -1
- package/dist/interfaces/manager/scene-manager.d.ts.map +1 -1
- package/dist/interfaces/manager/select-manager.d.ts +3 -1
- package/dist/interfaces/manager/select-manager.d.ts.map +1 -1
- package/dist/interfaces/manager/tool-manager.d.ts +3 -1
- package/dist/interfaces/manager/tool-manager.d.ts.map +1 -1
- package/dist/interfaces/mediator/index.d.ts +51 -0
- package/dist/interfaces/mediator/index.d.ts.map +1 -0
- package/dist/interfaces/middleware/index.d.ts +50 -0
- package/dist/interfaces/middleware/index.d.ts.map +1 -0
- package/dist/interfaces/module/index.d.ts +4 -0
- package/dist/interfaces/module/index.d.ts.map +1 -0
- package/dist/interfaces/module/renderable-module.d.ts +27 -0
- package/dist/interfaces/module/renderable-module.d.ts.map +1 -0
- package/dist/interfaces/module/runtime-module.d.ts +54 -0
- package/dist/interfaces/module/runtime-module.d.ts.map +1 -0
- package/dist/interfaces/module/updatable-module.d.ts +48 -0
- package/dist/interfaces/module/updatable-module.d.ts.map +1 -0
- package/dist/interfaces/policy/index.d.ts +21 -0
- package/dist/interfaces/policy/index.d.ts.map +1 -0
- package/dist/interfaces/store/display-store.d.ts +21 -0
- package/dist/interfaces/store/display-store.d.ts.map +1 -0
- package/dist/interfaces/store/export-store.d.ts +8 -0
- package/dist/interfaces/store/export-store.d.ts.map +1 -0
- package/dist/interfaces/store/index.d.ts +6 -0
- package/dist/interfaces/store/index.d.ts.map +1 -0
- package/dist/interfaces/store/select-store.d.ts +44 -0
- package/dist/interfaces/store/select-store.d.ts.map +1 -0
- package/dist/interfaces/store/tool-store.d.ts +27 -0
- package/dist/interfaces/store/tool-store.d.ts.map +1 -0
- package/dist/interfaces/store/transform-store.d.ts +11 -0
- package/dist/interfaces/store/transform-store.d.ts.map +1 -0
- package/dist/interfaces/validator/index.d.ts +21 -0
- package/dist/interfaces/validator/index.d.ts.map +1 -0
- package/dist/ioc/container.d.ts +3 -1
- package/dist/ioc/container.d.ts.map +1 -1
- package/dist/managers/display/display-manager.d.ts +7 -4
- package/dist/managers/display/display-manager.d.ts.map +1 -1
- package/dist/managers/display/index.d.ts +2 -0
- package/dist/managers/display/index.d.ts.map +1 -0
- package/dist/managers/index.d.ts +5 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/managers/scene/index.d.ts +2 -0
- package/dist/managers/scene/index.d.ts.map +1 -0
- package/dist/managers/scene/scene-manager.d.ts +7 -4
- package/dist/managers/scene/scene-manager.d.ts.map +1 -1
- package/dist/managers/select/index.d.ts +2 -0
- package/dist/managers/select/index.d.ts.map +1 -0
- package/dist/managers/select/select-manager.d.ts +8 -5
- package/dist/managers/select/select-manager.d.ts.map +1 -1
- package/dist/managers/tool/index.d.ts +2 -0
- package/dist/managers/tool/index.d.ts.map +1 -0
- package/dist/managers/tool/tool-manager.d.ts +9 -6
- package/dist/managers/tool/tool-manager.d.ts.map +1 -1
- package/dist/mediator/index.d.ts +14 -0
- package/dist/mediator/index.d.ts.map +1 -0
- package/dist/middlewares/exception-middleware.d.ts +12 -0
- package/dist/middlewares/exception-middleware.d.ts.map +1 -0
- package/dist/middlewares/index.d.ts +2 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/modules/controls-module.d.ts +60 -0
- package/dist/modules/controls-module.d.ts.map +1 -0
- package/dist/modules/gizmo-module.d.ts +32 -0
- package/dist/modules/gizmo-module.d.ts.map +1 -0
- package/dist/modules/index.d.ts +6 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/raycast-module.d.ts +87 -0
- package/dist/modules/raycast-module.d.ts.map +1 -0
- package/dist/modules/scene-module.d.ts +31 -0
- package/dist/modules/scene-module.d.ts.map +1 -0
- package/dist/modules/scene-preview-module.d.ts +26 -0
- package/dist/modules/scene-preview-module.d.ts.map +1 -0
- package/dist/policy/index.d.ts +2 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/tool-policy.d.ts +18 -0
- package/dist/policy/tool-policy.d.ts.map +1 -0
- package/dist/store/editor-store.d.ts +33 -0
- package/dist/store/editor-store.d.ts.map +1 -0
- package/dist/store/export-store.d.ts +12 -0
- package/dist/store/export-store.d.ts.map +1 -0
- package/dist/store/index.d.ts +2 -45
- package/dist/store/index.d.ts.map +1 -1
- package/dist/types/camera/index.d.ts +2 -0
- package/dist/types/camera/index.d.ts.map +1 -0
- package/dist/types/event/index.d.ts +2 -0
- package/dist/types/event/index.d.ts.map +1 -0
- package/dist/types/feature/feature-type.d.ts +16 -0
- package/dist/types/feature/feature-type.d.ts.map +1 -0
- package/dist/types/feature/index.d.ts +2 -0
- package/dist/types/feature/index.d.ts.map +1 -0
- package/dist/types/listener/index.d.ts +3 -0
- package/dist/types/listener/index.d.ts.map +1 -0
- package/dist/types/select/index.d.ts +2 -0
- package/dist/types/select/index.d.ts.map +1 -0
- package/dist/utils/default-renderer-config.d.ts +9 -0
- package/dist/utils/default-renderer-config.d.ts.map +1 -0
- package/dist/utils/helpers.d.ts +14 -1
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/validators/index.d.ts +2 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/obj-validator.d.ts +12 -0
- package/dist/validators/obj-validator.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/core/editor-renderer.d.ts +0 -89
- package/dist/core/editor-renderer.d.ts.map +0 -1
- package/dist/core/preview-renderer.d.ts +0 -16
- package/dist/core/preview-renderer.d.ts.map +0 -1
- package/dist/hub/app-hub.d.ts +0 -13
- package/dist/hub/app-hub.d.ts.map +0 -1
- package/dist/interfaces/api/transform-helpers-api.d.ts +0 -26
- package/dist/interfaces/api/transform-helpers-api.d.ts.map +0 -1
- package/dist/interfaces/policy/tool-availability-policy.d.ts +0 -12
- package/dist/interfaces/policy/tool-availability-policy.d.ts.map +0 -1
- package/dist/interfaces/store/editor-store.d.ts +0 -52
- package/dist/interfaces/store/editor-store.d.ts.map +0 -1
- package/dist/policy/tool-availability-policy.d.ts +0 -13
- package/dist/policy/tool-availability-policy.d.ts.map +0 -1
- package/dist/types/api/editor-api.d.ts +0 -4
- package/dist/types/api/editor-api.d.ts.map +0 -1
- package/dist/utils/renderer-api.d.ts +0 -43
- package/dist/utils/renderer-api.d.ts.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { EventBus } from '../events';
|
|
2
|
+
import { SelectMode } from '@planara/types';
|
|
3
|
+
import { IRuntimeModule } from '../interfaces/module';
|
|
4
|
+
import { IRaycastApi, IDomApi, ICameraApi, IMeshApi, IControlsStateApi } from '../interfaces/api';
|
|
5
|
+
/**
|
|
6
|
+
* Runtime-модуль raycast-взаимодействия.
|
|
7
|
+
*
|
|
8
|
+
* Отвечает за:
|
|
9
|
+
* - обработку событий мыши на canvas
|
|
10
|
+
* - raycast по объектам сцены
|
|
11
|
+
* - фильтрацию попаданий по текущему режиму выборки
|
|
12
|
+
* - отправку hover/click событий в event bus
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
* @class
|
|
16
|
+
*/
|
|
17
|
+
export declare class RaycastModule implements IRuntimeModule, IRaycastApi {
|
|
18
|
+
private _domApi;
|
|
19
|
+
private _cameraApi;
|
|
20
|
+
private _meshApi;
|
|
21
|
+
private _controlsState;
|
|
22
|
+
private _bus;
|
|
23
|
+
/**
|
|
24
|
+
* Raycast для получения событий наведения/клика по модели
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @member
|
|
28
|
+
*/
|
|
29
|
+
private _raycaster;
|
|
30
|
+
/**
|
|
31
|
+
* Курсор мыши
|
|
32
|
+
*
|
|
33
|
+
* @private
|
|
34
|
+
* @member
|
|
35
|
+
*/
|
|
36
|
+
private _mouse;
|
|
37
|
+
/**
|
|
38
|
+
* Ключ последней модели, на которую наводились,
|
|
39
|
+
* необходим для отправки только уникальных событий в event bus
|
|
40
|
+
*
|
|
41
|
+
* @private
|
|
42
|
+
* @member
|
|
43
|
+
*/
|
|
44
|
+
private _lastHoverKey;
|
|
45
|
+
/**
|
|
46
|
+
* Текущий режим для raycaster
|
|
47
|
+
*
|
|
48
|
+
* @private
|
|
49
|
+
* @member
|
|
50
|
+
*/
|
|
51
|
+
private _currentRaycastMode;
|
|
52
|
+
/**
|
|
53
|
+
* Были ли инициализированы обработчики событий (hover/click)
|
|
54
|
+
*
|
|
55
|
+
* @private
|
|
56
|
+
* @member
|
|
57
|
+
*/
|
|
58
|
+
private _isEventListenersAdded;
|
|
59
|
+
constructor(_domApi: IDomApi, _cameraApi: ICameraApi, _meshApi: IMeshApi, _controlsState: IControlsStateApi, _bus: EventBus);
|
|
60
|
+
init(): void;
|
|
61
|
+
setRaycastMode(mode: SelectMode): void;
|
|
62
|
+
/** Применяет параметры raycaster в зависимости от текущего режима */
|
|
63
|
+
private _applyRaycastParamsByMode;
|
|
64
|
+
/** Возвращает ближайшее пересечение по текущему положению курсора */
|
|
65
|
+
private _getHitIntersection;
|
|
66
|
+
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
67
|
+
private _processRaycastEvent;
|
|
68
|
+
/** Поиск видимой части меша
|
|
69
|
+
* необходимо это для того, чтобы отправлять только видимые элементы модели, а не все попадания
|
|
70
|
+
*/
|
|
71
|
+
private _getVisibleHit;
|
|
72
|
+
/** Строит ключ hover-пересечения с учетом текущего режима выборки */
|
|
73
|
+
private _makeHoverKey;
|
|
74
|
+
/** Обработчик события для hover */
|
|
75
|
+
private _handleMouseMove;
|
|
76
|
+
/** Обработчик события на click */
|
|
77
|
+
private _handleMouseClick;
|
|
78
|
+
/** Обработчик двойного клика */
|
|
79
|
+
private _handleDoubleClick;
|
|
80
|
+
/** Обработчик ухода курсора с canvas */
|
|
81
|
+
private _handleMouseLeave;
|
|
82
|
+
/** Инициализация обработчиков событий на hover/click */
|
|
83
|
+
private _initMouseListeners;
|
|
84
|
+
private _removeMouseListeners;
|
|
85
|
+
dispose(): Promise<void> | void;
|
|
86
|
+
}
|
|
87
|
+
//# 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,EAAE,KAAK,QAAQ,EAAe,MAAM,UAAU,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,QAAQ,EACR,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAI1B;;;;;;;;;;;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,31 @@
|
|
|
1
|
+
import { IRuntimeModule } from '../interfaces/module';
|
|
2
|
+
import { ISceneApi, IMeshApi } from '../interfaces/api';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
/**
|
|
5
|
+
* Модуль управления сценой, используется для добавления/удаления фигур,
|
|
6
|
+
* настройки необходимых хелперов на сцене (сетка, оси, свет)
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
* @class
|
|
10
|
+
*/
|
|
11
|
+
export declare class SceneModule implements IRuntimeModule, IMeshApi {
|
|
12
|
+
private _api;
|
|
13
|
+
/** Объекты редактора, участвующие в raycast и редактировании */
|
|
14
|
+
private _meshes;
|
|
15
|
+
/** Сетка сцены */
|
|
16
|
+
private _grid;
|
|
17
|
+
/** Оси сцены */
|
|
18
|
+
private _axes;
|
|
19
|
+
/** Базовый свет сцены */
|
|
20
|
+
private _light;
|
|
21
|
+
constructor(_api: ISceneApi);
|
|
22
|
+
init(): void;
|
|
23
|
+
getMeshes(): THREE.Mesh[];
|
|
24
|
+
addMesh(mesh: THREE.Mesh): void;
|
|
25
|
+
removeMesh(mesh: THREE.Mesh): void;
|
|
26
|
+
addMeshes(meshes: THREE.Mesh[]): void;
|
|
27
|
+
removeMeshes(meshes: THREE.Mesh[]): void;
|
|
28
|
+
/** Освобождает ресурсы модуля */
|
|
29
|
+
dispose(): Promise<void> | void;
|
|
30
|
+
}
|
|
31
|
+
//# 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,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;;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;IAUlC,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,26 @@
|
|
|
1
|
+
import { IRuntimeModule } from '../interfaces/module';
|
|
2
|
+
import { ISceneApi, IMeshApi } from '../interfaces/api';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
/**
|
|
5
|
+
* Модуль управления сценой, используется для добавления/удаления фигур
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
* @class
|
|
9
|
+
*/
|
|
10
|
+
export declare class ScenePreviewModule implements IRuntimeModule, IMeshApi {
|
|
11
|
+
private _api;
|
|
12
|
+
/** Объекты вьювера */
|
|
13
|
+
private _meshes;
|
|
14
|
+
/** Базовый свет сцены */
|
|
15
|
+
private _light;
|
|
16
|
+
constructor(_api: ISceneApi);
|
|
17
|
+
init(): void;
|
|
18
|
+
getMeshes(): THREE.Mesh[];
|
|
19
|
+
addMesh(mesh: THREE.Mesh): void;
|
|
20
|
+
removeMesh(mesh: THREE.Mesh): void;
|
|
21
|
+
addMeshes(meshes: THREE.Mesh[]): void;
|
|
22
|
+
removeMeshes(meshes: THREE.Mesh[]): void;
|
|
23
|
+
/** Освобождает ресурсы модуля */
|
|
24
|
+
dispose(): Promise<void> | void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=scene-preview-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-preview-module.d.ts","sourceRoot":"","sources":["../../src/modules/scene-preview-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;GAKG;AACH,qBACa,kBAAmB,YAAW,cAAc,EAAE,QAAQ;IAOzB,OAAO,CAAC,IAAI;IANpD,sBAAsB;IACtB,OAAO,CAAC,OAAO,CAAoB;IAEnC,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAsC;gBAEJ,IAAI,EAAE,SAAS;IAExD,IAAI,IAAI,IAAI;IAMZ,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;IAUlC,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;CAavC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IPolicy } from '../interfaces/policy';
|
|
2
|
+
import { ISelectStore } from '../interfaces/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,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IDisplayStore, ISelectStore, IToolStore } from '../interfaces/store';
|
|
2
|
+
import { DisplayMode, FigureTransform, SelectMode, ToolType } from '@planara/types';
|
|
3
|
+
import { SelectedListener, TransformListener } from '../types/listener';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
/** Store для всего редактора. */
|
|
6
|
+
export declare class EditorStore implements IDisplayStore, ISelectStore, IToolStore {
|
|
7
|
+
/** Текущий режим выборки. */
|
|
8
|
+
private _selectMode;
|
|
9
|
+
/** Текущий выбранный инструмент. */
|
|
10
|
+
private _toolType;
|
|
11
|
+
/** Выбранный режим отображения. */
|
|
12
|
+
private _displayMode;
|
|
13
|
+
/** Выбранный объект на сцене. */
|
|
14
|
+
private _selectedObject;
|
|
15
|
+
/** Слушатели событий по изменению выбранного объекта. */
|
|
16
|
+
private _selectedListeners;
|
|
17
|
+
/** Слушатели событий трансформации выбранного объекта. */
|
|
18
|
+
private _transformListeners;
|
|
19
|
+
constructor();
|
|
20
|
+
getSelectMode(): SelectMode;
|
|
21
|
+
getToolType(): ToolType;
|
|
22
|
+
getDisplayMode(): DisplayMode;
|
|
23
|
+
setSelectMode(mode: SelectMode): void;
|
|
24
|
+
setToolType(toolType: ToolType): void;
|
|
25
|
+
setDisplayMode(mode: DisplayMode): void;
|
|
26
|
+
getSelectedObject(): THREE.Object3D | null;
|
|
27
|
+
getSelectionStats(): FigureTransform | null;
|
|
28
|
+
setSelectedObject(object: THREE.Object3D | null): void;
|
|
29
|
+
onSelectedObjectChange(cb: SelectedListener): () => void;
|
|
30
|
+
onSelectedTransformChange(cb: TransformListener): () => void;
|
|
31
|
+
notifySelectedTransformChange(): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=editor-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-store.d.ts","sourceRoot":"","sources":["../../src/store/editor-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMlF,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI5E,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,12 @@
|
|
|
1
|
+
import { ExportResult } from '@planara/types';
|
|
2
|
+
import { IExportStore } from '../interfaces/store';
|
|
3
|
+
export declare class ExportStore implements IExportStore {
|
|
4
|
+
private _result;
|
|
5
|
+
constructor();
|
|
6
|
+
get result(): ExportResult | null;
|
|
7
|
+
get hasResult(): boolean;
|
|
8
|
+
setResult(result: ExportResult): void;
|
|
9
|
+
getResult(): ExportResult | null;
|
|
10
|
+
clearResult(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=export-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-store.d.ts","sourceRoot":"","sources":["../../src/store/export-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,OAAO,CAA6B;;IAc5C,IAAW,MAAM,IAAI,YAAY,GAAG,IAAI,CAEvC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC,SAAS,IAAI,YAAY,GAAG,IAAI;IAIhC,WAAW,IAAI,IAAI;CAG3B"}
|
package/dist/store/index.d.ts
CHANGED
|
@@ -1,46 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { SelectedListener } from '../types/listener/selected-listener';
|
|
4
|
-
import { TransformListener } from '../types/listener/transform-listener';
|
|
5
|
-
import * as THREE from 'three';
|
|
6
|
-
/** Store для всего редактора. */
|
|
7
|
-
export declare class EditorStore implements IEditorStore {
|
|
8
|
-
/** Текущий режим выборки. */
|
|
9
|
-
private _selectMode;
|
|
10
|
-
/** Текущий выбранный инструмент. */
|
|
11
|
-
private _toolType;
|
|
12
|
-
/** Выбранный режим отображения. */
|
|
13
|
-
private _displayMode;
|
|
14
|
-
/** Выбранный объект на сцене. */
|
|
15
|
-
private _selectedObject;
|
|
16
|
-
/** Слушатели событий по изменению выбранного объекта. */
|
|
17
|
-
private _selectedListeners;
|
|
18
|
-
/** Слушатели событий трансформации выбранного объекта. */
|
|
19
|
-
private _transformListeners;
|
|
20
|
-
constructor();
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
getSelectMode(): SelectMode;
|
|
23
|
-
/** @inheritdoc */
|
|
24
|
-
getToolType(): ToolType;
|
|
25
|
-
/** @inheritdoc */
|
|
26
|
-
getDisplayMode(): DisplayMode;
|
|
27
|
-
/** @inheritdoc */
|
|
28
|
-
setSelectMode(mode: SelectMode): void;
|
|
29
|
-
/** @inheritdoc */
|
|
30
|
-
setToolType(toolType: ToolType): void;
|
|
31
|
-
/** @inheritdoc */
|
|
32
|
-
setDisplayMode(mode: DisplayMode): void;
|
|
33
|
-
/** @inheritdoc */
|
|
34
|
-
getSelectedObject(): THREE.Object3D | null;
|
|
35
|
-
/** @inheritdoc */
|
|
36
|
-
getSelectionStats(): FigureTransform | null;
|
|
37
|
-
/** @inheritdoc */
|
|
38
|
-
setSelectedObject(object: THREE.Object3D | null): void;
|
|
39
|
-
/** @inheritdoc */
|
|
40
|
-
onSelectedObjectChange(cb: SelectedListener): () => void;
|
|
41
|
-
/** @inheritdoc */
|
|
42
|
-
onSelectedTransformChange(cb: TransformListener): () => void;
|
|
43
|
-
/** @inheritdoc */
|
|
44
|
-
notifySelectedTransformChange(): void;
|
|
45
|
-
}
|
|
1
|
+
export * from './editor-store';
|
|
2
|
+
export * from './export-store';
|
|
46
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/camera/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/event/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/feature/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/listener/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/select/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-renderer-config.d.ts","sourceRoot":"","sources":["../../src/utils/default-renderer-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAwCnC,CAAC"}
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FigureTransform } from '@planara/types';
|
|
1
|
+
import { FigureTransform, RendererConfig, RendererConfigInput } from '@planara/types';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
/** Является ли `THREE.Object3D` `THREE.Mesh` */
|
|
4
4
|
export declare const isMesh: (o: THREE.Object3D | null) => o is THREE.Mesh;
|
|
@@ -10,4 +10,17 @@ export declare const makeVertexPoints: (geom: THREE.BufferGeometry) => THREE.Poi
|
|
|
10
10
|
export declare const makeLineSegments: (geometry: THREE.BufferGeometry) => THREE.LineSegments<THREE.EdgesGeometry<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>>, THREE.LineBasicMaterial, THREE.Object3DEventMap>;
|
|
11
11
|
/** Сбор статистики объекта */
|
|
12
12
|
export declare const toFigureTransform: (obj: THREE.Object3D) => FigureTransform;
|
|
13
|
+
/** Создание конфига для рендерера, при использовании частичного пользовательского конфига */
|
|
14
|
+
export declare const mergeRendererConfig: (base: RendererConfig, input?: RendererConfigInput) => RendererConfig;
|
|
15
|
+
/** Пометить объект как прокси */
|
|
16
|
+
export declare const markAsProxyObject: <T extends THREE.Object3D>(object: T) => T;
|
|
17
|
+
/** Пометить объект как не экспортируемый */
|
|
18
|
+
export declare const markAsNotExportable: <T extends THREE.Object3D>(object: T) => T;
|
|
19
|
+
/** Является ли объект прокси */
|
|
20
|
+
export declare const isProxyObject: (object: THREE.Object3D) => boolean;
|
|
21
|
+
export declare const hasNotExportableObjectInTree: (object: THREE.Object3D) => boolean;
|
|
22
|
+
/** Можно ли экспортировать объект как часть OBJ-сцены */
|
|
23
|
+
export declare const isObjExportableObject: (object: THREE.Object3D) => object is THREE.Mesh;
|
|
24
|
+
export declare const createObjExportRoot: (scene: THREE.Scene) => THREE.Group;
|
|
25
|
+
export declare const createMeshesFromObjContent: (content: string) => THREE.Mesh[];
|
|
13
26
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAQ,MAAM,gBAAgB,CAAC;AAEjG,gDAAgD;AAChD,eAAO,MAAM,MAAM,GAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,CAAC,IAAI,KAAK,CAAC,IAE5D,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,cAAc,GAAI,KAAK,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,KAAK,CAAC,IAAI,GAAG,IAOxE,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,gBAAgB,GAAI,MAAM,KAAK,CAAC,cAAc,iJAwB1D,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,GAAI,UAAU,KAAK,CAAC,cAAc,+KAU9D,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,iBAAiB,GAAI,KAAK,KAAK,CAAC,QAAQ,KAAG,eAcvD,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,EACpB,QAAQ,mBAAmB,KAC1B,cAyCF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAG,CAKvE,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAG,CAIzE,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,CAAC,QAAQ,KAAG,OAEtD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,QAAQ,KAAK,CAAC,QAAQ,KAAG,OAYrE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,KAAK,CAAC,QAAQ,KAAG,MAAM,IAAI,KAAK,CAAC,IAkB9E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,CAAC,KAAK,KAAG,KAAK,CAAC,KA4B9D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,IAAI,EA4DtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IValidator } from '../interfaces/validator';
|
|
2
|
+
/**
|
|
3
|
+
* Валидатор контента .obj-файла
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
export declare class ObjValidator implements IValidator {
|
|
9
|
+
constructor();
|
|
10
|
+
validate(content: string): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=obj-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obj-validator.d.ts","sourceRoot":"","sources":["../../src/validators/obj-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,UAAU;;IAGtC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CA2BvC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planara/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@planara/three": "^1.4.3",
|
|
63
|
-
"@planara/types": "^1.
|
|
63
|
+
"@planara/types": "^1.12.0",
|
|
64
64
|
"events": "^3.3.0",
|
|
65
65
|
"mobx": "^6.15.0",
|
|
66
66
|
"reflect-metadata": "^0.2.2",
|
|
@@ -1,89 +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 _lastHoverKey;
|
|
31
|
-
private _currentRaycastMode;
|
|
32
|
-
/** Gizmo для управления отображением perspective camera */
|
|
33
|
-
private _cameraGizmo;
|
|
34
|
-
private _transformListeners;
|
|
35
|
-
constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
|
|
36
|
-
/**
|
|
37
|
-
* Обновление состояния рендерера.
|
|
38
|
-
*/
|
|
39
|
-
protected update(): void;
|
|
40
|
-
/** Добавление фигуры на сцену */
|
|
41
|
-
addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
42
|
-
/**
|
|
43
|
-
* Смена отображения `TransformControls` в зависимости от типа инструмента.
|
|
44
|
-
* @param mode - тип инструмента для отображения `TransformControls`.
|
|
45
|
-
* @internal
|
|
46
|
-
*/
|
|
47
|
-
setTransformControlsMode(mode: ToolType): void;
|
|
48
|
-
/**
|
|
49
|
-
* Добавление `TransformControls` к объекту.
|
|
50
|
-
* @param object - объект, к которому добавляются `TransformControls`.
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
attachTransformControls(object: THREE.Object3D): void;
|
|
54
|
-
/**
|
|
55
|
-
* Удаление `TransformControls` с последнего выбранного объекта.
|
|
56
|
-
* @internal
|
|
57
|
-
*/
|
|
58
|
-
detachTransformControls(): void;
|
|
59
|
-
/**
|
|
60
|
-
* Подписывает слушателя на изменения трансформации текущего объекта.
|
|
61
|
-
* @internal
|
|
62
|
-
*/
|
|
63
|
-
onTransformChange(cb: TransformListener): () => void;
|
|
64
|
-
/**
|
|
65
|
-
* Настройка режимов для `Raycaster`.
|
|
66
|
-
* @internal
|
|
67
|
-
*/
|
|
68
|
-
setRaycastMode(mode: SelectMode): void;
|
|
69
|
-
dispose(): void;
|
|
70
|
-
protected render(): void;
|
|
71
|
-
/** Инициализация обработчиков событий на hover/click */
|
|
72
|
-
private _initMouseListeners;
|
|
73
|
-
/** Обработчик события для hover */
|
|
74
|
-
private _handleMouseMove;
|
|
75
|
-
/** Обработчик события на click */
|
|
76
|
-
private _handleMouseClick;
|
|
77
|
-
/** Возвращает ближайшее пересечение по текущему положению курсора */
|
|
78
|
-
private _getHitIntersection;
|
|
79
|
-
private _handleDoubleClick;
|
|
80
|
-
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
81
|
-
private _processRaycastEvent;
|
|
82
|
-
/** Поиск видимой части меша
|
|
83
|
-
* необходимо это для того, чтобы отправлять только видимые элементы модели, а не все попадания
|
|
84
|
-
*/
|
|
85
|
-
private _getVisibleHit;
|
|
86
|
-
/** Строит ключ hover-пересечения с учетом текущего режима выборки */
|
|
87
|
-
private _makeHoverKey;
|
|
88
|
-
}
|
|
89
|
-
//# 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;IA+BtB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,IAAI;IA/BlC,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,aAAa,CAAuB;IAE5C,OAAO,CAAC,mBAAmB,CAA+B;IAE1D,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;IAyBtB,OAAO;cAgCJ,MAAM;IAMzB,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAqB3B,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAEvB;IAEF,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,kBAAkB,CAQxB;IAIF,iGAAiG;IACjG,OAAO,CAAC,oBAAoB;IAwC5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB,qEAAqE;IACrE,OAAO,CAAC,aAAa;CAoBtB"}
|
|
@@ -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"}
|
package/dist/hub/app-hub.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EditorHub } from './editor-hub';
|
|
2
|
-
/**
|
|
3
|
-
* Инициализирует редактор и возвращает хаб.
|
|
4
|
-
* Вызывать один раз при старте (когда есть canvas).
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
export declare const createAppHub: (canvas: HTMLCanvasElement) => EditorHub;
|
|
8
|
-
/**
|
|
9
|
-
* Возвращает уже созданный хаб, если редактор инициализирован.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export declare const getAppHub: () => EditorHub;
|
|
13
|
-
//# sourceMappingURL=app-hub.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-hub.d.ts","sourceRoot":"","sources":["../../src/hub/app-hub.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,iBAAiB,KAAG,SAOxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,SAM5B,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ToolType } from '@planara/types';
|
|
2
|
-
import { TransformListener } from '../../types/listener/transform-listener';
|
|
3
|
-
import * as THREE from 'three';
|
|
4
|
-
/**
|
|
5
|
-
* Интерфейс для управления transform helper внутри рендерера.
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export interface ITransformHelpersApi {
|
|
9
|
-
/**
|
|
10
|
-
* Меняет режим transform helper.
|
|
11
|
-
*
|
|
12
|
-
* @param tool - Режим, который необходимо выбрать.
|
|
13
|
-
*/
|
|
14
|
-
setMode(tool: ToolType): void;
|
|
15
|
-
/**
|
|
16
|
-
* Прикрепление transform helper к определенному объекту.
|
|
17
|
-
*
|
|
18
|
-
* @param obj - Объект, к которому необходимо прикрепить transform helper.
|
|
19
|
-
*/
|
|
20
|
-
attach(obj: THREE.Object3D): void;
|
|
21
|
-
/** Открепление transform helper от объекта. */
|
|
22
|
-
detach(): void;
|
|
23
|
-
/** Подписывает слушателя на изменения трансформации текущего объекта. */
|
|
24
|
-
onTransformChange(cb: TransformListener): () => void;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=transform-helpers-api.d.ts.map
|