@planara/core 1.5.0 → 2.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 (70) hide show
  1. package/README.md +10 -2
  2. package/dist/core/editor-renderer.d.ts +14 -61
  3. package/dist/core/editor-renderer.d.ts.map +1 -1
  4. package/dist/core/preview-renderer.d.ts +2 -7
  5. package/dist/core/preview-renderer.d.ts.map +1 -1
  6. package/dist/core/renderer.d.ts +28 -9
  7. package/dist/core/renderer.d.ts.map +1 -1
  8. package/dist/events/editor-events.d.ts +18 -0
  9. package/dist/events/editor-events.d.ts.map +1 -0
  10. package/dist/events/event-bus.d.ts +17 -0
  11. package/dist/events/event-bus.d.ts.map +1 -0
  12. package/dist/events/event-topics.d.ts +12 -0
  13. package/dist/events/event-topics.d.ts.map +1 -0
  14. package/dist/extensions/orbit-extension.d.ts +5 -5
  15. package/dist/extensions/orbit-extension.d.ts.map +1 -1
  16. package/dist/handlers/display/wireframe-handler.d.ts +7 -14
  17. package/dist/handlers/display/wireframe-handler.d.ts.map +1 -1
  18. package/dist/handlers/select/mesh-select-handler.d.ts +32 -0
  19. package/dist/handlers/select/mesh-select-handler.d.ts.map +1 -0
  20. package/dist/helpers/symmetric-axes-helper.d.ts +5 -0
  21. package/dist/helpers/symmetric-axes-helper.d.ts.map +1 -0
  22. package/dist/hub/app-hub.d.ts +1 -2
  23. package/dist/hub/app-hub.d.ts.map +1 -1
  24. package/dist/hub/editor-hub.d.ts +12 -4
  25. package/dist/hub/editor-hub.d.ts.map +1 -1
  26. package/dist/index.cjs.js +3845 -34
  27. package/dist/index.d.ts +7 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.es.js +21568 -1199
  30. package/dist/index.full.d.ts +119 -91
  31. package/dist/index.public.d.ts +99 -60
  32. package/dist/index.umd.js +3845 -34
  33. package/dist/interfaces/{mesh-api.d.ts → api/mesh-api.d.ts} +7 -6
  34. package/dist/interfaces/api/mesh-api.d.ts.map +1 -0
  35. package/dist/interfaces/{display-handler.d.ts → handler/display-handler.d.ts} +1 -0
  36. package/dist/interfaces/handler/display-handler.d.ts.map +1 -0
  37. package/dist/interfaces/{handler.d.ts → handler/handler.d.ts} +2 -1
  38. package/dist/interfaces/handler/handler.d.ts.map +1 -0
  39. package/dist/interfaces/handler/select-handler.d.ts +13 -0
  40. package/dist/interfaces/handler/select-handler.d.ts.map +1 -0
  41. package/dist/interfaces/manager/display-manager.d.ts +8 -0
  42. package/dist/interfaces/manager/display-manager.d.ts.map +1 -0
  43. package/dist/interfaces/{manager.d.ts → manager/manager.d.ts} +0 -6
  44. package/dist/interfaces/manager/manager.d.ts.map +1 -0
  45. package/dist/interfaces/manager/select-manager.d.ts +8 -0
  46. package/dist/interfaces/manager/select-manager.d.ts.map +1 -0
  47. package/dist/ioc/container.d.ts +3 -2
  48. package/dist/ioc/container.d.ts.map +1 -1
  49. package/dist/loaders/obj-loader.d.ts +6 -6
  50. package/dist/loaders/obj-loader.d.ts.map +1 -1
  51. package/dist/managers/{display-manager.d.ts → display/display-manager.d.ts} +4 -4
  52. package/dist/managers/display/display-manager.d.ts.map +1 -0
  53. package/dist/managers/select/select-manager.d.ts +19 -0
  54. package/dist/managers/select/select-manager.d.ts.map +1 -0
  55. package/dist/types/camera/camera-position.d.ts +10 -0
  56. package/dist/types/camera/camera-position.d.ts.map +1 -0
  57. package/dist/types/event/select-event-type.d.ts +6 -0
  58. package/dist/types/event/select-event-type.d.ts.map +1 -0
  59. package/dist/utils/renderer-api.d.ts +10 -12
  60. package/dist/utils/renderer-api.d.ts.map +1 -1
  61. package/package.json +6 -4
  62. package/dist/interfaces/display-handler.d.ts.map +0 -1
  63. package/dist/interfaces/handler.d.ts.map +0 -1
  64. package/dist/interfaces/manager.d.ts.map +0 -1
  65. package/dist/interfaces/mesh-api.d.ts.map +0 -1
  66. package/dist/interfaces/renderer-api.d.ts +0 -14
  67. package/dist/interfaces/renderer-api.d.ts.map +0 -1
  68. package/dist/managers/display-manager.d.ts.map +0 -1
  69. package/dist/utils/program-settings.d.ts +0 -13
  70. package/dist/utils/program-settings.d.ts.map +0 -1
@@ -1,7 +1,8 @@
1
- import { Mesh } from 'ogl';
1
+ import * as THREE from 'three';
2
2
  /**
3
3
  * Интерфейс для управления фигурами внутри рендерера.
4
4
  * Предоставляет базовый CRUD-набор операций для добавления, удаления и получения фигур из сцены.
5
+ * @internal
5
6
  */
6
7
  export interface IMeshApi {
7
8
  /**
@@ -9,30 +10,30 @@ export interface IMeshApi {
9
10
  *
10
11
  * @param mesh - Фигура, которую необходимо добавить.
11
12
  */
12
- addMesh(mesh: Mesh): void;
13
+ addMesh(mesh: THREE.Mesh): void;
13
14
  /**
14
15
  * Добавляет несколько фигур в сцену за один вызов.
15
16
  *
16
17
  * @param meshes - Массив фигур для добавления.
17
18
  */
18
- addMeshes(meshes: Mesh[]): void;
19
+ addMeshes(meshes: THREE.Mesh[]): void;
19
20
  /**
20
21
  * Удаляет фигуру из сцены.
21
22
  *
22
23
  * @param mesh - Фигура, которую необходимо удалить.
23
24
  */
24
- removeMesh(mesh: Mesh): void;
25
+ removeMesh(mesh: THREE.Mesh): void;
25
26
  /**
26
27
  * Удаляет несколько фигур из сцены за один вызов.
27
28
  *
28
29
  * @param meshes - Массив фигур для удаления.
29
30
  */
30
- removeMeshes(meshes: Mesh[]): void;
31
+ removeMeshes(meshes: THREE.Mesh[]): void;
31
32
  /**
32
33
  * Возвращает список всех фигур, находящихся в сцене.
33
34
  *
34
35
  * @returns Массив текущих фигур.
35
36
  */
36
- getMeshes(): Mesh[];
37
+ getMeshes(): THREE.Mesh[];
37
38
  }
38
39
  //# sourceMappingURL=mesh-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-api.d.ts","sourceRoot":"","sources":["../../../src/interfaces/api/mesh-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtC;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;CAC3B"}
@@ -5,6 +5,7 @@ import { DisplayMode } from '@planara/types';
5
5
  * Используется только для DI.
6
6
  *
7
7
  * Расширяет {@link IHandler} и добавляет поле `mode`
8
+ * @internal
8
9
  */
9
10
  export interface IDisplayHandler extends IHandler {
10
11
  mode: DisplayMode;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/display-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,WAAW,CAAC;CACnB"}
@@ -2,13 +2,14 @@
2
2
  * Общий интерфейс для всех хендлеров.
3
3
  * Хендлеры выполняют действия по настройке рендерера,
4
4
  * управляют состоянием сцены или конкретных режимов отображения.
5
+ * @internal
5
6
  */
6
7
  export interface IHandler {
7
8
  /**
8
9
  * Выполняет основное действие хендлера.
9
10
  * Например, применяет конкретный режим отображения или модифицирует настройки рендерера.
10
11
  */
11
- handle(): void;
12
+ handle(...args: unknown[]): void;
12
13
  /**
13
14
  * Откатывает изменения, внесённые методом handle().
14
15
  * Используется для восстановления предыдущего состояния рендерера.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,13 @@
1
+ import { IHandler } from './handler';
2
+ import { SelectMode } from '@planara/types';
3
+ /**
4
+ * Маркерный интерфейс для всех Select-хендлеров.
5
+ * Используется только для DI.
6
+ *
7
+ * Расширяет {@link IHandler} и добавляет поле `mode`
8
+ * @internal
9
+ */
10
+ export interface ISelectHandler extends IHandler {
11
+ mode: SelectMode;
12
+ }
13
+ //# sourceMappingURL=select-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-handler.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handler/select-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,IAAI,EAAE,UAAU,CAAC;CAClB"}
@@ -0,0 +1,8 @@
1
+ import { IManager } from './manager';
2
+ /**
3
+ * Маркерный интерфейс для менеджеров отображения.
4
+ * @public
5
+ */
6
+ export interface IDisplayManager extends IManager {
7
+ }
8
+ //# sourceMappingURL=display-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/display-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;CAAG"}
@@ -13,10 +13,4 @@ export interface IManager {
13
13
  */
14
14
  destroy(): void;
15
15
  }
16
- /**
17
- * Маркерный интерфейс для менеджеров отображения.
18
- * @public
19
- */
20
- export interface IDisplayManager extends IManager {
21
- }
22
16
  //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,8 @@
1
+ import { IManager } from './manager';
2
+ /**
3
+ * Маркерный интерфейс для менеджеров выборки.
4
+ * @public
5
+ */
6
+ export interface ISelectManager extends IManager {
7
+ }
8
+ //# sourceMappingURL=select-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-manager.d.ts","sourceRoot":"","sources":["../../../src/interfaces/manager/select-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,QAAQ;CAAG"}
@@ -1,4 +1,5 @@
1
1
  import { DependencyContainer } from 'tsyringe';
2
- import { Renderer } from '../core/renderer';
3
- export declare function createContainer(renderer: Renderer): DependencyContainer;
2
+ declare const container: DependencyContainer;
3
+ export declare function createContainer(canvas: HTMLCanvasElement): DependencyContainer;
4
+ export { container };
4
5
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAa5C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,CAiBvE"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/ioc/container.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAsBlF,QAAA,MAAM,SAAS,qBAAyC,CAAC;AAEzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CA2B9E;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -2,14 +2,14 @@ import { Figure } from '@planara/types';
2
2
  /** @public */
3
3
  export declare class ObjLoader {
4
4
  /** Позиции вершин */
5
- private positions;
5
+ private _positions;
6
6
  /** Нормали вершин */
7
- private normals;
7
+ private _normals;
8
8
  /** UV-координаты (опционально) */
9
- private uvs;
10
- private tmpPositions;
11
- private tmpNormals;
12
- private tmpUVs;
9
+ private _uvs;
10
+ private _tmpPositions;
11
+ private _tmpNormals;
12
+ private _tmpUVs;
13
13
  /**
14
14
  * Загружает OBJ-модель в Figure
15
15
  * @param objContent - Строка содержимого .obj файла
@@ -1 +1 @@
1
- {"version":3,"file":"obj-loader.d.ts","sourceRoot":"","sources":["../../src/loaders/obj-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA+B,MAAM,gBAAgB,CAAC;AAErE,cAAc;AACd,qBAAa,SAAS;IACpB,qBAAqB;IACrB,OAAO,CAAC,SAAS,CAAgB;IAEjC,qBAAqB;IACrB,OAAO,CAAC,OAAO,CAAgB;IAE/B,kCAAkC;IAClC,OAAO,CAAC,GAAG,CAAgB;IAG3B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;OAGG;IACI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAmCvC;;OAEG;IACH,OAAO,CAAC,eAAe;CA2BxB"}
1
+ {"version":3,"file":"obj-loader.d.ts","sourceRoot":"","sources":["../../src/loaders/obj-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA+B,MAAM,gBAAgB,CAAC;AAErE,cAAc;AACd,qBAAa,SAAS;IACpB,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAgB;IAElC,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAgB;IAEhC,kCAAkC;IAClC,OAAO,CAAC,IAAI,CAAgB;IAG5B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,OAAO,CAAkB;IAEjC;;;OAGG;IACI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAmCvC;;OAEG;IACH,OAAO,CAAC,eAAe;CA2BxB"}
@@ -1,15 +1,15 @@
1
- import { IDisplayManager } from '../interfaces/manager';
1
+ import { IDisplayManager } from '../../interfaces/manager/display-manager';
2
2
  import { DisplayMode } from '@planara/types';
3
- import { IDisplayHandler } from '../interfaces/display-handler';
3
+ import { IDisplayHandler } from '../../interfaces/handler/display-handler';
4
4
  /**
5
5
  * Менеджер для управления отображением
6
6
  * @internal
7
7
  */
8
8
  export declare class DisplayManager implements IDisplayManager {
9
9
  /** Текущий режим отображения */
10
- private currentMode;
10
+ private _currentMode;
11
11
  /** Хендлеры, которые управляют отображением */
12
- private readonly handlers;
12
+ private readonly _handlers;
13
13
  constructor(handlers: IDisplayHandler[]);
14
14
  /** Установка режима отображения */
15
15
  manage(mode: DisplayMode): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../../src/managers/display/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IACpD,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAkC;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAEb,QAAQ,EAAE,eAAe,EAAE;IAKrE,mCAAmC;IACnC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAc/B,4BAA4B;IAC5B,OAAO,IAAI,IAAI;CAOhB"}
@@ -0,0 +1,19 @@
1
+ import { ISelectHandler } from '../../interfaces/handler/select-handler';
2
+ import { ISelectManager } from '../../interfaces/manager/select-manager';
3
+ import { EventBus } from '../../events/event-bus';
4
+ import { SelectMode } from '@planara/types';
5
+ export declare class SelectManager implements ISelectManager {
6
+ private _eventBus;
7
+ /** Текущий режим выборки */
8
+ private _currentMode;
9
+ /** Хендлеры, которые управляют выборкой */
10
+ private readonly _handlers;
11
+ constructor(_eventBus: EventBus, handlers: ISelectHandler[]);
12
+ manage(mode: SelectMode): void;
13
+ /** Обработчик события наведения на модель */
14
+ private _onHover;
15
+ /** Обработчик события клика на модель */
16
+ private _onClick;
17
+ destroy(): void;
18
+ }
19
+ //# sourceMappingURL=select-manager.d.ts.map
@@ -0,0 +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;AAK9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,qBACa,aAAc,YAAW,cAAc;IAQ5B,OAAO,CAAC,SAAS;IAPvC,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;IAUzD,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAU9B,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAMd;IAEF,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAMd;IAEF,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Тип позиции камеры в мире.
3
+ * @public
4
+ */
5
+ export type CameraPosition = {
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ };
10
+ //# sourceMappingURL=camera-position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-position.d.ts","sourceRoot":"","sources":["../../../src/types/camera/camera-position.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** Тип события при выборке */
2
+ export declare enum SelectEventType {
3
+ Hover = "hover",
4
+ Click = "click"
5
+ }
6
+ //# sourceMappingURL=select-event-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-event-type.d.ts","sourceRoot":"","sources":["../../../src/types/event/select-event-type.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB"}
@@ -1,19 +1,17 @@
1
- import { IMeshApi } from '../interfaces/mesh-api';
2
- import { IRendererApi } from '../interfaces/renderer-api';
3
- import { Mesh, OGLRenderingContext } from 'ogl';
1
+ import { IMeshApi } from '../interfaces/api/mesh-api';
4
2
  import { EditorRenderer } from '../core/editor-renderer';
3
+ import * as THREE from 'three';
5
4
  /**
6
5
  * API для EditorRenderer
7
6
  * @internal
8
7
  */
9
- export declare class RendererApi implements IMeshApi, IRendererApi {
10
- private renderer;
11
- constructor(renderer: EditorRenderer);
12
- addMesh(mesh: Mesh): void;
13
- addMeshes(meshes: Mesh[]): void;
14
- removeMesh(mesh: Mesh): void;
15
- removeMeshes(meshes: Mesh[]): void;
16
- getMeshes(): Mesh[];
17
- getContext(): OGLRenderingContext;
8
+ export declare class RendererApi implements IMeshApi {
9
+ private _renderer;
10
+ constructor(_renderer: EditorRenderer);
11
+ addMesh(mesh: THREE.Mesh): void;
12
+ addMeshes(meshes: THREE.Mesh[]): void;
13
+ removeMesh(mesh: THREE.Mesh): void;
14
+ removeMeshes(meshes: THREE.Mesh[]): void;
15
+ getMeshes(): THREE.Mesh[];
18
16
  }
19
17
  //# sourceMappingURL=renderer-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-api.d.ts","sourceRoot":"","sources":["../../src/utils/renderer-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,qBACa,WAAY,YAAW,QAAQ,EAAE,YAAY;IAClB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE/D,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI;IAM/B,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI;IAMlC,SAAS,IAAI,IAAI,EAAE;IAInB,UAAU,IAAI,mBAAmB;CAGzC"}
1
+ {"version":3,"file":"renderer-api.d.ts","sourceRoot":"","sources":["../../src/utils/renderer-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,qBACa,WAAY,YAAW,QAAQ;IACJ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,cAAc;IAEhE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAI/B,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMrC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAIlC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI;IAMxC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;CAGjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planara/core",
3
- "version": "1.5.0",
3
+ "version": "2.0.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
@@ -31,7 +31,7 @@
31
31
  "keywords": [
32
32
  "planara",
33
33
  "3d",
34
- "ogl",
34
+ "threejs",
35
35
  "renderer"
36
36
  ],
37
37
  "author": "a1unade",
@@ -41,6 +41,7 @@
41
41
  "@eslint/eslintrc": "^3.3.1",
42
42
  "@microsoft/api-extractor": "^7.53.1",
43
43
  "@types/node": "^24.6.0",
44
+ "@types/three": "^0.180.0",
44
45
  "@typescript-eslint/eslint-plugin": "^8.44.1",
45
46
  "@typescript-eslint/parser": "^8.44.1",
46
47
  "eslint": "^9.36.0",
@@ -53,9 +54,10 @@
53
54
  "vite-tsconfig-paths": "^5.1.4"
54
55
  },
55
56
  "dependencies": {
56
- "@planara/types": "^1.2.0",
57
- "ogl": "^1.0.11",
57
+ "@planara/types": "^1.3.1",
58
+ "events": "^3.3.0",
58
59
  "reflect-metadata": "^0.2.2",
60
+ "three": "^0.180.0",
59
61
  "tsyringe": "^4.10.0"
60
62
  },
61
63
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"display-handler.d.ts","sourceRoot":"","sources":["../../src/interfaces/display-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,IAAI,EAAE,WAAW,CAAC;CACnB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/interfaces/handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;;OAGG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/interfaces/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mesh-api.d.ts","sourceRoot":"","sources":["../../src/interfaces/mesh-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEnC;;;;OAIG;IACH,SAAS,IAAI,IAAI,EAAE,CAAC;CACrB"}
@@ -1,14 +0,0 @@
1
- import { OGLRenderingContext } from 'ogl';
2
- /**
3
- * Интерфейс API рендерера.
4
- * Предоставляет доступ к базовым возможностям ядра рендерера,
5
- */
6
- export interface IRendererApi {
7
- /**
8
- * Возвращает WebGL контекст рендерера.
9
- *
10
- * @returns Контекст WebGL (OGLRenderingContext) текущей сцены.
11
- */
12
- getContext(): OGLRenderingContext;
13
- }
14
- //# sourceMappingURL=renderer-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderer-api.d.ts","sourceRoot":"","sources":["../../src/interfaces/renderer-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,KAAK,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,IAAI,mBAAmB,CAAC;CACnC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"display-manager.d.ts","sourceRoot":"","sources":["../../src/managers/display-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;GAGG;AACH,qBACa,cAAe,YAAW,eAAe;IACpD,gCAAgC;IAChC,OAAO,CAAC,WAAW,CAAkC;IAErD,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAEZ,QAAQ,EAAE,eAAe,EAAE;IAIrE,mCAAmC;IACnC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAc/B,4BAA4B;IAC5B,OAAO,IAAI,IAAI;CAOhB"}
@@ -1,13 +0,0 @@
1
- import { OGLRenderingContext, Program } from 'ogl';
2
- /**
3
- * Создает универсальный Program для рендерера.
4
- *
5
- * Включает базовый vertex и fragment шейдеры, добавляет uniform `tMap` с дефолтной текстурой.
6
- * Этот Program можно использовать для всех фигур в сцене, а также для сетки и осей.
7
- *
8
- * @param gl - WebGL контекст.
9
- * @returns Экземпляр Program с базовыми шейдерами и uniform.
10
- * @internal
11
- */
12
- export declare function _createProgram(gl: OGLRenderingContext): Program;
13
- //# sourceMappingURL=program-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program-settings.d.ts","sourceRoot":"","sources":["../../src/utils/program-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAExD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAyC/D"}