Eulergraph
    Preparing search index...

    Class EulerGraph

    Точка входа. Создает экземпляр движка.

    Hierarchy

    Index

    Constructors

    • Parameters

      Returns EulerGraph

      dom.container - div, в который будет встроен элемент с канвасами

      dom.drawCanvas Основной канвас

      dom.interactiveCanvas Динамический канвас. для отрисовки выделения, манипуляций и т.п.

      dom.overlayCanvas канвас для отрисовки общих эффектов

      dom.gridCanvas канвас для отрисовки листов и сетки

    Properties

    canvas: HTMLCanvasElement | null

    Основной канвас, на котором происходит отрисовка всей сцены

    canvasControls: CanvasControls

    События мыши и тач, переводятся в пространство схемы

    coordsLabel: CoordsLabel
    ctx: CanvasRenderingContext2D | null

    Основной контекст рисования, на котором происходит отрисовка всей сцены

    customCursor: CustomCursor
    debouncedDraw: DebouncedFuncLeading<(renderOptions?: RenderOptions) => void> = ...

    Основная функция отрисовки debounce с нулевой задержкой, то есть по сути setTimeout

    draggingControl: Control | null = null
    dynamicCtx: CanvasRenderingContext2D | null

    Контекст рисования, на котором проихсодит отрисовка динамических элементов при редактировании

    elementsLib: Record<string, unknown> = {}

    Зарегистрированные элементы. Если элемент не зарегистрирован, то при распаковке из JSON он будет обычным Cell и потеряет все свои дополнительные свойства и методы

    gridCanvas: HTMLCanvasElement | null

    Самый нижний канвас, используется для отрисовки сетки

    hoveredElement: GraphicElement | null = null
    interactiveCanvas: HTMLCanvasElement | null

    Канвас, на котором проихсодит отрисовка динамических элементов при редактировании

    isDragging: boolean = false

    Флаг, указывающий, что в данный момент какой-то элемент перемещают

    keyboardService: KeyboardService
    overlayCanvas: HTMLCanvasElement | null

    Верхний канвас, который может использоваться для отрисовки каких-то эффектов поверх всей сцены

    projectsManager: ProjectsManager

    Открытие и управление проектами

    scheduleRender: DebouncedFuncLeading<(renderOptions?: RenderOptions) => void> = ...
    settings: SystemSettings = ...
    skiaWasmService: SkiaWasmService

    Сервис по работе с библиотекой skia. Используется как вспомогательная тулза

    snapPoint: CellIntersection | null = null

    Точка привязки

    Accessors

    • get currentScene(): Scene2D | null

      Returns Scene2D | null

    • get interactive(): boolean

      Returns boolean

    • set interactive(interactive: boolean): void

      Если установить в false, канвас не будет реагировать на события мыши

      Parameters

      • interactive: boolean

      Returns void

    • get mode(): Mode

      Returns Mode

    • set mode(mode: Mode): void

      Parameters

      Returns void

    • get version(): string

      Версия файла, которая поддерживается данной версией движка

      Returns string

    Methods

    • Parameters

      • OptionalprojectName: string

      Returns void

    • Добавление сцены (листа)

      Parameters

      Returns Scene2D

    • Добавить новый TextShape в ячейку в позиции canvasPosition

      Parameters

      Returns void

    • Returns void

    • Returns void

    • Returns void

    • Свернуть TextShape дочерние ячейки обратно в labels[]

      Parameters

      Returns void

    • Returns void

    • Полное отключение и удаление сервисов, при этом вызывается их dispose() и они могут быть далее использованы. Чтобы временно отключить сервис используйте EulerGraph.disableServicesInteractive

      Parameters

      • services: (
            | "Charts"
            | "CommentManager"
            | "CopyPasteService"
            | "DrawService"
            | "Editor"
            | "Effects"
            | "ExportService"
            | "ExtPluginsManager"
            | "ImportService"
            | "LayersManager"
            | "Layout"
            | "PrintPreview"
            | "SaveService"
            | "SnapService"
            | "Stencil"
            | "TextEditor"
            | "ThemeService"
            | "TableEditService"
            | "CommandManager"
            | "AnimationService"
        )[]

      Returns void

    • Делает все сервисы неактивными (в основном отключает подписки на события), за исключением переданных

      Parameters

      • except: (
            | "Charts"
            | "CommentManager"
            | "CopyPasteService"
            | "DrawService"
            | "Editor"
            | "Effects"
            | "ExportService"
            | "ExtPluginsManager"
            | "ImportService"
            | "LayersManager"
            | "Layout"
            | "PrintPreview"
            | "SaveService"
            | "SnapService"
            | "Stencil"
            | "TextEditor"
            | "ThemeService"
            | "TableEditService"
            | "CommandManager"
            | "AnimationService"
        )[] = []

      Returns void

    • Очистка ресурсов

      Returns void

    • Parameters

      • pageName: string

      Returns void

    • Инициализация сервисов, поставляемых вместе с движком. Список поддерживаемых сервисов можно получить getActiveServices()

      Parameters

      Returns void

    • Делает сервисы активными (в основном включает подписки на события), за исключением переданных.

      Parameters

      • except: (
            | "Charts"
            | "CommentManager"
            | "CopyPasteService"
            | "DrawService"
            | "Editor"
            | "Effects"
            | "ExportService"
            | "ExtPluginsManager"
            | "ImportService"
            | "LayersManager"
            | "Layout"
            | "PrintPreview"
            | "SaveService"
            | "SnapService"
            | "Stencil"
            | "TextEditor"
            | "ThemeService"
            | "TableEditService"
            | "CommandManager"
            | "AnimationService"
        )[] = []

      Returns void

    • Разворачивает labels[] в TextShape ячейки

      Parameters

      Returns void

    • Вписывает лист во вьюпорт по высоте листа

      Parameters

      • animationTime: number = ...

        количество итераций анимации

      Returns void

      void

    • Вписывает лист во вьюпорт по размеру листа по наибольшей стороне

      Parameters

      • animationTime: number = ...

        количество итераций анимации

      Returns void

      void

    • Вписывает лист во вьюпорт по bbоx всех ячеек

      Parameters

      • animationTime: number = ...

        количество итераций анимации

      Returns void

      void

    • Вписывает лист во вьюпорт по ширине листа

      Parameters

      • animationTime: number = ...

        количество итераций анимации

      Returns void

      void

    • Вписывает выделение во вьюпорт

      Parameters

      • animationTime: number = ...

        количество итераций анимации

      Returns void

    • Returns (
          | "Charts"
          | "CommentManager"
          | "CopyPasteService"
          | "DrawService"
          | "Editor"
          | "Effects"
          | "ExportService"
          | "ExtPluginsManager"
          | "ImportService"
          | "LayersManager"
          | "Layout"
          | "PrintPreview"
          | "SaveService"
          | "SnapService"
          | "Stencil"
          | "TextEditor"
          | "ThemeService"
          | "TableEditService"
          | "CommandManager"
          | "AnimationService"
      )[]

    • zoom текущей сцены

      Returns number

    • Returns boolean

    • Parameters

      • id: string

      Returns boolean

    • Смещает вид так, что выделение становится посередине вида. Зум при этом не меняется

      Parameters

      • animationTime: number = ...

      Returns void

    • Parameters

      • fileContent: string | Record<string, any>
      • _fileName: string
      • Optional_extention: string

      Returns void

    • Вставляет элемент в сцену в центр вьюпорта.

      Если элемент уже в какой-то сцене, но не в текущей - элемент склонируется

      Parameters

      Returns void

    • Returns void

    • При добавлении новых шейпов необходимо их зарегистрировать в движке. Класс должен объявить уникальный static readonly typeName (assertCellTypeName). См. ../../guide/typeName и сериализация cell-классов.md. Можно это сделать автоматически методом EulerGraph.registerElementsLib

      Parameters

      • elem: unknown

      Returns void

    • При добавлении новых шейпов необходимо их зарегистрировать в движке Для этого в \engine\features\Stencil\shapes нужно правильно прописывать экспорты, либо вручную методом EulerGraph.registerElement

      Returns void

    • Returns void

    • Parameters

      • projectName: string

      Returns void

    • Parameters

      • pageName: string

      Returns void

    • Удалить одну TextShape-ячейку из expanded multitext родителя

      Parameters

      Returns void

    • Parameters

      • oldName: string
      • newName: string

      Returns void

    • Parameters

      Returns void

    • Parameters

      • projectName: string

      Returns void

    • Установить текущую сцену. Нужно устанавливать вручную при загрузке.

      Parameters

      • pageName: string

      Returns void

    • Parameters

      • smallGridColor: string
      • lineColor: string

      Returns void

    • Переключить режим мультитекста у ячейки

      Parameters

      Returns void

    • Устанавливает размеры канвасов по реальным размерам

      Parameters

      • Optionalscaler: number

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • Смещает вид так, что объект становится посередине вида. Зум при этом не меняется

      Parameters

      • cell: Rect | GraphicElement
      • animationTime: number = ...

        количество итераций анимации

      Returns void

    • Регистрирует внешние модули в глобальном контексте движка.

      Type Parameters

      • T extends { [key: string]: EngineExtensionConstructor }

        Структура регистрируемых модулей, где ключи — названия, а значения — EngineExtensionConstructor.

      Parameters

      • moduleConstructors: T

        Объект, содержащий конструкторы модулей расширения (например, результат import * as Modules).

      Returns ExtensionsService<T>

      Строго типизированный экземпляр сервиса ExtensionsService<T>, предоставляющий доступ только к модулям текущей регистрации.

      Архитектурная особенность (Разделение контекстов): Под капотом все модули регистрируются в рамках одного общего синглтон-сервиса ExtensionsService. Однако на уровне типов TypeScript этот метод возвращает изолированное представление (View), ограниченное исключительно типом T из текущей сессии регистрации.

      Это позволяет пользователю логически разграничивать контексты:

      // Идеальное автодополнение: mockService «знает» только про моки,
      // а engineExtensionService — только про боевые модули.
      const mockService = EulerGraph.registerExternalModules<typeof MockClasses>(MockClasses);
      const engineExtensionService = EulerGraph.registerExternalModules<typeof ExtensionClasses>(ExtensionClasses);
      const extensionService = EulerGraph.registerExternalModules<typeof ExtensionClasses>(ExtensionClasses);
      const myModule = extensionService.getModule("MyModule");

      Если регистрируемый модуль содержит ключи, которые уже были зарегистрированы ранее, будет выброшена ошибка.