@planara/core 1.4.9 → 1.6.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.
Files changed (65) hide show
  1. package/dist/core/editor-renderer.d.ts +28 -12
  2. package/dist/core/editor-renderer.d.ts.map +1 -1
  3. package/dist/core/preview-renderer.d.ts +2 -1
  4. package/dist/core/preview-renderer.d.ts.map +1 -1
  5. package/dist/core/renderer.d.ts +40 -3
  6. package/dist/core/renderer.d.ts.map +1 -1
  7. package/dist/events/editor-events.d.ts +18 -0
  8. package/dist/events/editor-events.d.ts.map +1 -0
  9. package/dist/events/event-bus.d.ts +17 -0
  10. package/dist/events/event-bus.d.ts.map +1 -0
  11. package/dist/events/event-topics.d.ts +12 -0
  12. package/dist/events/event-topics.d.ts.map +1 -0
  13. package/dist/extensions/mesh-extension.d.ts +12 -0
  14. package/dist/extensions/mesh-extension.d.ts.map +1 -0
  15. package/dist/extensions/orbit-extension.d.ts +5 -2
  16. package/dist/extensions/orbit-extension.d.ts.map +1 -1
  17. package/dist/handlers/display/wireframe-handler.d.ts +37 -0
  18. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -0
  19. package/dist/handlers/select/mesh-select-handler.d.ts +25 -0
  20. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -0
  21. package/dist/hub/app-hub.d.ts +7 -0
  22. package/dist/hub/app-hub.d.ts.map +1 -0
  23. package/dist/hub/editor-hub.d.ts +21 -0
  24. package/dist/hub/editor-hub.d.ts.map +1 -0
  25. package/dist/index.cjs.js +52 -7
  26. package/dist/index.d.ts +10 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.es.js +2065 -113
  29. package/dist/index.full.d.ts +315 -0
  30. package/dist/index.public.d.ts +260 -0
  31. package/dist/index.umd.js +52 -7
  32. package/dist/interfaces/api/mesh-api.d.ts +39 -0
  33. package/dist/interfaces/api/mesh-api.d.ts.map +1 -0
  34. package/dist/interfaces/api/renderer-api.d.ts +27 -0
  35. package/dist/interfaces/api/renderer-api.d.ts.map +1 -0
  36. package/dist/interfaces/handler/display-handler.d.ts +13 -0
  37. package/dist/interfaces/handler/display-handler.d.ts.map +1 -0
  38. package/dist/interfaces/handler/handler.d.ts +23 -0
  39. package/dist/interfaces/handler/handler.d.ts.map +1 -0
  40. package/dist/interfaces/handler/select-handler.d.ts +13 -0
  41. package/dist/interfaces/handler/select-handler.d.ts.map +1 -0
  42. package/dist/interfaces/manager/display-manager.d.ts +8 -0
  43. package/dist/interfaces/manager/display-manager.d.ts.map +1 -0
  44. package/dist/interfaces/manager/manager.d.ts +16 -0
  45. package/dist/interfaces/manager/manager.d.ts.map +1 -0
  46. package/dist/interfaces/manager/select-manager.d.ts +8 -0
  47. package/dist/interfaces/manager/select-manager.d.ts.map +1 -0
  48. package/dist/ioc/container.d.ts +5 -0
  49. package/dist/ioc/container.d.ts.map +1 -0
  50. package/dist/loaders/obj-loader.d.ts +8 -7
  51. package/dist/loaders/obj-loader.d.ts.map +1 -1
  52. package/dist/managers/display/display-manager.d.ts +19 -0
  53. package/dist/managers/display/display-manager.d.ts.map +1 -0
  54. package/dist/managers/select/select-manager.d.ts +19 -0
  55. package/dist/managers/select/select-manager.d.ts.map +1 -0
  56. package/dist/tsdoc-metadata.json +11 -0
  57. package/dist/types/camera/camera-position.d.ts +10 -0
  58. package/dist/types/camera/camera-position.d.ts.map +1 -0
  59. package/dist/types/event/select-event-type.d.ts +6 -0
  60. package/dist/types/event/select-event-type.d.ts.map +1 -0
  61. package/dist/utils/program-settings.d.ts +4 -3
  62. package/dist/utils/program-settings.d.ts.map +1 -1
  63. package/dist/utils/renderer-api.d.ts +21 -0
  64. package/dist/utils/renderer-api.d.ts.map +1 -0
  65. package/package.json +17 -4
@@ -0,0 +1,315 @@
1
+ import { Camera } from 'ogl';
2
+ import { DisplayMode } from '@planara/types';
3
+ 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
+ import { SelectMode } from '@planara/types';
12
+ import { Transform } from 'ogl';
13
+
14
+ /**
15
+ * Тип позиции камеры в мире.
16
+ * @public
17
+ */
18
+ export declare type CameraPosition = {
19
+ x: number;
20
+ y: number;
21
+ z: number;
22
+ };
23
+
24
+ /**
25
+ * Создаёт или возвращает готовый экземпляр хаба.
26
+ * @public
27
+ */
28
+ export declare function createAppHub(canvas: HTMLCanvasElement): EditorHub;
29
+
30
+ /**
31
+ * Типы событий редактора.
32
+ * Используются в EventEmitter для типизированной публикации и подписки на события.
33
+ * @public
34
+ */
35
+ export declare type EditorEvents = {
36
+ /** Событие наведения на объект (hover). Payload: объект с mesh или null */
37
+ [EventTopics.SelectHover]: {
38
+ mesh: Mesh;
39
+ } | null;
40
+ /** Событие клика по объекту. Payload: объект с mesh или null */
41
+ [EventTopics.SelectClick]: {
42
+ mesh: Mesh;
43
+ } | null;
44
+ };
45
+
46
+ /**
47
+ * Хаб для управления редактированием
48
+ * @public
49
+ */
50
+ export declare class EditorHub {
51
+ private _displayManager;
52
+ private _selectManager;
53
+ private _renderer;
54
+ constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
55
+ setDisplayMode(mode: DisplayMode): void;
56
+ setSelectMode(mode: SelectMode): void;
57
+ resizeRenderer(): void;
58
+ updateRenderer(): void;
59
+ addFigure(figure: Figure): void;
60
+ destroy(): void;
61
+ }
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
+ /**
73
+ * Рендерер для редактора.
74
+ * Добавляет сетку, оси координат и поддержку Orbit для управления камерой.
75
+ * Наследуется от базового Renderer.
76
+ * @public
77
+ */
78
+ export declare class EditorRenderer extends Renderer {
79
+ private _canvas;
80
+ private _bus;
81
+ /** Orbit-контроллер для управления камерой */
82
+ private _orbit;
83
+ /** Raycast для подсветки моделей при наведении */
84
+ private _raycast;
85
+ /** Курсор мыши для остлеживания наведения на 3D-модель */
86
+ private _mouse;
87
+ /** Были ли зарегистрированы обработчики событий для мыши */
88
+ private _isEventListenersAdded;
89
+ /**
90
+ * Инициализация сцены редактора.
91
+ * Создает сетку, оси координат и orbit-контроллер.
92
+ */
93
+ constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
94
+ /**
95
+ * Обновление состояния рендерера.
96
+ */
97
+ protected update(): void;
98
+ /**
99
+ * Метод для добавления фигуры.
100
+ * Настройка raycast.
101
+ * @param figure - Данные фигуры: position, normal, uv
102
+ */
103
+ addFigure(figure: Figure): EditorMesh;
104
+ /**
105
+ * Устанавливает callback, который будет вызываться перед рендером конкретного меша.
106
+ *
107
+ * @param mesh - Меш, для которого нужно задать callback.
108
+ * @param f - Функция обратного вызова, выполняемая перед рендером меша.
109
+ * @internal
110
+ */
111
+ setMeshBeforeRender(mesh: Mesh, f: MeshRenderCallback): void;
112
+ /**
113
+ * Инициализация обработчиков мыши для raycast
114
+ */
115
+ private initMouseListeners;
116
+ /**
117
+ * Обработчик движения мыши
118
+ */
119
+ private _handleMouseMove;
120
+ /**
121
+ * Обработчик клика мыши
122
+ */
123
+ private _handleMouseClick;
124
+ /**
125
+ * Универсальная логика raycast-события
126
+ */
127
+ private _processRaycastEvent;
128
+ /** Деструктор */
129
+ destroy(): void;
130
+ }
131
+
132
+ /**
133
+ * Событийная шина редактора с топиками.
134
+ * Используется для publish/subscribe без прямых зависимостей.
135
+ * @public
136
+ */
137
+ export declare class EventBus {
138
+ private _emitter;
139
+ constructor();
140
+ /** Публикация события */
141
+ emit<K extends keyof EditorEvents>(event: K, payload: EditorEvents[K]): void;
142
+ /** Подписка на событие */
143
+ on<K extends keyof EditorEvents>(event: K, listener: (payload: EditorEvents[K]) => void): void;
144
+ /** Отписка от события */
145
+ off<K extends keyof EditorEvents>(event: K, listener: (payload: EditorEvents[K]) => void): void;
146
+ }
147
+
148
+ /**
149
+ * Топики событий редактора.
150
+ * Используются для подписки/публикации через EventEmitter.
151
+ * @public
152
+ */
153
+ export declare enum EventTopics {
154
+ /** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
155
+ SelectHover = "select.hover",
156
+ /** Событие клика по объекту. Payload: mesh: Mesh | null */
157
+ SelectClick = "select.click"
158
+ }
159
+
160
+ /**
161
+ * Маркерный интерфейс для менеджеров отображения.
162
+ * @public
163
+ */
164
+ export declare interface IDisplayManager extends IManager {
165
+ }
166
+
167
+ /**
168
+ * Общий интерфейс для всех менеджеров в хабе.
169
+ * Каждый менеджер отвечает за одну фичу.
170
+ * @public
171
+ */
172
+ export declare interface IManager {
173
+ /**
174
+ * Выполняет основное действие менеджера.
175
+ */
176
+ manage(...args: unknown[]): void;
177
+ /**
178
+ * Освобождает ресурсы менеджера.
179
+ */
180
+ destroy(): void;
181
+ }
182
+
183
+ /**
184
+ * Маркерный интерфейс для менеджеров выборки.
185
+ * @public
186
+ */
187
+ export declare interface ISelectManager extends IManager {
188
+ }
189
+
190
+ /** @public */
191
+ export declare class ObjLoader {
192
+ /** Позиции вершин */
193
+ private _positions;
194
+ /** Нормали вершин */
195
+ private _normals;
196
+ /** UV-координаты (опционально) */
197
+ private _uvs;
198
+ private _tmpPositions;
199
+ private _tmpNormals;
200
+ private _tmpUVs;
201
+ /**
202
+ * Загружает OBJ-модель в Figure
203
+ * @param objContent - Строка содержимого .obj файла
204
+ */
205
+ load(objContent: string): Figure;
206
+ /**
207
+ * Обрабатывает строку face (f) и разворачивает индексы в массивы для рендеринга
208
+ */
209
+ private processFaceLine;
210
+ }
211
+
212
+ /**
213
+ * Рендерер для предпросмотра 3D-модели.
214
+ * Настраивает сцену, камеру и орбитальную навигацию (по горизонтали).
215
+ * Наследуется от базового Renderer.
216
+ * @alpha
217
+ */
218
+ export declare class PreviewRenderer extends Renderer {
219
+ /** Orbit-контроллер для управления камерой */
220
+ private _orbit;
221
+ /**
222
+ * Инициализация сцены предпросмотра.
223
+ * @param canvas - HTMLCanvasElement для рендеринга
224
+ */
225
+ constructor(canvas: HTMLCanvasElement);
226
+ /**
227
+ * Обновление состояния рендерера.
228
+ */
229
+ protected update(): void;
230
+ }
231
+
232
+ /**
233
+ * Абстрактный базовый класс рендерера для работы с WebGL через OGL.
234
+ * Отвечает за инициализацию сцены, камеры и цикла рендеринга.
235
+ * @public
236
+ */
237
+ export declare abstract class Renderer {
238
+ /** Экземпляр рендерера OGL */
239
+ protected gl: Renderer_2;
240
+ /** Корневой объект сцены */
241
+ protected scene: Transform;
242
+ /** Камера для сцены */
243
+ protected camera: Camera;
244
+ /** HTML-элемент canvas, на котором рендерится сцена */
245
+ protected canvas: HTMLCanvasElement;
246
+ /** Program для настройки рендеринга моделей */
247
+ protected program: Program;
248
+ /** Массив моделей на сцене */
249
+ protected meshes: Mesh[];
250
+ /**
251
+ * Конструктор рендерера
252
+ * @param canvas - HTMLCanvasElement для рендеринга
253
+ */
254
+ protected constructor(canvas: HTMLCanvasElement);
255
+ /**
256
+ * Обновляет размер рендерера и камеры при изменении размеров canvas.
257
+ */
258
+ resize(): void;
259
+ /**
260
+ * Выполняет рендеринг сцены с текущей камерой.
261
+ */
262
+ protected render(): void;
263
+ /**
264
+ * Метод для обновления логики рендерера.
265
+ */
266
+ protected update(): void;
267
+ /**
268
+ * Запускает основной цикл рендеринга.
269
+ */
270
+ loop(): void;
271
+ /**
272
+ * Публичный метод для добавления фигуры.
273
+ * @param figure - Данные фигуры: position, normal, uv
274
+ */
275
+ addFigure(figure: Figure): EditorMesh;
276
+ /**
277
+ * Добавляет фигуру в сцену и сохраняет его во внутреннем массиве.
278
+ *
279
+ * @param mesh - Фигура для добавления в сцену.
280
+ * @internal
281
+ */
282
+ addMesh(mesh: Mesh): void;
283
+ /**
284
+ * Возвращает WebGL контекст рендерера.
285
+ *
286
+ * @returns Контекст WebGL (OGLRenderingContext) текущей сцены.
287
+ * @internal
288
+ */
289
+ getContext(): OGLRenderingContext_2;
290
+ /**
291
+ * Убирает фигуру со сцены
292
+ *
293
+ * @param mesh - Фигура для удаления со сцены.
294
+ * @internal
295
+ */
296
+ removeMesh(mesh: Mesh): void;
297
+ /**
298
+ * Возвращает список всех фигур, находящихся в сцене.
299
+ *
300
+ * @returns Массив текущих фигур.
301
+ * @internal
302
+ */
303
+ getMeshes(): Mesh[];
304
+ /**
305
+ * Возвращает настройку для рендеринга.
306
+ *
307
+ * @returns Program для настройки рендеринга моделей.
308
+ * @internal
309
+ */
310
+ getProgram(): Program;
311
+ /** Деструктор */
312
+ destroy(): void;
313
+ }
314
+
315
+ export { }
@@ -0,0 +1,260 @@
1
+ import { Camera } from 'ogl';
2
+ import { DisplayMode } from '@planara/types';
3
+ 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
+ import { SelectMode } from '@planara/types';
12
+ import { Transform } from 'ogl';
13
+
14
+ /**
15
+ * Тип позиции камеры в мире.
16
+ * @public
17
+ */
18
+ export declare type CameraPosition = {
19
+ x: number;
20
+ y: number;
21
+ z: number;
22
+ };
23
+
24
+ /**
25
+ * Создаёт или возвращает готовый экземпляр хаба.
26
+ * @public
27
+ */
28
+ export declare function createAppHub(canvas: HTMLCanvasElement): EditorHub;
29
+
30
+ /**
31
+ * Типы событий редактора.
32
+ * Используются в EventEmitter для типизированной публикации и подписки на события.
33
+ * @public
34
+ */
35
+ export declare type EditorEvents = {
36
+ /** Событие наведения на объект (hover). Payload: объект с mesh или null */
37
+ [EventTopics.SelectHover]: {
38
+ mesh: Mesh;
39
+ } | null;
40
+ /** Событие клика по объекту. Payload: объект с mesh или null */
41
+ [EventTopics.SelectClick]: {
42
+ mesh: Mesh;
43
+ } | null;
44
+ };
45
+
46
+ /**
47
+ * Хаб для управления редактированием
48
+ * @public
49
+ */
50
+ export declare class EditorHub {
51
+ private _displayManager;
52
+ private _selectManager;
53
+ private _renderer;
54
+ constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
55
+ setDisplayMode(mode: DisplayMode): void;
56
+ setSelectMode(mode: SelectMode): void;
57
+ resizeRenderer(): void;
58
+ updateRenderer(): void;
59
+ addFigure(figure: Figure): void;
60
+ destroy(): void;
61
+ }
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
+ /**
73
+ * Рендерер для редактора.
74
+ * Добавляет сетку, оси координат и поддержку Orbit для управления камерой.
75
+ * Наследуется от базового Renderer.
76
+ * @public
77
+ */
78
+ export declare class EditorRenderer extends Renderer {
79
+ private _canvas;
80
+ private _bus;
81
+ /** Orbit-контроллер для управления камерой */
82
+ private _orbit;
83
+ /** Raycast для подсветки моделей при наведении */
84
+ private _raycast;
85
+ /** Курсор мыши для остлеживания наведения на 3D-модель */
86
+ private _mouse;
87
+ /** Были ли зарегистрированы обработчики событий для мыши */
88
+ private _isEventListenersAdded;
89
+ /**
90
+ * Инициализация сцены редактора.
91
+ * Создает сетку, оси координат и orbit-контроллер.
92
+ */
93
+ constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
94
+ /**
95
+ * Обновление состояния рендерера.
96
+ */
97
+ protected update(): void;
98
+ /**
99
+ * Метод для добавления фигуры.
100
+ * Настройка raycast.
101
+ * @param figure - Данные фигуры: position, normal, uv
102
+ */
103
+ addFigure(figure: Figure): EditorMesh;
104
+ /* Excluded from this release type: setMeshBeforeRender */
105
+ /**
106
+ * Инициализация обработчиков мыши для raycast
107
+ */
108
+ private initMouseListeners;
109
+ /**
110
+ * Обработчик движения мыши
111
+ */
112
+ private _handleMouseMove;
113
+ /**
114
+ * Обработчик клика мыши
115
+ */
116
+ private _handleMouseClick;
117
+ /**
118
+ * Универсальная логика raycast-события
119
+ */
120
+ private _processRaycastEvent;
121
+ /** Деструктор */
122
+ destroy(): void;
123
+ }
124
+
125
+ /**
126
+ * Событийная шина редактора с топиками.
127
+ * Используется для publish/subscribe без прямых зависимостей.
128
+ * @public
129
+ */
130
+ export declare class EventBus {
131
+ private _emitter;
132
+ constructor();
133
+ /** Публикация события */
134
+ emit<K extends keyof EditorEvents>(event: K, payload: EditorEvents[K]): void;
135
+ /** Подписка на событие */
136
+ on<K extends keyof EditorEvents>(event: K, listener: (payload: EditorEvents[K]) => void): void;
137
+ /** Отписка от события */
138
+ off<K extends keyof EditorEvents>(event: K, listener: (payload: EditorEvents[K]) => void): void;
139
+ }
140
+
141
+ /**
142
+ * Топики событий редактора.
143
+ * Используются для подписки/публикации через EventEmitter.
144
+ * @public
145
+ */
146
+ export declare enum EventTopics {
147
+ /** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
148
+ SelectHover = "select.hover",
149
+ /** Событие клика по объекту. Payload: mesh: Mesh | null */
150
+ SelectClick = "select.click"
151
+ }
152
+
153
+ /**
154
+ * Маркерный интерфейс для менеджеров отображения.
155
+ * @public
156
+ */
157
+ export declare interface IDisplayManager extends IManager {
158
+ }
159
+
160
+ /**
161
+ * Общий интерфейс для всех менеджеров в хабе.
162
+ * Каждый менеджер отвечает за одну фичу.
163
+ * @public
164
+ */
165
+ export declare interface IManager {
166
+ /**
167
+ * Выполняет основное действие менеджера.
168
+ */
169
+ manage(...args: unknown[]): void;
170
+ /**
171
+ * Освобождает ресурсы менеджера.
172
+ */
173
+ destroy(): void;
174
+ }
175
+
176
+ /**
177
+ * Маркерный интерфейс для менеджеров выборки.
178
+ * @public
179
+ */
180
+ export declare interface ISelectManager extends IManager {
181
+ }
182
+
183
+ /** @public */
184
+ export declare class ObjLoader {
185
+ /** Позиции вершин */
186
+ private _positions;
187
+ /** Нормали вершин */
188
+ private _normals;
189
+ /** UV-координаты (опционально) */
190
+ private _uvs;
191
+ private _tmpPositions;
192
+ private _tmpNormals;
193
+ private _tmpUVs;
194
+ /**
195
+ * Загружает OBJ-модель в Figure
196
+ * @param objContent - Строка содержимого .obj файла
197
+ */
198
+ load(objContent: string): Figure;
199
+ /**
200
+ * Обрабатывает строку face (f) и разворачивает индексы в массивы для рендеринга
201
+ */
202
+ private processFaceLine;
203
+ }
204
+
205
+ /* Excluded from this release type: PreviewRenderer */
206
+
207
+ /**
208
+ * Абстрактный базовый класс рендерера для работы с WebGL через OGL.
209
+ * Отвечает за инициализацию сцены, камеры и цикла рендеринга.
210
+ * @public
211
+ */
212
+ export declare abstract class Renderer {
213
+ /** Экземпляр рендерера OGL */
214
+ protected gl: Renderer_2;
215
+ /** Корневой объект сцены */
216
+ protected scene: Transform;
217
+ /** Камера для сцены */
218
+ protected camera: Camera;
219
+ /** HTML-элемент canvas, на котором рендерится сцена */
220
+ protected canvas: HTMLCanvasElement;
221
+ /** Program для настройки рендеринга моделей */
222
+ protected program: Program;
223
+ /** Массив моделей на сцене */
224
+ protected meshes: Mesh[];
225
+ /**
226
+ * Конструктор рендерера
227
+ * @param canvas - HTMLCanvasElement для рендеринга
228
+ */
229
+ protected constructor(canvas: HTMLCanvasElement);
230
+ /**
231
+ * Обновляет размер рендерера и камеры при изменении размеров canvas.
232
+ */
233
+ resize(): void;
234
+ /**
235
+ * Выполняет рендеринг сцены с текущей камерой.
236
+ */
237
+ protected render(): void;
238
+ /**
239
+ * Метод для обновления логики рендерера.
240
+ */
241
+ protected update(): void;
242
+ /**
243
+ * Запускает основной цикл рендеринга.
244
+ */
245
+ loop(): void;
246
+ /**
247
+ * Публичный метод для добавления фигуры.
248
+ * @param figure - Данные фигуры: position, normal, uv
249
+ */
250
+ addFigure(figure: Figure): EditorMesh;
251
+ /* Excluded from this release type: addMesh */
252
+ /* Excluded from this release type: getContext */
253
+ /* Excluded from this release type: removeMesh */
254
+ /* Excluded from this release type: getMeshes */
255
+ /* Excluded from this release type: getProgram */
256
+ /** Деструктор */
257
+ destroy(): void;
258
+ }
259
+
260
+ export { }