@planara/core 1.6.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/README.md +10 -2
- package/dist/core/editor-renderer.d.ts +30 -32
- package/dist/core/editor-renderer.d.ts.map +1 -1
- package/dist/core/preview-renderer.d.ts +1 -6
- package/dist/core/preview-renderer.d.ts.map +1 -1
- package/dist/core/renderer.d.ts +10 -27
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/events/editor-events.d.ts +9 -3
- package/dist/events/editor-events.d.ts.map +1 -1
- package/dist/events/event-bus.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/orbit-extension.d.ts +5 -5
- package/dist/extensions/orbit-extension.d.ts.map +1 -1
- package/dist/extensions/symmetric-axes-helper.d.ts +5 -0
- package/dist/extensions/symmetric-axes-helper.d.ts.map +1 -0
- package/dist/handlers/display/wireframe-handler.d.ts +6 -14
- package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
- package/dist/handlers/select/mesh-select-handler.d.ts +20 -12
- 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 +3833 -39
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +22571 -1515
- package/dist/index.full.d.ts +60 -82
- package/dist/index.public.d.ts +49 -61
- package/dist/index.umd.js +3833 -39
- package/dist/interfaces/api/mesh-api.d.ts +6 -6
- package/dist/interfaces/api/mesh-api.d.ts.map +1 -1
- 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 +12 -11
- package/dist/utils/renderer-api.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/extensions/mesh-extension.d.ts +0 -12
- package/dist/extensions/mesh-extension.d.ts.map +0 -1
- package/dist/interfaces/api/renderer-api.d.ts +0 -27
- package/dist/interfaces/api/renderer-api.d.ts.map +0 -1
- package/dist/utils/program-settings.d.ts +0 -13
- package/dist/utils/program-settings.d.ts.map +0 -1
package/dist/index.full.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import { Camera } from 'ogl';
|
|
2
1
|
import { DisplayMode } from '@planara/types';
|
|
3
2
|
import { Figure } from '@planara/types';
|
|
4
|
-
import { Mesh } from 'ogl';
|
|
5
|
-
import { MeshOptions } from 'ogl/types/core/Mesh';
|
|
6
|
-
import { MeshRenderCallback } from 'ogl';
|
|
7
|
-
import { OGLRenderingContext } from 'ogl/types/core/Renderer';
|
|
8
|
-
import { OGLRenderingContext as OGLRenderingContext_2 } from 'ogl';
|
|
9
|
-
import { Program } from 'ogl';
|
|
10
|
-
import { Renderer as Renderer_2 } from 'ogl';
|
|
11
3
|
import { SelectMode } from '@planara/types';
|
|
12
|
-
import
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { ToolType } from '@planara/types';
|
|
13
6
|
|
|
14
7
|
/**
|
|
15
8
|
* Тип позиции камеры в мире.
|
|
@@ -35,12 +28,17 @@ export declare function createAppHub(canvas: HTMLCanvasElement): EditorHub;
|
|
|
35
28
|
export declare type EditorEvents = {
|
|
36
29
|
/** Событие наведения на объект (hover). Payload: объект с mesh или null */
|
|
37
30
|
[EventTopics.SelectHover]: {
|
|
38
|
-
mesh:
|
|
31
|
+
mesh: THREE.Object3D;
|
|
39
32
|
} | null;
|
|
40
33
|
/** Событие клика по объекту. Payload: объект с mesh или null */
|
|
41
34
|
[EventTopics.SelectClick]: {
|
|
42
|
-
mesh:
|
|
35
|
+
mesh: THREE.Object3D;
|
|
43
36
|
} | null;
|
|
37
|
+
/** Событие выбора объекта для редактирования. Payload: выбранный режим выборки */
|
|
38
|
+
[EventTopics.ToolSelect]: {
|
|
39
|
+
mode: SelectMode;
|
|
40
|
+
mesh: THREE.Object3D | null;
|
|
41
|
+
};
|
|
44
42
|
};
|
|
45
43
|
|
|
46
44
|
/**
|
|
@@ -50,25 +48,18 @@ export declare type EditorEvents = {
|
|
|
50
48
|
export declare class EditorHub {
|
|
51
49
|
private _displayManager;
|
|
52
50
|
private _selectManager;
|
|
51
|
+
private _toolManager;
|
|
53
52
|
private _renderer;
|
|
54
|
-
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
|
|
53
|
+
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _renderer: EditorRenderer);
|
|
55
54
|
setDisplayMode(mode: DisplayMode): void;
|
|
56
55
|
setSelectMode(mode: SelectMode): void;
|
|
56
|
+
setToolMode(mode: ToolType): void;
|
|
57
57
|
resizeRenderer(): void;
|
|
58
58
|
updateRenderer(): void;
|
|
59
59
|
addFigure(figure: Figure): void;
|
|
60
60
|
destroy(): void;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
/**
|
|
64
|
-
* Расширение для Mesh с добавлением поля isHit, необходимого для raycast
|
|
65
|
-
* @public
|
|
66
|
-
*/
|
|
67
|
-
export declare class EditorMesh extends Mesh {
|
|
68
|
-
isHit: boolean;
|
|
69
|
-
constructor(gl: OGLRenderingContext, options?: Partial<MeshOptions>);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
63
|
/**
|
|
73
64
|
* Рендерер для редактора.
|
|
74
65
|
* Добавляет сетку, оси координат и поддержку Orbit для управления камерой.
|
|
@@ -80,53 +71,52 @@ export declare class EditorRenderer extends Renderer {
|
|
|
80
71
|
private _bus;
|
|
81
72
|
/** Orbit-контроллер для управления камерой */
|
|
82
73
|
private _orbit;
|
|
83
|
-
/**
|
|
84
|
-
private
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
/** Transform-контроллер для редактирования */
|
|
75
|
+
private _transform;
|
|
76
|
+
private readonly _transformHelper;
|
|
77
|
+
/** Raycast для получения событий наведения/клика по модели*/
|
|
78
|
+
private _raycaster;
|
|
79
|
+
/** Курсор мыши */
|
|
80
|
+
private readonly _mouse;
|
|
81
|
+
/** Были ли инициализированы обработчики событий (hover/click) */
|
|
88
82
|
private _isEventListenersAdded;
|
|
89
83
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
84
|
+
* Последняя модель на которую наводились,
|
|
85
|
+
* необходима для отправки только уникальных событий в event bus
|
|
92
86
|
*/
|
|
87
|
+
private _lastHovered;
|
|
93
88
|
constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
|
|
94
89
|
/**
|
|
95
90
|
* Обновление состояния рендерера.
|
|
96
91
|
*/
|
|
97
92
|
protected update(): void;
|
|
93
|
+
/** Добавление фигуры на сцену */
|
|
94
|
+
addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
98
95
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* @param figure - Данные фигуры: position, normal, uv
|
|
102
|
-
*/
|
|
103
|
-
addFigure(figure: Figure): EditorMesh;
|
|
104
|
-
/**
|
|
105
|
-
* Устанавливает callback, который будет вызываться перед рендером конкретного меша.
|
|
106
|
-
*
|
|
107
|
-
* @param mesh - Меш, для которого нужно задать callback.
|
|
108
|
-
* @param f - Функция обратного вызова, выполняемая перед рендером меша.
|
|
96
|
+
* Смена отображения `TransformControls` в зависимости от типа инструмента.
|
|
97
|
+
* @param mode - тип инструмента для отображения `TransformControls`.
|
|
109
98
|
* @internal
|
|
110
99
|
*/
|
|
111
|
-
|
|
100
|
+
setTransformControlsMode(mode: ToolType): void;
|
|
112
101
|
/**
|
|
113
|
-
*
|
|
102
|
+
* Добавление `TransformControls` к объекту.
|
|
103
|
+
* @param object - объект, к которому добавляются `TransformControls`.
|
|
104
|
+
* @internal
|
|
114
105
|
*/
|
|
115
|
-
|
|
106
|
+
attachTransformControls(object: THREE.Object3D): void;
|
|
116
107
|
/**
|
|
117
|
-
*
|
|
108
|
+
* Удаление `TransformControls` с последнего выбранного объекта.
|
|
109
|
+
* @internal
|
|
118
110
|
*/
|
|
111
|
+
detachTransformControls(): void;
|
|
112
|
+
/** Инициализация обработчиков событий на hover/click */
|
|
113
|
+
private _initMouseListeners;
|
|
114
|
+
/** Обработчик события для hover */
|
|
119
115
|
private _handleMouseMove;
|
|
120
|
-
/**
|
|
121
|
-
* Обработчик клика мыши
|
|
122
|
-
*/
|
|
116
|
+
/** Обработчик события на click */
|
|
123
117
|
private _handleMouseClick;
|
|
124
|
-
/**
|
|
125
|
-
* Универсальная логика raycast-события
|
|
126
|
-
*/
|
|
118
|
+
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
127
119
|
private _processRaycastEvent;
|
|
128
|
-
/** Деструктор */
|
|
129
|
-
destroy(): void;
|
|
130
120
|
}
|
|
131
121
|
|
|
132
122
|
/**
|
|
@@ -154,7 +144,9 @@ export declare enum EventTopics {
|
|
|
154
144
|
/** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
|
|
155
145
|
SelectHover = "select.hover",
|
|
156
146
|
/** Событие клика по объекту. Payload: mesh: Mesh | null */
|
|
157
|
-
SelectClick = "select.click"
|
|
147
|
+
SelectClick = "select.click",
|
|
148
|
+
/** Событие выбора объекта для редактирования. Payload: mode: SelectMode, object: THREE.Object3D | null */
|
|
149
|
+
ToolSelect = "tool.select"
|
|
158
150
|
}
|
|
159
151
|
|
|
160
152
|
/**
|
|
@@ -187,6 +179,13 @@ export declare interface IManager {
|
|
|
187
179
|
export declare interface ISelectManager extends IManager {
|
|
188
180
|
}
|
|
189
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Маркерный интерфейс для менеджеров инструментов.
|
|
184
|
+
* @public
|
|
185
|
+
*/
|
|
186
|
+
export declare interface IToolManager extends IManager {
|
|
187
|
+
}
|
|
188
|
+
|
|
190
189
|
/** @public */
|
|
191
190
|
export declare class ObjLoader {
|
|
192
191
|
/** Позиции вершин */
|
|
@@ -211,17 +210,12 @@ export declare class ObjLoader {
|
|
|
211
210
|
|
|
212
211
|
/**
|
|
213
212
|
* Рендерер для предпросмотра 3D-модели.
|
|
214
|
-
* Настраивает сцену, камеру и орбитальную навигацию
|
|
215
|
-
* Наследуется от базового Renderer.
|
|
213
|
+
* Настраивает сцену, камеру и орбитальную навигацию по горизонтали.
|
|
216
214
|
* @alpha
|
|
217
215
|
*/
|
|
218
216
|
export declare class PreviewRenderer extends Renderer {
|
|
219
217
|
/** Orbit-контроллер для управления камерой */
|
|
220
218
|
private _orbit;
|
|
221
|
-
/**
|
|
222
|
-
* Инициализация сцены предпросмотра.
|
|
223
|
-
* @param canvas - HTMLCanvasElement для рендеринга
|
|
224
|
-
*/
|
|
225
219
|
constructor(canvas: HTMLCanvasElement);
|
|
226
220
|
/**
|
|
227
221
|
* Обновление состояния рендерера.
|
|
@@ -235,18 +229,16 @@ export declare class PreviewRenderer extends Renderer {
|
|
|
235
229
|
* @public
|
|
236
230
|
*/
|
|
237
231
|
export declare abstract class Renderer {
|
|
238
|
-
/** Экземпляр рендерера OGL */
|
|
239
|
-
protected gl: Renderer_2;
|
|
240
232
|
/** Корневой объект сцены */
|
|
241
|
-
protected scene:
|
|
233
|
+
protected scene: THREE.Scene;
|
|
242
234
|
/** Камера для сцены */
|
|
243
|
-
protected camera:
|
|
235
|
+
protected camera: THREE.PerspectiveCamera;
|
|
236
|
+
/** Экземпляр рендерера Three.js */
|
|
237
|
+
protected renderer: THREE.WebGLRenderer;
|
|
244
238
|
/** HTML-элемент canvas, на котором рендерится сцена */
|
|
245
239
|
protected canvas: HTMLCanvasElement;
|
|
246
|
-
/** Program для настройки рендеринга моделей */
|
|
247
|
-
protected program: Program;
|
|
248
240
|
/** Массив моделей на сцене */
|
|
249
|
-
protected meshes: Mesh[];
|
|
241
|
+
protected meshes: THREE.Mesh[];
|
|
250
242
|
/**
|
|
251
243
|
* Конструктор рендерера
|
|
252
244
|
* @param canvas - HTMLCanvasElement для рендеринга
|
|
@@ -272,42 +264,28 @@ export declare abstract class Renderer {
|
|
|
272
264
|
* Публичный метод для добавления фигуры.
|
|
273
265
|
* @param figure - Данные фигуры: position, normal, uv
|
|
274
266
|
*/
|
|
275
|
-
addFigure(figure: Figure):
|
|
267
|
+
addFigure(figure: Figure): THREE.Mesh;
|
|
276
268
|
/**
|
|
277
269
|
* Добавляет фигуру в сцену и сохраняет его во внутреннем массиве.
|
|
278
270
|
*
|
|
279
271
|
* @param mesh - Фигура для добавления в сцену.
|
|
280
272
|
* @internal
|
|
281
273
|
*/
|
|
282
|
-
addMesh(mesh: Mesh): void;
|
|
283
|
-
/**
|
|
284
|
-
* Возвращает WebGL контекст рендерера.
|
|
285
|
-
*
|
|
286
|
-
* @returns Контекст WebGL (OGLRenderingContext) текущей сцены.
|
|
287
|
-
* @internal
|
|
288
|
-
*/
|
|
289
|
-
getContext(): OGLRenderingContext_2;
|
|
274
|
+
addMesh(mesh: THREE.Mesh): void;
|
|
290
275
|
/**
|
|
291
276
|
* Убирает фигуру со сцены
|
|
292
277
|
*
|
|
293
278
|
* @param mesh - Фигура для удаления со сцены.
|
|
294
279
|
* @internal
|
|
295
280
|
*/
|
|
296
|
-
removeMesh(mesh: Mesh): void;
|
|
281
|
+
removeMesh(mesh: THREE.Mesh): void;
|
|
297
282
|
/**
|
|
298
283
|
* Возвращает список всех фигур, находящихся в сцене.
|
|
299
284
|
*
|
|
300
285
|
* @returns Массив текущих фигур.
|
|
301
286
|
* @internal
|
|
302
287
|
*/
|
|
303
|
-
getMeshes(): Mesh[];
|
|
304
|
-
/**
|
|
305
|
-
* Возвращает настройку для рендеринга.
|
|
306
|
-
*
|
|
307
|
-
* @returns Program для настройки рендеринга моделей.
|
|
308
|
-
* @internal
|
|
309
|
-
*/
|
|
310
|
-
getProgram(): Program;
|
|
288
|
+
getMeshes(): THREE.Mesh[];
|
|
311
289
|
/** Деструктор */
|
|
312
290
|
destroy(): void;
|
|
313
291
|
}
|
package/dist/index.public.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import { Camera } from 'ogl';
|
|
2
1
|
import { DisplayMode } from '@planara/types';
|
|
3
2
|
import { Figure } from '@planara/types';
|
|
4
|
-
import { Mesh } from 'ogl';
|
|
5
|
-
import { MeshOptions } from 'ogl/types/core/Mesh';
|
|
6
|
-
import { MeshRenderCallback } from 'ogl';
|
|
7
|
-
import { OGLRenderingContext } from 'ogl/types/core/Renderer';
|
|
8
|
-
import { OGLRenderingContext as OGLRenderingContext_2 } from 'ogl';
|
|
9
|
-
import { Program } from 'ogl';
|
|
10
|
-
import { Renderer as Renderer_2 } from 'ogl';
|
|
11
3
|
import { SelectMode } from '@planara/types';
|
|
12
|
-
import
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { ToolType } from '@planara/types';
|
|
13
6
|
|
|
14
7
|
/**
|
|
15
8
|
* Тип позиции камеры в мире.
|
|
@@ -35,12 +28,17 @@ export declare function createAppHub(canvas: HTMLCanvasElement): EditorHub;
|
|
|
35
28
|
export declare type EditorEvents = {
|
|
36
29
|
/** Событие наведения на объект (hover). Payload: объект с mesh или null */
|
|
37
30
|
[EventTopics.SelectHover]: {
|
|
38
|
-
mesh:
|
|
31
|
+
mesh: THREE.Object3D;
|
|
39
32
|
} | null;
|
|
40
33
|
/** Событие клика по объекту. Payload: объект с mesh или null */
|
|
41
34
|
[EventTopics.SelectClick]: {
|
|
42
|
-
mesh:
|
|
35
|
+
mesh: THREE.Object3D;
|
|
43
36
|
} | null;
|
|
37
|
+
/** Событие выбора объекта для редактирования. Payload: выбранный режим выборки */
|
|
38
|
+
[EventTopics.ToolSelect]: {
|
|
39
|
+
mode: SelectMode;
|
|
40
|
+
mesh: THREE.Object3D | null;
|
|
41
|
+
};
|
|
44
42
|
};
|
|
45
43
|
|
|
46
44
|
/**
|
|
@@ -50,25 +48,18 @@ export declare type EditorEvents = {
|
|
|
50
48
|
export declare class EditorHub {
|
|
51
49
|
private _displayManager;
|
|
52
50
|
private _selectManager;
|
|
51
|
+
private _toolManager;
|
|
53
52
|
private _renderer;
|
|
54
|
-
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
|
|
53
|
+
constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _renderer: EditorRenderer);
|
|
55
54
|
setDisplayMode(mode: DisplayMode): void;
|
|
56
55
|
setSelectMode(mode: SelectMode): void;
|
|
56
|
+
setToolMode(mode: ToolType): void;
|
|
57
57
|
resizeRenderer(): void;
|
|
58
58
|
updateRenderer(): void;
|
|
59
59
|
addFigure(figure: Figure): void;
|
|
60
60
|
destroy(): void;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
/**
|
|
64
|
-
* Расширение для Mesh с добавлением поля isHit, необходимого для raycast
|
|
65
|
-
* @public
|
|
66
|
-
*/
|
|
67
|
-
export declare class EditorMesh extends Mesh {
|
|
68
|
-
isHit: boolean;
|
|
69
|
-
constructor(gl: OGLRenderingContext, options?: Partial<MeshOptions>);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
63
|
/**
|
|
73
64
|
* Рендерер для редактора.
|
|
74
65
|
* Добавляет сетку, оси координат и поддержку Orbit для управления камерой.
|
|
@@ -80,46 +71,38 @@ export declare class EditorRenderer extends Renderer {
|
|
|
80
71
|
private _bus;
|
|
81
72
|
/** Orbit-контроллер для управления камерой */
|
|
82
73
|
private _orbit;
|
|
83
|
-
/**
|
|
84
|
-
private
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
/** Transform-контроллер для редактирования */
|
|
75
|
+
private _transform;
|
|
76
|
+
private readonly _transformHelper;
|
|
77
|
+
/** Raycast для получения событий наведения/клика по модели*/
|
|
78
|
+
private _raycaster;
|
|
79
|
+
/** Курсор мыши */
|
|
80
|
+
private readonly _mouse;
|
|
81
|
+
/** Были ли инициализированы обработчики событий (hover/click) */
|
|
88
82
|
private _isEventListenersAdded;
|
|
89
83
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
84
|
+
* Последняя модель на которую наводились,
|
|
85
|
+
* необходима для отправки только уникальных событий в event bus
|
|
92
86
|
*/
|
|
87
|
+
private _lastHovered;
|
|
93
88
|
constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
|
|
94
89
|
/**
|
|
95
90
|
* Обновление состояния рендерера.
|
|
96
91
|
*/
|
|
97
92
|
protected update(): void;
|
|
98
|
-
/**
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Инициализация обработчиков мыши для raycast
|
|
107
|
-
*/
|
|
108
|
-
private initMouseListeners;
|
|
109
|
-
/**
|
|
110
|
-
* Обработчик движения мыши
|
|
111
|
-
*/
|
|
93
|
+
/** Добавление фигуры на сцену */
|
|
94
|
+
addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
|
|
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 */
|
|
112
101
|
private _handleMouseMove;
|
|
113
|
-
/**
|
|
114
|
-
* Обработчик клика мыши
|
|
115
|
-
*/
|
|
102
|
+
/** Обработчик события на click */
|
|
116
103
|
private _handleMouseClick;
|
|
117
|
-
/**
|
|
118
|
-
* Универсальная логика raycast-события
|
|
119
|
-
*/
|
|
104
|
+
/** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
|
|
120
105
|
private _processRaycastEvent;
|
|
121
|
-
/** Деструктор */
|
|
122
|
-
destroy(): void;
|
|
123
106
|
}
|
|
124
107
|
|
|
125
108
|
/**
|
|
@@ -147,7 +130,9 @@ export declare enum EventTopics {
|
|
|
147
130
|
/** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
|
|
148
131
|
SelectHover = "select.hover",
|
|
149
132
|
/** Событие клика по объекту. Payload: mesh: Mesh | null */
|
|
150
|
-
SelectClick = "select.click"
|
|
133
|
+
SelectClick = "select.click",
|
|
134
|
+
/** Событие выбора объекта для редактирования. Payload: mode: SelectMode, object: THREE.Object3D | null */
|
|
135
|
+
ToolSelect = "tool.select"
|
|
151
136
|
}
|
|
152
137
|
|
|
153
138
|
/**
|
|
@@ -180,6 +165,13 @@ export declare interface IManager {
|
|
|
180
165
|
export declare interface ISelectManager extends IManager {
|
|
181
166
|
}
|
|
182
167
|
|
|
168
|
+
/**
|
|
169
|
+
* Маркерный интерфейс для менеджеров инструментов.
|
|
170
|
+
* @public
|
|
171
|
+
*/
|
|
172
|
+
export declare interface IToolManager extends IManager {
|
|
173
|
+
}
|
|
174
|
+
|
|
183
175
|
/** @public */
|
|
184
176
|
export declare class ObjLoader {
|
|
185
177
|
/** Позиции вершин */
|
|
@@ -210,18 +202,16 @@ export declare class ObjLoader {
|
|
|
210
202
|
* @public
|
|
211
203
|
*/
|
|
212
204
|
export declare abstract class Renderer {
|
|
213
|
-
/** Экземпляр рендерера OGL */
|
|
214
|
-
protected gl: Renderer_2;
|
|
215
205
|
/** Корневой объект сцены */
|
|
216
|
-
protected scene:
|
|
206
|
+
protected scene: THREE.Scene;
|
|
217
207
|
/** Камера для сцены */
|
|
218
|
-
protected camera:
|
|
208
|
+
protected camera: THREE.PerspectiveCamera;
|
|
209
|
+
/** Экземпляр рендерера Three.js */
|
|
210
|
+
protected renderer: THREE.WebGLRenderer;
|
|
219
211
|
/** HTML-элемент canvas, на котором рендерится сцена */
|
|
220
212
|
protected canvas: HTMLCanvasElement;
|
|
221
|
-
/** Program для настройки рендеринга моделей */
|
|
222
|
-
protected program: Program;
|
|
223
213
|
/** Массив моделей на сцене */
|
|
224
|
-
protected meshes: Mesh[];
|
|
214
|
+
protected meshes: THREE.Mesh[];
|
|
225
215
|
/**
|
|
226
216
|
* Конструктор рендерера
|
|
227
217
|
* @param canvas - HTMLCanvasElement для рендеринга
|
|
@@ -247,12 +237,10 @@ export declare abstract class Renderer {
|
|
|
247
237
|
* Публичный метод для добавления фигуры.
|
|
248
238
|
* @param figure - Данные фигуры: position, normal, uv
|
|
249
239
|
*/
|
|
250
|
-
addFigure(figure: Figure):
|
|
240
|
+
addFigure(figure: Figure): THREE.Mesh;
|
|
251
241
|
/* Excluded from this release type: addMesh */
|
|
252
|
-
/* Excluded from this release type: getContext */
|
|
253
242
|
/* Excluded from this release type: removeMesh */
|
|
254
243
|
/* Excluded from this release type: getMeshes */
|
|
255
|
-
/* Excluded from this release type: getProgram */
|
|
256
244
|
/** Деструктор */
|
|
257
245
|
destroy(): void;
|
|
258
246
|
}
|