@planara/core 3.1.0 → 3.2.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/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 +65 -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 +2024 -1143
- package/dist/index.full.d.ts +214 -46
- package/dist/index.public.d.ts +214 -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.full.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,65 @@ 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 {
|
|
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
|
+
}
|
|
78
|
+
|
|
15
79
|
/**
|
|
16
80
|
* Тип позиции камеры в мире.
|
|
17
81
|
* @public
|
|
@@ -22,6 +86,13 @@ export declare type CameraPosition = {
|
|
|
22
86
|
z: number;
|
|
23
87
|
};
|
|
24
88
|
|
|
89
|
+
/**
|
|
90
|
+
* Инициализирует бенчмарк и возвращает хаб.
|
|
91
|
+
* Вызывать один раз при старте (когда есть canvas).
|
|
92
|
+
* @public
|
|
93
|
+
*/
|
|
94
|
+
export declare const createBenchmarkHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => BenchmarkHub;
|
|
95
|
+
|
|
25
96
|
/**
|
|
26
97
|
* Инициализирует редактор и возвращает хаб.
|
|
27
98
|
* Вызывать один раз при старте (когда есть canvas).
|
|
@@ -63,8 +134,8 @@ export declare class EditorHub implements Disposable_2 {
|
|
|
63
134
|
private _mediator;
|
|
64
135
|
private _store;
|
|
65
136
|
private _exportStore;
|
|
66
|
-
private
|
|
67
|
-
constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore,
|
|
137
|
+
private _worker;
|
|
138
|
+
constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore, _worker: IWorker);
|
|
68
139
|
setDisplayMode(mode: DisplayMode): IResponse | null;
|
|
69
140
|
setSelectMode(mode: SelectMode): IResponse | null;
|
|
70
141
|
setToolMode(mode: ToolType): IResponse | null;
|
|
@@ -228,9 +299,17 @@ export declare enum FeatureType {
|
|
|
228
299
|
/** Выборка */
|
|
229
300
|
Select = 2,
|
|
230
301
|
/** Инструменты */
|
|
231
|
-
Tool = 3
|
|
302
|
+
Tool = 3,
|
|
303
|
+
/** Бенчмарк */
|
|
304
|
+
Benchmark = 4
|
|
232
305
|
}
|
|
233
306
|
|
|
307
|
+
/**
|
|
308
|
+
* Возвращает уже созданный хаб, если бенчмарк инициализирован.
|
|
309
|
+
* @public
|
|
310
|
+
*/
|
|
311
|
+
export declare const getBenchmarkHub: () => BenchmarkHub;
|
|
312
|
+
|
|
234
313
|
/**
|
|
235
314
|
* Возвращает уже созданный хаб, если редактор инициализирован.
|
|
236
315
|
* @public
|
|
@@ -238,7 +317,7 @@ export declare enum FeatureType {
|
|
|
238
317
|
export declare const getEditorHub: () => EditorHub;
|
|
239
318
|
|
|
240
319
|
/**
|
|
241
|
-
* Возвращает уже созданный хаб, если
|
|
320
|
+
* Возвращает уже созданный хаб, если вьювер инициализирован.
|
|
242
321
|
* @public
|
|
243
322
|
*/
|
|
244
323
|
export declare const getViewerHub: () => ViewerHub;
|
|
@@ -251,43 +330,6 @@ export declare interface ICommand {
|
|
|
251
330
|
payload: unknown[];
|
|
252
331
|
}
|
|
253
332
|
|
|
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
333
|
/**
|
|
292
334
|
* Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Display фичей,
|
|
293
335
|
* необходим для корректного взаимодействия между группами фичей.
|
|
@@ -363,6 +405,64 @@ export declare interface IMediator extends Disposable_2 {
|
|
|
363
405
|
send(command: ICommand): IResponse | null;
|
|
364
406
|
}
|
|
365
407
|
|
|
408
|
+
/**
|
|
409
|
+
* Хранилище метрик benchmark-тестирования.
|
|
410
|
+
*
|
|
411
|
+
* @public
|
|
412
|
+
* @interface
|
|
413
|
+
*/
|
|
414
|
+
export declare interface IMetricsStore {
|
|
415
|
+
/**
|
|
416
|
+
* Очищает сохраненные метрики и текущие live-значения.
|
|
417
|
+
*
|
|
418
|
+
* @public
|
|
419
|
+
*/
|
|
420
|
+
clear(): void;
|
|
421
|
+
/**
|
|
422
|
+
* Сохраняет метрики успешно выполненного benchmark-теста.
|
|
423
|
+
*
|
|
424
|
+
* @param type - тип benchmark-теста
|
|
425
|
+
* @param metrics - собранные метрики производительности
|
|
426
|
+
*
|
|
427
|
+
* @public
|
|
428
|
+
*/
|
|
429
|
+
addMetrics(type: BenchmarkTestType, metrics: BenchmarkMetrics): void;
|
|
430
|
+
/**
|
|
431
|
+
* Обновляет текущие live-метрики.
|
|
432
|
+
*
|
|
433
|
+
* @param metrics - текущие метрики производительности
|
|
434
|
+
*
|
|
435
|
+
* @public
|
|
436
|
+
*/
|
|
437
|
+
setCurrentMetrics(metrics: BenchmarkMetrics | null): void;
|
|
438
|
+
/**
|
|
439
|
+
* Возвращает текущие live-метрики.
|
|
440
|
+
*
|
|
441
|
+
* @returns Текущие метрики или `null`, если измерение не выполняется
|
|
442
|
+
*
|
|
443
|
+
* @public
|
|
444
|
+
*/
|
|
445
|
+
getCurrentMetrics(): BenchmarkMetrics | null;
|
|
446
|
+
/**
|
|
447
|
+
* Регистрирует слушатель обновления live-метрик.
|
|
448
|
+
*
|
|
449
|
+
* @param listener - обработчик обновления метрик
|
|
450
|
+
*
|
|
451
|
+
* @returns Функция отписки
|
|
452
|
+
*
|
|
453
|
+
* @public
|
|
454
|
+
*/
|
|
455
|
+
subscribe(listener: MetricsListener): () => void;
|
|
456
|
+
/**
|
|
457
|
+
* Возвращает отчет по успешно выполненным benchmark-тестам.
|
|
458
|
+
*
|
|
459
|
+
* @returns Отчет benchmark-тестирования
|
|
460
|
+
*
|
|
461
|
+
* @public
|
|
462
|
+
*/
|
|
463
|
+
getReport(): BenchmarkReport;
|
|
464
|
+
}
|
|
465
|
+
|
|
366
466
|
/**
|
|
367
467
|
* Интерфейс для объектов, которые могут быть отрисованы.
|
|
368
468
|
*
|
|
@@ -528,6 +628,25 @@ export declare interface IRendererDomAccess {
|
|
|
528
628
|
getDomElement(): HTMLElement;
|
|
529
629
|
}
|
|
530
630
|
|
|
631
|
+
/**
|
|
632
|
+
* API доступа к метрикам WebGL-рендерера.
|
|
633
|
+
*
|
|
634
|
+
* @remarks
|
|
635
|
+
* Предоставляет только статистику рендеринга без доступа к самому renderer.
|
|
636
|
+
* Используется модулями диагностики и сбора метрик.
|
|
637
|
+
*
|
|
638
|
+
* @public
|
|
639
|
+
* @interface
|
|
640
|
+
*/
|
|
641
|
+
export declare interface IRendererInfoAccess {
|
|
642
|
+
/**
|
|
643
|
+
* Возвращает текущую статистику рендерера.
|
|
644
|
+
*
|
|
645
|
+
* @returns Метрики WebGL-рендера за текущий кадр
|
|
646
|
+
*/
|
|
647
|
+
getRendererInfo(): RendererInfoMetrics;
|
|
648
|
+
}
|
|
649
|
+
|
|
531
650
|
/**
|
|
532
651
|
* Низкоуровневый доступ к сцене рендерера.
|
|
533
652
|
*
|
|
@@ -647,6 +766,46 @@ export declare interface IToolStore {
|
|
|
647
766
|
export declare interface ITransformStore extends ISelectStore, IToolStore {
|
|
648
767
|
}
|
|
649
768
|
|
|
769
|
+
/**
|
|
770
|
+
* Интерфейс для воркера, управляющего жизненным циклом модулей.
|
|
771
|
+
*
|
|
772
|
+
* @remarks
|
|
773
|
+
* Контроллер отвечает за:
|
|
774
|
+
* - инициализацию модулей (`IRuntimeModule`)
|
|
775
|
+
* - запуск цикла рендеринга
|
|
776
|
+
* - обновление модулей каждый кадр (`IUpdatableModule`)
|
|
777
|
+
* - рендеринг модулей (`IRenderableModule`)
|
|
778
|
+
* - остановку и очистку ресурсов
|
|
779
|
+
*
|
|
780
|
+
* @public
|
|
781
|
+
* @interface
|
|
782
|
+
*/
|
|
783
|
+
export declare interface IWorker extends Disposable_2 {
|
|
784
|
+
/**
|
|
785
|
+
* Запускает воркер.
|
|
786
|
+
*
|
|
787
|
+
* @remarks
|
|
788
|
+
* Инициализирует все модули и запускает цикл рендеринга.
|
|
789
|
+
*
|
|
790
|
+
* @public
|
|
791
|
+
* @method
|
|
792
|
+
*/
|
|
793
|
+
start(): void;
|
|
794
|
+
/**
|
|
795
|
+
* Останавливает воркер.
|
|
796
|
+
*
|
|
797
|
+
* @remarks
|
|
798
|
+
* Останавливает цикл рендеринга и освобождает ресурсы.
|
|
799
|
+
*
|
|
800
|
+
* @public
|
|
801
|
+
* @method
|
|
802
|
+
*/
|
|
803
|
+
stop(): void;
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
/** @public */
|
|
807
|
+
export declare type MetricsListener = (metrics: BenchmarkMetrics | null) => void;
|
|
808
|
+
|
|
650
809
|
/** @public */
|
|
651
810
|
export declare class ObjLoader {
|
|
652
811
|
/** Позиции вершин */
|
|
@@ -693,7 +852,7 @@ export declare class ObjLoader {
|
|
|
693
852
|
* @public
|
|
694
853
|
* @class
|
|
695
854
|
*/
|
|
696
|
-
export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable, Disposable_2 {
|
|
855
|
+
export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRendererInfoAccess, IRenderable, Disposable_2 {
|
|
697
856
|
private readonly _config;
|
|
698
857
|
/**
|
|
699
858
|
* Корневой объект сцены Three.js.
|
|
@@ -747,7 +906,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
747
906
|
* Вызывается при изменении размеров canvas (например, при ресайзе окна браузера).
|
|
748
907
|
*
|
|
749
908
|
* @example
|
|
750
|
-
* ```
|
|
909
|
+
* ```ts
|
|
751
910
|
* window.addEventListener('resize', () => renderer.resize());
|
|
752
911
|
* ```
|
|
753
912
|
*
|
|
@@ -786,7 +945,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
786
945
|
* **Важно:** вызывать метод только один раз.
|
|
787
946
|
*
|
|
788
947
|
* @example
|
|
789
|
-
* ```
|
|
948
|
+
* ```ts
|
|
790
949
|
* renderer.loop();
|
|
791
950
|
* ```
|
|
792
951
|
*
|
|
@@ -799,6 +958,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
799
958
|
getCanvas(): HTMLCanvasElement;
|
|
800
959
|
getDomElement(): HTMLElement;
|
|
801
960
|
getScene(): THREE.Scene;
|
|
961
|
+
getRendererInfo(): RendererInfoMetrics;
|
|
802
962
|
/**
|
|
803
963
|
* Освобождает ресурсы рендерера.
|
|
804
964
|
*
|
|
@@ -812,6 +972,14 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
|
|
|
812
972
|
dispose(): Promise<void> | void;
|
|
813
973
|
}
|
|
814
974
|
|
|
975
|
+
/** @public */
|
|
976
|
+
export declare type RendererInfoMetrics = {
|
|
977
|
+
drawCalls: number;
|
|
978
|
+
triangles: number;
|
|
979
|
+
geometries: number;
|
|
980
|
+
textures: number;
|
|
981
|
+
};
|
|
982
|
+
|
|
815
983
|
/** @public */
|
|
816
984
|
export declare type SelectedListener = (obj: THREE.Object3D | null) => void;
|
|
817
985
|
|
|
@@ -825,8 +993,8 @@ export declare type TransformListener = () => void;
|
|
|
825
993
|
export declare class ViewerHub implements Disposable_2 {
|
|
826
994
|
private _renderer;
|
|
827
995
|
private _mediator;
|
|
828
|
-
private
|
|
829
|
-
constructor(_renderer: Renderer, _mediator: IMediator,
|
|
996
|
+
private _worker;
|
|
997
|
+
constructor(_renderer: Renderer, _mediator: IMediator, _worker: IWorker);
|
|
830
998
|
addFigure(figure: FigureType): IResponse | null;
|
|
831
999
|
loadFigure(content: string): IResponse | null;
|
|
832
1000
|
loadScene(content: string): IResponse | null;
|