@planara/core 2.2.0 → 2.3.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 (36) hide show
  1. package/dist/constants/colors.d.ts +11 -0
  2. package/dist/constants/colors.d.ts.map +1 -1
  3. package/dist/constants/figure-geometries.d.ts +10 -0
  4. package/dist/constants/figure-geometries.d.ts.map +1 -0
  5. package/dist/core/editor-renderer.d.ts.map +1 -1
  6. package/dist/core/renderer.d.ts.map +1 -1
  7. package/dist/handlers/display/wireframe-handler.d.ts +12 -9
  8. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  9. package/dist/handlers/scene/add-figure-scene-handler.d.ts +23 -0
  10. package/dist/handlers/scene/add-figure-scene-handler.d.ts.map +1 -0
  11. package/dist/handlers/scene/delete-figure-scene-handler.d.ts +24 -0
  12. package/dist/handlers/scene/delete-figure-scene-handler.d.ts.map +1 -0
  13. package/dist/handlers/select/mesh-select-handler.d.ts +11 -4
  14. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -1
  15. package/dist/hub/editor-hub.d.ts +6 -3
  16. package/dist/hub/editor-hub.d.ts.map +1 -1
  17. package/dist/index.cjs.js +186 -186
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.es.js +3369 -3065
  21. package/dist/index.full.d.ts +16 -5
  22. package/dist/index.public.d.ts +16 -5
  23. package/dist/index.umd.js +153 -153
  24. package/dist/interfaces/handler/scene-handler.d.ts +14 -0
  25. package/dist/interfaces/handler/scene-handler.d.ts.map +1 -0
  26. package/dist/interfaces/manager/display-manager.d.ts +1 -1
  27. package/dist/interfaces/manager/scene-manager.d.ts +8 -0
  28. package/dist/interfaces/manager/scene-manager.d.ts.map +1 -0
  29. package/dist/interfaces/manager/select-manager.d.ts +1 -1
  30. package/dist/interfaces/manager/tool-manager.d.ts +1 -1
  31. package/dist/ioc/container.d.ts.map +1 -1
  32. package/dist/managers/scene/scene-manager.d.ts +19 -0
  33. package/dist/managers/scene/scene-manager.d.ts.map +1 -0
  34. package/dist/utils/helpers.d.ts +4 -0
  35. package/dist/utils/helpers.d.ts.map +1 -0
  36. package/package.json +2 -2
@@ -21,4 +21,15 @@ export declare const HOVER_COLOR = 16776960;
21
21
  * (line.material as THREE.LineBasicMaterial).color.setHex(SELECT_COLOR);
22
22
  */
23
23
  export declare const SELECT_COLOR = 16755200;
24
+ /**
25
+ * Цвет внешних ребер.
26
+ *
27
+ * @remarks
28
+ * Применяется при выключении постоянной подсветки выбранного ребра/грани.
29
+ * Должен визуально отличаться от {@link HOVER_COLOR} и {@link SELECT_COLOR}, чтобы не путать состояния.
30
+ *
31
+ * @example
32
+ * (line.material as THREE.LineBasicMaterial).color.setHex(EDGES_DEFAULT_COLOR);
33
+ */
34
+ export declare const EDGES_DEFAULT_COLOR = 2236962;
24
35
  //# sourceMappingURL=colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/constants/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,WAAW,CAAC"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/constants/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,UAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FigureType } from '@planara/types';
2
+ import * as THREE from 'three';
3
+ /**
4
+ * Базовые фабрики геометрий по типу фигуры.
5
+ * Всегда создают новый экземпляр — безопасно для редактирования вершин.
6
+ */
7
+ export declare const BASE_GEOMETRIES: Record<FigureType, () => THREE.BufferGeometry>;
8
+ /** Базовый материал для фигур */
9
+ export declare const BASE_MATERIAL: THREE.MeshStandardMaterial;
10
+ //# sourceMappingURL=figure-geometries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure-geometries.d.ts","sourceRoot":"","sources":["../../src/constants/figure-geometries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,cAAc,CAa1E,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,aAAa,4BAIxB,CAAC"}
@@ -1 +1 @@
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,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGnE;;;;;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,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,YAAY,CAA+B;gBAGvB,OAAO,EAAE,iBAAiB,EACxB,IAAI,EAAE,QAAQ;IAmC5C;;OAEG;IACH,SAAS,CAAC,MAAM;IAIhB,iCAAiC;IACjB,SAAS,CAAC,MAAM,EAAE,MAAM;IAsBxC;;;;OAIG;IACI,wBAAwB,CAAC,IAAI,EAAE,QAAQ;IAI9C;;;;OAIG;IACI,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ;IAIrD;;;OAGG;IACI,uBAAuB;IAI9B;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU;IAsBtB,OAAO;IA6BvB,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;CAqC7B"}
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,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGnE;;;;;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,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,YAAY,CAA+B;gBAGvB,OAAO,EAAE,iBAAiB,EACxB,IAAI,EAAE,QAAQ;IAuC5C;;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;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU;IAsBtB,OAAO;IA6BvB,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;CAqC7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;GAIG;AACH,8BAAsB,QAAS,YAAW,UAAU;IAClD,4BAA4B;IAC5B,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,KAAK,CAAC;IAE9B,uBAAuB;IACvB,SAAS,CAAC,MAAM,EAAG,KAAK,CAAC,iBAAiB,CAAC;IAE3C,mCAAmC;IACnC,SAAS,CAAC,QAAQ,EAAG,KAAK,CAAC,aAAa,CAAC;IAEzC,uDAAuD;IACvD,SAAS,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAErC,8BAA8B;IAC9B,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAM;IAEpC;;;OAGG;IACH,SAAS,aAAa,MAAM,EAAE,iBAAiB;IA+B/C;;OAEG;IACI,MAAM;IAMb;;OAEG;IACH,SAAS,CAAC,MAAM;IAIhB;;OAEG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAExB;;OAEG;IACI,IAAI;IAMX;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI;IAgC5C;;;;;OAKG;IACI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;IAO/B;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;IAOlC;;;;;OAKG;IACI,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIhC;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3D;;;;;;;;;;;;;;;OAeG;IACI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAW9C;;;;;;;;;;;;;;OAcG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7C,gEAAgE;IACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAavC"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/core/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C;;;;GAIG;AACH,8BAAsB,QAAS,YAAW,UAAU;IAClD,4BAA4B;IAC5B,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,KAAK,CAAC;IAE9B,uBAAuB;IACvB,SAAS,CAAC,MAAM,EAAG,KAAK,CAAC,iBAAiB,CAAC;IAE3C,mCAAmC;IACnC,SAAS,CAAC,QAAQ,EAAG,KAAK,CAAC,aAAa,CAAC;IAEzC,uDAAuD;IACvD,SAAS,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAErC,8BAA8B;IAC9B,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAM;IAEpC;;;OAGG;IACH,SAAS,aAAa,MAAM,EAAE,iBAAiB;IA+B/C;;OAEG;IACI,MAAM;IAMb;;OAEG;IACH,SAAS,CAAC,MAAM;IAIhB;;OAEG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAExB;;OAEG;IACI,IAAI;IAMX;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI;IAyB5C;;;;;OAKG;IACI,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;IAO/B;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI;IAOlC;;;;;OAKG;IACI,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;IAIhC;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3D;;;;;;;;;;;;;;;OAeG;IACI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;IAW9C;;;;;;;;;;;;;;OAcG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7C,gEAAgE;IACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAavC"}
@@ -8,20 +8,23 @@ import { IMeshApi } from '../../interfaces/api/mesh-api';
8
8
  */
9
9
  export declare class WireframeHandler implements IDisplayHandler {
10
10
  private _api;
11
- /** Режим отображения */
11
+ /** Режим отображения. */
12
12
  readonly mode: DisplayMode;
13
- /** Список wireframe-объектов для текущих мешей */
14
- private _wireframes;
13
+ /** Сохраняем предыдущие значения wireframe для отката. */
14
+ private _prevWireframe;
15
+ /** Сохраняем исходные цвета материалов для отката */
16
+ private _prevColorMesh;
17
+ private _prevColorLines;
18
+ /** Цвет ребер для wireframe-режима. */
19
+ private _wireColor;
15
20
  constructor(_api: IMeshApi);
16
- /**
17
- * Применяет wireframe-режим к сцене.
18
- */
21
+ /** Применяет wireframe-режим к сцене. */
19
22
  handle(): void;
20
- /**
21
- * Отключает wireframe-режим и возвращает оригинальные меши.
22
- */
23
+ /** Отключает wireframe-режим и возвращает оригинальные меши. */
23
24
  rollback(): void;
24
25
  /** Освобождает ресурсы хендлера, удаляет слушатели и очищает внутренние данные. */
25
26
  dispose(): Promise<void> | void;
27
+ /** Изменить цвет, который будет применяться в режиме wireframe. */
28
+ private _enableWireframeOnMaterial;
26
29
  }
27
30
  //# sourceMappingURL=wireframe-handler.d.ts.map
@@ -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,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;GAIG;AACH,qBACa,gBAAiB,YAAW,eAAe;IAOZ,OAAO,CAAC,IAAI;IANtD,wBAAwB;IACxB,SAAgB,IAAI,EAAE,WAAW,CAAyB;IAE1D,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAA4B;gBAEG,IAAI,EAAE,QAAQ;IAEhE;;OAEG;IACI,MAAM,IAAI,IAAI;IAwCrB;;OAEG;IACI,QAAQ,IAAI,IAAI;IAoBvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAOvC"}
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;IAcZ,OAAO,CAAC,IAAI;IAbtD,yBAAyB;IACzB,SAAgB,IAAI,EAAE,WAAW,CAAyB;IAE1D,0DAA0D;IAC1D,OAAO,CAAC,cAAc,CAAsC;IAE5D,qDAAqD;IACrD,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,eAAe,CAAmD;IAE1E,uCAAuC;IACvC,OAAO,CAAC,UAAU,CAA6B;gBAEG,IAAI,EAAE,QAAQ;IAEhE,yCAAyC;IAClC,MAAM,IAAI,IAAI;IAwBrB,gEAAgE;IACzD,QAAQ,IAAI,IAAI;IAuBvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC,mEAAmE;IACnE,OAAO,CAAC,0BAA0B;CAgBnC"}
@@ -0,0 +1,23 @@
1
+ import { ISceneHandler } from '../../interfaces/handler/scene-handler';
2
+ import { IMeshApi } from '../../interfaces/api/mesh-api';
3
+ import { FigureType, SceneMode } from '@planara/types';
4
+ /**
5
+ * Хендлер для добавления базовых фигур на сцену.
6
+ * Управляет сценой через RendererApi.
7
+ * @internal
8
+ */
9
+ export declare class AddFigureSceneHandler implements ISceneHandler {
10
+ private _api;
11
+ /** Режим редактирования сцены */
12
+ readonly mode: SceneMode;
13
+ /** Последняя добавленная фигура, нужно для отката через `ctrl + z`. */
14
+ private _lastAddedMesh;
15
+ constructor(_api: IMeshApi);
16
+ /** Добавление базовых фигур на сцену, которые приписаны в `FigureType`. */
17
+ handle(figure: FigureType): void;
18
+ /** Срабатывает только на `ctrl + z`. */
19
+ rollback(): void;
20
+ /** Освобождает ресурсы хендлера. */
21
+ dispose(): Promise<void> | void;
22
+ }
23
+ //# sourceMappingURL=add-figure-scene-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-figure-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/add-figure-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO5D;;;;GAIG;AACH,qBACa,qBAAsB,YAAW,aAAa;IAOf,OAAO,CAAC,IAAI;IANtD,iCAAiC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAuB;IAEtD,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAA2B;gBAEC,IAAI,EAAE,QAAQ;IAEhE,2EAA2E;IACpE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA4BvC,wCAAwC;IACjC,QAAQ,IAAI,IAAI;IASvB,oCAAoC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
@@ -0,0 +1,24 @@
1
+ import { ISceneHandler } from '../../interfaces/handler/scene-handler';
2
+ import { IMeshApi } from '../../interfaces/api/mesh-api';
3
+ import { SceneMode } from '@planara/types';
4
+ import { IEditorStore } from '../../interfaces/store/editor-store';
5
+ /**
6
+ * Хендлер для удаления фигур со сцены.
7
+ * Управляет сценой через RendererApi.
8
+ * @internal
9
+ */
10
+ export declare class DeleteFigureSceneHandler implements ISceneHandler {
11
+ private _api;
12
+ private _store;
13
+ /** Режим редактирования сцены */
14
+ readonly mode: SceneMode;
15
+ /** Последняя удаленная фигура, сохраняем для отката через `ctrl + z` */
16
+ private _lastDeletedMesh;
17
+ constructor(_api: IMeshApi, _store: IEditorStore);
18
+ handle(): void;
19
+ /** Срабатывает только на `ctrl + z`. */
20
+ rollback(): void;
21
+ /** Освобождает ресурсы хендлера. */
22
+ dispose(): Promise<void> | void;
23
+ }
24
+ //# sourceMappingURL=delete-figure-scene-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-figure-scene-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/scene/delete-figure-scene-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAIxE;;;;GAIG;AACH,qBACa,wBAAyB,YAAW,aAAa;IAQnC,OAAO,CAAC,IAAI;IACX,OAAO,CAAC,MAAM;IARxC,iCAAiC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAA0B;IAEzD,wEAAwE;IACxE,OAAO,CAAC,gBAAgB,CAA2B;gBAGlB,IAAI,EAAE,QAAQ,EACb,MAAM,EAAE,YAAY;IAG/C,MAAM,IAAI,IAAI;IAerB,wCAAwC;IACjC,QAAQ,IAAI,IAAI;IASvB,oCAAoC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAIvC"}
@@ -25,14 +25,21 @@ export declare class MeshSelectHandler implements ISelectHandler {
25
25
  private readonly _hoverColor;
26
26
  /** Цвет ребер для выделенной фигуры */
27
27
  private readonly _selectColor;
28
- /** Изначальный цвет ребер у модели, перед наложением эффектов*/
29
- private readonly _defaultColor;
28
+ /** Исходные цвета материалов линий для отката */
29
+ private readonly _origLineColors;
30
30
  constructor(_api: IRaycastAPI, _store: IEditorStore);
31
31
  handle(payload: EditorEvents[EventTopics.SelectHover] | EditorEvents[EventTopics.SelectClick], type: SelectEventType): void;
32
32
  rollback(): void;
33
33
  /** Освобождает ресурсы хендлера, удаляет слушатели и очищает внутренние данные. */
34
34
  dispose(): Promise<void> | void;
35
- /** вспомогательный метод для изменения цвета ребер меша */
36
- private _setEdgesColor;
35
+ /**
36
+ * Перекрасить рёбра меша и запомнить оригинальный цвет (один раз на LineSegments).
37
+ */
38
+ private _paintEdges;
39
+ /**
40
+ * Восстановить исходный цвет рёбер меша из WeakMap.
41
+ * Если исходный цвет не сохранён (на всякий случай) — ничего не меняем.
42
+ */
43
+ private _restoreEdgesColor;
37
44
  }
38
45
  //# sourceMappingURL=mesh-select-handler.d.ts.map
@@ -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;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,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;AAItE;;;;;;GAMG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAkB7B,OAAO,CAAC,IAAI;IACX,OAAO,CAAC,MAAM;IAlBxC,+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,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAY;gBAGT,IAAI,EAAE,WAAW,EAChB,MAAM,EAAE,YAAY;IAG/C,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAuDA,QAAQ,IAAI,IAAI;IASvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC,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;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,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;AAItE;;;;;;GAMG;AACH,qBACa,iBAAkB,YAAW,cAAc;IAkB7B,OAAO,CAAC,IAAI;IACX,OAAO,CAAC,MAAM;IAlBxC,+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,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;gBAGjD,IAAI,EAAE,WAAW,EAChB,MAAM,EAAE,YAAY;IAG/C,MAAM,CACX,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,EACtF,IAAI,EAAE,eAAe,GACpB,IAAI;IAuDA,QAAQ,IAAI,IAAI;IASvB,mFAAmF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItC;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -1,9 +1,10 @@
1
1
  import { Disposable } from 'tsyringe';
2
- import { DisplayMode, Figure, SelectMode, ToolType } from '@planara/types';
2
+ import { DisplayMode, FigureType, SceneMode, SelectMode, ToolType } from '@planara/types';
3
3
  import { IDisplayManager } from '../interfaces/manager/display-manager';
4
4
  import { ISelectManager } from '../interfaces/manager/select-manager';
5
5
  import { EditorRenderer } from '../core/editor-renderer';
6
6
  import { IToolManager } from '../interfaces/manager/tool-manager';
7
+ import { ISceneManager } from '../interfaces/manager/scene-manager';
7
8
  /**
8
9
  * Хаб для управления редактированием
9
10
  * @public
@@ -12,14 +13,16 @@ export declare class EditorHub implements Disposable {
12
13
  private _displayManager;
13
14
  private _selectManager;
14
15
  private _toolManager;
16
+ private _sceneManager;
15
17
  private _renderer;
16
- constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _renderer: EditorRenderer);
18
+ constructor(_displayManager: IDisplayManager, _selectManager: ISelectManager, _toolManager: IToolManager, _sceneManager: ISceneManager, _renderer: EditorRenderer);
17
19
  setDisplayMode(mode: DisplayMode): void;
20
+ setSceneMode(sceneMode: SceneMode): void;
18
21
  setSelectMode(mode: SelectMode): void;
19
22
  setToolMode(mode: ToolType): void;
20
23
  resizeRenderer(): void;
21
24
  updateRenderer(): void;
22
- addFigure(figure: Figure): void;
25
+ addFigure(mode: SceneMode, figure: FigureType): void;
23
26
  dispose(): Promise<void> | void;
24
27
  }
25
28
  //# sourceMappingURL=editor-hub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-hub.d.ts","sourceRoot":"","sources":["../../src/hub/editor-hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,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,SAAU,YAAW,UAAU;IAEb,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;IAMtD,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,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAKvC"}
1
+ {"version":3,"file":"editor-hub.d.ts","sourceRoot":"","sources":["../../src/hub/editor-hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,UAAU,CAAC;AAE/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpG,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;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;GAGG;AACH,qBACa,SAAU,YAAW,UAAU;IAEb,OAAO,CAAC,eAAe;IACxB,OAAO,CAAC,cAAc;IACxB,OAAO,CAAC,YAAY;IACnB,OAAO,CAAC,aAAa;IACpB,OAAO,CAAC,SAAS;gBAJR,eAAe,EAAE,eAAe,EACjC,cAAc,EAAE,cAAc,EAChC,YAAY,EAAE,YAAY,EACzB,aAAa,EAAE,aAAa,EAC3B,SAAS,EAAE,cAAc;IAMtD,cAAc,CAAC,IAAI,EAAE,WAAW;IAIhC,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,aAAa,CAAC,IAAI,EAAE,UAAU;IAI9B,WAAW,CAAC,IAAI,EAAE,QAAQ;IAI1B,cAAc;IAId,cAAc;IAId,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU;IAI7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAKvC"}