Об этом проекте

# Редактор узлов в 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, что подтверждает его возможности. Проект переходит от прототипа к стабильному состоянию.