@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
@@ -1,6 +1,7 @@
1
1
  import { Disposable } from 'tsyringe';
2
- import { IRendererCameraAccess, IRendererAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable } from '../interfaces/api/renderer';
2
+ import { IRendererCameraAccess, IRendererAccess, IRendererDomAccess, IRendererSceneAccess, IRendererInfoAccess, IRenderable } from '../interfaces/api/renderer';
3
3
  import { RendererConfig } from '@planara/types';
4
+ import { RendererInfoMetrics } from '../types/renderer';
4
5
  import * as THREE from 'three';
5
6
  /**
6
7
  * Базовый класс рендерера для работы с WebGL через Three.js.
@@ -26,7 +27,7 @@ import * as THREE from 'three';
26
27
  * @public
27
28
  * @class
28
29
  */
29
- export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable, Disposable {
30
+ export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRendererInfoAccess, IRenderable, Disposable {
30
31
  private readonly _config;
31
32
  /**
32
33
  * Корневой объект сцены Three.js.
@@ -80,7 +81,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
80
81
  * Вызывается при изменении размеров canvas (например, при ресайзе окна браузера).
81
82
  *
82
83
  * @example
83
- * ```typescript
84
+ * ```ts
84
85
  * window.addEventListener('resize', () => renderer.resize());
85
86
  * ```
86
87
  *
@@ -119,7 +120,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
119
120
  * **Важно:** вызывать метод только один раз.
120
121
  *
121
122
  * @example
122
- * ```typescript
123
+ * ```ts
123
124
  * renderer.loop();
124
125
  * ```
125
126
  *
@@ -132,6 +133,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
132
133
  getCanvas(): HTMLCanvasElement;
133
134
  getDomElement(): HTMLElement;
134
135
  getScene(): THREE.Scene;
136
+ getRendererInfo(): RendererInfoMetrics;
135
137
  /**
136
138
  * Освобождает ресурсы рендерера.
137
139
  *
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,QACX,YACE,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,UAAU;IAoDgB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlDpD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,KAAK,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAG,KAAK,CAAC,iBAAiB,CAAC;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAG,KAAK,CAAC,aAAa,CAAC;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;gBAEiB,OAAO,EAAE,iBAAiB,EACD,OAAO,EAAE,cAAc;IAoEpE;;;;;;;;;;;;;OAaG;IACI,MAAM;IAMb;;;;;;;;;OASG;IACI,MAAM;IAIb;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAExB;;;;;;;;;;;;;;OAcG;IACI,IAAI;IAMJ,SAAS,IAAI,KAAK,CAAC,MAAM;IAIzB,WAAW,IAAI,KAAK,CAAC,aAAa;IAIlC,SAAS,IAAI,iBAAiB;IAI9B,aAAa,IAAI,WAAW;IAI5B,QAAQ,IAAI,KAAK,CAAC,KAAK;IAI9B;;;;;;;;;OASG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAQvC"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,QACX,YACE,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,UAAU;IAoDgB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlDpD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,KAAK,CAAC;IAE9B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAG,KAAK,CAAC,iBAAiB,CAAC;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAG,KAAK,CAAC,aAAa,CAAC;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;gBAEiB,OAAO,EAAE,iBAAiB,EACD,OAAO,EAAE,cAAc;IAoEpE;;;;;;;;;;;;;OAaG;IACI,MAAM;IAMb;;;;;;;;;OASG;IACI,MAAM;IAIb;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAExB;;;;;;;;;;;;;;OAcG;IACI,IAAI;IAMJ,SAAS,IAAI,KAAK,CAAC,MAAM;IAIzB,WAAW,IAAI,KAAK,CAAC,aAAa;IAIlC,SAAS,IAAI,iBAAiB;IAI9B,aAAa,IAAI,WAAW;IAI5B,QAAQ,IAAI,KAAK,CAAC,KAAK;IAIvB,eAAe,IAAI,mBAAmB;IAW7C;;;;;;;;;OASG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAQvC"}
@@ -0,0 +1,81 @@
1
+ import { BenchmarkTestType } from '@planara/types';
2
+ import { IBenchmarkHandler } from '../../interfaces/handler';
3
+ import { IInteractionApi, IMetricsApi, ISceneApi } from '../../interfaces/api';
4
+ import { IMetricsStore } from '../../interfaces/store';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Базовый хендлер benchmark-теста.
8
+ *
9
+ * @remarks
10
+ * Содержит общий жизненный цикл benchmark-сценария:
11
+ * подготовку группы, запуск метрик, ожидание, остановку метрик
12
+ * и очистку временных объектов.
13
+ *
14
+ * @internal
15
+ * @abstract
16
+ * @class
17
+ */
18
+ export declare abstract class BaseBenchmarkHandler implements IBenchmarkHandler {
19
+ protected readonly _sceneApi: ISceneApi;
20
+ protected readonly _interactionApi: IInteractionApi;
21
+ protected readonly _metricsApi: IMetricsApi;
22
+ protected readonly _store: IMetricsStore;
23
+ /** Тип benchmark-теста. */
24
+ abstract readonly mode: BenchmarkTestType;
25
+ /** Название группы тестовых объектов. */
26
+ protected abstract readonly groupName: string;
27
+ /** Количество объектов в тестовой сцене. */
28
+ protected abstract readonly objectsCount: number;
29
+ /** Группа объектов текущего benchmark-теста. */
30
+ protected _group: THREE.Group | null;
31
+ private _liveTimerId;
32
+ protected constructor(_sceneApi: ISceneApi, _interactionApi: IInteractionApi, _metricsApi: IMetricsApi, _store: IMetricsStore);
33
+ /**
34
+ * Выполняет benchmark-тест.
35
+ *
36
+ * @param durationMs - длительность выполнения теста в миллисекундах
37
+ *
38
+ * @internal
39
+ * @method
40
+ */
41
+ handle(durationMs: number): Promise<void>;
42
+ /**
43
+ * Выполняет откат действий хендлера.
44
+ *
45
+ * @internal
46
+ * @method
47
+ */
48
+ rollback(): void;
49
+ /** Освобождает ресурсы хендлера. */
50
+ dispose(): Promise<void> | void;
51
+ /**
52
+ * Заполняет группу объектами тестовой сцены.
53
+ *
54
+ * @param group - группа benchmark-теста
55
+ *
56
+ * @internal
57
+ * @abstract
58
+ */
59
+ protected abstract fillGroup(group: THREE.Group): void;
60
+ /**
61
+ * Подготавливает тестовую сцену.
62
+ *
63
+ * @private
64
+ * @method
65
+ */
66
+ private _prepareScene;
67
+ /**
68
+ * Ожидает указанное количество миллисекунд.
69
+ *
70
+ * @param ms - длительность ожидания
71
+ *
72
+ * @returns Promise, завершающийся после указанного времени
73
+ *
74
+ * @private
75
+ * @method
76
+ */
77
+ private _wait;
78
+ private _startLiveMetrics;
79
+ private _stopLiveMetrics;
80
+ }
81
+ //# sourceMappingURL=base-benchmark-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-benchmark-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/benchmark/base-benchmark-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,8BAAsB,oBAAqB,YAAW,iBAAiB;IAgBnE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IACvC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IACnD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAC3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IAlB1C,2BAA2B;IAC3B,kBAAyB,IAAI,EAAE,iBAAiB,CAAC;IAEjD,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE9C,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAEjD,gDAAgD;IAChD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAQ;IAE5C,OAAO,CAAC,YAAY,CAAuB;IAE3C,SAAS,aACY,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa;IAG1C;;;;;;;OAOG;IACU,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtD;;;;;OAKG;IACI,QAAQ,IAAI,IAAI;IAgBvB,oCAAoC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI;IAEtD;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,33 @@
1
+ import { IInteractionApi, IMetricsApi, ISceneApi } from '../../interfaces/api';
2
+ import { IMetricsStore } from '../../interfaces/store';
3
+ import { BaseBenchmarkHandler } from '.';
4
+ import { BenchmarkTestType } from '@planara/types';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Хендлер тяжелого benchmark-теста.
8
+ *
9
+ * @remarks
10
+ * Формирует небольшую тестовую сцену из простых объектов.
11
+ *
12
+ * @internal
13
+ * @class
14
+ */
15
+ export declare class HeavyBenchmarkHandler extends BaseBenchmarkHandler {
16
+ /** Тип benchmark-теста. */
17
+ readonly mode: BenchmarkTestType;
18
+ /** Название группы тестовых объектов. */
19
+ protected readonly groupName = "__HEAVY_BENCHMARK__";
20
+ /** Количество объектов в тестовой сцене. */
21
+ protected readonly objectsCount = 900;
22
+ constructor(sceneApi: ISceneApi, interactionApi: IInteractionApi, metricsApi: IMetricsApi, store: IMetricsStore);
23
+ /**
24
+ * Заполняет группу объектами тяжелого benchmark-теста.
25
+ *
26
+ * @param group - группа benchmark-теста
27
+ *
28
+ * @internal
29
+ * @method
30
+ */
31
+ protected fillGroup(group: THREE.Group): void;
32
+ }
33
+ //# sourceMappingURL=heavy-benchmark-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heavy-benchmark-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/benchmark/heavy-benchmark-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;GAQG;AACH,qBACa,qBAAsB,SAAQ,oBAAoB;IAC7D,2BAA2B;IAC3B,SAAgB,IAAI,EAAE,iBAAiB,CAA2B;IAElE,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,yBAAyB;IAErD,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,OAA2B;gBAGnC,QAAQ,EAAE,SAAS,EACb,cAAc,EAAE,eAAe,EACnC,UAAU,EAAE,WAAW,EACtB,KAAK,EAAE,aAAa;IAK9C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI;CAiB9C"}
@@ -0,0 +1,6 @@
1
+ export * from './base-benchmark-handler';
2
+ export * from './light-benchmark-handler';
3
+ export * from './medium-benchmark-handler';
4
+ export * from './heavy-benchmark-handler';
5
+ export * from './mixed-benchmark-handler';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/benchmark/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { IInteractionApi, IMetricsApi, ISceneApi } from '../../interfaces/api';
2
+ import { IMetricsStore } from '../../interfaces/store';
3
+ import { BaseBenchmarkHandler } from '.';
4
+ import { BenchmarkTestType } from '@planara/types';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Хендлер легкого benchmark-теста.
8
+ *
9
+ * @remarks
10
+ * Формирует небольшую тестовую сцену из простых объектов.
11
+ *
12
+ * @internal
13
+ * @class
14
+ */
15
+ export declare class LightBenchmarkHandler extends BaseBenchmarkHandler {
16
+ /** Тип benchmark-теста. */
17
+ readonly mode: BenchmarkTestType;
18
+ /** Название группы тестовых объектов. */
19
+ protected readonly groupName = "__LIGHT_BENCHMARK__";
20
+ /** Количество объектов в тестовой сцене. */
21
+ protected readonly objectsCount = 900;
22
+ constructor(sceneApi: ISceneApi, interactionApi: IInteractionApi, metricsApi: IMetricsApi, store: IMetricsStore);
23
+ /**
24
+ * Заполняет группу объектами легкого benchmark-теста.
25
+ *
26
+ * @param group - группа benchmark-теста
27
+ *
28
+ * @internal
29
+ * @method
30
+ */
31
+ protected fillGroup(group: THREE.Group): void;
32
+ }
33
+ //# sourceMappingURL=light-benchmark-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light-benchmark-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/benchmark/light-benchmark-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;GAQG;AACH,qBACa,qBAAsB,SAAQ,oBAAoB;IAC7D,2BAA2B;IAC3B,SAAgB,IAAI,EAAE,iBAAiB,CAA2B;IAElE,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,yBAAyB;IAErD,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,OAA2B;gBAGnC,QAAQ,EAAE,SAAS,EACb,cAAc,EAAE,eAAe,EACnC,UAAU,EAAE,WAAW,EACtB,KAAK,EAAE,aAAa;IAK9C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI;CAkB9C"}
@@ -0,0 +1,33 @@
1
+ import { IInteractionApi, IMetricsApi, ISceneApi } from '../../interfaces/api';
2
+ import { IMetricsStore } from '../../interfaces/store';
3
+ import { BaseBenchmarkHandler } from '.';
4
+ import { BenchmarkTestType } from '@planara/types';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Хендлер среднего benchmark-теста.
8
+ *
9
+ * @remarks
10
+ * Формирует небольшую тестовую сцену из простых объектов.
11
+ *
12
+ * @internal
13
+ * @class
14
+ */
15
+ export declare class MediumBenchmarkHandler extends BaseBenchmarkHandler {
16
+ /** Тип benchmark-теста. */
17
+ readonly mode: BenchmarkTestType;
18
+ /** Название группы тестовых объектов. */
19
+ protected readonly groupName = "__MEDIUM_BENCHMARK__";
20
+ /** Количество объектов в тестовой сцене. */
21
+ protected readonly objectsCount = 900;
22
+ constructor(sceneApi: ISceneApi, interactionApi: IInteractionApi, metricsApi: IMetricsApi, store: IMetricsStore);
23
+ /**
24
+ * Заполняет группу объектами среднего benchmark-теста.
25
+ *
26
+ * @param group - группа benchmark-теста
27
+ *
28
+ * @internal
29
+ * @method
30
+ */
31
+ protected fillGroup(group: THREE.Group): void;
32
+ }
33
+ //# sourceMappingURL=medium-benchmark-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"medium-benchmark-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/benchmark/medium-benchmark-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;GAQG;AACH,qBACa,sBAAuB,SAAQ,oBAAoB;IAC9D,2BAA2B;IAC3B,SAAgB,IAAI,EAAE,iBAAiB,CAA4B;IAEnE,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,0BAA0B;IAEtD,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,OAA2B;gBAGnC,QAAQ,EAAE,SAAS,EACb,cAAc,EAAE,eAAe,EACnC,UAAU,EAAE,WAAW,EACtB,KAAK,EAAE,aAAa;IAK9C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI;CAiB9C"}
@@ -0,0 +1,37 @@
1
+ import { IInteractionApi, IMetricsApi, ISceneApi } from '../../interfaces/api';
2
+ import { IMetricsStore } from '../../interfaces/store';
3
+ import { BaseBenchmarkHandler } from '.';
4
+ import { BenchmarkTestType } from '@planara/types';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Хендлер смешанного benchmark-теста.
8
+ *
9
+ * @remarks
10
+ * Формирует небольшую тестовую сцену из простых объектов.
11
+ *
12
+ * @internal
13
+ * @class
14
+ */
15
+ export declare class MixedBenchmarkHandler extends BaseBenchmarkHandler {
16
+ /** Тип benchmark-теста. */
17
+ readonly mode: BenchmarkTestType;
18
+ /** Название группы тестовых объектов. */
19
+ protected readonly groupName = "__MIXED_BENCHMARK__";
20
+ /** Количество объектов в тестовой сцене. */
21
+ protected readonly objectsCount: number;
22
+ constructor(sceneApi: ISceneApi, interactionApi: IInteractionApi, metricsApi: IMetricsApi, store: IMetricsStore);
23
+ /**
24
+ * Заполняет группу объектами смешанного benchmark-теста.
25
+ *
26
+ * @param group - группа benchmark-теста
27
+ *
28
+ * @internal
29
+ * @method
30
+ */
31
+ protected fillGroup(group: THREE.Group): void;
32
+ private _addLightObjects;
33
+ private _addMediumObjects;
34
+ private _addHardObjects;
35
+ private _addGrid;
36
+ }
37
+ //# sourceMappingURL=mixed-benchmark-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixed-benchmark-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/benchmark/mixed-benchmark-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD;;;;;;;;GAQG;AACH,qBACa,qBAAsB,SAAQ,oBAAoB;IAC7D,2BAA2B;IAC3B,SAAgB,IAAI,EAAE,iBAAiB,CAA2B;IAElE,yCAAyC;IACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,yBAAyB;IAErD,4CAA4C;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,SACqD;gBAG7D,QAAQ,EAAE,SAAS,EACb,cAAc,EAAE,eAAe,EACnC,UAAU,EAAE,WAAW,EACtB,KAAK,EAAE,aAAa;IAK9C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI;IAM7C,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,QAAQ;CAmBjB"}
@@ -3,7 +3,7 @@ import { ISelectStore } from '../../interfaces/store';
3
3
  import { ISceneApi, ICameraApi, IRaycastApi } from '../../interfaces/api';
4
4
  import { SelectMode } from '@planara/types';
5
5
  import { SelectEventType } from '../../types/event';
6
- import { EditorEvents, EventTopics } from '../../events';
6
+ import { EditorEvents, EventTopics } from '../../shared/events';
7
7
  /**
8
8
  * Хендлер для выборки ребер.
9
9
  * Управляет сценой через payload события рендерера.
@@ -1 +1 @@
1
- {"version":3,"file":"edge-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/edge-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM1D;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAqB/B,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,UAAU;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAvBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAA2D;IAC3E,gEAAgE;IAChE,OAAO,CAAC,SAAS,CAA2D;IAG5E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAGd,SAAS,EAAE,SAAS,EACnB,UAAU,EAAE,UAAU,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAcrD,yCAAyC;IAClC,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAoEP,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAUvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IActC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,KAAK;IAOb,qEAAqE;IACrE,OAAO,CAAC,6BAA6B;IAsCrC,wEAAwE;IACxE,OAAO,CAAC,oBAAoB;CA2E7B"}
1
+ {"version":3,"file":"edge-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/edge-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMjE;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAqB/B,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,UAAU;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAvBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAA2D;IAC3E,gEAAgE;IAChE,OAAO,CAAC,SAAS,CAA2D;IAG5E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAGd,SAAS,EAAE,SAAS,EACnB,UAAU,EAAE,UAAU,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAcrD,yCAAyC;IAClC,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAoEP,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAUvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IActC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,KAAK;IAOb,qEAAqE;IACrE,OAAO,CAAC,6BAA6B;IAsCrC,wEAAwE;IACxE,OAAO,CAAC,oBAAoB;CA2E7B"}
@@ -3,7 +3,7 @@ import { ISelectStore } from '../../interfaces/store';
3
3
  import { ICameraApi, ISceneApi, IRaycastApi } from '../../interfaces/api';
4
4
  import { SelectMode } from '@planara/types';
5
5
  import { SelectEventType } from '../../types/event';
6
- import { EditorEvents, EventTopics } from '../../events';
6
+ import { EditorEvents, EventTopics } from '../../shared/events';
7
7
  /**
8
8
  * Хендлер для выборки граней (faces/triangles).
9
9
  * Управляет сценой через payload события рендерера.
@@ -1 +1 @@
1
- {"version":3,"file":"face-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/face-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAY1D;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IA+B9B,OAAO,CAAC,UAAU;IACnB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAjCvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAMzC,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAA0B;IAC1C,uDAAuD;IACvD,OAAO,CAAC,SAAS,CAA0B;IAG3C,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAG7C,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAGF,UAAU,EAAE,UAAU,EACvB,SAAS,EAAE,SAAS,EAClB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAcrD,yCAAyC;IAClC,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAyEP,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAWvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAatC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuGzB,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB;IA8C5B,uCAAuC;IACvC,OAAO,CAAC,KAAK;IAUb,6DAA6D;IAC7D,OAAO,CAAC,oBAAoB;IAgB5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA8BxB,iDAAiD;IACjD,OAAO,CAAC,SAAS;IAQjB,0DAA0D;IAC1D,OAAO,CAAC,uBAAuB;IA6C/B,kDAAkD;IAClD,OAAO,CAAC,mBAAmB;IAO3B,+DAA+D;IAC/D,OAAO,CAAC,WAAW;IAInB,0CAA0C;IAC1C,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,wCAAwC;IACxC,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,sBAAsB;IAqE9B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;CAiC/B"}
1
+ {"version":3,"file":"face-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/face-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYjE;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IA+B9B,OAAO,CAAC,UAAU;IACnB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAjCvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAMzC,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAA0B;IAC1C,uDAAuD;IACvD,OAAO,CAAC,SAAS,CAA0B;IAG3C,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAG7C,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAGF,UAAU,EAAE,UAAU,EACvB,SAAS,EAAE,SAAS,EAClB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAcrD,yCAAyC;IAClC,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAyEP,oCAAoC;IAC7B,QAAQ,IAAI,IAAI;IAWvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAatC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuGzB,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB;IA8C5B,uCAAuC;IACvC,OAAO,CAAC,KAAK;IAUb,6DAA6D;IAC7D,OAAO,CAAC,oBAAoB;IAgB5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA8BxB,iDAAiD;IACjD,OAAO,CAAC,SAAS;IAQjB,0DAA0D;IAC1D,OAAO,CAAC,uBAAuB;IA6C/B,kDAAkD;IAClD,OAAO,CAAC,mBAAmB;IAO3B,+DAA+D;IAC/D,OAAO,CAAC,WAAW;IAInB,0CAA0C;IAC1C,OAAO,CAAC,UAAU;IAOlB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,wCAAwC;IACxC,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,sBAAsB;IAqE9B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;CAiC/B"}
@@ -3,7 +3,7 @@ import { ISelectStore } from '../../interfaces/store';
3
3
  import { IRaycastApi } from '../../interfaces/api';
4
4
  import { SelectMode } from '@planara/types';
5
5
  import { SelectEventType } from '../../types/event';
6
- import { EditorEvents, EventTopics } from '../../events';
6
+ import { EditorEvents, EventTopics } from '../../shared/events';
7
7
  /**
8
8
  * Хендлер для выборки моделей.
9
9
  * Управляет сценой через payload события рендерера.
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/mesh-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI1D;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAkB7B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IAlBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,8CAA8C;IAC9C,OAAO,CAAC,aAAa,CAA2B;IAGhD,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;gBAGjD,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,YAAY;IAG9C,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAuDA,QAAQ,IAAI,IAAI;IAUvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAa3B"}
1
+ {"version":3,"file":"mesh-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/mesh-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIjE;;;;;;;;GAQG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAkB7B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IAlBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,8CAA8C;IAC9C,OAAO,CAAC,aAAa,CAA2B;IAGhD,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;gBAGjD,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,YAAY;IAG9C,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAuDA,QAAQ,IAAI,IAAI;IAUvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -3,7 +3,7 @@ import { ISelectStore } from '../../interfaces/store';
3
3
  import { ICameraApi, ISceneApi, IRaycastApi } from '../../interfaces/api';
4
4
  import { SelectMode } from '@planara/types';
5
5
  import { SelectEventType } from '../../types/event';
6
- import { EditorEvents, EventTopics } from '../../events';
6
+ import { EditorEvents, EventTopics } from '../../shared/events';
7
7
  /**
8
8
  * Хендлер для выборки вершин.
9
9
  * Управляет сценой через payload события рендерера.
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/vertex-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM1D;;;;;;;;GAQG;AACH,qBACa,mBAAoB,YAAW,cAAc;IAmBhC,OAAO,CAAC,UAAU;IACnB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IArBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAqB;IAErD,OAAO,CAAC,QAAQ,CAAwD;IACxE,OAAO,CAAC,SAAS,CAAwD;IAEzE,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAG7C,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAGb,UAAU,EAAE,UAAU,EACvB,SAAS,EAAE,SAAS,EAClB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAc9C,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAqEA,QAAQ,IAAI,IAAI;IAUhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAetC,OAAO,CAAC,kBAAkB;IA2B1B,iFAAiF;IACjF,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,KAAK;IAOb,mFAAmF;IACnF,OAAO,CAAC,sBAAsB;IAuE9B,iDAAiD;IACjD,OAAO,CAAC,oBAAoB;CA2B7B"}
1
+ {"version":3,"file":"vertex-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/vertex-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMjE;;;;;;;;GAQG;AACH,qBACa,mBAAoB,YAAW,cAAc;IAmBhC,OAAO,CAAC,UAAU;IACnB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IArBvC,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAqB;IAErD,OAAO,CAAC,QAAQ,CAAwD;IACxE,OAAO,CAAC,SAAS,CAAwD;IAEzE,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAG7C,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAGb,UAAU,EAAE,UAAU,EACvB,SAAS,EAAE,SAAS,EAClB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY;IAc9C,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAqEA,QAAQ,IAAI,IAAI;IAUhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAetC,OAAO,CAAC,kBAAkB;IA2B1B,iFAAiF;IACjF,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,KAAK;IAOb,mFAAmF;IACnF,OAAO,CAAC,sBAAsB;IAuE9B,iDAAiD;IACjD,OAAO,CAAC,oBAAoB;CA2B7B"}
@@ -0,0 +1,65 @@
1
+ import { BenchmarkConfig, BenchmarkReport, BenchmarkRunResult } from '@planara/types';
2
+ import { IMediator } from '../interfaces/mediator';
3
+ import { IMetricsStore } from '../interfaces/store';
4
+ import { MetricsListener } from '../types/listener';
5
+ import { IWorker } from '../interfaces/worker';
6
+ import { Renderer } from '../core';
7
+ /**
8
+ * Хаб benchmark-тестирования.
9
+ *
10
+ * @remarks
11
+ * Предоставляет публичный API для запуска benchmark-тестов,
12
+ * получения итогового отчета и подписки на live-обновления метрик.
13
+ *
14
+ * @public
15
+ * @class
16
+ */
17
+ export declare class BenchmarkHub {
18
+ private _renderer;
19
+ private readonly _mediator;
20
+ private readonly _store;
21
+ private _worker;
22
+ constructor(_renderer: Renderer, _mediator: IMediator, _store: IMetricsStore, _worker: IWorker);
23
+ /**
24
+ * Запускает benchmark-тестирование.
25
+ *
26
+ * @param config - конфигурация benchmark-тестирования
27
+ *
28
+ * @returns Краткий результат выполнения запрошенных тестов
29
+ *
30
+ * @public
31
+ * @method
32
+ */
33
+ run(config: BenchmarkConfig): BenchmarkRunResult;
34
+ /**
35
+ * Возвращает отчет по успешно выполненным benchmark-тестам.
36
+ *
37
+ * @returns Отчет benchmark-тестирования
38
+ *
39
+ * @public
40
+ * @method
41
+ */
42
+ getReport(): BenchmarkReport;
43
+ /**
44
+ * Регистрирует слушатель обновления live-метрик.
45
+ *
46
+ * @param listener - обработчик обновления метрик
47
+ *
48
+ * @returns Функция отписки от обновлений
49
+ *
50
+ * @public
51
+ * @method
52
+ */
53
+ subscribeMetrics(listener: MetricsListener): () => void;
54
+ resizeRenderer(): void;
55
+ /**
56
+ * Запускает редактор.
57
+ * Вызывается после создания хаба.
58
+ */
59
+ start(): void;
60
+ /**
61
+ * Останавливает редактор.
62
+ */
63
+ stop(): void;
64
+ }
65
+ //# sourceMappingURL=benchmark-hub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark-hub.d.ts","sourceRoot":"","sources":["../../src/hub/benchmark-hub.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAExB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC;;;;;;;;;GASG;AACH,qBACa,YAAY;IAED,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAC5B,OAAO,CAAC,OAAO;gBAHN,SAAS,EAAE,QAAQ,EACT,SAAS,EAAE,SAAS,EACjB,MAAM,EAAE,aAAa,EACnC,OAAO,EAAE,OAAO;IAG7C;;;;;;;;;OASG;IACI,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,kBAAkB;IAoBvD;;;;;;;OAOG;IACI,SAAS,IAAI,eAAe;IAInC;;;;;;;;;OASG;IACI,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAIvD,cAAc;IAIrB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,IAAI,IAAI,IAAI;CAGpB"}
@@ -1,7 +1,7 @@
1
1
  import { Renderer } from '../core';
2
2
  import { Disposable } from 'tsyringe';
3
3
  import { DisplayMode, FigureTransform, FigureType, SelectMode, ToolType, IResponse, ExportSceneResult } from '@planara/types';
4
- import { IController } from '../interfaces/controller';
4
+ import { IWorker } from '../interfaces/worker';
5
5
  import { IExportStore, ITransformStore } from '../interfaces/store';
6
6
  import { IMediator } from '../interfaces/mediator';
7
7
  /**
@@ -13,8 +13,8 @@ export declare class EditorHub implements Disposable {
13
13
  private _mediator;
14
14
  private _store;
15
15
  private _exportStore;
16
- private _controller;
17
- constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore, _controller: IController);
16
+ private _worker;
17
+ constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore, _worker: IWorker);
18
18
  setDisplayMode(mode: DisplayMode): IResponse | null;
19
19
  setSelectMode(mode: SelectMode): IResponse | null;
20
20
  setToolMode(mode: ToolType): IResponse | null;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-hub.d.ts","sourceRoot":"","sources":["../../src/hub/editor-hub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBACa,SAAU,YAAW,UAAU;IAEpB,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;gBAJd,SAAS,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EAClB,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW;IAMlD,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;IAOnD,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAOjD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IAO7C,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAO/C,YAAY,IAAI,SAAS,GAAG,IAAI;IAOhC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO7C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO5C,WAAW,IAAI,iBAAiB;IAchC,cAAc;IAIrB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,IAAI,IAAI,IAAI;IAIZ,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAI3C,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAexD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGvC"}
1
+ {"version":3,"file":"editor-hub.d.ts","sourceRoot":"","sources":["../../src/hub/editor-hub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,UAAU,EACV,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBACa,SAAU,YAAW,UAAU;IAEpB,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACxB,OAAO,CAAC,OAAO;gBAJN,SAAS,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EAClB,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,YAAY,EAC9B,OAAO,EAAE,OAAO;IAMtC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;IAOnD,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAOjD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IAO7C,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAO/C,YAAY,IAAI,SAAS,GAAG,IAAI;IAOhC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO7C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO5C,WAAW,IAAI,iBAAiB;IAchC,cAAc;IAIrB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,IAAI,IAAI,IAAI;IAIZ,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAI3C,sBAAsB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAexD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGvC"}
@@ -1,5 +1,6 @@
1
1
  import { EditorHub } from './editor-hub';
2
2
  import { ViewerHub } from './viewer-hub';
3
+ import { BenchmarkHub } from './benchmark-hub';
3
4
  import { RendererConfigInput } from '@planara/types';
4
5
  /**
5
6
  * Инициализирует редактор и возвращает хаб.
@@ -19,8 +20,19 @@ export declare const getEditorHub: () => EditorHub;
19
20
  */
20
21
  export declare const createViewerHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => ViewerHub;
21
22
  /**
22
- * Возвращает уже созданный хаб, если редактор инициализирован.
23
+ * Возвращает уже созданный хаб, если вьювер инициализирован.
23
24
  * @public
24
25
  */
25
26
  export declare const getViewerHub: () => ViewerHub;
27
+ /**
28
+ * Инициализирует бенчмарк и возвращает хаб.
29
+ * Вызывать один раз при старте (когда есть canvas).
30
+ * @public
31
+ */
32
+ export declare const createBenchmarkHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => BenchmarkHub;
33
+ /**
34
+ * Возвращает уже созданный хаб, если бенчмарк инициализирован.
35
+ * @public
36
+ */
37
+ export declare const getBenchmarkHub: () => BenchmarkHub;
26
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,iBAAiB,EACzB,iBAAiB,mBAAmB,KACnC,SAOF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,SAM/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,iBAAiB,EACzB,iBAAiB,mBAAmB,KACnC,SAOF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,SAM/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,iBAAiB,EACzB,iBAAiB,mBAAmB,KACnC,SAOF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,SAM/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,iBAAiB,EACzB,iBAAiB,mBAAmB,KACnC,SAOF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAO,SAM/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,iBAAiB,EACzB,iBAAiB,mBAAmB,KACnC,YAOF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,YAMlC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Renderer } from '../core';
2
2
  import { Disposable } from 'tsyringe';
3
3
  import { FigureType, IResponse } from '@planara/types';
4
- import { IController } from '../interfaces/controller';
4
+ import { IWorker } from '../interfaces/worker';
5
5
  import { IMediator } from '../interfaces/mediator';
6
6
  /**
7
7
  * Хаб для управления вьювером
@@ -10,8 +10,8 @@ import { IMediator } from '../interfaces/mediator';
10
10
  export declare class ViewerHub implements Disposable {
11
11
  private _renderer;
12
12
  private _mediator;
13
- private _controller;
14
- constructor(_renderer: Renderer, _mediator: IMediator, _controller: IController);
13
+ private _worker;
14
+ constructor(_renderer: Renderer, _mediator: IMediator, _worker: IWorker);
15
15
  addFigure(figure: FigureType): IResponse | null;
16
16
  loadFigure(content: string): IResponse | null;
17
17
  loadScene(content: string): IResponse | null;
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-hub.d.ts","sourceRoot":"","sources":["../../src/hub/viewer-hub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,EAAE,KAAK,UAAU,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBACa,SAAU,YAAW,UAAU;IAEpB,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,SAAS;IACf,OAAO,CAAC,WAAW;gBAFd,SAAS,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EAClB,WAAW,EAAE,WAAW;IAGlD,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAO/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO7C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO5C,cAAc;IAIrB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGvC"}
1
+ {"version":3,"file":"viewer-hub.d.ts","sourceRoot":"","sources":["../../src/hub/viewer-hub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,EAAE,KAAK,UAAU,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBACa,SAAU,YAAW,UAAU;IAEpB,OAAO,CAAC,SAAS;IAChB,OAAO,CAAC,SAAS;IACnB,OAAO,CAAC,OAAO;gBAFN,SAAS,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACtB,OAAO,EAAE,OAAO;IAGtC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI;IAO/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO7C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO5C,cAAc;IAIrB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,IAAI,IAAI,IAAI;IAIZ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGvC"}