Node based editor/blueprints for ImGui
Create your custom nodes, and their logic. ImNodeFLow will handle connections, editor logic and rendering.
ImNodeFlowDemo.mp4
- Backed-in Input and Output logic
- Backed-in links handling
- Customizable filters for different connections
- Backed-in customizable pop-ups
- Appearance 100% customizable
- Download and copy, or clone the repo inside your project
- Add the following lines to your CMakeLists.txt:
add_subdirectory(path/to/ImNodeFlow) target_link_libraries(YourProject ImNodeFlow)
Download the latest ImNodeFlow.zip containing only the necessary files and add them manually.
class SimpleSum : public BaseNode
{
public:
explicit SimpleSum(const std::string& name, ImVec2 pos, ImNodeFlow* inf) : BaseNode(name, pos, inf)
{
addIN<int>("IN_VAL", 0, ConnectionFilter_Int);
addOUT<int>("OUT_VAL", ConnectionFilter_Int)
->behaviour([this](){ return ins<int>(0) + m_valB; });
}
void draw() override
{
ImGui::SetNextItemWidth(100.f);
ImGui::InputInt("##ValB", &m_valB);
}
private:
int m_valB = 0;
};
For a more detailed explanation please refer to the full documentation
- thedmd for imgui_bezier_math.h