@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
|
@@ -55,6 +55,7 @@ export interface ISceneApi {
|
|
|
55
55
|
* Удаляет объект со сцены.
|
|
56
56
|
*
|
|
57
57
|
* @param object - объект Three.js для удаления
|
|
58
|
+
* @param dispose - нужно ли освободить ресурсы объекта и его дочерних элементов
|
|
58
59
|
*
|
|
59
60
|
* @remarks
|
|
60
61
|
* Объект перестаёт отображаться на сцене.
|
|
@@ -67,7 +68,7 @@ export interface ISceneApi {
|
|
|
67
68
|
* @internal
|
|
68
69
|
* @method
|
|
69
70
|
*/
|
|
70
|
-
removeFromScene(object: THREE.Object3D): void;
|
|
71
|
+
removeFromScene(object: THREE.Object3D, dispose?: boolean): void;
|
|
71
72
|
/**
|
|
72
73
|
* Добавляет объект в сцену и (опционально) выставляет ему слой.
|
|
73
74
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/scene-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;;;OAYG;IACH,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEzC
|
|
1
|
+
{"version":3,"file":"scene-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/scene-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;;;OAYG;IACH,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEzC;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEjE;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IHandler } from './handler';
|
|
2
|
+
import { BenchmarkTestType } from '@planara/types';
|
|
3
|
+
/**
|
|
4
|
+
* Маркерный интерфейс для всех Benchmark-хендлеров.
|
|
5
|
+
* Используется только для DI.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Расширяет {@link IHandler} и добавляет поле `mode`
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
* @interface
|
|
12
|
+
*/
|
|
13
|
+
export interface IBenchmarkHandler extends IHandler {
|
|
14
|
+
/**
|
|
15
|
+
* Режим тестирования, за который отвечает хендлер.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
* @member
|
|
19
|
+
*/
|
|
20
|
+
mode: BenchmarkTestType;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=benchmark-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/benchmark-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD;;;;;OAKG;IACH,IAAI,EAAE,iBAAiB,CAAC;CACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/benchmark-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Модуль, поддерживающий временное включение и отключение пользовательского взаимодействия.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Используется для модулей, которые обрабатывают ввод пользователя
|
|
6
|
+
* или реагируют на действия в сцене. Отключение не освобождает ресурсы
|
|
7
|
+
* и не удаляет обработчики событий, а только приостанавливает интерактивную логику.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
* @interface
|
|
11
|
+
*/
|
|
12
|
+
export interface IInteractiveModule {
|
|
13
|
+
/**
|
|
14
|
+
* Включает или отключает пользовательское взаимодействие модуля.
|
|
15
|
+
*
|
|
16
|
+
* @param enabled - `true`, если взаимодействие должно быть включено
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
* @method
|
|
20
|
+
*/
|
|
21
|
+
setInteractionEnabled(enabled: boolean): void;
|
|
22
|
+
/**
|
|
23
|
+
* Возвращает текущее состояние пользовательского взаимодействия модуля.
|
|
24
|
+
*
|
|
25
|
+
* @returns `true`, если взаимодействие включено
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
* @method
|
|
29
|
+
*/
|
|
30
|
+
isInteractionEnabled(): boolean;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=interactive-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-module.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/interactive-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;OAOG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE9C;;;;;;;OAOG;IACH,oBAAoB,IAAI,OAAO,CAAC;CACjC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IRuntimeModule } from '.';
|
|
2
|
+
/**
|
|
3
|
+
* Модуль наблюдения за состоянием runtime.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Используется для модулей, которым необходимо получать уведомление
|
|
7
|
+
* во время основного цикла приложения без изменения сцены и выполнения рендеринга.
|
|
8
|
+
*
|
|
9
|
+
* Такие модули могут собирать метрики, отслеживать состояние runtime
|
|
10
|
+
* или выполнять диагностические действия.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
* @interface
|
|
14
|
+
*/
|
|
15
|
+
export interface IObserverModule extends IRuntimeModule {
|
|
16
|
+
/**
|
|
17
|
+
* Выполняет наблюдение за текущим состоянием runtime.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* Метод вызывается внутри основного цикла приложения.
|
|
21
|
+
* Конкретная реализация сама определяет, какие данные необходимо обработать.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
observe(): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=observer-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-module.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/observer-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { BenchmarkMetrics, BenchmarkReport, BenchmarkTestType } from '@planara/types';
|
|
2
|
+
import { MetricsListener } from '../../types/listener';
|
|
3
|
+
/**
|
|
4
|
+
* Хранилище метрик benchmark-тестирования.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
* @interface
|
|
8
|
+
*/
|
|
9
|
+
export interface IMetricsStore {
|
|
10
|
+
/**
|
|
11
|
+
* Очищает сохраненные метрики и текущие live-значения.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
clear(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Сохраняет метрики успешно выполненного benchmark-теста.
|
|
18
|
+
*
|
|
19
|
+
* @param type - тип benchmark-теста
|
|
20
|
+
* @param metrics - собранные метрики производительности
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
addMetrics(type: BenchmarkTestType, metrics: BenchmarkMetrics): void;
|
|
25
|
+
/**
|
|
26
|
+
* Обновляет текущие live-метрики.
|
|
27
|
+
*
|
|
28
|
+
* @param metrics - текущие метрики производительности
|
|
29
|
+
*
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
setCurrentMetrics(metrics: BenchmarkMetrics | null): void;
|
|
33
|
+
/**
|
|
34
|
+
* Возвращает текущие live-метрики.
|
|
35
|
+
*
|
|
36
|
+
* @returns Текущие метрики или `null`, если измерение не выполняется
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
getCurrentMetrics(): BenchmarkMetrics | null;
|
|
41
|
+
/**
|
|
42
|
+
* Регистрирует слушатель обновления live-метрик.
|
|
43
|
+
*
|
|
44
|
+
* @param listener - обработчик обновления метрик
|
|
45
|
+
*
|
|
46
|
+
* @returns Функция отписки
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
subscribe(listener: MetricsListener): () => void;
|
|
51
|
+
/**
|
|
52
|
+
* Возвращает отчет по успешно выполненным benchmark-тестам.
|
|
53
|
+
*
|
|
54
|
+
* @returns Отчет benchmark-тестирования
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
getReport(): BenchmarkReport;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=metrics-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/metrics-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;;;OAOG;IACH,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAErE;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,iBAAiB,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAE7C;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAAC;IAEjD;;;;;;OAMG;IACH,SAAS,IAAI,eAAe,CAAC;CAC9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Disposable } from 'tsyringe';
|
|
2
2
|
/**
|
|
3
|
-
* Интерфейс для
|
|
3
|
+
* Интерфейс для воркера, управляющего жизненным циклом модулей.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* Контроллер отвечает за:
|
|
@@ -13,9 +13,9 @@ import { Disposable } from 'tsyringe';
|
|
|
13
13
|
* @public
|
|
14
14
|
* @interface
|
|
15
15
|
*/
|
|
16
|
-
export interface
|
|
16
|
+
export interface IWorker extends Disposable {
|
|
17
17
|
/**
|
|
18
|
-
* Запускает
|
|
18
|
+
* Запускает воркер.
|
|
19
19
|
*
|
|
20
20
|
* @remarks
|
|
21
21
|
* Инициализирует все модули и запускает цикл рендеринга.
|
|
@@ -25,7 +25,7 @@ export interface IController extends Disposable {
|
|
|
25
25
|
*/
|
|
26
26
|
start(): void;
|
|
27
27
|
/**
|
|
28
|
-
* Останавливает
|
|
28
|
+
* Останавливает воркер.
|
|
29
29
|
*
|
|
30
30
|
* @remarks
|
|
31
31
|
* Останавливает цикл рендеринга и освобождает ресурсы.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/worker/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,OAAQ,SAAQ,UAAU;IACzC;;;;;;;;OAQG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FeatureType } from '../../types/feature';
|
|
2
|
+
import { BenchmarkTestType } from '@planara/types';
|
|
3
|
+
import { IBenchmarkManager } from '../../interfaces/manager';
|
|
4
|
+
import { IBenchmarkHandler } from '../../interfaces/handler';
|
|
5
|
+
/**
|
|
6
|
+
* Менеджер benchmark-тестирования.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Отвечает за выбор и запуск хендлера benchmark-теста по указанному режиму.
|
|
10
|
+
* При смене режима выполняет откат предыдущего хендлера, сохраняет текущий
|
|
11
|
+
* режим тестирования и передает управление соответствующему хендлеру.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
* @class
|
|
15
|
+
*/
|
|
16
|
+
export declare class BenchmarkManager implements IBenchmarkManager {
|
|
17
|
+
/** Тип фичи, за которую отвечает менеджер. */
|
|
18
|
+
readonly type: FeatureType;
|
|
19
|
+
/** Текущий режим тестирования */
|
|
20
|
+
private _currentMode;
|
|
21
|
+
/** Хендлеры, которые управляют тестированием */
|
|
22
|
+
private readonly _handlers;
|
|
23
|
+
constructor(handlers: IBenchmarkHandler[]);
|
|
24
|
+
manage(mode: BenchmarkTestType, durationMs: number): void;
|
|
25
|
+
dispose(): Promise<void> | void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=benchmark-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/benchmark/benchmark-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,sBAAsB,CAAC;AAExE;;;;;;;;;;GAUG;AACH,qBACa,gBAAiB,YAAW,iBAAiB;IACxD,8CAA8C;IAC9C,SAAgB,IAAI,EAAE,WAAW,CAAyB;IAE1D,iCAAiC;IACjC,OAAO,CAAC,YAAY,CAA8C;IAElE,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;gBAEV,QAAQ,EAAE,iBAAiB,EAAE;IAIzE,MAAM,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAWzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CASvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/benchmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
package/dist/managers/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAkC,MAAM,
|
|
1
|
+
{"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAkC,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,qBACa,aAAc,YAAW,cAAc;IAW5B,OAAO,CAAC,SAAS;IAEd,OAAO,CAAC,MAAM;IAZvC,4BAA4B;IAC5B,OAAO,CAAC,YAAY,CAA+B;IAEnD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IAEtD,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAsB;gBAGhB,SAAS,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EAAE,EACxB,MAAM,EAAE,YAAY;IAUrD,+BAA+B;IACxB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAYrC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAMd;IAEF,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAMd;IAEF,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ITransformApi, IControlsStateApi, ISceneApi, IDomApi, ICameraApi } from '../interfaces/api';
|
|
2
|
-
import { IUpdatableModule } from '../interfaces/module';
|
|
2
|
+
import { IUpdatableModule, IInteractiveModule } from '../interfaces/module';
|
|
3
3
|
import { ToolType } from '@planara/types';
|
|
4
4
|
import { TransformListener } from '../types/listener';
|
|
5
5
|
import * as THREE from 'three';
|
|
@@ -13,6 +13,7 @@ import * as THREE from 'three';
|
|
|
13
13
|
*
|
|
14
14
|
* Модуль реализует:
|
|
15
15
|
* - `IRuntimeModule` — жизненный цикл (init/dispose)
|
|
16
|
+
* - `IInteractiveModule` — управление пользовательским вводом
|
|
16
17
|
* - `IUpdatableModule` — обновление состояния каждый кадр (update)
|
|
17
18
|
* - `IControlsApi` — публичное API для управления контролами
|
|
18
19
|
* - `IControlsStateApi` — публичное API для получения состояния контролов
|
|
@@ -25,18 +26,40 @@ import * as THREE from 'three';
|
|
|
25
26
|
* @internal
|
|
26
27
|
* @class
|
|
27
28
|
*/
|
|
28
|
-
export declare class ControlsModule implements IUpdatableModule, ITransformApi, IControlsStateApi {
|
|
29
|
+
export declare class ControlsModule implements IUpdatableModule, IInteractiveModule, ITransformApi, IControlsStateApi {
|
|
29
30
|
private _cameraApi;
|
|
30
31
|
private _domApi;
|
|
31
32
|
private _sceneApi;
|
|
32
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Orbit-контроллер для управления камерой
|
|
35
|
+
*
|
|
36
|
+
* @private
|
|
37
|
+
* @member
|
|
38
|
+
*/
|
|
33
39
|
private _orbit;
|
|
34
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Transform-контроллер для редактирования
|
|
42
|
+
*
|
|
43
|
+
* @private
|
|
44
|
+
* @member
|
|
45
|
+
*/
|
|
35
46
|
private _transform;
|
|
36
47
|
private _transformHelper;
|
|
37
48
|
private _transformListeners;
|
|
38
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Были ли инициализированы обработчики событий (hover/click)
|
|
51
|
+
*
|
|
52
|
+
* @private
|
|
53
|
+
* @member
|
|
54
|
+
*/
|
|
39
55
|
private _isEventListenersAdded;
|
|
56
|
+
/**
|
|
57
|
+
* Доступно ли пользовательское взаимодействие с контроллерами
|
|
58
|
+
*
|
|
59
|
+
* @private
|
|
60
|
+
* @member
|
|
61
|
+
*/
|
|
62
|
+
private _isInteractionEnabled;
|
|
40
63
|
constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _sceneApi: ISceneApi);
|
|
41
64
|
init(): void;
|
|
42
65
|
attachTransform(object: THREE.Object3D): void;
|
|
@@ -46,6 +69,8 @@ export declare class ControlsModule implements IUpdatableModule, ITransformApi,
|
|
|
46
69
|
onTransformChange(callback: TransformListener): () => void;
|
|
47
70
|
isOrbitInteracting(): boolean;
|
|
48
71
|
isTransformDragging(): boolean;
|
|
72
|
+
setInteractionEnabled(enabled: boolean): void;
|
|
73
|
+
isInteractionEnabled(): boolean;
|
|
49
74
|
private readonly _handlePointerDown;
|
|
50
75
|
private readonly _handlePointerMove;
|
|
51
76
|
private readonly _handlePointerUp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls-module.d.ts","sourceRoot":"","sources":["../../src/modules/controls-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"controls-module.d.ts","sourceRoot":"","sources":["../../src/modules/controls-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,cACX,YAAW,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB;IAqCzD,OAAO,CAAC,UAAU;IACrB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,SAAS;IArCxC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAA+B;IAE7C;;;;;OAKG;IACH,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAE3D;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB,CAAS;IAEvC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB,CAAQ;gBAGL,UAAU,EAAE,UAAU,EACzB,OAAO,EAAE,OAAO,EACd,SAAS,EAAE,SAAS;IAG5C,IAAI,IAAI,IAAI;IAkBZ,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAI7C,eAAe,IAAI,IAAI;IAIvB,MAAM,IAAI,IAAI;IAId,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAItC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK1D,kBAAkB,IAAI,OAAO;IAI7B,mBAAmB,IAAI,OAAO;IAI9B,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAkB7C,oBAAoB,IAAI,OAAO;IAItC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAIjC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAIjC;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAI/B;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAIlC;IAEF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAMrC;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAIlC;IAEF,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAiB3B,iCAAiC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAiCvC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRenderableModule } from '../interfaces/module';
|
|
1
|
+
import { IInteractiveModule, IRenderableModule } from '../interfaces/module';
|
|
2
2
|
import { ICameraApi, IDomApi, IRendererApi } from '../interfaces/api';
|
|
3
3
|
/**
|
|
4
4
|
* Модуль для отображения вспомогательных гизмо (осей, ориентации камеры и т.д.).
|
|
@@ -17,13 +17,27 @@ import { ICameraApi, IDomApi, IRendererApi } from '../interfaces/api';
|
|
|
17
17
|
* @internal
|
|
18
18
|
* @class
|
|
19
19
|
*/
|
|
20
|
-
export declare class GizmoModule implements IRenderableModule {
|
|
20
|
+
export declare class GizmoModule implements IRenderableModule, IInteractiveModule {
|
|
21
21
|
private _cameraApi;
|
|
22
22
|
private _domApi;
|
|
23
23
|
private _rendererApi;
|
|
24
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Gizmo для управления отображением perspective camera
|
|
26
|
+
*
|
|
27
|
+
* @private
|
|
28
|
+
* @member
|
|
29
|
+
*/
|
|
25
30
|
private _cameraGizmo;
|
|
31
|
+
/**
|
|
32
|
+
* Доступно ли пользовательское взаимодействие с контроллерами
|
|
33
|
+
*
|
|
34
|
+
* @private
|
|
35
|
+
* @member
|
|
36
|
+
*/
|
|
37
|
+
private _isInteractionEnabled;
|
|
26
38
|
constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _rendererApi: IRendererApi);
|
|
39
|
+
setInteractionEnabled(enabled: boolean): void;
|
|
40
|
+
isInteractionEnabled(): boolean;
|
|
27
41
|
init(): void;
|
|
28
42
|
render(): void;
|
|
29
43
|
/** Освобождение ресурсов модуля */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gizmo-module.d.ts","sourceRoot":"","sources":["../../src/modules/gizmo-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gizmo-module.d.ts","sourceRoot":"","sources":["../../src/modules/gizmo-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI1E;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,WAAY,YAAW,iBAAiB,EAAE,kBAAkB;IAkB/C,OAAO,CAAC,UAAU;IACrB,OAAO,CAAC,OAAO;IACP,OAAO,CAAC,YAAY;IAnBjD;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAgC;IAEpD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB,CAAQ;gBAGL,UAAU,EAAE,UAAU,EACzB,OAAO,EAAE,OAAO,EACR,YAAY,EAAE,YAAY;IAGxD,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK7C,oBAAoB,IAAI,OAAO;IAI/B,IAAI,IAAI,IAAI;IAaZ,MAAM,IAAI,IAAI;IASrB,mCAAmC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
|
package/dist/modules/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { BenchmarkMetrics } from '@planara/types';
|
|
2
|
+
import { MetricsListener } from '../types/listener';
|
|
3
|
+
import { IObserverModule } from '../interfaces/module';
|
|
4
|
+
import { IMetricsApi, IRendererInfoApi } from '../interfaces/api';
|
|
5
|
+
/**
|
|
6
|
+
* Модуль сбора метрик производительности runtime.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Модуль вызывается в фазе наблюдения основного цикла приложения.
|
|
10
|
+
* Он не изменяет сцену и не выполняет рендеринг, а только собирает
|
|
11
|
+
* показатели производительности текущего прогона.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
* @class
|
|
15
|
+
*/
|
|
16
|
+
export declare class MetricsModule implements IObserverModule, IMetricsApi {
|
|
17
|
+
private readonly _rendererInfoApi;
|
|
18
|
+
/** Выполняется ли сбор метрик */
|
|
19
|
+
private _isRunning;
|
|
20
|
+
/** Время запуска сбора метрик */
|
|
21
|
+
private _startedAt;
|
|
22
|
+
/** Время остановки сбора метрик */
|
|
23
|
+
private _stoppedAt;
|
|
24
|
+
/** Время предыдущего кадра */
|
|
25
|
+
private _lastFrameAt;
|
|
26
|
+
/** Количество обработанных кадров */
|
|
27
|
+
private _frames;
|
|
28
|
+
/** Суммарное время кадров */
|
|
29
|
+
private _frameTimeSum;
|
|
30
|
+
/** Максимальное время кадра */
|
|
31
|
+
private _maxFrameTime;
|
|
32
|
+
/** Количество объектов в тестовой сцене */
|
|
33
|
+
private _objectsCount;
|
|
34
|
+
/** Максимальное количество draw calls за время измерения */
|
|
35
|
+
private _drawCalls;
|
|
36
|
+
/** Максимальное количество треугольников за время измерения */
|
|
37
|
+
private _triangles;
|
|
38
|
+
/** Максимальное количество геометрий в памяти рендерера */
|
|
39
|
+
private _geometries;
|
|
40
|
+
/** Максимальное количество текстур в памяти рендерера */
|
|
41
|
+
private _textures;
|
|
42
|
+
/** Используемый объем памяти в мегабайтах */
|
|
43
|
+
private _memoryUsedMb;
|
|
44
|
+
/** Слушатели обновления метрик */
|
|
45
|
+
private readonly _listeners;
|
|
46
|
+
/** Время последнего уведомления слушателей */
|
|
47
|
+
private _lastNotifyAt;
|
|
48
|
+
/** Минимальный интервал уведомлений слушателей */
|
|
49
|
+
private readonly _notifyIntervalMs;
|
|
50
|
+
/**
|
|
51
|
+
* Конструктор модуля метрик.
|
|
52
|
+
*
|
|
53
|
+
* @param _rendererInfoApi - доступ к информации рендерера за кадр
|
|
54
|
+
*
|
|
55
|
+
* @internal
|
|
56
|
+
* @constructor
|
|
57
|
+
*/
|
|
58
|
+
constructor(_rendererInfoApi: IRendererInfoApi);
|
|
59
|
+
/**
|
|
60
|
+
* Инициализирует модуль.
|
|
61
|
+
*
|
|
62
|
+
* @internal
|
|
63
|
+
* @method
|
|
64
|
+
*/
|
|
65
|
+
init(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Запускает сбор метрик.
|
|
68
|
+
*
|
|
69
|
+
* @param objectsCount - количество объектов, участвующих в текущем тесте
|
|
70
|
+
*
|
|
71
|
+
* @internal
|
|
72
|
+
* @method
|
|
73
|
+
*/
|
|
74
|
+
start(objectsCount?: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Останавливает сбор метрик.
|
|
77
|
+
*
|
|
78
|
+
* @internal
|
|
79
|
+
* @method
|
|
80
|
+
*/
|
|
81
|
+
stop(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Сбрасывает накопленные метрики.
|
|
84
|
+
*
|
|
85
|
+
* @internal
|
|
86
|
+
* @method
|
|
87
|
+
*/
|
|
88
|
+
reset(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Выполняет наблюдение за текущим состоянием runtime.
|
|
91
|
+
*
|
|
92
|
+
* @remarks
|
|
93
|
+
* Метод вызывается каждый кадр в отдельной фазе render loop.
|
|
94
|
+
*
|
|
95
|
+
* @internal
|
|
96
|
+
* @method
|
|
97
|
+
*/
|
|
98
|
+
observe(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Возвращает текущие или последние собранные метрики.
|
|
101
|
+
*
|
|
102
|
+
* @returns Метрики производительности
|
|
103
|
+
*
|
|
104
|
+
* @internal
|
|
105
|
+
* @method
|
|
106
|
+
*/
|
|
107
|
+
getMetrics(): BenchmarkMetrics;
|
|
108
|
+
/**
|
|
109
|
+
* Регистрирует слушатель изменения метрик.
|
|
110
|
+
*
|
|
111
|
+
* @param listener - обработчик обновления метрик
|
|
112
|
+
*
|
|
113
|
+
* @returns Функция отписки
|
|
114
|
+
*
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
subscribe(listener: MetricsListener): () => void;
|
|
118
|
+
/**
|
|
119
|
+
* Освобождает ресурсы модуля.
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
* @method
|
|
123
|
+
*/
|
|
124
|
+
dispose(): Promise<void> | void;
|
|
125
|
+
/**
|
|
126
|
+
* Возвращает фактическую длительность сбора метрик.
|
|
127
|
+
*
|
|
128
|
+
* @returns Длительность измерения в миллисекундах
|
|
129
|
+
*
|
|
130
|
+
* @private
|
|
131
|
+
* @method
|
|
132
|
+
*/
|
|
133
|
+
private _getDurationMs;
|
|
134
|
+
/**
|
|
135
|
+
* Сохраняет статистику WebGL-рендерера.
|
|
136
|
+
*
|
|
137
|
+
* @private
|
|
138
|
+
* @method
|
|
139
|
+
*/
|
|
140
|
+
private _captureRendererInfo;
|
|
141
|
+
/**
|
|
142
|
+
* Сохраняет информацию об используемой памяти, если она доступна.
|
|
143
|
+
*
|
|
144
|
+
* @private
|
|
145
|
+
* @method
|
|
146
|
+
*/
|
|
147
|
+
private _captureMemoryInfo;
|
|
148
|
+
/**
|
|
149
|
+
* Уведомляет слушателей об обновлении метрик.
|
|
150
|
+
*
|
|
151
|
+
* @private
|
|
152
|
+
* @method
|
|
153
|
+
*/
|
|
154
|
+
private _notify;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=metrics-module.d.ts.map
|