@planara/core 3.0.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 (302) hide show
  1. package/dist/core/index.d.ts +2 -0
  2. package/dist/core/index.d.ts.map +1 -0
  3. package/dist/core/renderer.d.ts +15 -18
  4. package/dist/core/renderer.d.ts.map +1 -1
  5. package/dist/handlers/benchmark/base-benchmark-handler.d.ts +81 -0
  6. package/dist/handlers/benchmark/base-benchmark-handler.d.ts.map +1 -0
  7. package/dist/handlers/benchmark/heavy-benchmark-handler.d.ts +33 -0
  8. package/dist/handlers/benchmark/heavy-benchmark-handler.d.ts.map +1 -0
  9. package/dist/handlers/benchmark/index.d.ts +6 -0
  10. package/dist/handlers/benchmark/index.d.ts.map +1 -0
  11. package/dist/handlers/benchmark/light-benchmark-handler.d.ts +33 -0
  12. package/dist/handlers/benchmark/light-benchmark-handler.d.ts.map +1 -0
  13. package/dist/handlers/benchmark/medium-benchmark-handler.d.ts +33 -0
  14. package/dist/handlers/benchmark/medium-benchmark-handler.d.ts.map +1 -0
  15. package/dist/handlers/benchmark/mixed-benchmark-handler.d.ts +37 -0
  16. package/dist/handlers/benchmark/mixed-benchmark-handler.d.ts.map +1 -0
  17. package/dist/handlers/display/index.d.ts +2 -0
  18. package/dist/handlers/display/index.d.ts.map +1 -0
  19. package/dist/handlers/display/wireframe-handler.d.ts +2 -2
  20. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  21. package/dist/handlers/scene/add-figure-scene-handler.d.ts +2 -2
  22. package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -1
  23. package/dist/handlers/scene/delete-figure-scene-handler.d.ts +3 -3
  24. package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -1
  25. package/dist/handlers/scene/export-scene-handler.d.ts +23 -0
  26. package/dist/handlers/scene/export-scene-handler.d.ts.map +1 -0
  27. package/dist/handlers/scene/index.d.ts +6 -0
  28. package/dist/handlers/scene/index.d.ts.map +1 -0
  29. package/dist/handlers/scene/load-figure-scene-handler.d.ts +23 -0
  30. package/dist/handlers/scene/load-figure-scene-handler.d.ts.map +1 -0
  31. package/dist/handlers/scene/load-scene-handler.d.ts +23 -0
  32. package/dist/handlers/scene/load-scene-handler.d.ts.map +1 -0
  33. package/dist/handlers/select/edge-select-handler.d.ts +5 -8
  34. package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
  35. package/dist/handlers/select/face-select-handler.d.ts +5 -8
  36. package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
  37. package/dist/handlers/select/index.d.ts +5 -0
  38. package/dist/handlers/select/index.d.ts.map +1 -0
  39. package/dist/handlers/select/mesh-select-handler.d.ts +5 -6
  40. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  41. package/dist/handlers/select/vertex-select-handler.d.ts +5 -8
  42. package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
  43. package/dist/handlers/tool/base-tool-handler.d.ts +3 -3
  44. package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
  45. package/dist/handlers/tool/index.d.ts +4 -0
  46. package/dist/handlers/tool/index.d.ts.map +1 -0
  47. package/dist/handlers/tool/rotate-tool-handler.d.ts +2 -2
  48. package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
  49. package/dist/handlers/tool/scale-tool-handler.d.ts +2 -2
  50. package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
  51. package/dist/handlers/tool/translate-tool-handler.d.ts +2 -2
  52. package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
  53. package/dist/hub/benchmark-hub.d.ts +65 -0
  54. package/dist/hub/benchmark-hub.d.ts.map +1 -0
  55. package/dist/hub/editor-hub.d.ts +12 -9
  56. package/dist/hub/editor-hub.d.ts.map +1 -1
  57. package/dist/hub/index.d.ts +38 -0
  58. package/dist/hub/index.d.ts.map +1 -0
  59. package/dist/hub/viewer-hub.d.ts +30 -0
  60. package/dist/hub/viewer-hub.d.ts.map +1 -0
  61. package/dist/index.cjs.js +20 -2
  62. package/dist/index.d.ts +15 -22
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.es.js +2838 -1041
  65. package/dist/index.full.d.ts +275 -97
  66. package/dist/index.public.d.ts +275 -97
  67. package/dist/index.umd.js +20 -2
  68. package/dist/interfaces/api/index.d.ts +12 -0
  69. package/dist/interfaces/api/index.d.ts.map +1 -0
  70. package/dist/interfaces/api/interaction-api.d.ts +26 -0
  71. package/dist/interfaces/api/interaction-api.d.ts.map +1 -0
  72. package/dist/interfaces/api/metrics-api.d.ts +49 -0
  73. package/dist/interfaces/api/metrics-api.d.ts.map +1 -0
  74. package/dist/interfaces/api/renderer/index.d.ts +7 -0
  75. package/dist/interfaces/api/renderer/index.d.ts.map +1 -0
  76. package/dist/interfaces/api/renderer/renderer-info-access.d.ts +20 -0
  77. package/dist/interfaces/api/renderer/renderer-info-access.d.ts.map +1 -0
  78. package/dist/interfaces/api/renderer-info-api.d.ts +19 -0
  79. package/dist/interfaces/api/renderer-info-api.d.ts.map +1 -0
  80. package/dist/interfaces/api/scene-api.d.ts +2 -1
  81. package/dist/interfaces/api/scene-api.d.ts.map +1 -1
  82. package/dist/interfaces/api/transform-api.d.ts +1 -1
  83. package/dist/interfaces/api/transform-api.d.ts.map +1 -1
  84. package/dist/interfaces/command/index.d.ts +1 -1
  85. package/dist/interfaces/command/index.d.ts.map +1 -1
  86. package/dist/interfaces/handler/benchmark-handler.d.ts +22 -0
  87. package/dist/interfaces/handler/benchmark-handler.d.ts.map +1 -0
  88. package/dist/interfaces/handler/index.d.ts +7 -0
  89. package/dist/interfaces/handler/index.d.ts.map +1 -0
  90. package/dist/interfaces/manager/benchmark-manager.d.ts +10 -0
  91. package/dist/interfaces/manager/benchmark-manager.d.ts.map +1 -0
  92. package/dist/interfaces/manager/display-manager.d.ts.map +1 -1
  93. package/dist/interfaces/manager/index.d.ts +7 -0
  94. package/dist/interfaces/manager/index.d.ts.map +1 -0
  95. package/dist/interfaces/manager/manager.d.ts +1 -1
  96. package/dist/interfaces/manager/manager.d.ts.map +1 -1
  97. package/dist/interfaces/manager/select-manager.d.ts.map +1 -1
  98. package/dist/interfaces/manager/tool-manager.d.ts.map +1 -1
  99. package/dist/interfaces/mediator/index.d.ts +1 -1
  100. package/dist/interfaces/mediator/index.d.ts.map +1 -1
  101. package/dist/interfaces/middleware/index.d.ts +1 -1
  102. package/dist/interfaces/middleware/index.d.ts.map +1 -1
  103. package/dist/interfaces/module/index.d.ts +6 -0
  104. package/dist/interfaces/module/index.d.ts.map +1 -0
  105. package/dist/interfaces/module/interactive-module.d.ts +32 -0
  106. package/dist/interfaces/module/interactive-module.d.ts.map +1 -0
  107. package/dist/interfaces/module/observer-module.d.ts +27 -0
  108. package/dist/interfaces/module/observer-module.d.ts.map +1 -0
  109. package/dist/interfaces/module/renderable-module.d.ts +1 -1
  110. package/dist/interfaces/module/renderable-module.d.ts.map +1 -1
  111. package/dist/interfaces/store/export-store.d.ts +8 -0
  112. package/dist/interfaces/store/export-store.d.ts.map +1 -0
  113. package/dist/interfaces/store/index.d.ts +7 -0
  114. package/dist/interfaces/store/index.d.ts.map +1 -0
  115. package/dist/interfaces/store/metrics-store.d.ts +60 -0
  116. package/dist/interfaces/store/metrics-store.d.ts.map +1 -0
  117. package/dist/interfaces/store/select-store.d.ts +1 -1
  118. package/dist/interfaces/store/select-store.d.ts.map +1 -1
  119. package/dist/interfaces/store/tool-store.d.ts +1 -1
  120. package/dist/interfaces/store/tool-store.d.ts.map +1 -1
  121. package/dist/interfaces/validator/index.d.ts +21 -0
  122. package/dist/interfaces/validator/index.d.ts.map +1 -0
  123. package/dist/interfaces/{controller/controller.d.ts → worker/index.d.ts} +5 -5
  124. package/dist/interfaces/worker/index.d.ts.map +1 -0
  125. package/dist/managers/benchmark/benchmark-manager.d.ts +27 -0
  126. package/dist/managers/benchmark/benchmark-manager.d.ts.map +1 -0
  127. package/dist/managers/benchmark/index.d.ts +2 -0
  128. package/dist/managers/benchmark/index.d.ts.map +1 -0
  129. package/dist/managers/display/display-manager.d.ts +4 -4
  130. package/dist/managers/display/display-manager.d.ts.map +1 -1
  131. package/dist/managers/display/index.d.ts +2 -0
  132. package/dist/managers/display/index.d.ts.map +1 -0
  133. package/dist/managers/index.d.ts +6 -0
  134. package/dist/managers/index.d.ts.map +1 -0
  135. package/dist/managers/scene/index.d.ts +2 -0
  136. package/dist/managers/scene/index.d.ts.map +1 -0
  137. package/dist/managers/scene/scene-manager.d.ts +5 -5
  138. package/dist/managers/scene/scene-manager.d.ts.map +1 -1
  139. package/dist/managers/select/index.d.ts +2 -0
  140. package/dist/managers/select/index.d.ts.map +1 -0
  141. package/dist/managers/select/select-manager.d.ts +5 -5
  142. package/dist/managers/select/select-manager.d.ts.map +1 -1
  143. package/dist/managers/tool/index.d.ts +2 -0
  144. package/dist/managers/tool/index.d.ts.map +1 -0
  145. package/dist/managers/tool/tool-manager.d.ts +4 -4
  146. package/dist/managers/tool/tool-manager.d.ts.map +1 -1
  147. package/dist/mediator/index.d.ts +2 -2
  148. package/dist/mediator/index.d.ts.map +1 -1
  149. package/dist/middlewares/exception-middleware.d.ts +7 -2
  150. package/dist/middlewares/exception-middleware.d.ts.map +1 -1
  151. package/dist/middlewares/index.d.ts +2 -0
  152. package/dist/middlewares/index.d.ts.map +1 -0
  153. package/dist/modules/controls-module.d.ts +40 -13
  154. package/dist/modules/controls-module.d.ts.map +1 -1
  155. package/dist/modules/gizmo-module.d.ts +18 -6
  156. package/dist/modules/gizmo-module.d.ts.map +1 -1
  157. package/dist/modules/index.d.ts +7 -0
  158. package/dist/modules/index.d.ts.map +1 -0
  159. package/dist/modules/metrics-module.d.ts +156 -0
  160. package/dist/modules/metrics-module.d.ts.map +1 -0
  161. package/dist/modules/raycast-module.d.ts +23 -10
  162. package/dist/modules/raycast-module.d.ts.map +1 -1
  163. package/dist/modules/scene-module.d.ts +2 -3
  164. package/dist/modules/scene-module.d.ts.map +1 -1
  165. package/dist/modules/scene-preview-module.d.ts +26 -0
  166. package/dist/modules/scene-preview-module.d.ts.map +1 -0
  167. package/dist/{api → shared/api}/modules/controls-state-api.d.ts +1 -1
  168. package/dist/shared/api/modules/controls-state-api.d.ts.map +1 -0
  169. package/dist/shared/api/modules/index.d.ts +6 -0
  170. package/dist/shared/api/modules/index.d.ts.map +1 -0
  171. package/dist/shared/api/modules/interaction-api.d.ts +21 -0
  172. package/dist/shared/api/modules/interaction-api.d.ts.map +1 -0
  173. package/dist/{api → shared/api}/modules/mesh-api.d.ts +1 -1
  174. package/dist/shared/api/modules/mesh-api.d.ts.map +1 -0
  175. package/dist/{api → shared/api}/modules/raycast-api.d.ts +1 -1
  176. package/dist/shared/api/modules/raycast-api.d.ts.map +1 -0
  177. package/dist/{api → shared/api}/modules/transform-api.d.ts +2 -2
  178. package/dist/shared/api/modules/transform-api.d.ts.map +1 -0
  179. package/dist/{api → shared/api}/renderer/camera-api.d.ts +2 -2
  180. package/dist/shared/api/renderer/camera-api.d.ts.map +1 -0
  181. package/dist/{api → shared/api}/renderer/dom-api.d.ts +2 -2
  182. package/dist/shared/api/renderer/dom-api.d.ts.map +1 -0
  183. package/dist/shared/api/renderer/index.d.ts +5 -0
  184. package/dist/shared/api/renderer/index.d.ts.map +1 -0
  185. package/dist/shared/api/renderer/renderer-info-api.d.ts +25 -0
  186. package/dist/shared/api/renderer/renderer-info-api.d.ts.map +1 -0
  187. package/dist/{api → shared/api}/renderer/scene-api.d.ts +21 -3
  188. package/dist/shared/api/renderer/scene-api.d.ts.map +1 -0
  189. package/dist/shared/constants/benchmark.d.ts +5 -0
  190. package/dist/shared/constants/benchmark.d.ts.map +1 -0
  191. package/dist/shared/constants/colors.d.ts.map +1 -0
  192. package/dist/shared/constants/figure-geometries.d.ts.map +1 -0
  193. package/dist/shared/constants/index.d.ts +7 -0
  194. package/dist/shared/constants/index.d.ts.map +1 -0
  195. package/dist/shared/constants/layers.d.ts.map +1 -0
  196. package/dist/shared/constants/messages.d.ts.map +1 -0
  197. package/dist/shared/constants/threshold.d.ts.map +1 -0
  198. package/dist/shared/decorators/index.d.ts +3 -0
  199. package/dist/shared/decorators/index.d.ts.map +1 -0
  200. package/dist/{decorators → shared/decorators}/use-policy.d.ts +1 -1
  201. package/dist/shared/decorators/use-policy.d.ts.map +1 -0
  202. package/dist/shared/decorators/use-validator.d.ts +5 -0
  203. package/dist/shared/decorators/use-validator.d.ts.map +1 -0
  204. package/dist/shared/errors/index.d.ts +3 -0
  205. package/dist/shared/errors/index.d.ts.map +1 -0
  206. package/dist/{errors → shared/errors}/policy-error.d.ts +1 -1
  207. package/dist/shared/errors/policy-error.d.ts.map +1 -0
  208. package/dist/shared/errors/validation-error.d.ts +9 -0
  209. package/dist/shared/errors/validation-error.d.ts.map +1 -0
  210. package/dist/{events → shared/events}/editor-events.d.ts +1 -1
  211. package/dist/shared/events/editor-events.d.ts.map +1 -0
  212. package/dist/{events → shared/events}/event-bus.d.ts +1 -1
  213. package/dist/shared/events/event-bus.d.ts.map +1 -0
  214. package/dist/shared/events/event-topics.d.ts.map +1 -0
  215. package/dist/shared/events/index.d.ts +4 -0
  216. package/dist/shared/events/index.d.ts.map +1 -0
  217. package/dist/shared/ioc/container.d.ts +10 -0
  218. package/dist/shared/ioc/container.d.ts.map +1 -0
  219. package/dist/shared/loaders/obj-loader.d.ts.map +1 -0
  220. package/dist/shared/policy/index.d.ts +2 -0
  221. package/dist/shared/policy/index.d.ts.map +1 -0
  222. package/dist/{policy → shared/policy}/tool-policy.d.ts +2 -2
  223. package/dist/shared/policy/tool-policy.d.ts.map +1 -0
  224. package/dist/shared/utils/default-renderer-config.d.ts +9 -0
  225. package/dist/shared/utils/default-renderer-config.d.ts.map +1 -0
  226. package/dist/shared/utils/helpers.d.ts +26 -0
  227. package/dist/shared/utils/helpers.d.ts.map +1 -0
  228. package/dist/shared/utils/index.d.ts +3 -0
  229. package/dist/shared/utils/index.d.ts.map +1 -0
  230. package/dist/shared/validators/index.d.ts +2 -0
  231. package/dist/shared/validators/index.d.ts.map +1 -0
  232. package/dist/shared/validators/obj-validator.d.ts +12 -0
  233. package/dist/shared/validators/obj-validator.d.ts.map +1 -0
  234. package/dist/store/editor-store.d.ts +33 -0
  235. package/dist/store/editor-store.d.ts.map +1 -0
  236. package/dist/store/export-store.d.ts +12 -0
  237. package/dist/store/export-store.d.ts.map +1 -0
  238. package/dist/store/index.d.ts +3 -35
  239. package/dist/store/index.d.ts.map +1 -1
  240. package/dist/store/metrics-store.d.ts +32 -0
  241. package/dist/store/metrics-store.d.ts.map +1 -0
  242. package/dist/types/camera/index.d.ts +2 -0
  243. package/dist/types/camera/index.d.ts.map +1 -0
  244. package/dist/types/event/index.d.ts +2 -0
  245. package/dist/types/event/index.d.ts.map +1 -0
  246. package/dist/types/feature/feature-type.d.ts +3 -1
  247. package/dist/types/feature/feature-type.d.ts.map +1 -1
  248. package/dist/types/feature/index.d.ts +2 -0
  249. package/dist/types/feature/index.d.ts.map +1 -0
  250. package/dist/types/listener/index.d.ts +4 -0
  251. package/dist/types/listener/index.d.ts.map +1 -0
  252. package/dist/types/listener/metrics-listener.d.ts +4 -0
  253. package/dist/types/listener/metrics-listener.d.ts.map +1 -0
  254. package/dist/types/renderer/index.d.ts +2 -0
  255. package/dist/types/renderer/index.d.ts.map +1 -0
  256. package/dist/types/renderer/renderer-info-metrics.d.ts +8 -0
  257. package/dist/types/renderer/renderer-info-metrics.d.ts.map +1 -0
  258. package/dist/types/select/index.d.ts +2 -0
  259. package/dist/types/select/index.d.ts.map +1 -0
  260. package/dist/workers/index.d.ts +2 -0
  261. package/dist/workers/index.d.ts.map +1 -0
  262. package/dist/{controllers/renderer-controller.d.ts → workers/renderer-worker.d.ts} +15 -14
  263. package/dist/workers/renderer-worker.d.ts.map +1 -0
  264. package/package.json +3 -3
  265. package/dist/api/modules/controls-state-api.d.ts.map +0 -1
  266. package/dist/api/modules/mesh-api.d.ts.map +0 -1
  267. package/dist/api/modules/raycast-api.d.ts.map +0 -1
  268. package/dist/api/modules/transform-api.d.ts.map +0 -1
  269. package/dist/api/renderer/camera-api.d.ts.map +0 -1
  270. package/dist/api/renderer/dom-api.d.ts.map +0 -1
  271. package/dist/api/renderer/scene-api.d.ts.map +0 -1
  272. package/dist/constants/colors.d.ts.map +0 -1
  273. package/dist/constants/figure-geometries.d.ts.map +0 -1
  274. package/dist/constants/layers.d.ts.map +0 -1
  275. package/dist/constants/messages.d.ts.map +0 -1
  276. package/dist/constants/threshold.d.ts.map +0 -1
  277. package/dist/controllers/renderer-controller.d.ts.map +0 -1
  278. package/dist/decorators/use-policy.d.ts.map +0 -1
  279. package/dist/errors/policy-error.d.ts.map +0 -1
  280. package/dist/events/editor-events.d.ts.map +0 -1
  281. package/dist/events/event-bus.d.ts.map +0 -1
  282. package/dist/events/event-topics.d.ts.map +0 -1
  283. package/dist/hub/app-hub.d.ts +0 -13
  284. package/dist/hub/app-hub.d.ts.map +0 -1
  285. package/dist/interfaces/controller/controller.d.ts.map +0 -1
  286. package/dist/interfaces/response/index.d.ts +0 -22
  287. package/dist/interfaces/response/index.d.ts.map +0 -1
  288. package/dist/ioc/container.d.ts +0 -5
  289. package/dist/ioc/container.d.ts.map +0 -1
  290. package/dist/loaders/obj-loader.d.ts.map +0 -1
  291. package/dist/policy/tool-policy.d.ts.map +0 -1
  292. package/dist/types/response/response-type.d.ts +0 -19
  293. package/dist/types/response/response-type.d.ts.map +0 -1
  294. package/dist/utils/helpers.d.ts +0 -13
  295. package/dist/utils/helpers.d.ts.map +0 -1
  296. /package/dist/{constants → shared/constants}/colors.d.ts +0 -0
  297. /package/dist/{constants → shared/constants}/figure-geometries.d.ts +0 -0
  298. /package/dist/{constants → shared/constants}/layers.d.ts +0 -0
  299. /package/dist/{constants → shared/constants}/messages.d.ts +0 -0
  300. /package/dist/{constants → shared/constants}/threshold.d.ts +0 -0
  301. /package/dist/{events → shared/events}/event-topics.d.ts +0 -0
  302. /package/dist/{loaders → shared/loaders}/obj-loader.d.ts +0 -0
@@ -1,13 +1,81 @@
1
+ import { BenchmarkConfig } from '@planara/types';
2
+ import { BenchmarkMetrics } from '@planara/types';
3
+ import { BenchmarkReport } from '@planara/types';
4
+ import { BenchmarkRunResult } from '@planara/types';
5
+ import { BenchmarkTestType } from '@planara/types';
1
6
  import { DisplayMode } from '@planara/types';
2
7
  import { Disposable as Disposable_2 } from 'tsyringe';
8
+ import { ExportResult } from '@planara/types';
9
+ import { ExportSceneResult } from '@planara/types';
3
10
  import { Figure } from '@planara/types';
4
11
  import { FigureTransform } from '@planara/types';
5
12
  import { FigureType } from '@planara/types';
6
- import { SceneMode } from '@planara/types';
13
+ import { IResponse } from '@planara/types';
14
+ import { RendererConfig } from '@planara/types';
15
+ import { RendererConfigInput } from '@planara/types';
7
16
  import { SelectMode } from '@planara/types';
8
17
  import * as THREE from 'three';
9
18
  import { ToolType } from '@planara/types';
10
19
 
20
+ /**
21
+ * Хаб benchmark-тестирования.
22
+ *
23
+ * @remarks
24
+ * Предоставляет публичный API для запуска benchmark-тестов,
25
+ * получения итогового отчета и подписки на live-обновления метрик.
26
+ *
27
+ * @public
28
+ * @class
29
+ */
30
+ export declare class BenchmarkHub {
31
+ private _renderer;
32
+ private readonly _mediator;
33
+ private readonly _store;
34
+ private _worker;
35
+ constructor(_renderer: Renderer, _mediator: IMediator, _store: IMetricsStore, _worker: IWorker);
36
+ /**
37
+ * Запускает benchmark-тестирование.
38
+ *
39
+ * @param config - конфигурация benchmark-тестирования
40
+ *
41
+ * @returns Краткий результат выполнения запрошенных тестов
42
+ *
43
+ * @public
44
+ * @method
45
+ */
46
+ run(config: BenchmarkConfig): BenchmarkRunResult;
47
+ /**
48
+ * Возвращает отчет по успешно выполненным benchmark-тестам.
49
+ *
50
+ * @returns Отчет benchmark-тестирования
51
+ *
52
+ * @public
53
+ * @method
54
+ */
55
+ getReport(): BenchmarkReport;
56
+ /**
57
+ * Регистрирует слушатель обновления live-метрик.
58
+ *
59
+ * @param listener - обработчик обновления метрик
60
+ *
61
+ * @returns Функция отписки от обновлений
62
+ *
63
+ * @public
64
+ * @method
65
+ */
66
+ subscribeMetrics(listener: MetricsListener): () => void;
67
+ resizeRenderer(): void;
68
+ /**
69
+ * Запускает редактор.
70
+ * Вызывается после создания хаба.
71
+ */
72
+ start(): void;
73
+ /**
74
+ * Останавливает редактор.
75
+ */
76
+ stop(): void;
77
+ }
78
+
11
79
  /**
12
80
  * Тип позиции камеры в мире.
13
81
  * @public
@@ -18,12 +86,26 @@ export declare type CameraPosition = {
18
86
  z: number;
19
87
  };
20
88
 
89
+ /**
90
+ * Инициализирует бенчмарк и возвращает хаб.
91
+ * Вызывать один раз при старте (когда есть canvas).
92
+ * @public
93
+ */
94
+ export declare const createBenchmarkHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => BenchmarkHub;
95
+
21
96
  /**
22
97
  * Инициализирует редактор и возвращает хаб.
23
98
  * Вызывать один раз при старте (когда есть canvas).
24
99
  * @public
25
100
  */
26
- export declare const createAppHub: (canvas: HTMLCanvasElement) => EditorHub;
101
+ export declare const createEditorHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => EditorHub;
102
+
103
+ /**
104
+ * Инициализирует вьювер и возвращает хаб.
105
+ * Вызывать один раз при старте (когда есть canvas).
106
+ * @public
107
+ */
108
+ export declare const createViewerHub: (canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput) => ViewerHub;
27
109
 
28
110
  /**
29
111
  * Типы событий редактора.
@@ -51,13 +133,17 @@ export declare class EditorHub implements Disposable_2 {
51
133
  private _renderer;
52
134
  private _mediator;
53
135
  private _store;
54
- private _controller;
55
- constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _controller: IController);
136
+ private _exportStore;
137
+ private _worker;
138
+ constructor(_renderer: Renderer, _mediator: IMediator, _store: ITransformStore, _exportStore: IExportStore, _worker: IWorker);
56
139
  setDisplayMode(mode: DisplayMode): IResponse | null;
57
- setSceneMode(mode: SceneMode): IResponse | null;
58
140
  setSelectMode(mode: SelectMode): IResponse | null;
59
141
  setToolMode(mode: ToolType): IResponse | null;
60
- addFigure(mode: SceneMode, figure: FigureType): IResponse | null;
142
+ addFigure(figure: FigureType): IResponse | null;
143
+ deleteFigure(): IResponse | null;
144
+ loadFigure(content: string): IResponse | null;
145
+ loadScene(content: string): IResponse | null;
146
+ exportScene(): ExportSceneResult;
61
147
  resizeRenderer(): void;
62
148
  /**
63
149
  * Запускает редактор.
@@ -213,58 +299,35 @@ export declare enum FeatureType {
213
299
  /** Выборка */
214
300
  Select = 2,
215
301
  /** Инструменты */
216
- Tool = 3
302
+ Tool = 3,
303
+ /** Бенчмарк */
304
+ Benchmark = 4
217
305
  }
218
306
 
307
+ /**
308
+ * Возвращает уже созданный хаб, если бенчмарк инициализирован.
309
+ * @public
310
+ */
311
+ export declare const getBenchmarkHub: () => BenchmarkHub;
312
+
219
313
  /**
220
314
  * Возвращает уже созданный хаб, если редактор инициализирован.
221
315
  * @public
222
316
  */
223
- export declare const getAppHub: () => EditorHub;
317
+ export declare const getEditorHub: () => EditorHub;
224
318
 
225
319
  /**
320
+ * Возвращает уже созданный хаб, если вьювер инициализирован.
226
321
  * @public
227
322
  */
228
- export declare interface ICommand {
229
- type: FeatureType;
230
- payload: unknown[];
231
- }
323
+ export declare const getViewerHub: () => ViewerHub;
232
324
 
233
325
  /**
234
- * Интерфейс для контроллера, управляющего жизненным циклом модулей.
235
- *
236
- * @remarks
237
- * Контроллер отвечает за:
238
- * - инициализацию модулей (`IRuntimeModule`)
239
- * - запуск цикла рендеринга
240
- * - обновление модулей каждый кадр (`IUpdatableModule`)
241
- * - рендеринг модулей (`IRenderableModule`)
242
- * - остановку и очистку ресурсов
243
- *
244
326
  * @public
245
- * @interface
246
327
  */
247
- export declare interface IController extends Disposable_2 {
248
- /**
249
- * Запускает контроллер.
250
- *
251
- * @remarks
252
- * Инициализирует все модули и запускает цикл рендеринга.
253
- *
254
- * @public
255
- * @method
256
- */
257
- start(): void;
258
- /**
259
- * Останавливает контроллер.
260
- *
261
- * @remarks
262
- * Останавливает цикл рендеринга и освобождает ресурсы.
263
- *
264
- * @public
265
- * @method
266
- */
267
- stop(): void;
328
+ export declare interface ICommand {
329
+ type: FeatureType;
330
+ payload: unknown[];
268
331
  }
269
332
 
270
333
  /**
@@ -287,6 +350,13 @@ export declare interface IDisplayStore {
287
350
  setDisplayMode(mode: DisplayMode): void;
288
351
  }
289
352
 
353
+ /** @public */
354
+ export declare interface IExportStore {
355
+ setResult(result: ExportResult): void;
356
+ getResult(): ExportResult | null;
357
+ clearResult(): void;
358
+ }
359
+
290
360
  /**
291
361
  * Интерфейс медиатора команд редактора.
292
362
  *
@@ -335,6 +405,64 @@ export declare interface IMediator extends Disposable_2 {
335
405
  send(command: ICommand): IResponse | null;
336
406
  }
337
407
 
408
+ /**
409
+ * Хранилище метрик benchmark-тестирования.
410
+ *
411
+ * @public
412
+ * @interface
413
+ */
414
+ export declare interface IMetricsStore {
415
+ /**
416
+ * Очищает сохраненные метрики и текущие live-значения.
417
+ *
418
+ * @public
419
+ */
420
+ clear(): void;
421
+ /**
422
+ * Сохраняет метрики успешно выполненного benchmark-теста.
423
+ *
424
+ * @param type - тип benchmark-теста
425
+ * @param metrics - собранные метрики производительности
426
+ *
427
+ * @public
428
+ */
429
+ addMetrics(type: BenchmarkTestType, metrics: BenchmarkMetrics): void;
430
+ /**
431
+ * Обновляет текущие live-метрики.
432
+ *
433
+ * @param metrics - текущие метрики производительности
434
+ *
435
+ * @public
436
+ */
437
+ setCurrentMetrics(metrics: BenchmarkMetrics | null): void;
438
+ /**
439
+ * Возвращает текущие live-метрики.
440
+ *
441
+ * @returns Текущие метрики или `null`, если измерение не выполняется
442
+ *
443
+ * @public
444
+ */
445
+ getCurrentMetrics(): BenchmarkMetrics | null;
446
+ /**
447
+ * Регистрирует слушатель обновления live-метрик.
448
+ *
449
+ * @param listener - обработчик обновления метрик
450
+ *
451
+ * @returns Функция отписки
452
+ *
453
+ * @public
454
+ */
455
+ subscribe(listener: MetricsListener): () => void;
456
+ /**
457
+ * Возвращает отчет по успешно выполненным benchmark-тестам.
458
+ *
459
+ * @returns Отчет benchmark-тестирования
460
+ *
461
+ * @public
462
+ */
463
+ getReport(): BenchmarkReport;
464
+ }
465
+
338
466
  /**
339
467
  * Интерфейс для объектов, которые могут быть отрисованы.
340
468
  *
@@ -500,6 +628,25 @@ export declare interface IRendererDomAccess {
500
628
  getDomElement(): HTMLElement;
501
629
  }
502
630
 
631
+ /**
632
+ * API доступа к метрикам WebGL-рендерера.
633
+ *
634
+ * @remarks
635
+ * Предоставляет только статистику рендеринга без доступа к самому renderer.
636
+ * Используется модулями диагностики и сбора метрик.
637
+ *
638
+ * @public
639
+ * @interface
640
+ */
641
+ export declare interface IRendererInfoAccess {
642
+ /**
643
+ * Возвращает текущую статистику рендерера.
644
+ *
645
+ * @returns Метрики WebGL-рендера за текущий кадр
646
+ */
647
+ getRendererInfo(): RendererInfoMetrics;
648
+ }
649
+
503
650
  /**
504
651
  * Низкоуровневый доступ к сцене рендерера.
505
652
  *
@@ -544,27 +691,6 @@ export declare interface IRendererSceneAccess {
544
691
  getScene(): THREE.Scene;
545
692
  }
546
693
 
547
- /**
548
- * Тип ответа от менеджеров или политик редактора.
549
- *
550
- * @remarks
551
- * Используется для единого API на уровне Hub.
552
- * Все менеджеры возвращают `Response`, чтобы клиент знал статус вызова.
553
- *
554
- * @public
555
- * @interface
556
- */
557
- export declare interface IResponse {
558
- /** Тип ответа (enum ResponseType) */
559
- type: ResponseType_2;
560
- /** Читаемое сообщение для отображения или логирования */
561
- message: string;
562
- /** Строковый код для логов или интеграций (опционально) */
563
- code?: string;
564
- /** Флаг блокировки действия (true, если вызов запрещён) */
565
- blocked?: boolean;
566
- }
567
-
568
694
  /**
569
695
  * Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Select фичей,
570
696
  * необходим для корректного взаимодействия между группами фичей.
@@ -640,6 +766,46 @@ export declare interface IToolStore {
640
766
  export declare interface ITransformStore extends ISelectStore, IToolStore {
641
767
  }
642
768
 
769
+ /**
770
+ * Интерфейс для воркера, управляющего жизненным циклом модулей.
771
+ *
772
+ * @remarks
773
+ * Контроллер отвечает за:
774
+ * - инициализацию модулей (`IRuntimeModule`)
775
+ * - запуск цикла рендеринга
776
+ * - обновление модулей каждый кадр (`IUpdatableModule`)
777
+ * - рендеринг модулей (`IRenderableModule`)
778
+ * - остановку и очистку ресурсов
779
+ *
780
+ * @public
781
+ * @interface
782
+ */
783
+ export declare interface IWorker extends Disposable_2 {
784
+ /**
785
+ * Запускает воркер.
786
+ *
787
+ * @remarks
788
+ * Инициализирует все модули и запускает цикл рендеринга.
789
+ *
790
+ * @public
791
+ * @method
792
+ */
793
+ start(): void;
794
+ /**
795
+ * Останавливает воркер.
796
+ *
797
+ * @remarks
798
+ * Останавливает цикл рендеринга и освобождает ресурсы.
799
+ *
800
+ * @public
801
+ * @method
802
+ */
803
+ stop(): void;
804
+ }
805
+
806
+ /** @public */
807
+ export declare type MetricsListener = (metrics: BenchmarkMetrics | null) => void;
808
+
643
809
  /** @public */
644
810
  export declare class ObjLoader {
645
811
  /** Позиции вершин */
@@ -686,7 +852,8 @@ export declare class ObjLoader {
686
852
  * @public
687
853
  * @class
688
854
  */
689
- export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRenderable, Disposable_2 {
855
+ export declare class Renderer implements IRendererAccess, IRendererCameraAccess, IRendererDomAccess, IRendererSceneAccess, IRendererInfoAccess, IRenderable, Disposable_2 {
856
+ private readonly _config;
690
857
  /**
691
858
  * Корневой объект сцены Three.js.
692
859
  *
@@ -719,22 +886,19 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
719
886
  * Конструктор рендерера.
720
887
  *
721
888
  * @param _canvas - HTMLCanvasElement для рендеринга
889
+ * @param _config - Конфиг для настройки рендерера
722
890
  *
723
891
  * @remarks
724
- * Инициализирует сцену с тёмным фоном, перспективную камеру
725
- * (45° FOV, near 0.1, far 1000) и базовое освещение:
726
- * - `AmbientLight` (0xffffff, 0.5) — общий свет
727
- * - `DirectionalLight` (0xffffff, 1) — направленный свет
892
+ * Инициализирует сцену, камеру, WebGLRenderer и базовое освещение
893
+ * на основе переданного `RendererConfig`.
728
894
  *
729
- * @example
730
- * ```typescript
731
- * const renderer = new Renderer(canvas);
732
- * ```
895
+ * По умолчанию используется тёмный фон, перспективная камера
896
+ * и два источника света: AmbientLight и DirectionalLight.
733
897
  *
734
898
  * @public
735
899
  * @constructor
736
900
  */
737
- constructor(_canvas: HTMLCanvasElement);
901
+ constructor(_canvas: HTMLCanvasElement, _config: RendererConfig);
738
902
  /**
739
903
  * Обновляет размер рендерера и пропорции камеры.
740
904
  *
@@ -742,11 +906,11 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
742
906
  * Вызывается при изменении размеров canvas (например, при ресайзе окна браузера).
743
907
  *
744
908
  * @example
745
- * ```typescript
909
+ * ```ts
746
910
  * window.addEventListener('resize', () => renderer.resize());
747
911
  * ```
748
912
  *
749
- * @oublic
913
+ * @public
750
914
  * @method
751
915
  */
752
916
  resize(): void;
@@ -781,7 +945,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
781
945
  * **Важно:** вызывать метод только один раз.
782
946
  *
783
947
  * @example
784
- * ```typescript
948
+ * ```ts
785
949
  * renderer.loop();
786
950
  * ```
787
951
  *
@@ -794,6 +958,7 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
794
958
  getCanvas(): HTMLCanvasElement;
795
959
  getDomElement(): HTMLElement;
796
960
  getScene(): THREE.Scene;
961
+ getRendererInfo(): RendererInfoMetrics;
797
962
  /**
798
963
  * Освобождает ресурсы рендерера.
799
964
  *
@@ -807,25 +972,13 @@ export declare class Renderer implements IRendererAccess, IRendererCameraAccess,
807
972
  dispose(): Promise<void> | void;
808
973
  }
809
974
 
810
- /**
811
- * Enum типов ответа от менеджеров и политик.
812
- *
813
- * @remarks
814
- * Используется в `IResponse.type`.
815
- *
816
- * @public
817
- * @enum
818
- */
819
- declare enum ResponseType_2 {
820
- /** Действие заблокировано, инструмент недоступен */
821
- ToolNotAllowed = "TOOL_NOT_ALLOWED",
822
- /** Действие выполнено успешно */
823
- Success = "SUCCESS",
824
- /** Действие не выполнено, потому что нет изменений */
825
- NoChange = "NO_CHANGE",
826
- Error = "ERROR"
827
- }
828
- export { ResponseType_2 as ResponseType }
975
+ /** @public */
976
+ export declare type RendererInfoMetrics = {
977
+ drawCalls: number;
978
+ triangles: number;
979
+ geometries: number;
980
+ textures: number;
981
+ };
829
982
 
830
983
  /** @public */
831
984
  export declare type SelectedListener = (obj: THREE.Object3D | null) => void;
@@ -833,4 +986,29 @@ export declare type SelectedListener = (obj: THREE.Object3D | null) => void;
833
986
  /** @public */
834
987
  export declare type TransformListener = () => void;
835
988
 
989
+ /**
990
+ * Хаб для управления вьювером
991
+ * @public
992
+ */
993
+ export declare class ViewerHub implements Disposable_2 {
994
+ private _renderer;
995
+ private _mediator;
996
+ private _worker;
997
+ constructor(_renderer: Renderer, _mediator: IMediator, _worker: IWorker);
998
+ addFigure(figure: FigureType): IResponse | null;
999
+ loadFigure(content: string): IResponse | null;
1000
+ loadScene(content: string): IResponse | null;
1001
+ resizeRenderer(): void;
1002
+ /**
1003
+ * Запускает вьювер.
1004
+ * Вызывается после создания хаба.
1005
+ */
1006
+ start(): void;
1007
+ /**
1008
+ * Останавливает вьювер.
1009
+ */
1010
+ stop(): void;
1011
+ dispose(): Promise<void> | void;
1012
+ }
1013
+
836
1014
  export { }