Основной канвас, на котором происходит отрисовка всей сцены
ReadonlycanvasСобытия мыши и тач, переводятся в пространство схемы
ReadonlycoordsОсновной контекст рисования, на котором происходит отрисовка всей сцены
ReadonlycustomОсновная функция отрисовки debounce с нулевой задержкой, то есть по сути setTimeout
Контекст рисования, на котором проихсодит отрисовка динамических элементов при редактировании
ReadonlyelementsЗарегистрированные элементы. Если элемент не зарегистрирован, то при распаковке из JSON он будет обычным Cell и потеряет все свои дополнительные свойства и методы
Самый нижний канвас, используется для отрисовки сетки
Канвас, на котором проихсодит отрисовка динамических элементов при редактировании
Флаг, указывающий, что в данный момент какой-то элемент перемещают
ReadonlykeyboardВерхний канвас, который может использоваться для отрисовки каких-то эффектов поверх всей сцены
Открытие и управление проектами
ReadonlysettingsReadonlyskiaСервис по работе с библиотекой skia. Используется как вспомогательная тулза
Точка привязки
Если установить в false, канвас не будет реагировать на события мыши
Версия файла, которая поддерживается данной версией движка
OptionalprojectName: stringДобавление сцены (листа)
Полное отключение и удаление сервисов, при этом вызывается их dispose() и они могут быть далее использованы. Чтобы временно отключить сервис используйте EulerGraph.disableServicesInteractive
Делает все сервисы неактивными (в основном отключает подписки на события), за исключением переданных
Очистка ресурсов
Инициализация сервисов, поставляемых вместе с движком. Список поддерживаемых сервисов можно получить getActiveServices()
Optionalservices: AvailableServicesДелает сервисы активными (в основном включает подписки на события), за исключением переданных.
Вписывает лист во вьюпорт по высоте листа
количество итераций анимации
void
Вписывает лист во вьюпорт по размеру листа по наибольшей стороне
количество итераций анимации
void
Вписывает лист во вьюпорт по bbоx всех ячеек
количество итераций анимации
void
Вписывает лист во вьюпорт по ширине листа
количество итераций анимации
void
Вписывает выделение во вьюпорт
количество итераций анимации
zoom текущей сцены
Смещает вид так, что выделение становится посередине вида. Зум при этом не меняется
Вставляет элемент в сцену в центр вьюпорта.
Если элемент уже в какой-то сцене, но не в текущей - элемент склонируется
При добавлении новых шейпов необходимо их зарегистрировать в движке.
Класс должен объявить уникальный static readonly typeName (assertCellTypeName).
См. ../../guide/typeName и сериализация cell-классов.md.
Можно это сделать автоматически методом EulerGraph.registerElementsLib
При добавлении новых шейпов необходимо их зарегистрировать в движке Для этого в \engine\features\Stencil\shapes нужно правильно прописывать экспорты, либо вручную методом EulerGraph.registerElement
Инициализация активного текстового контекста для UI.
Optionalsource: ITextFormatServiceУстановить текущую сцену. Нужно устанавливать вручную при загрузке.
Устанавливает размеры канвасов по реальным размерам
Optionalscaler: numberСмещает вид так, что объект становится посередине вида. Зум при этом не меняется
количество итераций анимации
StaticregisterРегистрирует внешние модули в глобальном контексте движка.
Структура регистрируемых модулей, где ключи — названия, а значения — EngineExtensionConstructor.
Объект, содержащий конструкторы модулей расширения (например, результат import * as Modules).
Строго типизированный экземпляр сервиса ExtensionsService<T>, предоставляющий доступ только к модулям текущей регистрации.
Архитектурная особенность (Разделение контекстов):
Под капотом все модули регистрируются в рамках одного общего синглтон-сервиса ExtensionsService.
Однако на уровне типов TypeScript этот метод возвращает изолированное представление (View),
ограниченное исключительно типом T из текущей сессии регистрации.
Это позволяет пользователю логически разграничивать контексты:
// Идеальное автодополнение: mockService «знает» только про моки,
// а engineExtensionService — только про боевые модули.
const mockService = EulerGraph.registerExternalModules<typeof MockClasses>(MockClasses);
const engineExtensionService = EulerGraph.registerExternalModules<typeof ExtensionClasses>(ExtensionClasses);
Точка входа. Создает экземпляр движка.