Руководство пользователя EulerGraph Engine
EulerGraph Engine — 2D-движок для отрисовки и редактирования большого числа графических элементов на canvas. Поставляется как npm-пакет @8brigde_dev_team/eulergraph.
Минимальные требования: DOM-контейнер, поддержка Canvas 2D в браузере, TypeScript/JavaScript host-приложение.
Минимальный пример
import { EulerGraph } from "@8brigde_dev_team/eulergraph" const container = document . getElementById ( "canvas-root" ) as HTMLDivElement const engine = new EulerGraph ({ container }) engine . on ( "started" , () => { const scene = engine . addScene () engine . setCurrentScene ( scene . pageName ) engine . enableServices ([ "Editor" , "Stencil" ]) engine . registerStandardLibs () engine . services . Stencil ?. loadLibs () engine . render () })
Copy
Подробный разбор lifecycle, React-интеграции и типичных ошибок — в Быстрый старт .
Оглавление
Основы
Глава
Описание
Установка и подключение
npm, импорты, EngineDom, EngineOptions
Быстрый старт
React и vanilla, порядок инициализации
Архитектура движка
EulerGraph, Scene2D, cell-иерархия, сервисы
Сцены и проекты
Страницы, сохранение, программное API
Сервисы движка
Editor, Stencil, DrawService и др.
События и режимы работы
EngineEvents, Mode
Разработка контента
Прочее
Маршруты обучения
Маршрут A — интегратор (встроить engine в приложение)
Установка и подключение
Быстрый старт
Архитектура движка
Сцены и проекты
Сервисы движка
События и режимы работы
Экспорт и импорт
Маршрут B — автор расширений (свои shapes и библиотеки)
Быстрый старт
Архитектура движка (раздел cell-иерархии)
Как создавать библиотеки
typeName и сериализация cell-классов
Разработка cell-классов
Внешние расширения
Эталонный код в репозитории
Задача
Где смотреть
React host-app
src/renderer/src/App.tsx, EulergraphCanvas.tsx, hooks/useEngine.ts
Минимальный vanilla
src/engine/tests/e2e/helpers/appendEditor.ts
Библиотека классов
src/engine/services/Stencil/libs/electric/
JSON-библиотека
src/engine/services/Stencil/libsJSON/fastening/
Диаграммы (сложный кейс)
src/engine/services/Stencil/libs/diagram/