@planara/core 2.0.0 → 2.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 (48) hide show
  1. package/dist/core/editor-renderer.d.ts +34 -2
  2. package/dist/core/editor-renderer.d.ts.map +1 -1
  3. package/dist/events/editor-events.d.ts +6 -0
  4. package/dist/events/editor-events.d.ts.map +1 -1
  5. package/dist/events/event-topics.d.ts +3 -1
  6. package/dist/events/event-topics.d.ts.map +1 -1
  7. package/dist/extensions/symmetric-axes-helper.d.ts.map +1 -0
  8. package/dist/handlers/display/wireframe-handler.d.ts +3 -4
  9. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  10. package/dist/handlers/select/mesh-select-handler.d.ts +1 -0
  11. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  12. package/dist/handlers/tool/base-tool-handler.d.ts +25 -0
  13. package/dist/handlers/tool/base-tool-handler.d.ts.map +1 -0
  14. package/dist/handlers/tool/rotate-tool-handler.d.ts +19 -0
  15. package/dist/handlers/tool/rotate-tool-handler.d.ts.map +1 -0
  16. package/dist/handlers/tool/scale-tool-handler.d.ts +19 -0
  17. package/dist/handlers/tool/scale-tool-handler.d.ts.map +1 -0
  18. package/dist/handlers/tool/translate-tool-handler.d.ts +19 -0
  19. package/dist/handlers/tool/translate-tool-handler.d.ts.map +1 -0
  20. package/dist/hub/editor-hub.d.ts +5 -2
  21. package/dist/hub/editor-hub.d.ts.map +1 -1
  22. package/dist/index.cjs.js +180 -180
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.es.js +6231 -5157
  26. package/dist/index.full.d.ts +52 -3
  27. package/dist/index.public.d.ts +38 -3
  28. package/dist/index.umd.js +147 -147
  29. package/dist/interfaces/api/transform-helpers-api.d.ts +25 -0
  30. package/dist/interfaces/api/transform-helpers-api.d.ts.map +1 -0
  31. package/dist/interfaces/handler/display-handler.d.ts +1 -0
  32. package/dist/interfaces/handler/display-handler.d.ts.map +1 -1
  33. package/dist/interfaces/handler/select-handler.d.ts +1 -0
  34. package/dist/interfaces/handler/select-handler.d.ts.map +1 -1
  35. package/dist/interfaces/handler/tool-handler.d.ts +14 -0
  36. package/dist/interfaces/handler/tool-handler.d.ts.map +1 -0
  37. package/dist/interfaces/manager/tool-manager.d.ts +8 -0
  38. package/dist/interfaces/manager/tool-manager.d.ts.map +1 -0
  39. package/dist/ioc/container.d.ts.map +1 -1
  40. package/dist/managers/display/display-manager.d.ts.map +1 -1
  41. package/dist/managers/select/select-manager.d.ts.map +1 -1
  42. package/dist/managers/tool/tool-manager.d.ts +18 -0
  43. package/dist/managers/tool/tool-manager.d.ts.map +1 -0
  44. package/dist/utils/renderer-api.d.ts +6 -1
  45. package/dist/utils/renderer-api.d.ts.map +1 -1
  46. package/package.json +2 -2
  47. package/dist/helpers/symmetric-axes-helper.d.ts.map +0 -1
  48. /package/dist/{helpers → extensions}/symmetric-axes-helper.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Renderer } from './renderer';
2
2
  import { EventBus } from '../events/event-bus';
3
- import { Figure } from '@planara/types';
3
+ import { Figure, ToolType } from '@planara/types';
4
4
  import * as THREE from 'three';
5
5
  /**
6
6
  * Рендерер для редактора.
@@ -13,19 +13,51 @@ export declare class EditorRenderer extends Renderer {
13
13
  private _bus;
14
14
  /** Orbit-контроллер для управления камерой */
15
15
  private _orbit;
16
+ /** Transform-контроллер для редактирования */
17
+ private _transform;
18
+ private readonly _transformHelper;
19
+ /** Raycast для получения событий наведения/клика по модели*/
16
20
  private _raycaster;
21
+ /** Курсор мыши */
17
22
  private readonly _mouse;
23
+ /** Были ли инициализированы обработчики событий (hover/click) */
18
24
  private _isEventListenersAdded;
25
+ /**
26
+ * Последняя модель на которую наводились,
27
+ * необходима для отправки только уникальных событий в event bus
28
+ */
19
29
  private _lastHovered;
20
30
  constructor(_canvas: HTMLCanvasElement, _bus: EventBus);
21
31
  /**
22
32
  * Обновление состояния рендерера.
23
33
  */
24
34
  protected update(): void;
35
+ /** Добавление фигуры на сцену */
25
36
  addFigure(figure: Figure): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material | THREE.Material[], THREE.Object3DEventMap>;
26
- private initMouseListeners;
37
+ /**
38
+ * Смена отображения `TransformControls` в зависимости от типа инструмента.
39
+ * @param mode - тип инструмента для отображения `TransformControls`.
40
+ * @internal
41
+ */
42
+ setTransformControlsMode(mode: ToolType): void;
43
+ /**
44
+ * Добавление `TransformControls` к объекту.
45
+ * @param object - объект, к которому добавляются `TransformControls`.
46
+ * @internal
47
+ */
48
+ attachTransformControls(object: THREE.Object3D): void;
49
+ /**
50
+ * Удаление `TransformControls` с последнего выбранного объекта.
51
+ * @internal
52
+ */
53
+ detachTransformControls(): void;
54
+ /** Инициализация обработчиков событий на hover/click */
55
+ private _initMouseListeners;
56
+ /** Обработчик события для hover */
27
57
  private _handleMouseMove;
58
+ /** Обработчик события на click */
28
59
  private _handleMouseClick;
60
+ /** Вспомогательный метод для получения модели, которую выбрали и отправки события в event bus */
29
61
  private _processRaycastEvent;
30
62
  }
31
63
  //# sourceMappingURL=editor-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-renderer.d.ts","sourceRoot":"","sources":["../../src/core/editor-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;GAKG;AACH,qBACa,cAAe,SAAQ,QAAQ;IAStB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,IAAI;IATlC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,YAAY,CAA+B;gBAGvB,OAAO,EAAE,iBAAiB,EACxB,IAAI,EAAE,QAAQ;IA0B5C;;OAEG;IACH,SAAS,CAAC,MAAM;IAIA,SAAS,CAAC,MAAM,EAAE,MAAM;IAkBxC,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,oBAAoB;CAkC7B"}
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;AAQtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;GAKG;AACH,qBACa,cAAe,SAAQ,QAAQ;IAwBtB,OAAO,CAAC,OAAO;IACb,OAAO,CAAC,IAAI;IAxBlC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAkB;IAEhC,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,6DAA6D;IAC7D,OAAO,CAAC,UAAU,CAAmB;IAErC,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,iEAAiE;IACjE,OAAO,CAAC,sBAAsB,CAAS;IAEvC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAA+B;gBAGvB,OAAO,EAAE,iBAAiB,EACxB,IAAI,EAAE,QAAQ;IA+B5C;;OAEG;IACH,SAAS,CAAC,MAAM;IAIhB,iCAAiC;IACjB,SAAS,CAAC,MAAM,EAAE,MAAM;IAkBxC;;;;OAIG;IACI,wBAAwB,CAAC,IAAI,EAAE,QAAQ;IAI9C;;;;OAIG;IACI,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ;IAIrD;;;OAGG;IACI,uBAAuB;IAI9B,wDAAwD;IACxD,OAAO,CAAC,mBAAmB;IAiB3B,mCAAmC;IACnC,OAAO,CAAC,gBAAgB,CAEtB;IAEF,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAEvB;IAEF,iGAAiG;IACjG,OAAO,CAAC,oBAAoB;CAoC7B"}
@@ -1,4 +1,5 @@
1
1
  import { EventTopics } from './event-topics';
2
+ import { SelectMode } from '@planara/types';
2
3
  import * as THREE from 'three';
3
4
  /**
4
5
  * Типы событий редактора.
@@ -14,5 +15,10 @@ export type EditorEvents = {
14
15
  [EventTopics.SelectClick]: {
15
16
  mesh: THREE.Object3D;
16
17
  } | null;
18
+ /** Событие выбора объекта для редактирования. Payload: выбранный режим выборки */
19
+ [EventTopics.ToolSelect]: {
20
+ mode: SelectMode;
21
+ mesh: THREE.Object3D | null;
22
+ };
17
23
  };
18
24
  //# sourceMappingURL=editor-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-events.d.ts","sourceRoot":"","sources":["../../src/events/editor-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,2EAA2E;IAC3E,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAE3D,gEAAgE;IAChE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5D,CAAC"}
1
+ {"version":3,"file":"editor-events.d.ts","sourceRoot":"","sources":["../../src/events/editor-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,2EAA2E;IAC3E,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAE3D,gEAAgE;IAChE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAE3D,kFAAkF;IAClF,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;KAAE,CAAC;CAC7E,CAAC"}
@@ -7,6 +7,8 @@ export declare enum EventTopics {
7
7
  /** Событие наведения на объект (hover). Payload: mesh: Mesh | null */
8
8
  SelectHover = "select.hover",
9
9
  /** Событие клика по объекту. Payload: mesh: Mesh | null */
10
- SelectClick = "select.click"
10
+ SelectClick = "select.click",
11
+ /** Событие выбора объекта для редактирования. Payload: mode: SelectMode, object: THREE.Object3D | null */
12
+ ToolSelect = "tool.select"
11
13
  }
12
14
  //# sourceMappingURL=event-topics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-topics.d.ts","sourceRoot":"","sources":["../../src/events/event-topics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,WAAW;IACrB,sEAAsE;IACtE,WAAW,iBAAiB;IAE5B,2DAA2D;IAC3D,WAAW,iBAAiB;CAC7B"}
1
+ {"version":3,"file":"event-topics.d.ts","sourceRoot":"","sources":["../../src/events/event-topics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,WAAW;IACrB,sEAAsE;IACtE,WAAW,iBAAiB;IAE5B,2DAA2D;IAC3D,WAAW,iBAAiB;IAE5B,0GAA0G;IAC1G,UAAU,gBAAgB;CAC3B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symmetric-axes-helper.d.ts","sourceRoot":"","sources":["../../src/extensions/symmetric-axes-helper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,qBAAa,mBAAoB,SAAQ,KAAK,CAAC,KAAK;gBACtC,IAAI,SAAI;CAsBrB"}
@@ -1,19 +1,18 @@
1
1
  import { IDisplayHandler } from '../../interfaces/handler/display-handler';
2
- import { RendererApi } from '../../utils/renderer-api';
3
2
  import { DisplayMode } from '@planara/types';
3
+ import { IMeshApi } from '../../interfaces/api/mesh-api';
4
4
  /**
5
5
  * Хендлер для включения wireframe-режима.
6
6
  * Управляет сценой через RendererApi.
7
7
  * @internal
8
8
  */
9
9
  export declare class WireframeHandler implements IDisplayHandler {
10
+ private _api;
10
11
  /** Режим отображения */
11
12
  readonly mode: DisplayMode;
12
13
  /** Список wireframe-объектов для текущих мешей */
13
14
  private _wireframes;
14
- /** Ссылка на API рендерера */
15
- private readonly _api;
16
- constructor(api: RendererApi);
15
+ constructor(_api: IMeshApi);
17
16
  /**
18
17
  * Применяет wireframe-режим к сцене.
19
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wireframe-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/display/wireframe-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,qBACa,gBAAiB,YAAW,eAAe;IACtD,wBAAwB;IACxB,SAAgB,IAAI,EAAE,WAAW,CAAyB;IAE1D,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAA4B;IAE/C,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;gBAEA,GAAG,EAAE,WAAW;IAInD;;OAEG;IACI,MAAM,IAAI,IAAI;IAwCrB;;OAEG;IACI,QAAQ,IAAI,IAAI;IAoBvB;;OAEG;IACI,OAAO,IAAI,IAAI;CAOvB"}
1
+ {"version":3,"file":"wireframe-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/display/wireframe-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;GAIG;AACH,qBACa,gBAAiB,YAAW,eAAe;IAOnB,OAAO,CAAC,IAAI;IAN/C,wBAAwB;IACxB,SAAgB,IAAI,EAAE,WAAW,CAAyB;IAE1D,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAA4B;gBAEJ,IAAI,EAAE,QAAQ;IAEzD;;OAEG;IACI,MAAM,IAAI,IAAI;IAwCrB;;OAEG;IACI,QAAQ,IAAI,IAAI;IAoBvB;;OAEG;IACI,OAAO,IAAI,IAAI;CAOvB"}
@@ -8,6 +8,7 @@ import { SelectEventType } from '../../types/event/select-event-type';
8
8
  * Управляет сценой через payload события рендерера.
9
9
  * Обрабатывает hover и click.
10
10
  * Меняет цвет ребер конкретной модели из payload, в случае null возвращает исходное состояние.
11
+ * @internal
11
12
  */
12
13
  export declare class MeshSelectHandler implements ISelectHandler {
13
14
  /** Режим, которым управляет хендлер, нужен только менеджеру */
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/mesh-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE;;;;;GAKG;AACH,qBACa,iBAAkB,YAAW,cAAc;IACtD,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,8CAA8C;IAC9C,OAAO,CAAC,aAAa,CAA2B;IAGhD,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;;IAI1C,MAAM,CACJ,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAkDP,QAAQ,IAAI,IAAI;IAUhB,OAAO,IAAI,IAAI;IAIf,2DAA2D;IAC3D,OAAO,CAAC,cAAc;CAQvB"}
1
+ {"version":3,"file":"mesh-select-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/select/mesh-select-handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE;;;;;;GAMG;AACH,qBACa,iBAAkB,YAAW,cAAc;IACtD,+DAA+D;IAC/D,SAAgB,IAAI,EAAE,UAAU,CAAmB;IAEnD,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,8CAA8C;IAC9C,OAAO,CAAC,aAAa,CAA2B;IAGhD,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;;IAI1C,MAAM,CACJ,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IA+CP,QAAQ,IAAI,IAAI;IAUhB,OAAO,IAAI,IAAI;IAIf,2DAA2D;IAC3D,OAAO,CAAC,cAAc;CAQvB"}
@@ -0,0 +1,25 @@
1
+ import { ToolType } from '@planara/types';
2
+ import { ITransformHelpersApi } from '../../interfaces/api/transform-helpers-api';
3
+ import { IToolHandler } from '../../interfaces/handler/tool-handler';
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Базовый класс для инструментов
7
+ * @internal
8
+ */
9
+ export declare abstract class BaseToolHandler implements IToolHandler {
10
+ protected api: ITransformHelpersApi;
11
+ abstract readonly mode: ToolType;
12
+ protected constructor(api: ITransformHelpersApi);
13
+ /**
14
+ * Обновляет состояние инструмента под текущее выделение.
15
+ */
16
+ handle(target: THREE.Object3D | null): void;
17
+ /**
18
+ * Откатывает локальное состояние инструмента при смене инструмента.
19
+ *
20
+ * Вызывается менеджером перед активацией другого хендлера.
21
+ */
22
+ rollback(): void;
23
+ destroy(): void;
24
+ }
25
+ //# sourceMappingURL=base-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/tool/base-tool-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,YAAY;IAGrC,SAAS,CAAC,GAAG,EAAE,oBAAoB;IAFzD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAEjC,SAAS,aAAuB,GAAG,EAAE,oBAAoB;IAEzD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI;IAM3C;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAIhB,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,19 @@
1
+ import { BaseToolHandler } from './base-tool-handler';
2
+ import { ITransformHelpersApi } from '../../interfaces/api/transform-helpers-api';
3
+ import { ToolType } from '@planara/types';
4
+ /**
5
+ * Хендлер инструмента «вращение».
6
+ *
7
+ * Отвечает только за управление общими TransformControls через Renderer API:
8
+ * - выставляет режим гизмо;
9
+ * - прикрепляет к текущему объекту или отцепляет его.
10
+ *
11
+ * @internal
12
+ * @extends BaseToolHandler
13
+ */
14
+ export declare class RotateToolHandler extends BaseToolHandler {
15
+ /** Инструмент, которым управляет хендлер, нужен только менеджеру */
16
+ readonly mode: ToolType;
17
+ constructor(api: ITransformHelpersApi);
18
+ }
19
+ //# sourceMappingURL=rotate-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotate-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/tool/rotate-tool-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;;;;;;;;GASG;AACH,qBACa,iBAAkB,SAAQ,eAAe;IACpD,oEAAoE;IACpE,SAAgB,IAAI,EAAE,QAAQ,CAAmB;gBAEP,GAAG,EAAE,oBAAoB;CAGpE"}
@@ -0,0 +1,19 @@
1
+ import { BaseToolHandler } from './base-tool-handler';
2
+ import { ITransformHelpersApi } from '../../interfaces/api/transform-helpers-api';
3
+ import { ToolType } from '@planara/types';
4
+ /**
5
+ * Хендлер инструмента «масштабирование».
6
+ *
7
+ * Отвечает только за управление общими TransformControls через Renderer API:
8
+ * - выставляет режим гизмо;
9
+ * - прикрепляет к текущему объекту или отцепляет его.
10
+ *
11
+ * @internal
12
+ * @extends BaseToolHandler
13
+ */
14
+ export declare class ScaleToolHandler extends BaseToolHandler {
15
+ /** Инструмент, которым управляет хендлер, нужен только менеджеру */
16
+ readonly mode: ToolType;
17
+ constructor(api: ITransformHelpersApi);
18
+ }
19
+ //# sourceMappingURL=scale-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/tool/scale-tool-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;;;;;;;;GASG;AACH,qBACa,gBAAiB,SAAQ,eAAe;IACnD,oEAAoE;IACpE,SAAgB,IAAI,EAAE,QAAQ,CAAkB;gBAEN,GAAG,EAAE,oBAAoB;CAGpE"}
@@ -0,0 +1,19 @@
1
+ import { BaseToolHandler } from './base-tool-handler';
2
+ import { ITransformHelpersApi } from '../../interfaces/api/transform-helpers-api';
3
+ import { ToolType } from '@planara/types';
4
+ /**
5
+ * Хендлер инструмента «перемещение».
6
+ *
7
+ * Отвечает только за управление общими TransformControls через Renderer API:
8
+ * - выставляет режим гизмо;
9
+ * - прикрепляет к текущему объекту или отцепляет его.
10
+ *
11
+ * @internal
12
+ * @extends BaseToolHandler
13
+ */
14
+ export declare class TranslateToolHandler extends BaseToolHandler {
15
+ /** Инструмент, которым управляет хендлер, нужен только менеджеру */
16
+ readonly mode: ToolType;
17
+ constructor(api: ITransformHelpersApi);
18
+ }
19
+ //# sourceMappingURL=translate-tool-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate-tool-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/tool/translate-tool-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;;;;;;;;GASG;AACH,qBACa,oBAAqB,SAAQ,eAAe;IACvD,oEAAoE;IACpE,SAAgB,IAAI,EAAE,QAAQ,CAAsB;gBAEV,GAAG,EAAE,oBAAoB;CAGpE"}
@@ -1,7 +1,8 @@
1
- import { DisplayMode, Figure, SelectMode } from '@planara/types';
1
+ import { DisplayMode, Figure, SelectMode, ToolType } from '@planara/types';
2
2
  import { IDisplayManager } from '../interfaces/manager/display-manager';
3
3
  import { ISelectManager } from '../interfaces/manager/select-manager';
4
4
  import { EditorRenderer } from '../core/editor-renderer';
5
+ import { IToolManager } from '../interfaces/manager/tool-manager';
5
6
  /**
6
7
  * Хаб для управления редактированием
7
8
  * @public
@@ -9,10 +10,12 @@ import { EditorRenderer } from '../core/editor-renderer';
9
10
  export declare class EditorHub {
10
11
  private _displayManager;
11
12
  private _selectManager;
13
+ private _toolManager;
12
14
  private _renderer;
13
- constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _renderer: EditorRenderer);
15
+ constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _renderer: EditorRenderer);
14
16
  setDisplayMode(mode: DisplayMode): void;
15
17
  setSelectMode(mode: SelectMode): void;
18
+ setToolMode(mode: ToolType): void;
16
19
  resizeRenderer(): void;
17
20
  updateRenderer(): void;
18
21
  addFigure(figure: Figure): void;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-hub.d.ts","sourceRoot":"","sources":["../../src/hub/editor-hub.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,qBACa,SAAS;IAES,OAAO,CAAC,eAAe;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;gBAFR,eAAe,EAAE,eAAe,EACjC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,cAAc;IAK7D,cAAc,CAAC,IAAI,EAAE,WAAW;IAIhC,aAAa,CAAC,IAAI,EAAE,UAAU;IAI9B,cAAc;IAId,cAAc;IAId,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,OAAO;CAKR"}
1
+ {"version":3,"file":"editor-hub.d.ts","sourceRoot":"","sources":["../../src/hub/editor-hub.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAErF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;;GAGG;AACH,qBACa,SAAS;IAES,OAAO,CAAC,eAAe;IACxB,OAAO,CAAC,cAAc;IACxB,OAAO,CAAC,YAAY;IAClB,OAAO,CAAC,SAAS;gBAHR,eAAe,EAAE,eAAe,EACjC,cAAc,EAAE,cAAc,EAChC,YAAY,EAAE,YAAY,EACxB,SAAS,EAAE,cAAc;IAM7D,cAAc,CAAC,IAAI,EAAE,WAAW;IAIhC,aAAa,CAAC,IAAI,EAAE,UAAU;IAI9B,WAAW,CAAC,IAAI,EAAE,QAAQ;IAI1B,cAAc;IAId,cAAc;IAId,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,OAAO;CAKR"}