@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,87 @@
1
+ import { EventBus } from '../events';
2
+ import { SelectMode } from '@planara/types';
3
+ import { IRuntimeModule } from '../interfaces/module';
4
+ import { IRaycastApi, IDomApi, ICameraApi, IMeshApi, IControlsStateApi } from '../interfaces/api';
5
+ /**
6
+ * Runtime-модуль raycast-взаимодействия.
7
+ *
8
+ * Отвечает за:
9
+ * - обработку событий мыши на canvas
10
+ * - raycast по объектам сцены
11
+ * - фильтрацию попаданий по текущему режиму выборки
12
+ * - отправку hover/click событий в event bus
13
+ *
14
+ * @internal
15
+ * @class
16
+ */
17
+ export declare class RaycastModule implements IRuntimeModule, IRaycastApi {
18
+ private _domApi;
19
+ private _cameraApi;
20
+ private _meshApi;
21
+ private _controlsState;
22
+ private _bus;
23
+ /**
24
+ * Raycast для получения событий наведения/клика по модели
25
+ *
26
+ * @private
27
+ * @member
28
+ */
29
+ private _raycaster;
30
+ /**
31
+ * Курсор мыши
32
+ *
33
+ * @private
34
+ * @member
35
+ */
36
+ private _mouse;
37
+ /**
38
+ * Ключ последней модели, на которую наводились,
39
+ * необходим для отправки только уникальных событий в event bus
40
+ *
41
+ * @private
42
+ * @member
43
+ */
44
+ private _lastHoverKey;
45
+ /**
46
+ * Текущий режим для raycaster
47
+ *
48
+ * @private
49
+ * @member
50
+ */
51
+ private _currentRaycastMode;
52
+ /**
53
+ * Были ли инициализированы обработчики событий (hover/click)
54
+ *
55
+ * @private
56
+ * @member
57
+ */
58
+ private _isEventListenersAdded;
59
+ constructor(_domApi: IDomApi, _cameraApi: ICameraApi, _meshApi: IMeshApi, _controlsState: IControlsStateApi, _bus: EventBus);
60
+ init(): void;
61
+ setRaycastMode(mode: SelectMode): void;
62
+ /** Применяет параметры raycaster в зависимости от текущего режима */
63
+ private _applyRaycastParamsByMode;
64
+ /** Возвращает ближайшее пересечение по текущему положению курсора */
65
+ private _getHitIntersection;
66
+ /** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
67
+ private _processRaycastEvent;
68
+ /** Поиск видимой части меша
69
+ * необходимо это для того, чтобы отправлять только видимые элементы модели, а не все попадания
70
+ */
71
+ private _getVisibleHit;
72
+ /** Строит ключ hover-пересечения с учетом текущего режима выборки */
73
+ private _makeHoverKey;
74
+ /** Обработчик события для hover */
75
+ private _handleMouseMove;
76
+ /** Обработчик события на click */
77
+ private _handleMouseClick;
78
+ /** Обработчик двойного клика */
79
+ private _handleDoubleClick;
80
+ /** Обработчик ухода курсора с canvas */
81
+ private _handleMouseLeave;
82
+ /** Инициализация обработчиков событий на hover/click */
83
+ private _initMouseListeners;
84
+ private _removeMouseListeners;
85
+ dispose(): Promise<void> | void;
86
+ }
87
+ //# sourceMappingURL=raycast-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raycast-module.d.ts","sourceRoot":"","sources":["../../src/modules/raycast-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,UAAU,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,QAAQ,EACR,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAI1B;;;;;;;;;;;GAWG;AACH,qBACa,aAAc,YAAW,cAAc,EAAE,WAAW;IA2C1C,OAAO,CAAC,OAAO;IACZ,OAAO,CAAC,UAAU;IACpB,OAAO,CAAC,QAAQ;IACP,OAAO,CAAC,cAAc;IAC/B,OAAO,CAAC,IAAI;IA9ClC;;;;;OAKG;IACH,OAAO,CAAC,UAAU,CAAmB;IAErC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAA+B;IAE1D;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB,CAAS;gBAGV,OAAO,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,EACxB,QAAQ,EAAE,QAAQ,EACT,cAAc,EAAE,iBAAiB,EAC1C,IAAI,EAAE,QAAQ;IAGrC,IAAI,IAAI,IAAI;IAYZ,cAAc,CAAC,IAAI,EAAE,UAAU;IAatC,qEAAqE;IACrE,OAAO,CAAC,yBAAyB;IAwBjC,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IA4C3B,iGAAiG;IACjG,OAAO,CAAC,oBAAoB;IA0C5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB,qEAAqE;IACrE,OAAO,CAAC,aAAa;IAqBrB,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAEvB;IAEF,gCAAgC;IAChC,OAAO,CAAC,kBAAkB,CAQxB;IAEF,wCAAwC;IACxC,OAAO,CAAC,iBAAiB,CAGvB;IAEF,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,qBAAqB;IAStB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAKvC"}
@@ -0,0 +1,31 @@
1
+ import { IRuntimeModule } from '../interfaces/module';
2
+ import { ISceneApi, IMeshApi } from '../interfaces/api';
3
+ import * as THREE from 'three';
4
+ /**
5
+ * Модуль управления сценой, используется для добавления/удаления фигур,
6
+ * настройки необходимых хелперов на сцене (сетка, оси, свет)
7
+ *
8
+ * @internal
9
+ * @class
10
+ */
11
+ export declare class SceneModule implements IRuntimeModule, IMeshApi {
12
+ private _api;
13
+ /** Объекты редактора, участвующие в raycast и редактировании */
14
+ private _meshes;
15
+ /** Сетка сцены */
16
+ private _grid;
17
+ /** Оси сцены */
18
+ private _axes;
19
+ /** Базовый свет сцены */
20
+ private _light;
21
+ constructor(_api: ISceneApi);
22
+ init(): void;
23
+ getMeshes(): THREE.Mesh[];
24
+ addMesh(mesh: THREE.Mesh): void;
25
+ removeMesh(mesh: THREE.Mesh): void;
26
+ addMeshes(meshes: THREE.Mesh[]): void;
27
+ removeMeshes(meshes: THREE.Mesh[]): void;
28
+ /** Освобождает ресурсы модуля */
29
+ dispose(): Promise<void> | void;
30
+ }
31
+ //# sourceMappingURL=scene-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-module.d.ts","sourceRoot":"","sources":["../../src/modules/scene-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;;GAMG;AACH,qBACa,WAAY,YAAW,cAAc,EAAE,QAAQ;IAalB,OAAO,CAAC,IAAI;IAZpD,gEAAgE;IAChE,OAAO,CAAC,OAAO,CAAoB;IAEnC,kBAAkB;IAClB,OAAO,CAAC,KAAK,CAAiC;IAE9C,gBAAgB;IAChB,OAAO,CAAC,KAAK,CAA+B;IAE5C,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAsC;gBAEJ,IAAI,EAAE,SAAS;IAExD,IAAI,IAAI,IAAI;IAeZ,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIzB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAQ/B,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAUlC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMrC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAM/C,iCAAiC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CA2BvC"}
@@ -0,0 +1,26 @@
1
+ import { IRuntimeModule } from '../interfaces/module';
2
+ import { ISceneApi, IMeshApi } from '../interfaces/api';
3
+ import * as THREE from 'three';
4
+ /**
5
+ * Модуль управления сценой, используется для добавления/удаления фигур
6
+ *
7
+ * @internal
8
+ * @class
9
+ */
10
+ export declare class ScenePreviewModule implements IRuntimeModule, IMeshApi {
11
+ private _api;
12
+ /** Объекты вьювера */
13
+ private _meshes;
14
+ /** Базовый свет сцены */
15
+ private _light;
16
+ constructor(_api: ISceneApi);
17
+ init(): void;
18
+ getMeshes(): THREE.Mesh[];
19
+ addMesh(mesh: THREE.Mesh): void;
20
+ removeMesh(mesh: THREE.Mesh): void;
21
+ addMeshes(meshes: THREE.Mesh[]): void;
22
+ removeMeshes(meshes: THREE.Mesh[]): void;
23
+ /** Освобождает ресурсы модуля */
24
+ dispose(): Promise<void> | void;
25
+ }
26
+ //# sourceMappingURL=scene-preview-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-preview-module.d.ts","sourceRoot":"","sources":["../../src/modules/scene-preview-module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;GAKG;AACH,qBACa,kBAAmB,YAAW,cAAc,EAAE,QAAQ;IAOzB,OAAO,CAAC,IAAI;IANpD,sBAAsB;IACtB,OAAO,CAAC,OAAO,CAAoB;IAEnC,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAsC;gBAEJ,IAAI,EAAE,SAAS;IAExD,IAAI,IAAI,IAAI;IAMZ,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIzB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAQ/B,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAUlC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMrC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAM/C,iCAAiC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAavC"}
@@ -0,0 +1,2 @@
1
+ export * from './tool-policy';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { IPolicy } from '../interfaces/policy';
2
+ import { ISelectStore } from '../interfaces/store';
3
+ import { ToolType } from '@planara/types';
4
+ /**
5
+ * Политика управления инструментами.
6
+ *
7
+ * @remarks
8
+ * Используется для контроллирования доступности инструментами в зависимости от выбранного режима редактирования.
9
+ *
10
+ * @public
11
+ * @class
12
+ */
13
+ export declare class ToolPolicy implements IPolicy {
14
+ private _store;
15
+ constructor(_store: ISelectStore);
16
+ check(tool: ToolType): void;
17
+ }
18
+ //# sourceMappingURL=tool-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/policy/tool-policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKnE;;;;;;;;GAQG;AACH,qBACa,UAAW,YAAW,OAAO;IACE,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAE/D,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAanC"}
@@ -0,0 +1,33 @@
1
+ import { IDisplayStore, ISelectStore, IToolStore } from '../interfaces/store';
2
+ import { DisplayMode, FigureTransform, SelectMode, ToolType } from '@planara/types';
3
+ import { SelectedListener, TransformListener } from '../types/listener';
4
+ import * as THREE from 'three';
5
+ /** Store для всего редактора. */
6
+ export declare class EditorStore implements IDisplayStore, ISelectStore, IToolStore {
7
+ /** Текущий режим выборки. */
8
+ private _selectMode;
9
+ /** Текущий выбранный инструмент. */
10
+ private _toolType;
11
+ /** Выбранный режим отображения. */
12
+ private _displayMode;
13
+ /** Выбранный объект на сцене. */
14
+ private _selectedObject;
15
+ /** Слушатели событий по изменению выбранного объекта. */
16
+ private _selectedListeners;
17
+ /** Слушатели событий трансформации выбранного объекта. */
18
+ private _transformListeners;
19
+ constructor();
20
+ getSelectMode(): SelectMode;
21
+ getToolType(): ToolType;
22
+ getDisplayMode(): DisplayMode;
23
+ setSelectMode(mode: SelectMode): void;
24
+ setToolType(toolType: ToolType): void;
25
+ setDisplayMode(mode: DisplayMode): void;
26
+ getSelectedObject(): THREE.Object3D | null;
27
+ getSelectionStats(): FigureTransform | null;
28
+ setSelectedObject(object: THREE.Object3D | null): void;
29
+ onSelectedObjectChange(cb: SelectedListener): () => void;
30
+ onSelectedTransformChange(cb: TransformListener): () => void;
31
+ notifySelectedTransformChange(): void;
32
+ }
33
+ //# sourceMappingURL=editor-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-store.d.ts","sourceRoot":"","sources":["../../src/store/editor-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMlF,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI5E,iCAAiC;AACjC,qBACa,WAAY,YAAW,aAAa,EAAE,YAAY,EAAE,UAAU;IACzE,6BAA6B;IAC7B,OAAO,CAAC,WAAW,CAA+B;IAElD,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAgC;IAEjD,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAkC;IAEtD,iCAAiC;IACjC,OAAO,CAAC,eAAe,CAA+B;IAEtD,yDAAyD;IACzD,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,0DAA0D;IAC1D,OAAO,CAAC,mBAAmB,CAAgC;;IAMpD,aAAa,IAAI,UAAU;IAI3B,WAAW,IAAI,QAAQ;IAIvB,cAAc,IAAI,WAAW;IAI7B,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIrC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIrC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIvC,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI;IAI1C,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAO3C,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;IAQtD,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAKxD,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK5D,6BAA6B,IAAI,IAAI;CAG7C"}
@@ -0,0 +1,12 @@
1
+ import { ExportResult } from '@planara/types';
2
+ import { IExportStore } from '../interfaces/store';
3
+ export declare class ExportStore implements IExportStore {
4
+ private _result;
5
+ constructor();
6
+ get result(): ExportResult | null;
7
+ get hasResult(): boolean;
8
+ setResult(result: ExportResult): void;
9
+ getResult(): ExportResult | null;
10
+ clearResult(): void;
11
+ }
12
+ //# sourceMappingURL=export-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-store.d.ts","sourceRoot":"","sources":["../../src/store/export-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,OAAO,CAA6B;;IAc5C,IAAW,MAAM,IAAI,YAAY,GAAG,IAAI,CAEvC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC,SAAS,IAAI,YAAY,GAAG,IAAI;IAIhC,WAAW,IAAI,IAAI;CAG3B"}
@@ -1,46 +1,3 @@
1
- import { IEditorStore } from '../interfaces/store/editor-store';
2
- import { DisplayMode, FigureTransform, SelectMode, ToolType } from '@planara/types';
3
- import { SelectedListener } from '../types/listener/selected-listener';
4
- import { TransformListener } from '../types/listener/transform-listener';
5
- import * as THREE from 'three';
6
- /** Store для всего редактора. */
7
- export declare class EditorStore implements IEditorStore {
8
- /** Текущий режим выборки. */
9
- private _selectMode;
10
- /** Текущий выбранный инструмент. */
11
- private _toolType;
12
- /** Выбранный режим отображения. */
13
- private _displayMode;
14
- /** Выбранный объект на сцене. */
15
- private _selectedObject;
16
- /** Слушатели событий по изменению выбранного объекта. */
17
- private _selectedListeners;
18
- /** Слушатели событий трансформации выбранного объекта. */
19
- private _transformListeners;
20
- constructor();
21
- /** @inheritdoc */
22
- getSelectMode(): SelectMode;
23
- /** @inheritdoc */
24
- getToolType(): ToolType;
25
- /** @inheritdoc */
26
- getDisplayMode(): DisplayMode;
27
- /** @inheritdoc */
28
- setSelectMode(mode: SelectMode): void;
29
- /** @inheritdoc */
30
- setToolType(toolType: ToolType): void;
31
- /** @inheritdoc */
32
- setDisplayMode(mode: DisplayMode): void;
33
- /** @inheritdoc */
34
- getSelectedObject(): THREE.Object3D | null;
35
- /** @inheritdoc */
36
- getSelectionStats(): FigureTransform | null;
37
- /** @inheritdoc */
38
- setSelectedObject(object: THREE.Object3D | null): void;
39
- /** @inheritdoc */
40
- onSelectedObjectChange(cb: SelectedListener): () => void;
41
- /** @inheritdoc */
42
- onSelectedTransformChange(cb: TransformListener): () => void;
43
- /** @inheritdoc */
44
- notifySelectedTransformChange(): void;
45
- }
1
+ export * from './editor-store';
2
+ export * from './export-store';
46
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAMrE,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAI9E,iCAAiC;AACjC,qBACa,WAAY,YAAW,YAAY;IAC9C,6BAA6B;IAC7B,OAAO,CAAC,WAAW,CAA+B;IAElD,oCAAoC;IACpC,OAAO,CAAC,SAAS,CAAgC;IAEjD,mCAAmC;IACnC,OAAO,CAAC,YAAY,CAAkC;IAEtD,iCAAiC;IACjC,OAAO,CAAC,eAAe,CAA+B;IAEtD,yDAAyD;IACzD,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,0DAA0D;IAC1D,OAAO,CAAC,mBAAmB,CAAgC;;IAM3D,kBAAkB;IACX,aAAa,IAAI,UAAU;IAIlC,kBAAkB;IACX,WAAW,IAAI,QAAQ;IAI9B,kBAAkB;IACX,cAAc,IAAI,WAAW;IAIpC,kBAAkB;IACX,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI5C,kBAAkB;IACX,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI5C,kBAAkB;IACX,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAI9C,kBAAkB;IACX,iBAAiB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI;IAIjD,kBAAkB;IACX,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAOlD,kBAAkB;IACX,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;IAQ7D,kBAAkB;IACX,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAK/D,kBAAkB;IACX,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAKnE,kBAAkB;IACX,6BAA6B,IAAI,IAAI;CAG7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './camera-position';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/camera/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './select-event-type';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/event/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Тип фичи, совпадает с менеджерами
3
+ *
4
+ * @public
5
+ */
6
+ export declare enum FeatureType {
7
+ /** Отображение */
8
+ Display = 0,
9
+ /** Управление сценой */
10
+ Scene = 1,
11
+ /** Выборка */
12
+ Select = 2,
13
+ /** Инструменты */
14
+ Tool = 3
15
+ }
16
+ //# sourceMappingURL=feature-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-type.d.ts","sourceRoot":"","sources":["../../../src/types/feature/feature-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,WAAW;IACrB,kBAAkB;IAClB,OAAO,IAAA;IAEP,wBAAwB;IACxB,KAAK,IAAA;IAEL,cAAc;IACd,MAAM,IAAA;IAEN,kBAAkB;IAClB,IAAI,IAAA;CACL"}
@@ -0,0 +1,2 @@
1
+ export * from './feature-type';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/feature/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './selected-listener';
2
+ export * from './transform-listener';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/listener/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './face-group';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/select/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { RendererConfig } from '@planara/types';
2
+ /**
3
+ * Базовые настройки для рендерера
4
+ *
5
+ * @internal
6
+ * @const
7
+ */
8
+ export declare const defaultRendererConfig: RendererConfig;
9
+ //# sourceMappingURL=default-renderer-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-renderer-config.d.ts","sourceRoot":"","sources":["../../src/utils/default-renderer-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAwCnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FigureTransform } from '@planara/types';
1
+ import { FigureTransform, RendererConfig, RendererConfigInput } from '@planara/types';
2
2
  import * as THREE from 'three';
3
3
  /** Является ли `THREE.Object3D` `THREE.Mesh` */
4
4
  export declare const isMesh: (o: THREE.Object3D | null) => o is THREE.Mesh;
@@ -10,4 +10,17 @@ export declare const makeVertexPoints: (geom: THREE.BufferGeometry) => THREE.Poi
10
10
  export declare const makeLineSegments: (geometry: THREE.BufferGeometry) => THREE.LineSegments<THREE.EdgesGeometry<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>>, THREE.LineBasicMaterial, THREE.Object3DEventMap>;
11
11
  /** Сбор статистики объекта */
12
12
  export declare const toFigureTransform: (obj: THREE.Object3D) => FigureTransform;
13
+ /** Создание конфига для рендерера, при использовании частичного пользовательского конфига */
14
+ export declare const mergeRendererConfig: (base: RendererConfig, input?: RendererConfigInput) => RendererConfig;
15
+ /** Пометить объект как прокси */
16
+ export declare const markAsProxyObject: <T extends THREE.Object3D>(object: T) => T;
17
+ /** Пометить объект как не экспортируемый */
18
+ export declare const markAsNotExportable: <T extends THREE.Object3D>(object: T) => T;
19
+ /** Является ли объект прокси */
20
+ export declare const isProxyObject: (object: THREE.Object3D) => boolean;
21
+ export declare const hasNotExportableObjectInTree: (object: THREE.Object3D) => boolean;
22
+ /** Можно ли экспортировать объект как часть OBJ-сцены */
23
+ export declare const isObjExportableObject: (object: THREE.Object3D) => object is THREE.Mesh;
24
+ export declare const createObjExportRoot: (scene: THREE.Scene) => THREE.Group;
25
+ export declare const createMeshesFromObjContent: (content: string) => THREE.Mesh[];
13
26
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,eAAe,EAAQ,MAAM,gBAAgB,CAAC;AAE5D,gDAAgD;AAChD,eAAO,MAAM,MAAM,GAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,CAAC,IAAI,KAAK,CAAC,IAE5D,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,cAAc,GAAI,KAAK,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,KAAK,CAAC,IAAI,GAAG,IAOxE,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,gBAAgB,GAAI,MAAM,KAAK,CAAC,cAAc,iJAwB1D,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,GAAI,UAAU,KAAK,CAAC,cAAc,+KAU9D,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,iBAAiB,GAAI,KAAK,KAAK,CAAC,QAAQ,KAAG,eAcvD,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAQ,MAAM,gBAAgB,CAAC;AAEjG,gDAAgD;AAChD,eAAO,MAAM,MAAM,GAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,CAAC,IAAI,KAAK,CAAC,IAE5D,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,cAAc,GAAI,KAAK,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAG,KAAK,CAAC,IAAI,GAAG,IAOxE,CAAC;AAEF,sBAAsB;AACtB,eAAO,MAAM,gBAAgB,GAAI,MAAM,KAAK,CAAC,cAAc,iJAwB1D,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,gBAAgB,GAAI,UAAU,KAAK,CAAC,cAAc,+KAU9D,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,iBAAiB,GAAI,KAAK,KAAK,CAAC,QAAQ,KAAG,eAcvD,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,EACpB,QAAQ,mBAAmB,KAC1B,cAyCF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAG,CAKvE,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAG,CAIzE,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,CAAC,QAAQ,KAAG,OAEtD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,QAAQ,KAAK,CAAC,QAAQ,KAAG,OAYrE,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,GAAI,QAAQ,KAAK,CAAC,QAAQ,KAAG,MAAM,IAAI,KAAK,CAAC,IAkB9E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,CAAC,KAAK,KAAG,KAAK,CAAC,KA4B9D,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,IAAI,EA4DtE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './helpers';
2
+ export * from './default-renderer-config';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './obj-validator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { IValidator } from '../interfaces/validator';
2
+ /**
3
+ * Валидатор контента .obj-файла
4
+ *
5
+ * @internal
6
+ * @class
7
+ */
8
+ export declare class ObjValidator implements IValidator {
9
+ constructor();
10
+ validate(content: string): void;
11
+ }
12
+ //# sourceMappingURL=obj-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obj-validator.d.ts","sourceRoot":"","sources":["../../src/validators/obj-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,UAAU;;IAGtC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CA2BvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planara/core",
3
- "version": "2.8.0",
3
+ "version": "3.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "dependencies": {
62
62
  "@planara/three": "^1.4.3",
63
- "@planara/types": "^1.9.0",
63
+ "@planara/types": "^1.12.0",
64
64
  "events": "^3.3.0",
65
65
  "mobx": "^6.15.0",
66
66
  "reflect-metadata": "^0.2.2",
@@ -1,89 +0,0 @@
1
- import { Renderer } from './renderer';
2
- import { EventBus } from '../events/event-bus';
3
- import { Figure, SelectMode, ToolType } from '@planara/types';
4
- import { TransformListener } from '../types/listener/transform-listener';
5
- import * as THREE from 'three';
6
- /**
7
- * Рендерер для редактора.
8
- * Добавляет сетку, оси координат и поддержку Orbit для управления камерой.
9
- * Наследуется от базового Renderer.
10
- * @public
11
- */
12
- export declare class EditorRenderer extends Renderer {
13
- private _canvas;
14
- private _bus;
15
- /** Orbit-контроллер для управления камерой */
16
- private _orbit;
17
- /** Transform-контроллер для редактирования */
18
- private _transform;
19
- private readonly _transformHelper;
20
- /** Raycast для получения событий наведения/клика по модели*/
21
- private readonly _raycaster;
22
- /** Курсор мыши */
23
- private readonly _mouse;
24
- /** Были ли инициализированы обработчики событий (hover/click) */
25
- private _isEventListenersAdded;
26
- /**
27
- * Ключ последней модели, на которую наводились,
28
- * необходима для отправки только уникальных событий в event bus
29
- */
30
- private _lastHoverKey;
31
- private _currentRaycastMode;
32
- /** Gizmo для управления отображением perspective camera */
33
- private _cameraGizmo;
34
- private _transformListeners;
35
- constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
36
- /**
37
- * Обновление состояния рендерера.
38
- */
39
- protected update(): void;
40
- /** Добавление фигуры на сцену */
41
- addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
42
- /**
43
- * Смена отображения `TransformControls` в зависимости от типа инструмента.
44
- * @param mode - тип инструмента для отображения `TransformControls`.
45
- * @internal
46
- */
47
- setTransformControlsMode(mode: ToolType): void;
48
- /**
49
- * Добавление `TransformControls` к объекту.
50
- * @param object - объект, к которому добавляются `TransformControls`.
51
- * @internal
52
- */
53
- attachTransformControls(object: THREE.Object3D): void;
54
- /**
55
- * Удаление `TransformControls` с последнего выбранного объекта.
56
- * @internal
57
- */
58
- detachTransformControls(): void;
59
- /**
60
- * Подписывает слушателя на изменения трансформации текущего объекта.
61
- * @internal
62
- */
63
- onTransformChange(cb: TransformListener): () => void;
64
- /**
65
- * Настройка режимов для `Raycaster`.
66
- * @internal
67
- */
68
- setRaycastMode(mode: SelectMode): void;
69
- dispose(): void;
70
- protected render(): void;
71
- /** Инициализация обработчиков событий на hover/click */
72
- private _initMouseListeners;
73
- /** Обработчик события для hover */
74
- private _handleMouseMove;
75
- /** Обработчик события на click */
76
- private _handleMouseClick;
77
- /** Возвращает ближайшее пересечение по текущему положению курсора */
78
- private _getHitIntersection;
79
- private _handleDoubleClick;
80
- /** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
81
- private _processRaycastEvent;
82
- /** Поиск видимой части меша
83
- * необходимо это для того, чтобы отправлять только видимые элементы модели, а не все попадания
84
- */
85
- private _getVisibleHit;
86
- /** Строит ключ hover-пересечения с учетом текущего режима выборки */
87
- private _makeHoverKey;
88
- }
89
- //# sourceMappingURL=editor-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editor-renderer.d.ts","sourceRoot":"","sources":["../../src/core/editor-renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAO9E;;;;;GAKG;AACH,qBACa,cAAe,SAAQ,QAAQ;IA+BtB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,IAAI;IA/BlC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAkB;IAEhC,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,iEAAiE;IACjE,OAAO,CAAC,sBAAsB,CAAS;IAEvC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,mBAAmB,CAA+B;IAE1D,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAmB;IAEvC,OAAO,CAAC,mBAAmB,CAAgC;gBAG/B,OAAO,EAAE,iBAAiB,EACxB,IAAI,EAAE,QAAQ;IA6C5C;;OAEG;IACH,SAAS,CAAC,MAAM;IAIhB,iCAAiC;IACjB,SAAS,CAAC,MAAM,EAAE,MAAM;IAexC;;;;OAIG;IACI,wBAAwB,CAAC,IAAI,EAAE,QAAQ;IAI9C;;;;OAIG;IACI,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ;IAIrD;;;OAGG;IACI,uBAAuB;IAI9B;;;OAGG;IACI,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAK3D;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU;IAyBtB,OAAO;cAgCJ,MAAM;IAMzB,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAqB3B,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAEvB;IAEF,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,kBAAkB,CAQxB;IAIF,iGAAiG;IACjG,OAAO,CAAC,oBAAoB;IAwC5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB,qEAAqE;IACrE,OAAO,CAAC,aAAa;CAoBtB"}
@@ -1,16 +0,0 @@
1
- import { Renderer } from './renderer';
2
- /**
3
- * Рендерер для предпросмотра 3D-модели.
4
- * Настраивает сцену, камеру и орбитальную навигацию по горизонтали.
5
- * @alpha
6
- */
7
- export declare class PreviewRenderer extends Renderer {
8
- /** Orbit-контроллер для управления камерой */
9
- private _orbit;
10
- constructor(canvas: HTMLCanvasElement);
11
- /**
12
- * Обновление состояния рендерера.
13
- */
14
- protected update(): void;
15
- }
16
- //# sourceMappingURL=preview-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview-renderer.d.ts","sourceRoot":"","sources":["../../src/core/preview-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAiB;gBAEZ,MAAM,EAAE,iBAAiB;IAiB5C;;OAEG;IACH,SAAS,CAAC,MAAM;CAIjB"}
@@ -1,13 +0,0 @@
1
- import { EditorHub } from './editor-hub';
2
- /**
3
- * Инициализирует редактор и возвращает хаб.
4
- * Вызывать один раз при старте (когда есть canvas).
5
- * @public
6
- */
7
- export declare const createAppHub: (canvas: HTMLCanvasElement) => EditorHub;
8
- /**
9
- * Возвращает уже созданный хаб, если редактор инициализирован.
10
- * @public
11
- */
12
- export declare const getAppHub: () => EditorHub;
13
- //# sourceMappingURL=app-hub.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-hub.d.ts","sourceRoot":"","sources":["../../src/hub/app-hub.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,iBAAiB,KAAG,SAOxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAO,SAM5B,CAAC"}
@@ -1,26 +0,0 @@
1
- import { ToolType } from '@planara/types';
2
- import { TransformListener } from '../../types/listener/transform-listener';
3
- import * as THREE from 'three';
4
- /**
5
- * Интерфейс для управления transform helper внутри рендерера.
6
- * @internal
7
- */
8
- export interface ITransformHelpersApi {
9
- /**
10
- * Меняет режим transform helper.
11
- *
12
- * @param tool - Режим, который необходимо выбрать.
13
- */
14
- setMode(tool: ToolType): void;
15
- /**
16
- * Прикрепление transform helper к определенному объекту.
17
- *
18
- * @param obj - Объект, к которому необходимо прикрепить transform helper.
19
- */
20
- attach(obj: THREE.Object3D): void;
21
- /** Открепление transform helper от объекта. */
22
- detach(): void;
23
- /** Подписывает слушателя на изменения трансформации текущего объекта. */
24
- onTransformChange(cb: TransformListener): () => void;
25
- }
26
- //# sourceMappingURL=transform-helpers-api.d.ts.map