@planara/core 2.0.0 → 2.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/dist/core/editor-renderer.d.ts +34 -2
- package/dist/core/editor-renderer.d.ts.map +1 -1
- package/dist/events/editor-events.d.ts +6 -0
- package/dist/events/editor-events.d.ts.map +1 -1
- package/dist/events/event-topics.d.ts +3 -1
- package/dist/events/event-topics.d.ts.map +1 -1
- package/dist/extensions/symmetric-axes-helper.d.ts.map +1 -0
- package/dist/handlers/display/wireframe-handler.d.ts +3 -4
- package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
- package/dist/handlers/select/mesh-select-handler.d.ts +1 -0
- package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
- package/dist/handlers/tool/base-tool-handler.d.ts +25 -0
- package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -0
- package/dist/handlers/tool/rotate-tool-handler.d.ts +19 -0
- package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -0
- package/dist/handlers/tool/scale-tool-handler.d.ts +19 -0
- package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -0
- package/dist/handlers/tool/translate-tool-handler.d.ts +19 -0
- package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -0
- package/dist/hub/editor-hub.d.ts +5 -2
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +180 -180
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +6231 -5157
- package/dist/index.full.d.ts +52 -3
- package/dist/index.public.d.ts +38 -3
- package/dist/index.umd.js +147 -147
- package/dist/interfaces/api/transform-helpers-api.d.ts +25 -0
- package/dist/interfaces/api/transform-helpers-api.d.ts.map +1 -0
- package/dist/interfaces/handler/display-handler.d.ts +1 -0
- package/dist/interfaces/handler/display-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 +14 -0
- package/dist/interfaces/handler/tool-handler.d.ts.map +1 -0
- package/dist/interfaces/manager/tool-manager.d.ts +8 -0
- package/dist/interfaces/manager/tool-manager.d.ts.map +1 -0
- package/dist/ioc/container.d.ts.map +1 -1
- package/dist/managers/display/display-manager.d.ts.map +1 -1
- package/dist/managers/select/select-manager.d.ts.map +1 -1
- package/dist/managers/tool/tool-manager.d.ts +18 -0
- package/dist/managers/tool/tool-manager.d.ts.map +1 -0
- package/dist/utils/renderer-api.d.ts +6 -1
- package/dist/utils/renderer-api.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/helpers/symmetric-axes-helper.d.ts.map +0 -1
- /package/dist/{helpers → extensions}/symmetric-axes-helper.d.ts +0 -0
package/dist/index.full.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { DisplayMode } from '@planara/types';
|
|
|
2
2
|
import { Figure } from '@planara/types';
|
|
3
3
|
import { SelectMode } from '@planara/types';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
+
import { ToolType } from '@planara/types';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Тип позиции камеры в мире.
|
|
@@ -33,6 +34,11 @@ export declare type EditorEvents = {
|
|
|
33
34
|
[EventTopics.SelectClick]: {
|
|
34
35
|
mesh: THREE.Object3D;
|
|
35
36
|
} | null;
|
|
37
|
+
/** Событие выбора объекта для редактирования. Payload: выбранный режим выборки */
|
|
38
|
+
[EventTopics.ToolSelect]: {
|
|
39
|
+
mode: SelectMode;
|
|
40
|
+
mesh: THREE.Object3D | null;
|
|
41
|
+
};
|
|
36
42
|
};
|
|
37
43
|
|
|
38
44
|
/**
|
|
@@ -42,10 +48,12 @@ export declare type EditorEvents = {
|
|
|
42
48
|
export declare class EditorHub {
|
|
43
49
|
private _displayManager;
|
|
44
50
|
private _selectManager;
|
|
51
|
+
private _toolManager;
|
|
45
52
|
private _renderer;
|
|
46
|
-
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
|
|
53
|
+
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _renderer: EditorRenderer);
|
|
47
54
|
setDisplayMode(mode: DisplayMode): void;
|
|
48
55
|
setSelectMode(mode: SelectMode): void;
|
|
56
|
+
setToolMode(mode: ToolType): void;
|
|
49
57
|
resizeRenderer(): void;
|
|
50
58
|
updateRenderer(): void;
|
|
51
59
|
addFigure(figure: Figure): void;
|
|
@@ -63,19 +71,51 @@ export declare class EditorRenderer extends Renderer {
|
|
|
63
71
|
private _bus;
|
|
64
72
|
/** Orbit-контроллер для управления камерой */
|
|
65
73
|
private _orbit;
|
|
74
|
+
/** Transform-контроллер для редактирования */
|
|
75
|
+
private _transform;
|
|
76
|
+
private readonly _transformHelper;
|
|
77
|
+
/** Raycast для получения событий наведения/клика по модели*/
|
|
66
78
|
private _raycaster;
|
|
79
|
+
/** Курсор мыши */
|
|
67
80
|
private readonly _mouse;
|
|
81
|
+
/** Были ли инициализированы обработчики событий (hover/click) */
|
|
68
82
|
private _isEventListenersAdded;
|
|
83
|
+
/**
|
|
84
|
+
* Последняя модель на которую наводились,
|
|
85
|
+
* необходима для отправки только уникальных событий в event bus
|
|
86
|
+
*/
|
|
69
87
|
private _lastHovered;
|
|
70
88
|
constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
|
|
71
89
|
/**
|
|
72
90
|
* Обновление состояния рендерера.
|
|
73
91
|
*/
|
|
74
92
|
protected update(): void;
|
|
93
|
+
/** Добавление фигуры на сцену */
|
|
75
94
|
addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
76
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Смена отображения `TransformControls` в зависимости от типа инструмента.
|
|
97
|
+
* @param mode - тип инструмента для отображения `TransformControls`.
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
setTransformControlsMode(mode: ToolType): void;
|
|
101
|
+
/**
|
|
102
|
+
* Добавление `TransformControls` к объекту.
|
|
103
|
+
* @param object - объект, к которому добавляются `TransformControls`.
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
attachTransformControls(object: THREE.Object3D): void;
|
|
107
|
+
/**
|
|
108
|
+
* Удаление `TransformControls` с последнего выбранного объекта.
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
detachTransformControls(): void;
|
|
112
|
+
/** Инициализация обработчиков событий на hover/click */
|
|
113
|
+
private _initMouseListeners;
|
|
114
|
+
/** Обработчик события для hover */
|
|
77
115
|
private _handleMouseMove;
|
|
116
|
+
/** Обработчик события на click */
|
|
78
117
|
private _handleMouseClick;
|
|
118
|
+
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
79
119
|
private _processRaycastEvent;
|
|
80
120
|
}
|
|
81
121
|
|
|
@@ -104,7 +144,9 @@ export declare enum EventTopics {
|
|
|
104
144
|
/** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
|
|
105
145
|
SelectHover = "select.hover",
|
|
106
146
|
/** Событие клика по объекту. Payload: mesh: Mesh | null */
|
|
107
|
-
SelectClick = "select.click"
|
|
147
|
+
SelectClick = "select.click",
|
|
148
|
+
/** Событие выбора объекта для редактирования. Payload: mode: SelectMode, object: THREE.Object3D | null */
|
|
149
|
+
ToolSelect = "tool.select"
|
|
108
150
|
}
|
|
109
151
|
|
|
110
152
|
/**
|
|
@@ -137,6 +179,13 @@ export declare interface IManager {
|
|
|
137
179
|
export declare interface ISelectManager extends IManager {
|
|
138
180
|
}
|
|
139
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Маркерный интерфейс для менеджеров инструментов.
|
|
184
|
+
* @public
|
|
185
|
+
*/
|
|
186
|
+
export declare interface IToolManager extends IManager {
|
|
187
|
+
}
|
|
188
|
+
|
|
140
189
|
/** @public */
|
|
141
190
|
export declare class ObjLoader {
|
|
142
191
|
/** Позиции вершин */
|
package/dist/index.public.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { DisplayMode } from '@planara/types';
|
|
|
2
2
|
import { Figure } from '@planara/types';
|
|
3
3
|
import { SelectMode } from '@planara/types';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
+
import { ToolType } from '@planara/types';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Тип позиции камеры в мире.
|
|
@@ -33,6 +34,11 @@ export declare type EditorEvents = {
|
|
|
33
34
|
[EventTopics.SelectClick]: {
|
|
34
35
|
mesh: THREE.Object3D;
|
|
35
36
|
} | null;
|
|
37
|
+
/** Событие выбора объекта для редактирования. Payload: выбранный режим выборки */
|
|
38
|
+
[EventTopics.ToolSelect]: {
|
|
39
|
+
mode: SelectMode;
|
|
40
|
+
mesh: THREE.Object3D | null;
|
|
41
|
+
};
|
|
36
42
|
};
|
|
37
43
|
|
|
38
44
|
/**
|
|
@@ -42,10 +48,12 @@ export declare type EditorEvents = {
|
|
|
42
48
|
export declare class EditorHub {
|
|
43
49
|
private _displayManager;
|
|
44
50
|
private _selectManager;
|
|
51
|
+
private _toolManager;
|
|
45
52
|
private _renderer;
|
|
46
|
-
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
|
|
53
|
+
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _renderer: EditorRenderer);
|
|
47
54
|
setDisplayMode(mode: DisplayMode): void;
|
|
48
55
|
setSelectMode(mode: SelectMode): void;
|
|
56
|
+
setToolMode(mode: ToolType): void;
|
|
49
57
|
resizeRenderer(): void;
|
|
50
58
|
updateRenderer(): void;
|
|
51
59
|
addFigure(figure: Figure): void;
|
|
@@ -63,19 +71,37 @@ export declare class EditorRenderer extends Renderer {
|
|
|
63
71
|
private _bus;
|
|
64
72
|
/** Orbit-контроллер для управления камерой */
|
|
65
73
|
private _orbit;
|
|
74
|
+
/** Transform-контроллер для редактирования */
|
|
75
|
+
private _transform;
|
|
76
|
+
private readonly _transformHelper;
|
|
77
|
+
/** Raycast для получения событий наведения/клика по модели*/
|
|
66
78
|
private _raycaster;
|
|
79
|
+
/** Курсор мыши */
|
|
67
80
|
private readonly _mouse;
|
|
81
|
+
/** Были ли инициализированы обработчики событий (hover/click) */
|
|
68
82
|
private _isEventListenersAdded;
|
|
83
|
+
/**
|
|
84
|
+
* Последняя модель на которую наводились,
|
|
85
|
+
* необходима для отправки только уникальных событий в event bus
|
|
86
|
+
*/
|
|
69
87
|
private _lastHovered;
|
|
70
88
|
constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
|
|
71
89
|
/**
|
|
72
90
|
* Обновление состояния рендерера.
|
|
73
91
|
*/
|
|
74
92
|
protected update(): void;
|
|
93
|
+
/** Добавление фигуры на сцену */
|
|
75
94
|
addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
76
|
-
|
|
95
|
+
/* Excluded from this release type: setTransformControlsMode */
|
|
96
|
+
/* Excluded from this release type: attachTransformControls */
|
|
97
|
+
/* Excluded from this release type: detachTransformControls */
|
|
98
|
+
/** Инициализация обработчиков событий на hover/click */
|
|
99
|
+
private _initMouseListeners;
|
|
100
|
+
/** Обработчик события для hover */
|
|
77
101
|
private _handleMouseMove;
|
|
102
|
+
/** Обработчик события на click */
|
|
78
103
|
private _handleMouseClick;
|
|
104
|
+
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
79
105
|
private _processRaycastEvent;
|
|
80
106
|
}
|
|
81
107
|
|
|
@@ -104,7 +130,9 @@ export declare enum EventTopics {
|
|
|
104
130
|
/** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
|
|
105
131
|
SelectHover = "select.hover",
|
|
106
132
|
/** Событие клика по объекту. Payload: mesh: Mesh | null */
|
|
107
|
-
SelectClick = "select.click"
|
|
133
|
+
SelectClick = "select.click",
|
|
134
|
+
/** Событие выбора объекта для редактирования. Payload: mode: SelectMode, object: THREE.Object3D | null */
|
|
135
|
+
ToolSelect = "tool.select"
|
|
108
136
|
}
|
|
109
137
|
|
|
110
138
|
/**
|
|
@@ -137,6 +165,13 @@ export declare interface IManager {
|
|
|
137
165
|
export declare interface ISelectManager extends IManager {
|
|
138
166
|
}
|
|
139
167
|
|
|
168
|
+
/**
|
|
169
|
+
* Маркерный интерфейс для менеджеров инструментов.
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
export declare interface IToolManager extends IManager {
|
|
173
|
+
}
|
|
174
|
+
|
|
140
175
|
/** @public */
|
|
141
176
|
export declare class ObjLoader {
|
|
142
177
|
/** Позиции вершин */
|