@planara/core 3.1.0 → 3.2.1
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/renderer.d.ts +6 -4
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/handlers/benchmark/base-benchmark-handler.d.ts +81 -0
- package/dist/handlers/benchmark/base-benchmark-handler.d.ts.map +1 -0
- package/dist/handlers/benchmark/heavy-benchmark-handler.d.ts +33 -0
- package/dist/handlers/benchmark/heavy-benchmark-handler.d.ts.map +1 -0
- package/dist/handlers/benchmark/index.d.ts +6 -0
- package/dist/handlers/benchmark/index.d.ts.map +1 -0
- package/dist/handlers/benchmark/light-benchmark-handler.d.ts +33 -0
- package/dist/handlers/benchmark/light-benchmark-handler.d.ts.map +1 -0
- package/dist/handlers/benchmark/medium-benchmark-handler.d.ts +33 -0
- package/dist/handlers/benchmark/medium-benchmark-handler.d.ts.map +1 -0
- package/dist/handlers/benchmark/mixed-benchmark-handler.d.ts +37 -0
- package/dist/handlers/benchmark/mixed-benchmark-handler.d.ts.map +1 -0
- package/dist/handlers/select/edge-select-handler.d.ts +1 -1
- package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/face-select-handler.d.ts +1 -1
- package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/mesh-select-handler.d.ts +1 -1
- package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
- package/dist/handlers/select/vertex-select-handler.d.ts +1 -1
- package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
- package/dist/hub/benchmark-hub.d.ts +67 -0
- package/dist/hub/benchmark-hub.d.ts.map +1 -0
- package/dist/hub/editor-hub.d.ts +3 -3
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/hub/index.d.ts +13 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/viewer-hub.d.ts +3 -3
- package/dist/hub/viewer-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +18 -18
- package/dist/index.d.ts +13 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +2028 -1144
- package/dist/index.full.d.ts +215 -46
- package/dist/index.public.d.ts +215 -46
- package/dist/index.umd.js +18 -18
- package/dist/interfaces/api/index.d.ts +3 -0
- package/dist/interfaces/api/index.d.ts.map +1 -1
- package/dist/interfaces/api/interaction-api.d.ts +26 -0
- package/dist/interfaces/api/interaction-api.d.ts.map +1 -0
- package/dist/interfaces/api/metrics-api.d.ts +49 -0
- package/dist/interfaces/api/metrics-api.d.ts.map +1 -0
- package/dist/interfaces/api/renderer/index.d.ts +1 -0
- package/dist/interfaces/api/renderer/index.d.ts.map +1 -1
- package/dist/interfaces/api/renderer/renderer-info-access.d.ts +20 -0
- package/dist/interfaces/api/renderer/renderer-info-access.d.ts.map +1 -0
- package/dist/interfaces/api/renderer-info-api.d.ts +19 -0
- package/dist/interfaces/api/renderer-info-api.d.ts.map +1 -0
- package/dist/interfaces/api/scene-api.d.ts +2 -1
- package/dist/interfaces/api/scene-api.d.ts.map +1 -1
- package/dist/interfaces/handler/benchmark-handler.d.ts +22 -0
- package/dist/interfaces/handler/benchmark-handler.d.ts.map +1 -0
- package/dist/interfaces/handler/index.d.ts +1 -0
- package/dist/interfaces/handler/index.d.ts.map +1 -1
- package/dist/interfaces/manager/benchmark-manager.d.ts +10 -0
- package/dist/interfaces/manager/benchmark-manager.d.ts.map +1 -0
- package/dist/interfaces/manager/index.d.ts +1 -0
- package/dist/interfaces/manager/index.d.ts.map +1 -1
- package/dist/interfaces/module/index.d.ts +2 -0
- package/dist/interfaces/module/index.d.ts.map +1 -1
- package/dist/interfaces/module/interactive-module.d.ts +32 -0
- package/dist/interfaces/module/interactive-module.d.ts.map +1 -0
- package/dist/interfaces/module/observer-module.d.ts +27 -0
- package/dist/interfaces/module/observer-module.d.ts.map +1 -0
- package/dist/interfaces/store/index.d.ts +1 -0
- package/dist/interfaces/store/index.d.ts.map +1 -1
- package/dist/interfaces/store/metrics-store.d.ts +60 -0
- package/dist/interfaces/store/metrics-store.d.ts.map +1 -0
- package/dist/interfaces/{controller → worker}/index.d.ts +4 -4
- package/dist/interfaces/worker/index.d.ts.map +1 -0
- package/dist/managers/benchmark/benchmark-manager.d.ts +27 -0
- package/dist/managers/benchmark/benchmark-manager.d.ts.map +1 -0
- package/dist/managers/benchmark/index.d.ts +2 -0
- package/dist/managers/benchmark/index.d.ts.map +1 -0
- package/dist/managers/index.d.ts +1 -0
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/select/select-manager.d.ts +1 -1
- package/dist/managers/select/select-manager.d.ts.map +1 -1
- package/dist/modules/controls-module.d.ts +30 -5
- package/dist/modules/controls-module.d.ts.map +1 -1
- package/dist/modules/gizmo-module.d.ts +17 -3
- package/dist/modules/gizmo-module.d.ts.map +1 -1
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/metrics-module.d.ts +156 -0
- package/dist/modules/metrics-module.d.ts.map +1 -0
- package/dist/modules/raycast-module.d.ts +21 -4
- package/dist/modules/raycast-module.d.ts.map +1 -1
- package/dist/{api → shared/api}/modules/controls-state-api.d.ts +1 -1
- package/dist/shared/api/modules/controls-state-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/modules/index.d.ts +1 -0
- package/dist/shared/api/modules/index.d.ts.map +1 -0
- package/dist/shared/api/modules/interaction-api.d.ts +21 -0
- package/dist/shared/api/modules/interaction-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/modules/mesh-api.d.ts +1 -1
- package/dist/shared/api/modules/mesh-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/modules/raycast-api.d.ts +1 -1
- package/dist/shared/api/modules/raycast-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/modules/transform-api.d.ts +2 -2
- package/dist/shared/api/modules/transform-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/renderer/camera-api.d.ts +2 -2
- package/dist/shared/api/renderer/camera-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/renderer/dom-api.d.ts +2 -2
- package/dist/shared/api/renderer/dom-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/renderer/index.d.ts +1 -0
- package/dist/shared/api/renderer/index.d.ts.map +1 -0
- package/dist/shared/api/renderer/renderer-info-api.d.ts +25 -0
- package/dist/shared/api/renderer/renderer-info-api.d.ts.map +1 -0
- package/dist/{api → shared/api}/renderer/scene-api.d.ts +21 -3
- package/dist/shared/api/renderer/scene-api.d.ts.map +1 -0
- package/dist/shared/constants/benchmark.d.ts +5 -0
- package/dist/shared/constants/benchmark.d.ts.map +1 -0
- package/dist/shared/constants/colors.d.ts.map +1 -0
- package/dist/shared/constants/figure-geometries.d.ts.map +1 -0
- package/dist/{constants → shared/constants}/index.d.ts +1 -0
- package/dist/shared/constants/index.d.ts.map +1 -0
- package/dist/shared/constants/layers.d.ts.map +1 -0
- package/dist/shared/constants/messages.d.ts.map +1 -0
- package/dist/shared/constants/threshold.d.ts.map +1 -0
- package/dist/shared/decorators/index.d.ts.map +1 -0
- package/dist/{decorators → shared/decorators}/use-policy.d.ts +1 -1
- package/dist/shared/decorators/use-policy.d.ts.map +1 -0
- package/dist/{decorators → shared/decorators}/use-validator.d.ts +1 -1
- package/dist/shared/decorators/use-validator.d.ts.map +1 -0
- package/dist/shared/errors/index.d.ts.map +1 -0
- package/dist/shared/errors/policy-error.d.ts.map +1 -0
- package/dist/shared/errors/validation-error.d.ts.map +1 -0
- package/dist/shared/events/editor-events.d.ts.map +1 -0
- package/dist/shared/events/event-bus.d.ts.map +1 -0
- package/dist/shared/events/event-topics.d.ts.map +1 -0
- package/dist/shared/events/index.d.ts.map +1 -0
- package/dist/shared/ioc/container.d.ts +10 -0
- package/dist/shared/ioc/container.d.ts.map +1 -0
- package/dist/shared/loaders/obj-loader.d.ts.map +1 -0
- package/dist/shared/policy/index.d.ts.map +1 -0
- package/dist/{policy → shared/policy}/tool-policy.d.ts +2 -2
- package/dist/shared/policy/tool-policy.d.ts.map +1 -0
- package/dist/shared/utils/default-renderer-config.d.ts.map +1 -0
- package/dist/shared/utils/helpers.d.ts.map +1 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/validators/index.d.ts.map +1 -0
- package/dist/{validators → shared/validators}/obj-validator.d.ts +1 -1
- package/dist/shared/validators/obj-validator.d.ts.map +1 -0
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/metrics-store.d.ts +32 -0
- package/dist/store/metrics-store.d.ts.map +1 -0
- package/dist/types/feature/feature-type.d.ts +3 -1
- package/dist/types/feature/feature-type.d.ts.map +1 -1
- package/dist/types/listener/index.d.ts +1 -0
- package/dist/types/listener/index.d.ts.map +1 -1
- package/dist/types/listener/metrics-listener.d.ts +4 -0
- package/dist/types/listener/metrics-listener.d.ts.map +1 -0
- package/dist/types/renderer/index.d.ts +2 -0
- package/dist/types/renderer/index.d.ts.map +1 -0
- package/dist/types/renderer/renderer-info-metrics.d.ts +8 -0
- package/dist/types/renderer/renderer-info-metrics.d.ts.map +1 -0
- package/dist/workers/index.d.ts +2 -0
- package/dist/workers/index.d.ts.map +1 -0
- package/dist/{controllers/renderer-controller.d.ts → workers/renderer-worker.d.ts} +10 -7
- package/dist/workers/renderer-worker.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/api/modules/controls-state-api.d.ts.map +0 -1
- package/dist/api/modules/index.d.ts.map +0 -1
- package/dist/api/modules/mesh-api.d.ts.map +0 -1
- package/dist/api/modules/raycast-api.d.ts.map +0 -1
- package/dist/api/modules/transform-api.d.ts.map +0 -1
- package/dist/api/renderer/camera-api.d.ts.map +0 -1
- package/dist/api/renderer/dom-api.d.ts.map +0 -1
- package/dist/api/renderer/index.d.ts.map +0 -1
- package/dist/api/renderer/scene-api.d.ts.map +0 -1
- package/dist/constants/colors.d.ts.map +0 -1
- package/dist/constants/figure-geometries.d.ts.map +0 -1
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/layers.d.ts.map +0 -1
- package/dist/constants/messages.d.ts.map +0 -1
- package/dist/constants/threshold.d.ts.map +0 -1
- package/dist/controllers/index.d.ts +0 -2
- package/dist/controllers/index.d.ts.map +0 -1
- package/dist/controllers/renderer-controller.d.ts.map +0 -1
- package/dist/decorators/index.d.ts.map +0 -1
- package/dist/decorators/use-policy.d.ts.map +0 -1
- package/dist/decorators/use-validator.d.ts.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/policy-error.d.ts.map +0 -1
- package/dist/errors/validation-error.d.ts.map +0 -1
- package/dist/events/editor-events.d.ts.map +0 -1
- package/dist/events/event-bus.d.ts.map +0 -1
- package/dist/events/event-topics.d.ts.map +0 -1
- package/dist/events/index.d.ts.map +0 -1
- package/dist/interfaces/controller/index.d.ts.map +0 -1
- package/dist/ioc/container.d.ts +0 -7
- package/dist/ioc/container.d.ts.map +0 -1
- package/dist/loaders/obj-loader.d.ts.map +0 -1
- package/dist/policy/index.d.ts.map +0 -1
- package/dist/policy/tool-policy.d.ts.map +0 -1
- package/dist/utils/default-renderer-config.d.ts.map +0 -1
- package/dist/utils/helpers.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/validators/index.d.ts.map +0 -1
- package/dist/validators/obj-validator.d.ts.map +0 -1
- /package/dist/{constants → shared/constants}/colors.d.ts +0 -0
- /package/dist/{constants → shared/constants}/figure-geometries.d.ts +0 -0
- /package/dist/{constants → shared/constants}/layers.d.ts +0 -0
- /package/dist/{constants → shared/constants}/messages.d.ts +0 -0
- /package/dist/{constants → shared/constants}/threshold.d.ts +0 -0
- /package/dist/{decorators → shared/decorators}/index.d.ts +0 -0
- /package/dist/{errors → shared/errors}/index.d.ts +0 -0
- /package/dist/{errors → shared/errors}/policy-error.d.ts +0 -0
- /package/dist/{errors → shared/errors}/validation-error.d.ts +0 -0
- /package/dist/{events → shared/events}/editor-events.d.ts +0 -0
- /package/dist/{events → shared/events}/event-bus.d.ts +0 -0
- /package/dist/{events → shared/events}/event-topics.d.ts +0 -0
- /package/dist/{events → shared/events}/index.d.ts +0 -0
- /package/dist/{loaders → shared/loaders}/obj-loader.d.ts +0 -0
- /package/dist/{policy → shared/policy}/index.d.ts +0 -0
- /package/dist/{utils → shared/utils}/default-renderer-config.d.ts +0 -0
- /package/dist/{utils → shared/utils}/helpers.d.ts +0 -0
- /package/dist/{utils → shared/utils}/index.d.ts +0 -0
- /package/dist/{validators → shared/validators}/index.d.ts +0 -0
package/dist/index.public.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { BenchmarkConfig } from '@planara/types';
|
|
2
|
+
import { BenchmarkMetrics } from '@planara/types';
|
|
3
|
+
import { BenchmarkReport } from '@planara/types';
|
|
4
|
+
import { BenchmarkRunResult } from '@planara/types';
|
|
5
|
+
import { BenchmarkTestType } from '@planara/types';
|
|
1
6
|
import { DisplayMode } from '@planara/types';
|
|
2
7
|
import { Disposable as Disposable_2 } from 'tsyringe';
|
|
3
8
|
import { ExportResult } from '@planara/types';
|
|
@@ -12,6 +17,66 @@ import { SelectMode } from '@planara/types';
|
|
|
12
17
|
import * as THREE from 'three';
|
|
13
18
|
import { ToolType } from '@planara/types';
|
|
14
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Хаб benchmark-тестирования.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* Предоставляет публичный API для запуска benchmark-тестов,
|
|
25
|
+
* получения итогового отчета и подписки на live-обновления метрик.
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
* @class
|
|
29
|
+
*/
|
|
30
|
+
export declare class BenchmarkHub implements Disposable_2 {
|
|
31
|
+
private _renderer;
|
|
32
|
+
private readonly _mediator;
|
|
33
|
+
private readonly _store;
|
|
34
|
+
private _worker;
|
|
35
|
+
constructor(_renderer: Renderer, _mediator: IMediator, _store: IMetricsStore, _worker: IWorker);
|
|
36
|
+
/**
|
|
37
|
+
* Запускает benchmark-тестирование.
|
|
38
|
+
*
|
|
39
|
+
* @param config - конфигурация benchmark-тестирования
|
|
40
|
+
*
|
|
41
|
+
* @returns Краткий результат выполнения запрошенных тестов
|
|
42
|
+
*
|
|
43
|
+
* @public
|
|
44
|
+
* @method
|
|
45
|
+
*/
|
|
46
|
+
run(config: BenchmarkConfig): BenchmarkRunResult;
|
|
47
|
+
/**
|
|
48
|
+
* Возвращает отчет по успешно выполненным benchmark-тестам.
|
|
49
|
+
*
|
|
50
|
+
* @returns Отчет benchmark-тестирования
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
* @method
|
|
54
|
+
*/
|
|
55
|
+
getReport(): BenchmarkReport;
|
|
56
|
+
/**
|
|
57
|
+
* Регистрирует слушатель обновления live-метрик.
|
|
58
|
+
*
|
|
59
|
+
* @param listener - обработчик обновления метрик
|
|
60
|
+
*
|
|
61
|
+
* @returns Функция отписки от обновлений
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
* @method
|
|
65
|
+
*/
|
|
66
|
+
subscribeMetrics(listener: MetricsListener): () => void;
|
|
67
|
+
resizeRenderer(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Запускает редактор.
|
|
70
|
+
* Вызывается после создания хаба.
|
|
71
|
+
*/
|
|
72
|
+
start(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Останавливает редактор.
|
|
75
|
+
*/
|
|
76
|
+
stop(): void;
|
|
77
|
+
dispose(): Promise<void> | void;
|
|
78
|
+
}
|
|
79
|
+
|
|
15
80
|
/**
|
|
16
81
|
* Тип позиции камеры в мире.
|
|
17
82
|
* @public
|
|
@@ -22,6 +87,13 @@ export declare type CameraPosition = {
|
|
|
22
87
|
z: number;
|
|
23
88
|
};
|
|
24
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Инициализирует бенчмарк и возвращает хаб.
|
|
92
|
+
* Вызывать один раз при старте (когда есть canvas).
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
export declare const createBenchmarkHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => BenchmarkHub;
|
|
96
|
+
|
|
25
97
|
/**
|
|
26
98
|
* Инициализирует редактор и возвращает хаб.
|
|
27
99
|
* Вызывать один раз при старте (когда есть canvas).
|
|
@@ -63,8 +135,8 @@ export declare class EditorHub implements Disposable_2 {
|
|
|
63
135
|
private _mediator;
|
|
64
136
|
private _store;
|
|
65
137
|
private _exportStore;
|
|
66
|
-
private
|
|
67
|
-
constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore,
|
|
138
|
+
private _worker;
|
|
139
|
+
constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore, _worker: IWorker);
|
|
68
140
|
setDisplayMode(mode: DisplayMode): IResponse | null;
|
|
69
141
|
setSelectMode(mode: SelectMode): IResponse | null;
|
|
70
142
|
setToolMode(mode: ToolType): IResponse | null;
|
|
@@ -228,9 +300,17 @@ export declare enum FeatureType {
|
|
|
228
300
|
/** Выборка */
|
|
229
301
|
Select = 2,
|
|
230
302
|
/** Инструменты */
|
|
231
|
-
Tool = 3
|
|
303
|
+
Tool = 3,
|
|
304
|
+
/** Бенчмарк */
|
|
305
|
+
Benchmark = 4
|
|
232
306
|
}
|
|
233
307
|
|
|
308
|
+
/**
|
|
309
|
+
* Возвращает уже созданный хаб, если бенчмарк инициализирован.
|
|
310
|
+
* @public
|
|
311
|
+
*/
|
|
312
|
+
export declare const getBenchmarkHub: () => BenchmarkHub;
|
|
313
|
+
|
|
234
314
|
/**
|
|
235
315
|
* Возвращает уже созданный хаб, если редактор инициализирован.
|
|
236
316
|
* @public
|
|
@@ -238,7 +318,7 @@ export declare enum FeatureType {
|
|
|
238
318
|
export declare const getEditorHub: () => EditorHub;
|
|
239
319
|
|
|
240
320
|
/**
|
|
241
|
-
* Возвращает уже созданный хаб, если
|
|
321
|
+
* Возвращает уже созданный хаб, если вьювер инициализирован.
|
|
242
322
|
* @public
|
|
243
323
|
*/
|
|
244
324
|
export declare const getViewerHub: () => ViewerHub;
|
|
@@ -251,43 +331,6 @@ export declare interface ICommand {
|
|
|
251
331
|
payload: unknown[];
|
|
252
332
|
}
|
|
253
333
|
|
|
254
|
-
/**
|
|
255
|
-
* Интерфейс для контроллера, управляющего жизненным циклом модулей.
|
|
256
|
-
*
|
|
257
|
-
* @remarks
|
|
258
|
-
* Контроллер отвечает за:
|
|
259
|
-
* - инициализацию модулей (`IRuntimeModule`)
|
|
260
|
-
* - запуск цикла рендеринга
|
|
261
|
-
* - обновление модулей каждый кадр (`IUpdatableModule`)
|
|
262
|
-
* - рендеринг модулей (`IRenderableModule`)
|
|
263
|
-
* - остановку и очистку ресурсов
|
|
264
|
-
*
|
|
265
|
-
* @public
|
|
266
|
-
* @interface
|
|
267
|
-
*/
|
|
268
|
-
export declare interface IController extends Disposable_2 {
|
|
269
|
-
/**
|
|
270
|
-
* Запускает контроллер.
|
|
271
|
-
*
|
|
272
|
-
* @remarks
|
|
273
|
-
* Инициализирует все модули и запускает цикл рендеринга.
|
|
274
|
-
*
|
|
275
|
-
* @public
|
|
276
|
-
* @method
|
|
277
|
-
*/
|
|
278
|
-
start(): void;
|
|
279
|
-
/**
|
|
280
|
-
* Останавливает контроллер.
|
|
281
|
-
*
|
|
282
|
-
* @remarks
|
|
283
|
-
* Останавливает цикл рендеринга и освобождает ресурсы.
|
|
284
|
-
*
|
|
285
|
-
* @public
|
|
286
|
-
* @method
|
|
287
|
-
*/
|
|
288
|
-
stop(): void;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
334
|
/**
|
|
292
335
|
* Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Display фичей,
|
|
293
336
|
* необходим для корректного взаимодействия между группами фичей.
|
|
@@ -363,6 +406,64 @@ export declare interface IMediator extends Disposable_2 {
|
|
|
363
406
|
send(command: ICommand): IResponse | null;
|
|
364
407
|
}
|
|
365
408
|
|
|
409
|
+
/**
|
|
410
|
+
* Хранилище метрик benchmark-тестирования.
|
|
411
|
+
*
|
|
412
|
+
* @public
|
|
413
|
+
* @interface
|
|
414
|
+
*/
|
|
415
|
+
export declare interface IMetricsStore {
|
|
416
|
+
/**
|
|
417
|
+
* Очищает сохраненные метрики и текущие live-значения.
|
|
418
|
+
*
|
|
419
|
+
* @public
|
|
420
|
+
*/
|
|
421
|
+
clear(): void;
|
|
422
|
+
/**
|
|
423
|
+
* Сохраняет метрики успешно выполненного benchmark-теста.
|
|
424
|
+
*
|
|
425
|
+
* @param type - тип benchmark-теста
|
|
426
|
+
* @param metrics - собранные метрики производительности
|
|
427
|
+
*
|
|
428
|
+
* @public
|
|
429
|
+
*/
|
|
430
|
+
addMetrics(type: BenchmarkTestType, metrics: BenchmarkMetrics): void;
|
|
431
|
+
/**
|
|
432
|
+
* Обновляет текущие live-метрики.
|
|
433
|
+
*
|
|
434
|
+
* @param metrics - текущие метрики производительности
|
|
435
|
+
*
|
|
436
|
+
* @public
|
|
437
|
+
*/
|
|
438
|
+
setCurrentMetrics(metrics: BenchmarkMetrics | null): void;
|
|
439
|
+
/**
|
|
440
|
+
* Возвращает текущие live-метрики.
|
|
441
|
+
*
|
|
442
|
+
* @returns Текущие метрики или `null`, если измерение не выполняется
|
|
443
|
+
*
|
|
444
|
+
* @public
|
|
445
|
+
*/
|
|
446
|
+
getCurrentMetrics(): BenchmarkMetrics | null;
|
|
447
|
+
/**
|
|
448
|
+
* Регистрирует слушатель обновления live-метрик.
|
|
449
|
+
*
|
|
450
|
+
* @param listener - обработчик обновления метрик
|
|
451
|
+
*
|
|
452
|
+
* @returns Функция отписки
|
|
453
|
+
*
|
|
454
|
+
* @public
|
|
455
|
+
*/
|
|
456
|
+
subscribe(listener: MetricsListener): () => void;
|
|
457
|
+
/**
|
|
458
|
+
* Возвращает отчет по успешно выполненным benchmark-тестам.
|
|
459
|
+
*
|
|
460
|
+
* @returns Отчет benchmark-тестирования
|
|
461
|
+
*
|
|
462
|
+
* @public
|
|
463
|
+
*/
|
|
464
|
+
getReport(): BenchmarkReport;
|
|
465
|
+
}
|
|
466
|
+
|
|
366
467
|
/**
|
|
367
468
|
* Интерфейс для объектов, которые могут быть отрисованы.
|
|
368
469
|
*
|
|
@@ -528,6 +629,25 @@ export declare interface IRendererDomAccess {
|
|
|
528
629
|
getDomElement(): HTMLElement;
|
|
529
630
|
}
|
|
530
631
|
|
|
632
|
+
/**
|
|
633
|
+
* API доступа к метрикам WebGL-рендерера.
|
|
634
|
+
*
|
|
635
|
+
* @remarks
|
|
636
|
+
* Предоставляет только статистику рендеринга без доступа к самому renderer.
|
|
637
|
+
* Используется модулями диагностики и сбора метрик.
|
|
638
|
+
*
|
|
639
|
+
* @public
|
|
640
|
+
* @interface
|
|
641
|
+
*/
|
|
642
|
+
export declare interface IRendererInfoAccess {
|
|
643
|
+
/**
|
|
644
|
+
* Возвращает текущую статистику рендерера.
|
|
645
|
+
*
|
|
646
|
+
* @returns Метрики WebGL-рендера за текущий кадр
|
|
647
|
+
*/
|
|
648
|
+
getRendererInfo(): RendererInfoMetrics;
|
|
649
|
+
}
|
|
650
|
+
|
|
531
651
|
/**
|
|
532
652
|
* Низкоуровневый доступ к сцене рендерера.
|
|
533
653
|
*
|
|
@@ -647,6 +767,46 @@ export declare interface IToolStore {
|
|
|
647
767
|
export declare interface ITransformStore extends ISelectStore, IToolStore {
|
|
648
768
|
}
|
|
649
769
|
|
|
770
|
+
/**
|
|
771
|
+
* Интерфейс для воркера, управляющего жизненным циклом модулей.
|
|
772
|
+
*
|
|
773
|
+
* @remarks
|
|
774
|
+
* Контроллер отвечает за:
|
|
775
|
+
* - инициализацию модулей (`IRuntimeModule`)
|
|
776
|
+
* - запуск цикла рендеринга
|
|
777
|
+
* - обновление модулей каждый кадр (`IUpdatableModule`)
|
|
778
|
+
* - рендеринг модулей (`IRenderableModule`)
|
|
779
|
+
* - остановку и очистку ресурсов
|
|
780
|
+
*
|
|
781
|
+
* @public
|
|
782
|
+
* @interface
|
|
783
|
+
*/
|
|
784
|
+
export declare interface IWorker extends Disposable_2 {
|
|
785
|
+
/**
|
|
786
|
+
* Запускает воркер.
|
|
787
|
+
*
|
|
788
|
+
* @remarks
|
|
789
|
+
* Инициализирует все модули и запускает цикл рендеринга.
|
|
790
|
+
*
|
|
791
|
+
* @public
|
|
792
|
+
* @method
|
|
793
|
+
*/
|
|
794
|
+
start(): void;
|
|
795
|
+
/**
|
|
796
|
+
* Останавливает воркер.
|
|
797
|
+
*
|
|
798
|
+
* @remarks
|
|
799
|
+
* Останавливает цикл рендеринга и освобождает ресурсы.
|
|
800
|
+
*
|
|
801
|
+
* @public
|
|
802
|
+
* @method
|
|
803
|
+
*/
|
|
804
|
+
stop(): void;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
/** @public */
|
|
808
|
+
export declare type MetricsListener = (metrics: BenchmarkMetrics | null) => void;
|
|
809
|
+
|
|
650
810
|
/** @public */
|
|
651
811
|
export declare class ObjLoader {
|
|
652
812
|
/** Позиции вершин */
|
|
@@ -693,7 +853,7 @@ export declare class ObjLoader {
|
|
|
693
853
|
* @public
|
|
694
854
|
* @class
|
|
695
855
|
*/
|
|
696
|
-
export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable, Disposable_2 {
|
|
856
|
+
export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRendererInfoAccess, IRenderable, Disposable_2 {
|
|
697
857
|
private readonly _config;
|
|
698
858
|
/**
|
|
699
859
|
* Корневой объект сцены Three.js.
|
|
@@ -747,7 +907,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
747
907
|
* Вызывается при изменении размеров canvas (например, при ресайзе окна браузера).
|
|
748
908
|
*
|
|
749
909
|
* @example
|
|
750
|
-
* ```
|
|
910
|
+
* ```ts
|
|
751
911
|
* window.addEventListener('resize', () => renderer.resize());
|
|
752
912
|
* ```
|
|
753
913
|
*
|
|
@@ -786,7 +946,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
786
946
|
* **Важно:** вызывать метод только один раз.
|
|
787
947
|
*
|
|
788
948
|
* @example
|
|
789
|
-
* ```
|
|
949
|
+
* ```ts
|
|
790
950
|
* renderer.loop();
|
|
791
951
|
* ```
|
|
792
952
|
*
|
|
@@ -799,6 +959,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
799
959
|
getCanvas(): HTMLCanvasElement;
|
|
800
960
|
getDomElement(): HTMLElement;
|
|
801
961
|
getScene(): THREE.Scene;
|
|
962
|
+
getRendererInfo(): RendererInfoMetrics;
|
|
802
963
|
/**
|
|
803
964
|
* Освобождает ресурсы рендерера.
|
|
804
965
|
*
|
|
@@ -812,6 +973,14 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
812
973
|
dispose(): Promise<void> | void;
|
|
813
974
|
}
|
|
814
975
|
|
|
976
|
+
/** @public */
|
|
977
|
+
export declare type RendererInfoMetrics = {
|
|
978
|
+
drawCalls: number;
|
|
979
|
+
triangles: number;
|
|
980
|
+
geometries: number;
|
|
981
|
+
textures: number;
|
|
982
|
+
};
|
|
983
|
+
|
|
815
984
|
/** @public */
|
|
816
985
|
export declare type SelectedListener = (obj: THREE.Object3D | null) => void;
|
|
817
986
|
|
|
@@ -825,8 +994,8 @@ export declare type TransformListener = () => void;
|
|
|
825
994
|
export declare class ViewerHub implements Disposable_2 {
|
|
826
995
|
private _renderer;
|
|
827
996
|
private _mediator;
|
|
828
|
-
private
|
|
829
|
-
constructor(_renderer: Renderer, _mediator: IMediator,
|
|
997
|
+
private _worker;
|
|
998
|
+
constructor(_renderer: Renderer, _mediator: IMediator, _worker: IWorker);
|
|
830
999
|
addFigure(figure: FigureType): IResponse | null;
|
|
831
1000
|
loadFigure(content: string): IResponse | null;
|
|
832
1001
|
loadScene(content: string): IResponse | null;
|