@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.
Files changed (221) hide show
  1. package/dist/core/renderer.d.ts +6 -4
  2. package/dist/core/renderer.d.ts.map +1 -1
  3. package/dist/handlers/benchmark/base-benchmark-handler.d.ts +81 -0
  4. package/dist/handlers/benchmark/base-benchmark-handler.d.ts.map +1 -0
  5. package/dist/handlers/benchmark/heavy-benchmark-handler.d.ts +33 -0
  6. package/dist/handlers/benchmark/heavy-benchmark-handler.d.ts.map +1 -0
  7. package/dist/handlers/benchmark/index.d.ts +6 -0
  8. package/dist/handlers/benchmark/index.d.ts.map +1 -0
  9. package/dist/handlers/benchmark/light-benchmark-handler.d.ts +33 -0
  10. package/dist/handlers/benchmark/light-benchmark-handler.d.ts.map +1 -0
  11. package/dist/handlers/benchmark/medium-benchmark-handler.d.ts +33 -0
  12. package/dist/handlers/benchmark/medium-benchmark-handler.d.ts.map +1 -0
  13. package/dist/handlers/benchmark/mixed-benchmark-handler.d.ts +37 -0
  14. package/dist/handlers/benchmark/mixed-benchmark-handler.d.ts.map +1 -0
  15. package/dist/handlers/select/edge-select-handler.d.ts +1 -1
  16. package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
  17. package/dist/handlers/select/face-select-handler.d.ts +1 -1
  18. package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
  19. package/dist/handlers/select/mesh-select-handler.d.ts +1 -1
  20. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  21. package/dist/handlers/select/vertex-select-handler.d.ts +1 -1
  22. package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
  23. package/dist/hub/benchmark-hub.d.ts +65 -0
  24. package/dist/hub/benchmark-hub.d.ts.map +1 -0
  25. package/dist/hub/editor-hub.d.ts +3 -3
  26. package/dist/hub/editor-hub.d.ts.map +1 -1
  27. package/dist/hub/index.d.ts +13 -1
  28. package/dist/hub/index.d.ts.map +1 -1
  29. package/dist/hub/viewer-hub.d.ts +3 -3
  30. package/dist/hub/viewer-hub.d.ts.map +1 -1
  31. package/dist/index.cjs.js +18 -18
  32. package/dist/index.d.ts +13 -20
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.es.js +2024 -1143
  35. package/dist/index.full.d.ts +214 -46
  36. package/dist/index.public.d.ts +214 -46
  37. package/dist/index.umd.js +18 -18
  38. package/dist/interfaces/api/index.d.ts +3 -0
  39. package/dist/interfaces/api/index.d.ts.map +1 -1
  40. package/dist/interfaces/api/interaction-api.d.ts +26 -0
  41. package/dist/interfaces/api/interaction-api.d.ts.map +1 -0
  42. package/dist/interfaces/api/metrics-api.d.ts +49 -0
  43. package/dist/interfaces/api/metrics-api.d.ts.map +1 -0
  44. package/dist/interfaces/api/renderer/index.d.ts +1 -0
  45. package/dist/interfaces/api/renderer/index.d.ts.map +1 -1
  46. package/dist/interfaces/api/renderer/renderer-info-access.d.ts +20 -0
  47. package/dist/interfaces/api/renderer/renderer-info-access.d.ts.map +1 -0
  48. package/dist/interfaces/api/renderer-info-api.d.ts +19 -0
  49. package/dist/interfaces/api/renderer-info-api.d.ts.map +1 -0
  50. package/dist/interfaces/api/scene-api.d.ts +2 -1
  51. package/dist/interfaces/api/scene-api.d.ts.map +1 -1
  52. package/dist/interfaces/handler/benchmark-handler.d.ts +22 -0
  53. package/dist/interfaces/handler/benchmark-handler.d.ts.map +1 -0
  54. package/dist/interfaces/handler/index.d.ts +1 -0
  55. package/dist/interfaces/handler/index.d.ts.map +1 -1
  56. package/dist/interfaces/manager/benchmark-manager.d.ts +10 -0
  57. package/dist/interfaces/manager/benchmark-manager.d.ts.map +1 -0
  58. package/dist/interfaces/manager/index.d.ts +1 -0
  59. package/dist/interfaces/manager/index.d.ts.map +1 -1
  60. package/dist/interfaces/module/index.d.ts +2 -0
  61. package/dist/interfaces/module/index.d.ts.map +1 -1
  62. package/dist/interfaces/module/interactive-module.d.ts +32 -0
  63. package/dist/interfaces/module/interactive-module.d.ts.map +1 -0
  64. package/dist/interfaces/module/observer-module.d.ts +27 -0
  65. package/dist/interfaces/module/observer-module.d.ts.map +1 -0
  66. package/dist/interfaces/store/index.d.ts +1 -0
  67. package/dist/interfaces/store/index.d.ts.map +1 -1
  68. package/dist/interfaces/store/metrics-store.d.ts +60 -0
  69. package/dist/interfaces/store/metrics-store.d.ts.map +1 -0
  70. package/dist/interfaces/{controller → worker}/index.d.ts +4 -4
  71. package/dist/interfaces/worker/index.d.ts.map +1 -0
  72. package/dist/managers/benchmark/benchmark-manager.d.ts +27 -0
  73. package/dist/managers/benchmark/benchmark-manager.d.ts.map +1 -0
  74. package/dist/managers/benchmark/index.d.ts +2 -0
  75. package/dist/managers/benchmark/index.d.ts.map +1 -0
  76. package/dist/managers/index.d.ts +1 -0
  77. package/dist/managers/index.d.ts.map +1 -1
  78. package/dist/managers/select/select-manager.d.ts +1 -1
  79. package/dist/managers/select/select-manager.d.ts.map +1 -1
  80. package/dist/modules/controls-module.d.ts +30 -5
  81. package/dist/modules/controls-module.d.ts.map +1 -1
  82. package/dist/modules/gizmo-module.d.ts +17 -3
  83. package/dist/modules/gizmo-module.d.ts.map +1 -1
  84. package/dist/modules/index.d.ts +1 -0
  85. package/dist/modules/index.d.ts.map +1 -1
  86. package/dist/modules/metrics-module.d.ts +156 -0
  87. package/dist/modules/metrics-module.d.ts.map +1 -0
  88. package/dist/modules/raycast-module.d.ts +21 -4
  89. package/dist/modules/raycast-module.d.ts.map +1 -1
  90. package/dist/{api → shared/api}/modules/controls-state-api.d.ts +1 -1
  91. package/dist/shared/api/modules/controls-state-api.d.ts.map +1 -0
  92. package/dist/{api → shared/api}/modules/index.d.ts +1 -0
  93. package/dist/shared/api/modules/index.d.ts.map +1 -0
  94. package/dist/shared/api/modules/interaction-api.d.ts +21 -0
  95. package/dist/shared/api/modules/interaction-api.d.ts.map +1 -0
  96. package/dist/{api → shared/api}/modules/mesh-api.d.ts +1 -1
  97. package/dist/shared/api/modules/mesh-api.d.ts.map +1 -0
  98. package/dist/{api → shared/api}/modules/raycast-api.d.ts +1 -1
  99. package/dist/shared/api/modules/raycast-api.d.ts.map +1 -0
  100. package/dist/{api → shared/api}/modules/transform-api.d.ts +2 -2
  101. package/dist/shared/api/modules/transform-api.d.ts.map +1 -0
  102. package/dist/{api → shared/api}/renderer/camera-api.d.ts +2 -2
  103. package/dist/shared/api/renderer/camera-api.d.ts.map +1 -0
  104. package/dist/{api → shared/api}/renderer/dom-api.d.ts +2 -2
  105. package/dist/shared/api/renderer/dom-api.d.ts.map +1 -0
  106. package/dist/{api → shared/api}/renderer/index.d.ts +1 -0
  107. package/dist/shared/api/renderer/index.d.ts.map +1 -0
  108. package/dist/shared/api/renderer/renderer-info-api.d.ts +25 -0
  109. package/dist/shared/api/renderer/renderer-info-api.d.ts.map +1 -0
  110. package/dist/{api → shared/api}/renderer/scene-api.d.ts +21 -3
  111. package/dist/shared/api/renderer/scene-api.d.ts.map +1 -0
  112. package/dist/shared/constants/benchmark.d.ts +5 -0
  113. package/dist/shared/constants/benchmark.d.ts.map +1 -0
  114. package/dist/shared/constants/colors.d.ts.map +1 -0
  115. package/dist/shared/constants/figure-geometries.d.ts.map +1 -0
  116. package/dist/{constants → shared/constants}/index.d.ts +1 -0
  117. package/dist/shared/constants/index.d.ts.map +1 -0
  118. package/dist/shared/constants/layers.d.ts.map +1 -0
  119. package/dist/shared/constants/messages.d.ts.map +1 -0
  120. package/dist/shared/constants/threshold.d.ts.map +1 -0
  121. package/dist/shared/decorators/index.d.ts.map +1 -0
  122. package/dist/{decorators → shared/decorators}/use-policy.d.ts +1 -1
  123. package/dist/shared/decorators/use-policy.d.ts.map +1 -0
  124. package/dist/{decorators → shared/decorators}/use-validator.d.ts +1 -1
  125. package/dist/shared/decorators/use-validator.d.ts.map +1 -0
  126. package/dist/shared/errors/index.d.ts.map +1 -0
  127. package/dist/shared/errors/policy-error.d.ts.map +1 -0
  128. package/dist/shared/errors/validation-error.d.ts.map +1 -0
  129. package/dist/shared/events/editor-events.d.ts.map +1 -0
  130. package/dist/shared/events/event-bus.d.ts.map +1 -0
  131. package/dist/shared/events/event-topics.d.ts.map +1 -0
  132. package/dist/shared/events/index.d.ts.map +1 -0
  133. package/dist/shared/ioc/container.d.ts +10 -0
  134. package/dist/shared/ioc/container.d.ts.map +1 -0
  135. package/dist/shared/loaders/obj-loader.d.ts.map +1 -0
  136. package/dist/shared/policy/index.d.ts.map +1 -0
  137. package/dist/{policy → shared/policy}/tool-policy.d.ts +2 -2
  138. package/dist/shared/policy/tool-policy.d.ts.map +1 -0
  139. package/dist/shared/utils/default-renderer-config.d.ts.map +1 -0
  140. package/dist/shared/utils/helpers.d.ts.map +1 -0
  141. package/dist/shared/utils/index.d.ts.map +1 -0
  142. package/dist/shared/validators/index.d.ts.map +1 -0
  143. package/dist/{validators → shared/validators}/obj-validator.d.ts +1 -1
  144. package/dist/shared/validators/obj-validator.d.ts.map +1 -0
  145. package/dist/store/index.d.ts +1 -0
  146. package/dist/store/index.d.ts.map +1 -1
  147. package/dist/store/metrics-store.d.ts +32 -0
  148. package/dist/store/metrics-store.d.ts.map +1 -0
  149. package/dist/types/feature/feature-type.d.ts +3 -1
  150. package/dist/types/feature/feature-type.d.ts.map +1 -1
  151. package/dist/types/listener/index.d.ts +1 -0
  152. package/dist/types/listener/index.d.ts.map +1 -1
  153. package/dist/types/listener/metrics-listener.d.ts +4 -0
  154. package/dist/types/listener/metrics-listener.d.ts.map +1 -0
  155. package/dist/types/renderer/index.d.ts +2 -0
  156. package/dist/types/renderer/index.d.ts.map +1 -0
  157. package/dist/types/renderer/renderer-info-metrics.d.ts +8 -0
  158. package/dist/types/renderer/renderer-info-metrics.d.ts.map +1 -0
  159. package/dist/workers/index.d.ts +2 -0
  160. package/dist/workers/index.d.ts.map +1 -0
  161. package/dist/{controllers/renderer-controller.d.ts → workers/renderer-worker.d.ts} +10 -7
  162. package/dist/workers/renderer-worker.d.ts.map +1 -0
  163. package/package.json +3 -3
  164. package/dist/api/modules/controls-state-api.d.ts.map +0 -1
  165. package/dist/api/modules/index.d.ts.map +0 -1
  166. package/dist/api/modules/mesh-api.d.ts.map +0 -1
  167. package/dist/api/modules/raycast-api.d.ts.map +0 -1
  168. package/dist/api/modules/transform-api.d.ts.map +0 -1
  169. package/dist/api/renderer/camera-api.d.ts.map +0 -1
  170. package/dist/api/renderer/dom-api.d.ts.map +0 -1
  171. package/dist/api/renderer/index.d.ts.map +0 -1
  172. package/dist/api/renderer/scene-api.d.ts.map +0 -1
  173. package/dist/constants/colors.d.ts.map +0 -1
  174. package/dist/constants/figure-geometries.d.ts.map +0 -1
  175. package/dist/constants/index.d.ts.map +0 -1
  176. package/dist/constants/layers.d.ts.map +0 -1
  177. package/dist/constants/messages.d.ts.map +0 -1
  178. package/dist/constants/threshold.d.ts.map +0 -1
  179. package/dist/controllers/index.d.ts +0 -2
  180. package/dist/controllers/index.d.ts.map +0 -1
  181. package/dist/controllers/renderer-controller.d.ts.map +0 -1
  182. package/dist/decorators/index.d.ts.map +0 -1
  183. package/dist/decorators/use-policy.d.ts.map +0 -1
  184. package/dist/decorators/use-validator.d.ts.map +0 -1
  185. package/dist/errors/index.d.ts.map +0 -1
  186. package/dist/errors/policy-error.d.ts.map +0 -1
  187. package/dist/errors/validation-error.d.ts.map +0 -1
  188. package/dist/events/editor-events.d.ts.map +0 -1
  189. package/dist/events/event-bus.d.ts.map +0 -1
  190. package/dist/events/event-topics.d.ts.map +0 -1
  191. package/dist/events/index.d.ts.map +0 -1
  192. package/dist/interfaces/controller/index.d.ts.map +0 -1
  193. package/dist/ioc/container.d.ts +0 -7
  194. package/dist/ioc/container.d.ts.map +0 -1
  195. package/dist/loaders/obj-loader.d.ts.map +0 -1
  196. package/dist/policy/index.d.ts.map +0 -1
  197. package/dist/policy/tool-policy.d.ts.map +0 -1
  198. package/dist/utils/default-renderer-config.d.ts.map +0 -1
  199. package/dist/utils/helpers.d.ts.map +0 -1
  200. package/dist/utils/index.d.ts.map +0 -1
  201. package/dist/validators/index.d.ts.map +0 -1
  202. package/dist/validators/obj-validator.d.ts.map +0 -1
  203. /package/dist/{constants → shared/constants}/colors.d.ts +0 -0
  204. /package/dist/{constants → shared/constants}/figure-geometries.d.ts +0 -0
  205. /package/dist/{constants → shared/constants}/layers.d.ts +0 -0
  206. /package/dist/{constants → shared/constants}/messages.d.ts +0 -0
  207. /package/dist/{constants → shared/constants}/threshold.d.ts +0 -0
  208. /package/dist/{decorators → shared/decorators}/index.d.ts +0 -0
  209. /package/dist/{errors → shared/errors}/index.d.ts +0 -0
  210. /package/dist/{errors → shared/errors}/policy-error.d.ts +0 -0
  211. /package/dist/{errors → shared/errors}/validation-error.d.ts +0 -0
  212. /package/dist/{events → shared/events}/editor-events.d.ts +0 -0
  213. /package/dist/{events → shared/events}/event-bus.d.ts +0 -0
  214. /package/dist/{events → shared/events}/event-topics.d.ts +0 -0
  215. /package/dist/{events → shared/events}/index.d.ts +0 -0
  216. /package/dist/{loaders → shared/loaders}/obj-loader.d.ts +0 -0
  217. /package/dist/{policy → shared/policy}/index.d.ts +0 -0
  218. /package/dist/{utils → shared/utils}/default-renderer-config.d.ts +0 -0
  219. /package/dist/{utils → shared/utils}/helpers.d.ts +0 -0
  220. /package/dist/{utils → shared/utils}/index.d.ts +0 -0
  221. /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;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAE9C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzD"}
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"}
@@ -3,4 +3,5 @@ export * from './handler';
3
3
  export * from './scene-handler';
4
4
  export * from './select-handler';
5
5
  export * from './tool-handler';
6
+ export * from './benchmark-handler';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -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,10 @@
1
+ import { IManager } from './manager';
2
+ /**
3
+ * Маркерный интерфейс для менеджера бенчмарка.
4
+ *
5
+ * @internal
6
+ * @interface
7
+ */
8
+ export interface IBenchmarkManager extends IManager {
9
+ }
10
+ //# sourceMappingURL=benchmark-manager.d.ts.map
@@ -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"}
@@ -3,4 +3,5 @@ export * from './manager';
3
3
  export * from './scene-manager';
4
4
  export * from './select-manager';
5
5
  export * from './tool-manager';
6
+ export * from './benchmark-manager';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -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,4 +1,6 @@
1
1
  export * from './renderable-module';
2
2
  export * from './runtime-module';
3
3
  export * from './updatable-module';
4
+ export * from './interactive-module';
5
+ export * from './observer-module';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -3,4 +3,5 @@ export * from './select-store';
3
3
  export * from './tool-store';
4
4
  export * from './transform-store';
5
5
  export * from './export-store';
6
+ export * from './metrics-store';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -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 IController extends Disposable {
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,2 @@
1
+ export * from './benchmark-manager';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/benchmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -2,4 +2,5 @@ export * from './display';
2
2
  export * from './scene';
3
3
  export * from './select';
4
4
  export * from './tool';
5
+ export * from './benchmark';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -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,4 +1,4 @@
1
- import { EventBus } from '../../events';
1
+ import { EventBus } from '../../shared/events';
2
2
  import { SelectMode } from '@planara/types';
3
3
  import { FeatureType } from '../../types/feature';
4
4
  import { ISelectHandler } from '../../interfaces/handler';
@@ -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,UAAU,CAAC;AAEzE,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
+ {"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
- /** Orbit-контроллер для управления камерой */
33
+ /**
34
+ * Orbit-контроллер для управления камерой
35
+ *
36
+ * @private
37
+ * @member
38
+ */
33
39
  private _orbit;
34
- /** Transform-контроллер для редактирования */
40
+ /**
41
+ * Transform-контроллер для редактирования
42
+ *
43
+ * @private
44
+ * @member
45
+ */
35
46
  private _transform;
36
47
  private _transformHelper;
37
48
  private _transformListeners;
38
- /** Были ли инициализированы обработчики событий (hover/click) */
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;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,cAAe,YAAW,gBAAgB,EAAE,aAAa,EAAE,iBAAiB;IAa/D,OAAO,CAAC,UAAU;IACrB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,SAAS;IAdxC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAA+B;IAE7C,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAE3D,iEAAiE;IACjE,OAAO,CAAC,sBAAsB,CAAS;gBAGP,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;IAIrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAE/B;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAElC;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;CAgCvC"}
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
- /** Gizmo для управления отображением perspective camera */
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;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI1E;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,WAAY,YAAW,iBAAiB;IAK3B,OAAO,CAAC,UAAU;IACrB,OAAO,CAAC,OAAO;IACP,OAAO,CAAC,YAAY;IANjD,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAgC;gBAGpB,UAAU,EAAE,UAAU,EACzB,OAAO,EAAE,OAAO,EACR,YAAY,EAAE,YAAY;IAGxD,IAAI,IAAI,IAAI;IAaZ,MAAM,IAAI,IAAI;IAOrB,mCAAmC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
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"}
@@ -3,4 +3,5 @@ export * from './gizmo-module';
3
3
  export * from './raycast-module';
4
4
  export * from './scene-module';
5
5
  export * from './scene-preview-module';
6
+ export * from './metrics-module';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -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