@planara/core 2.8.0 → 3.0.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 (187) 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/mesh-api.d.ts +30 -0
  5. package/dist/api/modules/mesh-api.d.ts.map +1 -0
  6. package/dist/api/modules/raycast-api.d.ts +28 -0
  7. package/dist/api/modules/raycast-api.d.ts.map +1 -0
  8. package/dist/api/modules/transform-api.d.ts +33 -0
  9. package/dist/api/modules/transform-api.d.ts.map +1 -0
  10. package/dist/api/renderer/camera-api.d.ts +26 -0
  11. package/dist/api/renderer/camera-api.d.ts.map +1 -0
  12. package/dist/api/renderer/dom-api.d.ts +24 -0
  13. package/dist/api/renderer/dom-api.d.ts.map +1 -0
  14. package/dist/api/renderer/scene-api.d.ts +26 -0
  15. package/dist/api/renderer/scene-api.d.ts.map +1 -0
  16. package/dist/constants/colors.d.ts +12 -0
  17. package/dist/constants/colors.d.ts.map +1 -1
  18. package/dist/constants/figure-geometries.d.ts +55 -4
  19. package/dist/constants/figure-geometries.d.ts.map +1 -1
  20. package/dist/constants/layers.d.ts +12 -0
  21. package/dist/constants/layers.d.ts.map +1 -1
  22. package/dist/constants/messages.d.ts +18 -0
  23. package/dist/constants/messages.d.ts.map +1 -0
  24. package/dist/constants/threshold.d.ts +42 -2
  25. package/dist/constants/threshold.d.ts.map +1 -1
  26. package/dist/controllers/renderer-controller.d.ts +74 -0
  27. package/dist/controllers/renderer-controller.d.ts.map +1 -0
  28. package/dist/core/renderer.d.ts +110 -78
  29. package/dist/core/renderer.d.ts.map +1 -1
  30. package/dist/decorators/use-policy.d.ts +5 -0
  31. package/dist/decorators/use-policy.d.ts.map +1 -0
  32. package/dist/errors/policy-error.d.ts +9 -0
  33. package/dist/errors/policy-error.d.ts.map +1 -0
  34. package/dist/events/editor-events.d.ts +2 -6
  35. package/dist/events/editor-events.d.ts.map +1 -1
  36. package/dist/events/event-bus.d.ts +102 -5
  37. package/dist/events/event-bus.d.ts.map +1 -1
  38. package/dist/events/event-topics.d.ts +3 -3
  39. package/dist/events/event-topics.d.ts.map +1 -1
  40. package/dist/handlers/display/wireframe-handler.d.ts +3 -1
  41. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  42. package/dist/handlers/scene/add-figure-scene-handler.d.ts +2 -0
  43. package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -1
  44. package/dist/handlers/scene/delete-figure-scene-handler.d.ts +2 -2
  45. package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -1
  46. package/dist/handlers/select/edge-select-handler.d.ts +10 -4
  47. package/dist/handlers/select/edge-select-handler.d.ts.map +1 -1
  48. package/dist/handlers/select/face-select-handler.d.ts +10 -4
  49. package/dist/handlers/select/face-select-handler.d.ts.map +1 -1
  50. package/dist/handlers/select/mesh-select-handler.d.ts +5 -3
  51. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  52. package/dist/handlers/select/vertex-select-handler.d.ts +10 -4
  53. package/dist/handlers/select/vertex-select-handler.d.ts.map +1 -1
  54. package/dist/handlers/tool/base-tool-handler.d.ts +9 -6
  55. package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -1
  56. package/dist/handlers/tool/rotate-tool-handler.d.ts +4 -3
  57. package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -1
  58. package/dist/handlers/tool/scale-tool-handler.d.ts +4 -3
  59. package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -1
  60. package/dist/handlers/tool/translate-tool-handler.d.ts +4 -3
  61. package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -1
  62. package/dist/hub/editor-hub.d.ts +22 -17
  63. package/dist/hub/editor-hub.d.ts.map +1 -1
  64. package/dist/index.cjs.js +2 -2
  65. package/dist/index.d.ts +15 -8
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.es.js +1635 -1563
  68. package/dist/index.full.d.ts +637 -242
  69. package/dist/index.public.d.ts +652 -157
  70. package/dist/index.umd.js +2 -2
  71. package/dist/interfaces/api/camera-api.d.ts +64 -0
  72. package/dist/interfaces/api/camera-api.d.ts.map +1 -0
  73. package/dist/interfaces/api/controls-state-api.d.ts +63 -0
  74. package/dist/interfaces/api/controls-state-api.d.ts.map +1 -0
  75. package/dist/interfaces/api/dom-api.d.ts +49 -0
  76. package/dist/interfaces/api/dom-api.d.ts.map +1 -0
  77. package/dist/interfaces/api/mesh-api.d.ts +93 -12
  78. package/dist/interfaces/api/mesh-api.d.ts.map +1 -1
  79. package/dist/interfaces/api/raycast-api.d.ts +6 -1
  80. package/dist/interfaces/api/raycast-api.d.ts.map +1 -1
  81. package/dist/interfaces/api/renderer/renderable.d.ts +45 -0
  82. package/dist/interfaces/api/renderer/renderable.d.ts.map +1 -0
  83. package/dist/interfaces/api/renderer/renderer-access.d.ts +34 -0
  84. package/dist/interfaces/api/renderer/renderer-access.d.ts.map +1 -0
  85. package/dist/interfaces/api/renderer/renderer-camera-access.d.ts +37 -0
  86. package/dist/interfaces/api/renderer/renderer-camera-access.d.ts.map +1 -0
  87. package/dist/interfaces/api/renderer/renderer-dom-access.d.ts +51 -0
  88. package/dist/interfaces/api/renderer/renderer-dom-access.d.ts.map +1 -0
  89. package/dist/interfaces/api/renderer/renderer-scene-access.d.ts +45 -0
  90. package/dist/interfaces/api/renderer/renderer-scene-access.d.ts.map +1 -0
  91. package/dist/interfaces/api/renderer-api.d.ts +35 -0
  92. package/dist/interfaces/api/renderer-api.d.ts.map +1 -0
  93. package/dist/interfaces/api/scene-api.d.ts +66 -26
  94. package/dist/interfaces/api/scene-api.d.ts.map +1 -1
  95. package/dist/interfaces/api/transform-api.d.ts +120 -0
  96. package/dist/interfaces/api/transform-api.d.ts.map +1 -0
  97. package/dist/interfaces/command/index.d.ts +9 -0
  98. package/dist/interfaces/command/index.d.ts.map +1 -0
  99. package/dist/interfaces/controller/controller.d.ts +38 -0
  100. package/dist/interfaces/controller/controller.d.ts.map +1 -0
  101. package/dist/interfaces/handler/display-handler.d.ts +9 -1
  102. package/dist/interfaces/handler/display-handler.d.ts.map +1 -1
  103. package/dist/interfaces/handler/handler.d.ts +2 -0
  104. package/dist/interfaces/handler/handler.d.ts.map +1 -1
  105. package/dist/interfaces/handler/scene-handler.d.ts +1 -0
  106. package/dist/interfaces/handler/scene-handler.d.ts.map +1 -1
  107. package/dist/interfaces/handler/select-handler.d.ts +1 -0
  108. package/dist/interfaces/handler/select-handler.d.ts.map +1 -1
  109. package/dist/interfaces/handler/tool-handler.d.ts +1 -0
  110. package/dist/interfaces/handler/tool-handler.d.ts.map +1 -1
  111. package/dist/interfaces/manager/display-manager.d.ts +3 -1
  112. package/dist/interfaces/manager/display-manager.d.ts.map +1 -1
  113. package/dist/interfaces/manager/manager.d.ts +12 -1
  114. package/dist/interfaces/manager/manager.d.ts.map +1 -1
  115. package/dist/interfaces/manager/scene-manager.d.ts +3 -1
  116. package/dist/interfaces/manager/scene-manager.d.ts.map +1 -1
  117. package/dist/interfaces/manager/select-manager.d.ts +3 -1
  118. package/dist/interfaces/manager/select-manager.d.ts.map +1 -1
  119. package/dist/interfaces/manager/tool-manager.d.ts +3 -1
  120. package/dist/interfaces/manager/tool-manager.d.ts.map +1 -1
  121. package/dist/interfaces/mediator/index.d.ts +51 -0
  122. package/dist/interfaces/mediator/index.d.ts.map +1 -0
  123. package/dist/interfaces/middleware/index.d.ts +50 -0
  124. package/dist/interfaces/middleware/index.d.ts.map +1 -0
  125. package/dist/interfaces/module/renderable-module.d.ts +27 -0
  126. package/dist/interfaces/module/renderable-module.d.ts.map +1 -0
  127. package/dist/interfaces/module/runtime-module.d.ts +54 -0
  128. package/dist/interfaces/module/runtime-module.d.ts.map +1 -0
  129. package/dist/interfaces/module/updatable-module.d.ts +48 -0
  130. package/dist/interfaces/module/updatable-module.d.ts.map +1 -0
  131. package/dist/interfaces/policy/index.d.ts +21 -0
  132. package/dist/interfaces/policy/index.d.ts.map +1 -0
  133. package/dist/interfaces/response/index.d.ts +22 -0
  134. package/dist/interfaces/response/index.d.ts.map +1 -0
  135. package/dist/interfaces/store/display-store.d.ts +21 -0
  136. package/dist/interfaces/store/display-store.d.ts.map +1 -0
  137. package/dist/interfaces/store/{editor-store.d.ts → select-store.d.ts} +16 -24
  138. package/dist/interfaces/store/select-store.d.ts.map +1 -0
  139. package/dist/interfaces/store/tool-store.d.ts +27 -0
  140. package/dist/interfaces/store/tool-store.d.ts.map +1 -0
  141. package/dist/interfaces/store/transform-store.d.ts +11 -0
  142. package/dist/interfaces/store/transform-store.d.ts.map +1 -0
  143. package/dist/ioc/container.d.ts.map +1 -1
  144. package/dist/managers/display/display-manager.d.ts +5 -2
  145. package/dist/managers/display/display-manager.d.ts.map +1 -1
  146. package/dist/managers/scene/scene-manager.d.ts +3 -0
  147. package/dist/managers/scene/scene-manager.d.ts.map +1 -1
  148. package/dist/managers/select/select-manager.d.ts +5 -2
  149. package/dist/managers/select/select-manager.d.ts.map +1 -1
  150. package/dist/managers/tool/tool-manager.d.ts +7 -4
  151. package/dist/managers/tool/tool-manager.d.ts.map +1 -1
  152. package/dist/mediator/index.d.ts +14 -0
  153. package/dist/mediator/index.d.ts.map +1 -0
  154. package/dist/middlewares/exception-middleware.d.ts +7 -0
  155. package/dist/middlewares/exception-middleware.d.ts.map +1 -0
  156. package/dist/modules/controls-module.d.ts +58 -0
  157. package/dist/modules/controls-module.d.ts.map +1 -0
  158. package/dist/modules/gizmo-module.d.ts +34 -0
  159. package/dist/modules/gizmo-module.d.ts.map +1 -0
  160. package/dist/modules/raycast-module.d.ts +91 -0
  161. package/dist/modules/raycast-module.d.ts.map +1 -0
  162. package/dist/modules/scene-module.d.ts +32 -0
  163. package/dist/modules/scene-module.d.ts.map +1 -0
  164. package/dist/policy/tool-policy.d.ts +18 -0
  165. package/dist/policy/tool-policy.d.ts.map +1 -0
  166. package/dist/store/index.d.ts +4 -14
  167. package/dist/store/index.d.ts.map +1 -1
  168. package/dist/types/feature/feature-type.d.ts +16 -0
  169. package/dist/types/feature/feature-type.d.ts.map +1 -0
  170. package/dist/types/response/response-type.d.ts +19 -0
  171. package/dist/types/response/response-type.d.ts.map +1 -0
  172. package/package.json +1 -1
  173. package/dist/core/editor-renderer.d.ts +0 -89
  174. package/dist/core/editor-renderer.d.ts.map +0 -1
  175. package/dist/core/preview-renderer.d.ts +0 -16
  176. package/dist/core/preview-renderer.d.ts.map +0 -1
  177. package/dist/interfaces/api/transform-helpers-api.d.ts +0 -26
  178. package/dist/interfaces/api/transform-helpers-api.d.ts.map +0 -1
  179. package/dist/interfaces/policy/tool-availability-policy.d.ts +0 -12
  180. package/dist/interfaces/policy/tool-availability-policy.d.ts.map +0 -1
  181. package/dist/interfaces/store/editor-store.d.ts.map +0 -1
  182. package/dist/policy/tool-availability-policy.d.ts +0 -13
  183. package/dist/policy/tool-availability-policy.d.ts.map +0 -1
  184. package/dist/types/api/editor-api.d.ts +0 -4
  185. package/dist/types/api/editor-api.d.ts.map +0 -1
  186. package/dist/utils/renderer-api.d.ts +0 -43
  187. package/dist/utils/renderer-api.d.ts.map +0 -1
@@ -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":"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;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;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,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IASzD,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CASvC"}
@@ -1,8 +1,9 @@
1
1
  import { ISelectHandler } from '../../interfaces/handler/select-handler';
2
2
  import { ISelectManager } from '../../interfaces/manager/select-manager';
3
- import { IEditorStore } from '../../interfaces/store/editor-store';
3
+ import { ISelectStore } from '../../interfaces/store/select-store';
4
4
  import { EventBus } from '../../events/event-bus';
5
5
  import { SelectMode } from '@planara/types';
6
+ import { FeatureType } from '../../types/feature/feature-type';
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":"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;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;;GAIG;AACH,qBACa,aAAc,YAAW,cAAc;IAW5B,OAAO,CAAC,SAAS;IAEd,OAAO,CAAC,MAAM;IAZvC,4BAA4B;IAC5B,OAAO,CAAC,YAAY,CAA+B;IAEnD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IAEtD,8CAA8C;IACvC,IAAI,EAAE,WAAW,CAAsB;gBAGhB,SAAS,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,EAAE,EACxB,MAAM,EAAE,YAAY;IAUrD,+BAA+B;IACxB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAYrC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAMd;IAEF,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAMd;IAEF,qCAAqC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAWvC"}
@@ -1,18 +1,21 @@
1
1
  import { IToolHandler } from '../../interfaces/handler/tool-handler';
2
2
  import { IToolManager } from '../../interfaces/manager/tool-manager';
3
- import { IEditorStore } from '../../interfaces/store/editor-store';
3
+ import { ITransformStore } from '../../interfaces/store/transform-store';
4
+ import { IPolicy } from '../../interfaces/policy';
4
5
  import { ToolType } from '@planara/types';
6
+ import { FeatureType } from '../../types/feature/feature-type';
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":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,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/manager';
3
+ import { IMiddleware } from '../interfaces/middleware';
4
+ import { ICommand } from '../interfaces/command';
5
+ import { IResponse } from '../interfaces/response';
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,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD,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,7 @@
1
+ import { IMiddleware } from '../interfaces/middleware';
2
+ import { IResponse } from '../interfaces/response';
3
+ /** */
4
+ export declare class ExceptionMiddleware implements IMiddleware {
5
+ handle(next: () => IResponse | null): IResponse | null;
6
+ }
7
+ //# 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,0BAA0B,CAAC;AAK5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM;AACN,qBACa,mBAAoB,YAAW,WAAW;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CA8B9D"}
@@ -0,0 +1,58 @@
1
+ import { ITransformApi } from '../interfaces/api/transform-api';
2
+ import { IControlsStateApi } from '../interfaces/api/controls-state-api';
3
+ import { ISceneApi } from '../interfaces/api/scene-api';
4
+ import { IDomApi } from '../interfaces/api/dom-api';
5
+ import { ICameraApi } from '../interfaces/api/camera-api';
6
+ import { IUpdatableModule } from '../interfaces/module/updatable-module';
7
+ import { ToolType } from '@planara/types';
8
+ import { TransformListener } from '../types/listener/transform-listener';
9
+ import * as THREE from 'three';
10
+ /**
11
+ * Модуль управления камерой и трансформацией объектов.
12
+ *
13
+ * @remarks
14
+ * Отвечает за:
15
+ * - управление камерой (OrbitControls) — вращение, панорамирование, масштабирование
16
+ * - управление гизмо (TransformControls) — перемещение, вращение, масштабирование объектов
17
+ *
18
+ * Модуль реализует:
19
+ * - `IRuntimeModule` — жизненный цикл (init/dispose)
20
+ * - `IUpdatableModule` — обновление состояния каждый кадр (update)
21
+ * - `IControlsApi` — публичное API для управления контролами
22
+ * - `IControlsStateApi` — публичное API для получения состояния контролов
23
+ *
24
+ * @see {@link ITransformApi} - публичное API для управления
25
+ * @see {@link IControlsStateApi} - публичное API для получения состояния
26
+ * @see {@link OrbitWithState} - расширенный OrbitControls
27
+ * @see {@link ModelingTransformControls} - расширенный TransformControls
28
+ *
29
+ * @internal
30
+ * @class
31
+ */
32
+ export declare class ControlsModule implements IUpdatableModule, ITransformApi, IControlsStateApi {
33
+ private _cameraApi;
34
+ private _domApi;
35
+ private _sceneApi;
36
+ /** Orbit-контроллер для управления камерой */
37
+ private _orbit;
38
+ /** Transform-контроллер для редактирования */
39
+ private _transform;
40
+ private _transformHelper;
41
+ private _transformListeners;
42
+ /** Были ли инициализированы обработчики событий (hover/click) */
43
+ private _isEventListenersAdded;
44
+ constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _sceneApi: ISceneApi);
45
+ init(): void;
46
+ attachTransform(object: THREE.Object3D): void;
47
+ detachTransform(): void;
48
+ update(): void;
49
+ setTransformMode(mode: ToolType): void;
50
+ onTransformChange(callback: TransformListener): () => void;
51
+ isOrbitInteracting(): boolean;
52
+ isTransformDragging(): boolean;
53
+ /** Освобождает ресурсы модуля */
54
+ dispose(): Promise<void> | void;
55
+ /** Инициализация обработчиков событий на hover/click */
56
+ private _initMouseListeners;
57
+ }
58
+ //# 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,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAI9E;;;;;;;;;;;;;;;;;;;;;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,iCAAiC;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAkCtC,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;CAqB5B"}
@@ -0,0 +1,34 @@
1
+ import { IRenderableModule } from '../interfaces/module/renderable-module';
2
+ import { ICameraApi } from '../interfaces/api/camera-api';
3
+ import { IDomApi } from '../interfaces/api/dom-api';
4
+ import { IRendererApi } from '../interfaces/api/renderer-api';
5
+ /**
6
+ * Модуль для отображения вспомогательных гизмо (осей, ориентации камеры и т.д.).
7
+ *
8
+ * @remarks
9
+ * Отвечает за отрисовку дополнительных визуальных элементов поверх сцены.
10
+ *
11
+ * Модуль реализует:
12
+ * - `IRuntimeModule` — для инициализации и очистки
13
+ * - `IRenderableModule` — для кастомного рендеринга поверх сцены
14
+ *
15
+ * @see {@link IRuntimeModule} - управление жизненным циклом
16
+ * @see {@link IRenderableModule} - кастомный рендеринг
17
+ * @see {@link CameraAxesGizmo} - конкретная реализация гизмо
18
+ *
19
+ * @internal
20
+ * @class
21
+ */
22
+ export declare class GizmoModule implements IRenderableModule {
23
+ private _cameraApi;
24
+ private _domApi;
25
+ private _rendererApi;
26
+ /** Gizmo для управления отображением perspective camera */
27
+ private _cameraGizmo;
28
+ constructor(_cameraApi: ICameraApi, _domApi: IDomApi, _rendererApi: IRendererApi);
29
+ init(): void;
30
+ render(): void;
31
+ /** Освобождение ресурсов модуля */
32
+ dispose(): Promise<void> | void;
33
+ }
34
+ //# 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,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE;;;;;;;;;;;;;;;;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,91 @@
1
+ import { EventBus } from '../events/event-bus';
2
+ import { SelectMode } from '@planara/types';
3
+ import { IRuntimeModule } from '../interfaces/module/runtime-module';
4
+ import { IRaycastApi } from '../interfaces/api/raycast-api';
5
+ import { IDomApi } from '../interfaces/api/dom-api';
6
+ import { ICameraApi } from '../interfaces/api/camera-api';
7
+ import { IMeshApi } from '../interfaces/api/mesh-api';
8
+ import { IControlsStateApi } from '../interfaces/api/controls-state-api';
9
+ /**
10
+ * Runtime-модуль raycast-взаимодействия.
11
+ *
12
+ * Отвечает за:
13
+ * - обработку событий мыши на canvas
14
+ * - raycast по объектам сцены
15
+ * - фильтрацию попаданий по текущему режиму выборки
16
+ * - отправку hover/click событий в event bus
17
+ *
18
+ * @internal
19
+ * @class
20
+ */
21
+ export declare class RaycastModule implements IRuntimeModule, IRaycastApi {
22
+ private _domApi;
23
+ private _cameraApi;
24
+ private _meshApi;
25
+ private _controlsState;
26
+ private _bus;
27
+ /**
28
+ * Raycast для получения событий наведения/клика по модели
29
+ *
30
+ * @private
31
+ * @member
32
+ */
33
+ private _raycaster;
34
+ /**
35
+ * Курсор мыши
36
+ *
37
+ * @private
38
+ * @member
39
+ */
40
+ private _mouse;
41
+ /**
42
+ * Ключ последней модели, на которую наводились,
43
+ * необходим для отправки только уникальных событий в event bus
44
+ *
45
+ * @private
46
+ * @member
47
+ */
48
+ private _lastHoverKey;
49
+ /**
50
+ * Текуший режим для raycaster
51
+ *
52
+ * @private
53
+ * @member
54
+ */
55
+ private _currentRaycastMode;
56
+ /**
57
+ * Были ли инициализированы обработчики событий (hover/click)
58
+ *
59
+ * @private
60
+ * @member
61
+ */
62
+ private _isEventListenersAdded;
63
+ constructor(_domApi: IDomApi, _cameraApi: ICameraApi, _meshApi: IMeshApi, _controlsState: IControlsStateApi, _bus: EventBus);
64
+ init(): void;
65
+ setRaycastMode(mode: SelectMode): void;
66
+ /** Применяет параметры raycaster в зависимости от текущего режима */
67
+ private _applyRaycastParamsByMode;
68
+ /** Возвращает ближайшее пересечение по текущему положению курсора */
69
+ private _getHitIntersection;
70
+ /** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
71
+ private _processRaycastEvent;
72
+ /** Поиск видимой части меша
73
+ * необходимо это для того, чтобы отправлять только видимые элементы модели, а не все попадания
74
+ */
75
+ private _getVisibleHit;
76
+ /** Строит ключ hover-пересечения с учетом текущего режима выборки */
77
+ private _makeHoverKey;
78
+ /** Обработчик события для hover */
79
+ private _handleMouseMove;
80
+ /** Обработчик события на click */
81
+ private _handleMouseClick;
82
+ /** Обработчик двойного клика */
83
+ private _handleDoubleClick;
84
+ /** Обработчик ухода курсора с canvas */
85
+ private _handleMouseLeave;
86
+ /** Инициализация обработчиков событий на hover/click */
87
+ private _initMouseListeners;
88
+ private _removeMouseListeners;
89
+ dispose(): Promise<void> | void;
90
+ }
91
+ //# 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,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAK9E;;;;;;;;;;;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,32 @@
1
+ import { IRuntimeModule } from '../interfaces/module/runtime-module';
2
+ import { ISceneApi } from '../interfaces/api/scene-api';
3
+ import { IMeshApi } from '../interfaces/api/mesh-api';
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Модуль управления сценой, используется для добавления/удаления фигур,
7
+ * настройки необходимых хелперов на сцене (сетка, оси, свет)
8
+ *
9
+ * @internal
10
+ * @class
11
+ */
12
+ export declare class SceneModule implements IRuntimeModule, IMeshApi {
13
+ private _api;
14
+ /** Объекты редактора, участвующие в raycast и редактировании */
15
+ private _meshes;
16
+ /** Сетка сцены */
17
+ private _grid;
18
+ /** Оси сцены */
19
+ private _axes;
20
+ /** Базовый свет сцены */
21
+ private _light;
22
+ constructor(_api: ISceneApi);
23
+ init(): void;
24
+ getMeshes(): THREE.Mesh[];
25
+ addMesh(mesh: THREE.Mesh): void;
26
+ removeMesh(mesh: THREE.Mesh): void;
27
+ addMeshes(meshes: THREE.Mesh[]): void;
28
+ removeMeshes(meshes: THREE.Mesh[]): void;
29
+ /** Освобождает ресурсы модуля */
30
+ dispose(): Promise<void> | void;
31
+ }
32
+ //# 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,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;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;IASlC,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,18 @@
1
+ import { IPolicy } from '../interfaces/policy';
2
+ import { ISelectStore } from '../interfaces/store/select-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,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,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"}
@@ -1,10 +1,12 @@
1
- import { IEditorStore } from '../interfaces/store/editor-store';
1
+ import { IDisplayStore } from '../interfaces/store/display-store';
2
+ import { ISelectStore } from '../interfaces/store/select-store';
3
+ import { IToolStore } from '../interfaces/store/tool-store';
2
4
  import { DisplayMode, FigureTransform, SelectMode, ToolType } from '@planara/types';
3
5
  import { SelectedListener } from '../types/listener/selected-listener';
4
6
  import { TransformListener } from '../types/listener/transform-listener';
5
7
  import * as THREE from 'three';
6
8
  /** Store для всего редактора. */
7
- export declare class EditorStore implements IEditorStore {
9
+ export declare class EditorStore implements IDisplayStore, ISelectStore, IToolStore {
8
10
  /** Текущий режим выборки. */
9
11
  private _selectMode;
10
12
  /** Текущий выбранный инструмент. */
@@ -18,29 +20,17 @@ export declare class EditorStore implements IEditorStore {
18
20
  /** Слушатели событий трансформации выбранного объекта. */
19
21
  private _transformListeners;
20
22
  constructor();
21
- /** @inheritdoc */
22
23
  getSelectMode(): SelectMode;
23
- /** @inheritdoc */
24
24
  getToolType(): ToolType;
25
- /** @inheritdoc */
26
25
  getDisplayMode(): DisplayMode;
27
- /** @inheritdoc */
28
26
  setSelectMode(mode: SelectMode): void;
29
- /** @inheritdoc */
30
27
  setToolType(toolType: ToolType): void;
31
- /** @inheritdoc */
32
28
  setDisplayMode(mode: DisplayMode): void;
33
- /** @inheritdoc */
34
29
  getSelectedObject(): THREE.Object3D | null;
35
- /** @inheritdoc */
36
30
  getSelectionStats(): FigureTransform | null;
37
- /** @inheritdoc */
38
31
  setSelectedObject(object: THREE.Object3D | null): void;
39
- /** @inheritdoc */
40
32
  onSelectedObjectChange(cb: SelectedListener): () => void;
41
- /** @inheritdoc */
42
33
  onSelectedTransformChange(cb: TransformListener): () => void;
43
- /** @inheritdoc */
44
34
  notifySelectedTransformChange(): void;
45
35
  }
46
36
  //# 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":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAMjE,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,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,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,19 @@
1
+ /**
2
+ * Enum типов ответа от менеджеров и политик.
3
+ *
4
+ * @remarks
5
+ * Используется в `IResponse.type`.
6
+ *
7
+ * @public
8
+ * @enum
9
+ */
10
+ export declare enum ResponseType {
11
+ /** Действие заблокировано, инструмент недоступен */
12
+ ToolNotAllowed = "TOOL_NOT_ALLOWED",
13
+ /** Действие выполнено успешно */
14
+ Success = "SUCCESS",
15
+ /** Действие не выполнено, потому что нет изменений */
16
+ NoChange = "NO_CHANGE",
17
+ Error = "ERROR"
18
+ }
19
+ //# sourceMappingURL=response-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-type.d.ts","sourceRoot":"","sources":["../../../src/types/response/response-type.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,oBAAY,YAAY;IACtB,oDAAoD;IACpD,cAAc,qBAAqB;IAEnC,iCAAiC;IACjC,OAAO,YAAY;IAEnB,sDAAsD;IACtD,QAAQ,cAAc;IAEtB,KAAK,UAAU;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planara/core",
3
- "version": "2.8.0",
3
+ "version": "3.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
@@ -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,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
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform-helpers-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/transform-helpers-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE9B;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAElC,+CAA+C;IAC/C,MAAM,IAAI,IAAI,CAAC;IAEf,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;CACtD"}