Об этом проекте
# Редактор узлов в ImGui
Этот проект предоставляет реализацию редактора узлов с API, подобным ImGui, задуманную как основа для сложных решений, таких как редакторы blueprint. Основная философия — «рисуйте своё содержимое, остальное мы сделаем сами»: редактор обрабатывает взаимодействия (размещение узлов, перетаскивание, масштабирование/прокрутку, выделение и различные запрашиваемые события, такие как создание/удаление/изменение выделения), а пользователи отвечают за отрисовку содержимого.
## Ключевые возможности
- **Внутреннее управление узлами**: перемещение и выделение узлов обрабатываются внутри.
- **Полностью настраиваемое содержимое**: содержимое узлов и контактов полностью определяется пользователем.
- **Стилизация**: полная стилизация с темой по умолчанию, смоделированной по образцу UE4 blueprints; достаточно гибкая для создания разнообразного внешнего вида узлов.
- **Настраиваемые связи**: связи на основе кривых Безье.
- **Автоматическая подсветка**: подсветка узлов, контактов и связей.
- **Плавная навигация**: плавная навигация и выделение.
- **Сохранение состояния**: состояние узлов можно сохранять в пользовательском контексте, сохраняя компоновку.
- **Выделение и группировка**: прямоугольники выделения и групповое перетаскивание.
- **Контекстное меню и горячие клавиши**: поддержка контекстного меню и базовые сочетания клавиш (вырезать/копировать/вставить/удалить).
- **API в стиле ImGui**: согласованность с соглашениями ImGui.
## Зависимости
- Vanilla ImGui 1.72+
- C++14
Необязательные расширения для примеров и дополнительных горячих клавиш перечислены в README.
## Сборка / установка
Исходники находятся в корневом каталоге; скопируйте и вставьте их в свой проект, как ImGui. Примеры можно собрать с помощью CMake в Windows, macOS и Linux.
## Быстрый старт
Минимальный пример создаёт контекст редактора, начинает узел с входными/выходными контактами и отображает его. Основной заголовок — `imgui_node_editor.h`. Больше примеров находится в папке `examples`, включая образец blueprints.
## Контекст использования
Редактор использовался для реализации редактора blueprint в движке Spark CE, что подтверждает его возможности. Проект переходит от прототипа к стабильному состоянию.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.