@planara/core 2.8.0 → 3.1.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 (283) hide show
  1. package/README.md +5 -0
  2. package/dist/api/modules/controls-state-api.d.ts +23 -0
  3. package/dist/api/modules/controls-state-api.d.ts.map +1 -0
  4. package/dist/api/modules/index.d.ts +5 -0
  5. package/dist/api/modules/index.d.ts.map +1 -0
  6. package/dist/api/modules/mesh-api.d.ts +30 -0
  7. package/dist/api/modules/mesh-api.d.ts.map +1 -0
  8. package/dist/api/modules/raycast-api.d.ts +28 -0
  9. package/dist/api/modules/raycast-api.d.ts.map +1 -0
  10. package/dist/api/modules/transform-api.d.ts +33 -0
  11. package/dist/api/modules/transform-api.d.ts.map +1 -0
  12. package/dist/api/renderer/camera-api.d.ts +26 -0
  13. package/dist/api/renderer/camera-api.d.ts.map +1 -0
  14. package/dist/api/renderer/dom-api.d.ts +24 -0
  15. package/dist/api/renderer/dom-api.d.ts.map +1 -0
  16. package/dist/api/renderer/index.d.ts +4 -0
  17. package/dist/api/renderer/index.d.ts.map +1 -0
  18. package/dist/api/renderer/scene-api.d.ts +26 -0
  19. package/dist/api/renderer/scene-api.d.ts.map +1 -0
  20. package/dist/constants/colors.d.ts +12 -0
  21. package/dist/constants/colors.d.ts.map +1 -1
  22. package/dist/constants/figure-geometries.d.ts +55 -4
  23. package/dist/constants/figure-geometries.d.ts.map +1 -1
  24. package/dist/constants/index.d.ts +6 -0
  25. package/dist/constants/index.d.ts.map +1 -0
  26. package/dist/constants/layers.d.ts +12 -0
  27. package/dist/constants/layers.d.ts.map +1 -1
  28. package/dist/constants/messages.d.ts +18 -0
  29. package/dist/constants/messages.d.ts.map +1 -0
  30. package/dist/constants/threshold.d.ts +42 -2
  31. package/dist/constants/threshold.d.ts.map +1 -1
  32. package/dist/controllers/index.d.ts +2 -0
  33. package/dist/controllers/index.d.ts.map +1 -0
  34. package/dist/controllers/renderer-controller.d.ts +72 -0
  35. package/dist/controllers/renderer-controller.d.ts.map +1 -0
  36. package/dist/core/index.d.ts +2 -0
  37. package/dist/core/index.d.ts.map +1 -0
  38. package/dist/core/renderer.d.ts +105 -78
  39. package/dist/core/renderer.d.ts.map +1 -1
  40. package/dist/decorators/index.d.ts +3 -0
  41. package/dist/decorators/index.d.ts.map +1 -0
  42. package/dist/decorators/use-policy.d.ts +5 -0
  43. package/dist/decorators/use-policy.d.ts.map +1 -0
  44. package/dist/decorators/use-validator.d.ts +5 -0
  45. package/dist/decorators/use-validator.d.ts.map +1 -0
  46. package/dist/errors/index.d.ts +3 -0
  47. package/dist/errors/index.d.ts.map +1 -0
  48. package/dist/errors/policy-error.d.ts +9 -0
  49. package/dist/errors/policy-error.d.ts.map +1 -0
  50. package/dist/errors/validation-error.d.ts +9 -0
  51. package/dist/errors/validation-error.d.ts.map +1 -0
  52. package/dist/events/editor-events.d.ts +3 -7
  53. package/dist/events/editor-events.d.ts.map +1 -1
  54. package/dist/events/event-bus.d.ts +103 -6
  55. package/dist/events/event-bus.d.ts.map +1 -1
  56. package/dist/events/event-topics.d.ts +3 -3
  57. package/dist/events/event-topics.d.ts.map +1 -1
  58. package/dist/events/index.d.ts +4 -0
  59. package/dist/events/index.d.ts.map +1 -0
  60. package/dist/handlers/display/index.d.ts +2 -0
  61. package/dist/handlers/display/index.d.ts.map +1 -0
  62. package/dist/handlers/display/wireframe-handler.d.ts +4 -2
  63. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  64. package/dist/handlers/scene/add-figure-scene-handler.d.ts +4 -2
  65. package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -1
  66. package/dist/handlers/scene/delete-figure-scene-handler.d.ts +4 -4
  67. package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -1
  68. package/dist/handlers/scene/export-scene-handler.d.ts +23 -0
  69. package/dist/handlers/scene/export-scene-handler.d.ts.map +1 -0
  70. package/dist/handlers/scene/index.d.ts +6 -0
  71. package/dist/handlers/scene/index.d.ts.map +1 -0
  72. package/dist/handlers/scene/load-figure-scene-handler.d.ts +23 -0
  73. package/dist/handlers/scene/load-figure-scene-handler.d.ts.map +1 -0
  74. package/dist/handlers/scene/load-scene-handler.d.ts +23 -0
  75. package/dist/handlers/scene/load-scene-handler.d.ts.map +1 -0
  76. package/dist/handlers/select/edge-select-handler.d.ts +11 -8
  77. package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
  78. package/dist/handlers/select/face-select-handler.d.ts +11 -8
  79. package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
  80. package/dist/handlers/select/index.d.ts +5 -0
  81. package/dist/handlers/select/index.d.ts.map +1 -0
  82. package/dist/handlers/select/mesh-select-handler.d.ts +8 -7
  83. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  84. package/dist/handlers/select/vertex-select-handler.d.ts +11 -8
  85. package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
  86. package/dist/handlers/tool/base-tool-handler.d.ts +10 -7
  87. package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
  88. package/dist/handlers/tool/index.d.ts +4 -0
  89. package/dist/handlers/tool/index.d.ts.map +1 -0
  90. package/dist/handlers/tool/rotate-tool-handler.d.ts +4 -3
  91. package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
  92. package/dist/handlers/tool/scale-tool-handler.d.ts +4 -3
  93. package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
  94. package/dist/handlers/tool/translate-tool-handler.d.ts +4 -3
  95. package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
  96. package/dist/hub/editor-hub.d.ts +26 -18
  97. package/dist/hub/editor-hub.d.ts.map +1 -1
  98. package/dist/hub/index.d.ts +26 -0
  99. package/dist/hub/index.d.ts.map +1 -0
  100. package/dist/hub/viewer-hub.d.ts +30 -0
  101. package/dist/hub/viewer-hub.d.ts.map +1 -0
  102. package/dist/index.cjs.js +20 -2
  103. package/dist/index.d.ts +16 -9
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.es.js +2615 -1627
  106. package/dist/index.full.d.ts +650 -245
  107. package/dist/index.public.d.ts +665 -160
  108. package/dist/index.umd.js +20 -2
  109. package/dist/interfaces/api/camera-api.d.ts +64 -0
  110. package/dist/interfaces/api/camera-api.d.ts.map +1 -0
  111. package/dist/interfaces/api/controls-state-api.d.ts +63 -0
  112. package/dist/interfaces/api/controls-state-api.d.ts.map +1 -0
  113. package/dist/interfaces/api/dom-api.d.ts +49 -0
  114. package/dist/interfaces/api/dom-api.d.ts.map +1 -0
  115. package/dist/interfaces/api/index.d.ts +9 -0
  116. package/dist/interfaces/api/index.d.ts.map +1 -0
  117. package/dist/interfaces/api/mesh-api.d.ts +93 -12
  118. package/dist/interfaces/api/mesh-api.d.ts.map +1 -1
  119. package/dist/interfaces/api/raycast-api.d.ts +6 -1
  120. package/dist/interfaces/api/raycast-api.d.ts.map +1 -1
  121. package/dist/interfaces/api/renderer/index.d.ts +6 -0
  122. package/dist/interfaces/api/renderer/index.d.ts.map +1 -0
  123. package/dist/interfaces/api/renderer/renderable.d.ts +45 -0
  124. package/dist/interfaces/api/renderer/renderable.d.ts.map +1 -0
  125. package/dist/interfaces/api/renderer/renderer-access.d.ts +34 -0
  126. package/dist/interfaces/api/renderer/renderer-access.d.ts.map +1 -0
  127. package/dist/interfaces/api/renderer/renderer-camera-access.d.ts +37 -0
  128. package/dist/interfaces/api/renderer/renderer-camera-access.d.ts.map +1 -0
  129. package/dist/interfaces/api/renderer/renderer-dom-access.d.ts +51 -0
  130. package/dist/interfaces/api/renderer/renderer-dom-access.d.ts.map +1 -0
  131. package/dist/interfaces/api/renderer/renderer-scene-access.d.ts +45 -0
  132. package/dist/interfaces/api/renderer/renderer-scene-access.d.ts.map +1 -0
  133. package/dist/interfaces/api/renderer-api.d.ts +35 -0
  134. package/dist/interfaces/api/renderer-api.d.ts.map +1 -0
  135. package/dist/interfaces/api/scene-api.d.ts +66 -26
  136. package/dist/interfaces/api/scene-api.d.ts.map +1 -1
  137. package/dist/interfaces/api/transform-api.d.ts +120 -0
  138. package/dist/interfaces/api/transform-api.d.ts.map +1 -0
  139. package/dist/interfaces/command/index.d.ts +9 -0
  140. package/dist/interfaces/command/index.d.ts.map +1 -0
  141. package/dist/interfaces/controller/index.d.ts +38 -0
  142. package/dist/interfaces/controller/index.d.ts.map +1 -0
  143. package/dist/interfaces/handler/display-handler.d.ts +9 -1
  144. package/dist/interfaces/handler/display-handler.d.ts.map +1 -1
  145. package/dist/interfaces/handler/handler.d.ts +2 -0
  146. package/dist/interfaces/handler/handler.d.ts.map +1 -1
  147. package/dist/interfaces/handler/index.d.ts +6 -0
  148. package/dist/interfaces/handler/index.d.ts.map +1 -0
  149. package/dist/interfaces/handler/scene-handler.d.ts +1 -0
  150. package/dist/interfaces/handler/scene-handler.d.ts.map +1 -1
  151. package/dist/interfaces/handler/select-handler.d.ts +1 -0
  152. package/dist/interfaces/handler/select-handler.d.ts.map +1 -1
  153. package/dist/interfaces/handler/tool-handler.d.ts +1 -0
  154. package/dist/interfaces/handler/tool-handler.d.ts.map +1 -1
  155. package/dist/interfaces/manager/display-manager.d.ts +3 -1
  156. package/dist/interfaces/manager/display-manager.d.ts.map +1 -1
  157. package/dist/interfaces/manager/index.d.ts +6 -0
  158. package/dist/interfaces/manager/index.d.ts.map +1 -0
  159. package/dist/interfaces/manager/manager.d.ts +12 -1
  160. package/dist/interfaces/manager/manager.d.ts.map +1 -1
  161. package/dist/interfaces/manager/scene-manager.d.ts +3 -1
  162. package/dist/interfaces/manager/scene-manager.d.ts.map +1 -1
  163. package/dist/interfaces/manager/select-manager.d.ts +3 -1
  164. package/dist/interfaces/manager/select-manager.d.ts.map +1 -1
  165. package/dist/interfaces/manager/tool-manager.d.ts +3 -1
  166. package/dist/interfaces/manager/tool-manager.d.ts.map +1 -1
  167. package/dist/interfaces/mediator/index.d.ts +51 -0
  168. package/dist/interfaces/mediator/index.d.ts.map +1 -0
  169. package/dist/interfaces/middleware/index.d.ts +50 -0
  170. package/dist/interfaces/middleware/index.d.ts.map +1 -0
  171. package/dist/interfaces/module/index.d.ts +4 -0
  172. package/dist/interfaces/module/index.d.ts.map +1 -0
  173. package/dist/interfaces/module/renderable-module.d.ts +27 -0
  174. package/dist/interfaces/module/renderable-module.d.ts.map +1 -0
  175. package/dist/interfaces/module/runtime-module.d.ts +54 -0
  176. package/dist/interfaces/module/runtime-module.d.ts.map +1 -0
  177. package/dist/interfaces/module/updatable-module.d.ts +48 -0
  178. package/dist/interfaces/module/updatable-module.d.ts.map +1 -0
  179. package/dist/interfaces/policy/index.d.ts +21 -0
  180. package/dist/interfaces/policy/index.d.ts.map +1 -0
  181. package/dist/interfaces/store/display-store.d.ts +21 -0
  182. package/dist/interfaces/store/display-store.d.ts.map +1 -0
  183. package/dist/interfaces/store/export-store.d.ts +8 -0
  184. package/dist/interfaces/store/export-store.d.ts.map +1 -0
  185. package/dist/interfaces/store/index.d.ts +6 -0
  186. package/dist/interfaces/store/index.d.ts.map +1 -0
  187. package/dist/interfaces/store/select-store.d.ts +44 -0
  188. package/dist/interfaces/store/select-store.d.ts.map +1 -0
  189. package/dist/interfaces/store/tool-store.d.ts +27 -0
  190. package/dist/interfaces/store/tool-store.d.ts.map +1 -0
  191. package/dist/interfaces/store/transform-store.d.ts +11 -0
  192. package/dist/interfaces/store/transform-store.d.ts.map +1 -0
  193. package/dist/interfaces/validator/index.d.ts +21 -0
  194. package/dist/interfaces/validator/index.d.ts.map +1 -0
  195. package/dist/ioc/container.d.ts +3 -1
  196. package/dist/ioc/container.d.ts.map +1 -1
  197. package/dist/managers/display/display-manager.d.ts +7 -4
  198. package/dist/managers/display/display-manager.d.ts.map +1 -1
  199. package/dist/managers/display/index.d.ts +2 -0
  200. package/dist/managers/display/index.d.ts.map +1 -0
  201. package/dist/managers/index.d.ts +5 -0
  202. package/dist/managers/index.d.ts.map +1 -0
  203. package/dist/managers/scene/index.d.ts +2 -0
  204. package/dist/managers/scene/index.d.ts.map +1 -0
  205. package/dist/managers/scene/scene-manager.d.ts +7 -4
  206. package/dist/managers/scene/scene-manager.d.ts.map +1 -1
  207. package/dist/managers/select/index.d.ts +2 -0
  208. package/dist/managers/select/index.d.ts.map +1 -0
  209. package/dist/managers/select/select-manager.d.ts +8 -5
  210. package/dist/managers/select/select-manager.d.ts.map +1 -1
  211. package/dist/managers/tool/index.d.ts +2 -0
  212. package/dist/managers/tool/index.d.ts.map +1 -0
  213. package/dist/managers/tool/tool-manager.d.ts +9 -6
  214. package/dist/managers/tool/tool-manager.d.ts.map +1 -1
  215. package/dist/mediator/index.d.ts +14 -0
  216. package/dist/mediator/index.d.ts.map +1 -0
  217. package/dist/middlewares/exception-middleware.d.ts +12 -0
  218. package/dist/middlewares/exception-middleware.d.ts.map +1 -0
  219. package/dist/middlewares/index.d.ts +2 -0
  220. package/dist/middlewares/index.d.ts.map +1 -0
  221. package/dist/modules/controls-module.d.ts +60 -0
  222. package/dist/modules/controls-module.d.ts.map +1 -0
  223. package/dist/modules/gizmo-module.d.ts +32 -0
  224. package/dist/modules/gizmo-module.d.ts.map +1 -0
  225. package/dist/modules/index.d.ts +6 -0
  226. package/dist/modules/index.d.ts.map +1 -0
  227. package/dist/modules/raycast-module.d.ts +87 -0
  228. package/dist/modules/raycast-module.d.ts.map +1 -0
  229. package/dist/modules/scene-module.d.ts +31 -0
  230. package/dist/modules/scene-module.d.ts.map +1 -0
  231. package/dist/modules/scene-preview-module.d.ts +26 -0
  232. package/dist/modules/scene-preview-module.d.ts.map +1 -0
  233. package/dist/policy/index.d.ts +2 -0
  234. package/dist/policy/index.d.ts.map +1 -0
  235. package/dist/policy/tool-policy.d.ts +18 -0
  236. package/dist/policy/tool-policy.d.ts.map +1 -0
  237. package/dist/store/editor-store.d.ts +33 -0
  238. package/dist/store/editor-store.d.ts.map +1 -0
  239. package/dist/store/export-store.d.ts +12 -0
  240. package/dist/store/export-store.d.ts.map +1 -0
  241. package/dist/store/index.d.ts +2 -45
  242. package/dist/store/index.d.ts.map +1 -1
  243. package/dist/types/camera/index.d.ts +2 -0
  244. package/dist/types/camera/index.d.ts.map +1 -0
  245. package/dist/types/event/index.d.ts +2 -0
  246. package/dist/types/event/index.d.ts.map +1 -0
  247. package/dist/types/feature/feature-type.d.ts +16 -0
  248. package/dist/types/feature/feature-type.d.ts.map +1 -0
  249. package/dist/types/feature/index.d.ts +2 -0
  250. package/dist/types/feature/index.d.ts.map +1 -0
  251. package/dist/types/listener/index.d.ts +3 -0
  252. package/dist/types/listener/index.d.ts.map +1 -0
  253. package/dist/types/select/index.d.ts +2 -0
  254. package/dist/types/select/index.d.ts.map +1 -0
  255. package/dist/utils/default-renderer-config.d.ts +9 -0
  256. package/dist/utils/default-renderer-config.d.ts.map +1 -0
  257. package/dist/utils/helpers.d.ts +14 -1
  258. package/dist/utils/helpers.d.ts.map +1 -1
  259. package/dist/utils/index.d.ts +3 -0
  260. package/dist/utils/index.d.ts.map +1 -0
  261. package/dist/validators/index.d.ts +2 -0
  262. package/dist/validators/index.d.ts.map +1 -0
  263. package/dist/validators/obj-validator.d.ts +12 -0
  264. package/dist/validators/obj-validator.d.ts.map +1 -0
  265. package/package.json +2 -2
  266. package/dist/core/editor-renderer.d.ts +0 -89
  267. package/dist/core/editor-renderer.d.ts.map +0 -1
  268. package/dist/core/preview-renderer.d.ts +0 -16
  269. package/dist/core/preview-renderer.d.ts.map +0 -1
  270. package/dist/hub/app-hub.d.ts +0 -13
  271. package/dist/hub/app-hub.d.ts.map +0 -1
  272. package/dist/interfaces/api/transform-helpers-api.d.ts +0 -26
  273. package/dist/interfaces/api/transform-helpers-api.d.ts.map +0 -1
  274. package/dist/interfaces/policy/tool-availability-policy.d.ts +0 -12
  275. package/dist/interfaces/policy/tool-availability-policy.d.ts.map +0 -1
  276. package/dist/interfaces/store/editor-store.d.ts +0 -52
  277. package/dist/interfaces/store/editor-store.d.ts.map +0 -1
  278. package/dist/policy/tool-availability-policy.d.ts +0 -13
  279. package/dist/policy/tool-availability-policy.d.ts.map +0 -1
  280. package/dist/types/api/editor-api.d.ts +0 -4
  281. package/dist/types/api/editor-api.d.ts.map +0 -1
  282. package/dist/utils/renderer-api.d.ts +0 -43
  283. package/dist/utils/renderer-api.d.ts.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { IRuntimeModule } from './runtime-module';
2
+ /**
3
+ * Интерфейс для модулей, требующих периодического обновления.
4
+ *
5
+ * @remarks
6
+ * Некоторые модули должны выполнять код каждый кадр анимации:
7
+ * - `ControlsModule` — обновление OrbitControls (`update()`)
8
+ * - анимации, физика, кастомные эффекты
9
+ *
10
+ * В отличие от {@link IRuntimeModule}, который инициализируется один раз,
11
+ * модули с `IUpdatableModule` получают вызов `update()` каждый кадр
12
+ * через цикл рендеринга.
13
+ *
14
+ * Оркестрацией вызовов `update()` занимается `EditorRenderer`.
15
+ *
16
+ * @see {@link IRuntimeModule} - для одноразовой инициализации
17
+ * @see {@link IRenderableModule} - для модулей с кастомным рендером
18
+ * @see {@link ControlsModule} - пример реализации
19
+ *
20
+ * @internal
21
+ */
22
+ export interface IUpdatableModule extends IRuntimeModule {
23
+ /**
24
+ * Вызывается каждый кадр перед рендером.
25
+ *
26
+ * @remarks
27
+ * Здесь модуль должен обновлять своё состояние:
28
+ * - обновлять контролы (`OrbitControls.update()`)
29
+ * - пересчитывать анимации
30
+ * - проверять условия и реагировать на изменения
31
+ *
32
+ * Важно: метод не должен выполнять тяжёлые операции,
33
+ * чтобы не снижать производительность.
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * public update(): void {
38
+ * this._orbit.update();
39
+ * this._updateAnimations();
40
+ * this._checkForChanges();
41
+ * }
42
+ * ```
43
+ *
44
+ * @internal
45
+ */
46
+ update(): void;
47
+ }
48
+ //# sourceMappingURL=updatable-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updatable-module.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module/updatable-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,IAAI,IAAI,CAAC;CAChB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Интерфейс политики.
3
+ *
4
+ * @remarks
5
+ * Политика проверяет, разрешено ли действие в текущем контексте.
6
+ *
7
+ * @public
8
+ * @interface
9
+ */
10
+ export interface IPolicy {
11
+ /**
12
+ * Проверка политики.
13
+ *
14
+ * @param args - параметры, необходимые для проверки
15
+ *
16
+ * @public
17
+ * @method
18
+ */
19
+ check(...args: unknown[]): void;
20
+ }
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/policy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC"}
@@ -0,0 +1,21 @@
1
+ import { DisplayMode } from '@planara/types';
2
+ /**
3
+ * Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Display фичей,
4
+ * необходим для корректного взаимодействия между группами фичей.
5
+ *
6
+ * Можно получить:
7
+ * - текущий режим отображения
8
+ *
9
+ * @public
10
+ * @interface
11
+ */
12
+ export interface IDisplayStore {
13
+ /** Возвращает текущий режим отображения. */
14
+ getDisplayMode(): DisplayMode;
15
+ /**
16
+ * Устанавливает режим отображения.
17
+ * @param mode - Режим отображения (зависит от твоего домена).
18
+ */
19
+ setDisplayMode(mode: DisplayMode): void;
20
+ }
21
+ //# sourceMappingURL=display-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/display-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,cAAc,IAAI,WAAW,CAAC;IAE9B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CACzC"}
@@ -0,0 +1,8 @@
1
+ import { ExportResult } from '@planara/types';
2
+ /** @public */
3
+ export interface IExportStore {
4
+ setResult(result: ExportResult): void;
5
+ getResult(): ExportResult | null;
6
+ clearResult(): void;
7
+ }
8
+ //# sourceMappingURL=export-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/export-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC;IACjC,WAAW,IAAI,IAAI,CAAC;CACrB"}
@@ -0,0 +1,6 @@
1
+ export * from './display-store';
2
+ export * from './select-store';
3
+ export * from './tool-store';
4
+ export * from './transform-store';
5
+ export * from './export-store';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,44 @@
1
+ import { FigureTransform, SelectMode } from '@planara/types';
2
+ import { SelectedListener } from '../../types/listener';
3
+ import * as THREE from 'three';
4
+ /**
5
+ * Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Select фичей,
6
+ * необходим для корректного взаимодействия между группами фичей.
7
+ *
8
+ * Можно получить:
9
+ * - режим выборки
10
+ * - выбранный объект
11
+ * - подписаться на изменение объекта
12
+ *
13
+ * @public
14
+ * @interface
15
+ */
16
+ export interface ISelectStore {
17
+ /** Возвращает текущий режим выбора. */
18
+ getSelectMode(): SelectMode;
19
+ /**
20
+ * Устанавливает режим выбора.
21
+ * @param mode - Режим выбора (Mesh/Face/Edge/Vertex и т.п.).
22
+ */
23
+ setSelectMode(mode: SelectMode): void;
24
+ /**
25
+ * Возвращает текущий выбранный объект сцены.
26
+ * @remarks
27
+ * Предполагается, что до вызова этого метода уже был
28
+ * вызван {@link ISelectStore.setSelectedObject}. Иначе результат не определён.
29
+ */
30
+ getSelectedObject(): THREE.Object3D | null;
31
+ /** Возвращает актуальную статистику по трансформации выбранного объекта. */
32
+ getSelectionStats(): FigureTransform | null;
33
+ /**
34
+ * Устанавливает текущий выбранный объект сцены.
35
+ * @param object - Ссылка на объект `THREE.Object3D`, который считается выбранным.
36
+ */
37
+ setSelectedObject(object: THREE.Object3D | null): void;
38
+ /**
39
+ * Регистрирует callback, вызываемый при каждом изменении выбранного 3D-объекта.
40
+ * @param cb - Callback, получающий текущий выбранный объект (`THREE.Object3D | null`).
41
+ */
42
+ onSelectedObjectChange(cb: SelectedListener): () => void;
43
+ }
44
+ //# sourceMappingURL=select-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/select-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,aAAa,IAAI,UAAU,CAAC;IAE5B;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAEtC;;;;;OAKG;IACH,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAE3C,4EAA4E;IAC5E,iBAAiB,IAAI,eAAe,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;IAEvD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CAC1D"}
@@ -0,0 +1,27 @@
1
+ import { ToolType } from '@planara/types';
2
+ import { TransformListener } from '../../types/listener';
3
+ /**
4
+ * Интерфейс store для менеджеров и хендлеров, которые позволяют работать с Tool фичей,
5
+ * необходим для корректного взаимодействия между группами фичей.
6
+ *
7
+ * Можно получить:
8
+ * - выбранный инструмент
9
+ * - подписаться на изменение трансформации объекта
10
+ *
11
+ * @public
12
+ * @interface
13
+ */
14
+ export interface IToolStore {
15
+ /** Возвращает текущий активный инструмент. */
16
+ getToolType(): ToolType;
17
+ /**
18
+ * Устанавливает активный инструмент.
19
+ * @param toolType - Тип инструмента (Translate/Rotate/Scale и т.п.).
20
+ */
21
+ setToolType(toolType: ToolType): void;
22
+ /** Подписывает слушателя на изменения трансформации выбранного объекта. */
23
+ onSelectedTransformChange(cb: TransformListener): () => void;
24
+ /** Уведомляет всех подписчиков о том, что трансформация выбранного объекта изменилась. */
25
+ notifySelectedTransformChange(): void;
26
+ }
27
+ //# sourceMappingURL=tool-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/tool-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,WAAW,IAAI,QAAQ,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEtC,2EAA2E;IAC3E,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IAE7D,0FAA0F;IAC1F,6BAA6B,IAAI,IAAI,CAAC;CACvC"}
@@ -0,0 +1,11 @@
1
+ import { ISelectStore } from './select-store';
2
+ import { IToolStore } from './tool-store';
3
+ /**
4
+ * Обобщенный интерфейс для хендлеров инструментов (`IToolHandler`).
5
+ *
6
+ * @public
7
+ * @interface
8
+ */
9
+ export interface ITransformStore extends ISelectStore, IToolStore {
10
+ }
11
+ //# sourceMappingURL=transform-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-store.d.ts","sourceRoot":"","sources":["../../../src/interfaces/store/transform-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY,EAAE,UAAU;CAAG"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Интерфейс валидатора.
3
+ *
4
+ * @remarks
5
+ * Валидатор проверяет входные аргументы метода.
6
+ *
7
+ * @public
8
+ * @interface
9
+ */
10
+ export interface IValidator {
11
+ /**
12
+ * Проверка аргументов.
13
+ *
14
+ * @param args - параметры, необходимые для проверки
15
+ *
16
+ * @public
17
+ * @method
18
+ */
19
+ validate(...args: unknown[]): void;
20
+ }
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/validator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACpC"}
@@ -1,5 +1,7 @@
1
1
  import { DependencyContainer } from 'tsyringe';
2
+ import { RendererConfigInput } from '@planara/types';
2
3
  declare const container: DependencyContainer;
3
- export declare function createContainer(canvas: HTMLCanvasElement): DependencyContainer;
4
+ export declare function createEditorContainer(canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput): DependencyContainer;
5
+ export declare function createViewerContainer(canvas: HTMLCanvasElement, rendererConfig?: RendererConfigInput): DependencyContainer;
4
6
  export { container };
5
7
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAuClF,QAAA,MAAM,SAAS,qBAAyC,CAAC;AAEzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAwC9E;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAmElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAM1D,QAAA,MAAM,SAAS,qBAAyC,CAAC;AAEzD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,cAAc,CAAC,EAAE,mBAAmB,GACnC,mBAAmB,CAuGrB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,cAAc,CAAC,EAAE,mBAAmB,GACnC,mBAAmB,CAiErB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
- import { IDisplayManager } from '../../interfaces/manager/display-manager';
2
- import { IDisplayHandler } from '../../interfaces/handler/display-handler';
3
- import { IEditorStore } from '../../interfaces/store/editor-store';
1
+ import { IDisplayManager } from '../../interfaces/manager';
2
+ import { IDisplayHandler } from '../../interfaces/handler';
3
+ import { IDisplayStore } from '../../interfaces/store';
4
4
  import { DisplayMode } from '@planara/types';
5
+ import { FeatureType } from '../../types/feature';
5
6
  /**
6
7
  * Менеджер для управления отображением
7
8
  * @internal
@@ -12,7 +13,9 @@ export declare class DisplayManager implements IDisplayManager {
12
13
  private _currentMode;
13
14
  /** Хендлеры, которые управляют отображением */
14
15
  private readonly _handlers;
15
- constructor(handlers: IDisplayHandler[], _store: IEditorStore);
16
+ /** Тип фичи, за которую отвечает менеджер. */
17
+ type: FeatureType;
18
+ constructor(handlers: IDisplayHandler[], _store: IDisplayStore);
16
19
  /** Установка режима отображения */
17
20
  manage(mode: DisplayMode): void;
18
21
  /** Освобождает ресурсы менеджера. */
@@ -1 +1 @@
1
- {"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IAS1B,OAAO,CAAC,MAAM;IARxC,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAGvB,QAAQ,EAAE,eAAe,EAAE,EACzB,MAAM,EAAE,YAAY;IAKtD,mCAAmC;IAC5B,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAgBtC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAUvC"}
1
+ {"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IAY3B,OAAO,CAAC,MAAM;IAXvC,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAuB;gBAGf,QAAQ,EAAE,eAAe,EAAE,EAC1B,MAAM,EAAE,aAAa;IAKtD,mCAAmC;IAC5B,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAgBtC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAUvC"}
@@ -0,0 +1,2 @@
1
+ export * from './display-manager';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/display/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './display';
2
+ export * from './scene';
3
+ export * from './select';
4
+ export * from './tool';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export * from './scene-manager';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/scene/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1,6 +1,7 @@
1
- import { ISceneManager } from '../../interfaces/manager/scene-manager';
2
- import { ISceneHandler } from '../../interfaces/handler/scene-handler';
3
- import { FigureType, SceneMode } from '@planara/types';
1
+ import { ISceneHandler } from '../../interfaces/handler';
2
+ import { ISceneManager } from '../../interfaces/manager';
3
+ import { SceneMode } from '@planara/types';
4
+ import { FeatureType } from '../../types/feature';
4
5
  /**
5
6
  * Менеджер для управления сценой
6
7
  * @internal
@@ -10,9 +11,11 @@ export declare class SceneManager implements ISceneManager {
10
11
  private _currentMode;
11
12
  /** Хендлеры, которые управляют отображением */
12
13
  private readonly _handlers;
14
+ /** Тип фичи, за которую отвечает менеджер. */
15
+ type: FeatureType;
13
16
  constructor(handlers: ISceneHandler[]);
14
17
  /** Установка режима редактирования сцены */
15
- manage(mode: SceneMode, figure?: FigureType): void;
18
+ manage(mode: SceneMode, payload?: unknown): void;
16
19
  /** Освобождает ресурсы менеджера. */
17
20
  dispose(): Promise<void> | void;
18
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/scene/scene-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D;;;GAGG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,yCAAyC;IACzC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;gBAEN,QAAQ,EAAE,aAAa,EAAE;IAIxE,4CAA4C;IACrC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IASzD,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CASvC"}
1
+ {"version":3,"file":"scene-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/scene/scene-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,yCAAyC;IACzC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAqB;gBAEE,QAAQ,EAAE,aAAa,EAAE;IAIxE,4CAA4C;IACrC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAUvD,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CASvC"}
@@ -0,0 +1,2 @@
1
+ export * from './select-manager';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/select/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -1,8 +1,9 @@
1
- import { ISelectHandler } from '../../interfaces/handler/select-handler';
2
- import { ISelectManager } from '../../interfaces/manager/select-manager';
3
- import { IEditorStore } from '../../interfaces/store/editor-store';
4
- import { EventBus } from '../../events/event-bus';
1
+ import { EventBus } from '../../events';
5
2
  import { SelectMode } from '@planara/types';
3
+ import { FeatureType } from '../../types/feature';
4
+ import { ISelectHandler } from '../../interfaces/handler';
5
+ import { ISelectManager } from '../../interfaces/manager';
6
+ import { ISelectStore } from '../../interfaces/store';
6
7
  /**
7
8
  * Менеджер, который управляет режимами выборки.
8
9
  * Поддерживает режимы Mesh/Face/Edge/Vertex.
@@ -15,7 +16,9 @@ export declare class SelectManager implements ISelectManager {
15
16
  private _currentMode;
16
17
  /** Хендлеры, которые управляют выборкой */
17
18
  private readonly _handlers;
18
- constructor(_eventBus: EventBus, handlers: ISelectHandler[], _store: IEditorStore);
19
+ /** Тип фичи, за которую отвечает менеджер. */
20
+ type: FeatureType;
21
+ constructor(_eventBus: EventBus, handlers: ISelectHandler[], _store: ISelectStore);
19
22
  /** Переключает режим выбора */
20
23
  manage(mode: SelectMode): void;
21
24
  /** Обработчик события наведения на модель */
@@ -1 +1 @@
1
- {"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/select/select-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,qBACa,aAAc,YAAW,cAAc;IAQ5B,OAAO,CAAC,SAAS;IAEb,OAAO,CAAC,MAAM;IATxC,4BAA4B;IAC5B,OAAO,CAAC,YAAY,CAA+B;IAEnD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAGxB,SAAS,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,YAAY;IAUtD,+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,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"}
@@ -0,0 +1,2 @@
1
+ export * from './tool-manager';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -1,18 +1,21 @@
1
- import { IToolHandler } from '../../interfaces/handler/tool-handler';
2
- import { IToolManager } from '../../interfaces/manager/tool-manager';
3
- import { IEditorStore } from '../../interfaces/store/editor-store';
1
+ import { IToolHandler } from '../../interfaces/handler';
2
+ import { IToolManager } from '../../interfaces/manager';
3
+ import { ITransformStore } from '../../interfaces/store';
4
+ import { IPolicy } from '../../interfaces/policy';
4
5
  import { ToolType } from '@planara/types';
6
+ import { FeatureType } from '../../types/feature';
5
7
  export declare class ToolManager implements IToolManager {
6
8
  private _store;
9
+ private _policy;
7
10
  /** Текущий выбранный инструмент */
8
11
  private _currentTool;
9
12
  /** Хендлеры, которые управляют инструментами */
10
13
  private readonly _handlers;
11
14
  /** Событие обновления выбора объекта */
12
15
  private readonly _unsubSelected?;
13
- /** Политика доступности инструментов */
14
- private readonly _policy;
15
- constructor(handlers: IToolHandler[], _store: IEditorStore);
16
+ /** Тип фичи, за которую отвечает менеджер. */
17
+ type: FeatureType;
18
+ constructor(handlers: IToolHandler[], _store: ITransformStore, _policy: IPolicy);
16
19
  manage(tool: ToolType): void;
17
20
  /** Освобождает ресурсы менеджера. */
18
21
  dispose(): Promise<void> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/tool-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,qBACa,WAAY,YAAW,YAAY;IAepB,OAAO,CAAC,MAAM;IAdxC,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAgC;IAEpD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAE7C,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAGtB,QAAQ,EAAE,YAAY,EAAE,EACnB,MAAM,EAAE,YAAY;IAc/C,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAmBnC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
1
+ {"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/tool/tool-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,qBACa,WAAY,YAAW,YAAY;IAerB,OAAO,CAAC,MAAM;IACf,OAAO,CAAC,OAAO;IAfvC,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAgC;IAEpD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAE7C,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAoB;gBAGf,QAAQ,EAAE,YAAY,EAAE,EACpB,MAAM,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO;IAYzC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAcnC,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
@@ -0,0 +1,14 @@
1
+ import { IMediator } from '../interfaces/mediator';
2
+ import { IManager } from '../interfaces/manager';
3
+ import { IMiddleware } from '../interfaces/middleware';
4
+ import { ICommand } from '../interfaces/command';
5
+ import { IResponse } from '@planara/types';
6
+ /** */
7
+ export declare class Mediator implements IMediator {
8
+ private readonly _middlewares;
9
+ private readonly _managers;
10
+ constructor(managers: IManager[], _middlewares: IMiddleware[]);
11
+ send(command: ICommand): IResponse | null;
12
+ dispose(): Promise<void> | void;
13
+ }
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mediator/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAE9D,MAAM;AACN,qBACa,QAAS,YAAW,SAAS;IAKZ,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAG9B,QAAQ,EAAE,QAAQ,EAAE,EACA,YAAY,EAAE,WAAW,EAAE;IAKjE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IAwBzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAMvC"}
@@ -0,0 +1,12 @@
1
+ import { IMiddleware } from '../interfaces/middleware';
2
+ import { IResponse } from '@planara/types';
3
+ /**
4
+ * Middleware для перехвата ошибок.
5
+ *
6
+ * @remarks
7
+ * Перехватывает ошибки и формирует IResponse с текстом ошибки и кодом.
8
+ */
9
+ export declare class ExceptionMiddleware implements IMiddleware {
10
+ handle(next: () => IResponse | null): IResponse | null;
11
+ }
12
+ //# sourceMappingURL=exception-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-middleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/exception-middleware.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAE9D;;;;;GAKG;AACH,qBACa,mBAAoB,YAAW,WAAW;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CAuC9D"}
@@ -0,0 +1,2 @@
1
+ export * from './exception-middleware';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { ITransformApi, IControlsStateApi, ISceneApi, IDomApi, ICameraApi } from '../interfaces/api';
2
+ import { IUpdatableModule } from '../interfaces/module';
3
+ import { ToolType } from '@planara/types';
4
+ import { TransformListener } from '../types/listener';
5
+ import * as THREE from 'three';
6
+ /**
7
+ * Модуль управления камерой и трансформацией объектов.
8
+ *
9
+ * @remarks
10
+ * Отвечает за:
11
+ * - управление камерой (OrbitControls) — вращение, панорамирование, масштабирование
12
+ * - управление гизмо (TransformControls) — перемещение, вращение, масштабирование объектов
13
+ *
14
+ * Модуль реализует:
15
+ * - `IRuntimeModule` — жизненный цикл (init/dispose)
16
+ * - `IUpdatableModule` — обновление состояния каждый кадр (update)
17
+ * - `IControlsApi` — публичное API для управления контролами
18
+ * - `IControlsStateApi` — публичное API для получения состояния контролов
19
+ *
20
+ * @see {@link ITransformApi} - публичное API для управления
21
+ * @see {@link IControlsStateApi} - публичное API для получения состояния
22
+ * @see {@link OrbitWithState} - расширенный OrbitControls
23
+ * @see {@link ModelingTransformControls} - расширенный TransformControls
24
+ *
25
+ * @internal
26
+ * @class
27
+ */
28
+ export declare class ControlsModule implements IUpdatableModule, ITransformApi, IControlsStateApi {
29
+ private _cameraApi;
30
+ private _domApi;
31
+ private _sceneApi;
32
+ /** Orbit-контроллер для управления камерой */
33
+ private _orbit;
34
+ /** Transform-контроллер для редактирования */
35
+ private _transform;
36
+ private _transformHelper;
37
+ private _transformListeners;
38
+ /** Были ли инициализированы обработчики событий (hover/click) */
39
+ private _isEventListenersAdded;
40
+ constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _sceneApi: ISceneApi);
41
+ init(): void;
42
+ attachTransform(object: THREE.Object3D): void;
43
+ detachTransform(): void;
44
+ update(): void;
45
+ setTransformMode(mode: ToolType): void;
46
+ onTransformChange(callback: TransformListener): () => void;
47
+ isOrbitInteracting(): boolean;
48
+ isTransformDragging(): boolean;
49
+ private readonly _handlePointerDown;
50
+ private readonly _handlePointerMove;
51
+ private readonly _handlePointerUp;
52
+ private readonly _handlePointerLeave;
53
+ private readonly _handleDraggingChanged;
54
+ private readonly _handleObjectChange;
55
+ /** Инициализация обработчиков событий на hover/click */
56
+ private _initMouseListeners;
57
+ /** Освобождает ресурсы модуля */
58
+ dispose(): Promise<void> | void;
59
+ }
60
+ //# sourceMappingURL=controls-module.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,32 @@
1
+ import { IRenderableModule } from '../interfaces/module';
2
+ import { ICameraApi, IDomApi, IRendererApi } from '../interfaces/api';
3
+ /**
4
+ * Модуль для отображения вспомогательных гизмо (осей, ориентации камеры и т.д.).
5
+ *
6
+ * @remarks
7
+ * Отвечает за отрисовку дополнительных визуальных элементов поверх сцены.
8
+ *
9
+ * Модуль реализует:
10
+ * - `IRuntimeModule` — для инициализации и очистки
11
+ * - `IRenderableModule` — для кастомного рендеринга поверх сцены
12
+ *
13
+ * @see {@link IRuntimeModule} - управление жизненным циклом
14
+ * @see {@link IRenderableModule} - кастомный рендеринг
15
+ * @see {@link CameraAxesGizmo} - конкретная реализация гизмо
16
+ *
17
+ * @internal
18
+ * @class
19
+ */
20
+ export declare class GizmoModule implements IRenderableModule {
21
+ private _cameraApi;
22
+ private _domApi;
23
+ private _rendererApi;
24
+ /** Gizmo для управления отображением perspective camera */
25
+ private _cameraGizmo;
26
+ constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _rendererApi: IRendererApi);
27
+ init(): void;
28
+ render(): void;
29
+ /** Освобождение ресурсов модуля */
30
+ dispose(): Promise<void> | void;
31
+ }
32
+ //# sourceMappingURL=gizmo-module.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,6 @@
1
+ export * from './controls-module';
2
+ export * from './gizmo-module';
3
+ export * from './raycast-module';
4
+ export * from './scene-module';
5
+ export * from './scene-preview-module';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}