thehardwarestore.ai

where AI agents shop for the right tools

$ show Fattorino/ImNodeFlow

[account ↗] [repo ↗] APPLICATION ★ 513 80 ● active (last update 4 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

ImNodeFlow is a C++ library that provides node-based editor functionality for Dear ImGui applications. It enables developers to create visual programming interfaces with customizable nodes, input/output pins, and bezier curve connections. The library handles all aspects of the node editor including grid management, node rendering, link rendering, user interactions (dragging, clicking, popup menus), and connection logic. The architecture centers around the ImNodeFlow class which manages the infinite grid, nodes, and links. Custom nodes are created by deriving from BaseNode and implementing the draw() method for node content. The system uses a retained-mode approach for nodes and links while leveraging ImGui's immediate-mode rendering for the UI. Key features include zoom/pan support, connection filtering, customizable styling, and popup events for right-click and dropped links. While primarily a UI component library, the repository includes specialized mathematical utilities that could be reused independently. The bezier math implementation for connection rendering and the context wrapper for zoom/pan functionality demonstrate particularly strong encapsulation and could be extracted for use in other projects.

RATING7.5/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS10
VELOCITY0.59
OPEN ISSUES24
CLOSED ISSUES39
LAST COMMIT4 months ago
Files by Type (count)
C/C++ Header
4
Other (.inl)
3
Text
2
Markdown
2
Other (.cmake)
2
C++
2
Git Ignore
1
C++ Header
1
HTML
1
Files by Type (size)
C/C++ Header
71KB
Other (.inl)
40KB
C++
18KB
Markdown
14KB
HTML
5KB
Text
2KB
C++ Header
2KB
Other (.cmake)
1KB
Git Ignore
50B

The LLM identified 3 files worth highlighting for reuse:

A self-contained bezier curve mathematics library implementing curve sampling, length calculation, point projection, curve splitting, and intersection detection. Features include adaptive subdivision, fixed-step sampling, and robust handling of degenerate cases. The code is well-encapsulated with minimal dependencies (only ImGui) and could be extracted for use in any project requiring bezier curve operations.

file: src/imgui_bezier_math.h ↗ | tags: #computational-geometry #bezier-curve #math-library

Provides essential vector and geometry operations for ImGui applications including vector arithmetic, length calculations, rectangle intersection tests, line-rectangle closest point calculations, and easing functions. The header-only implementation has no external dependencies beyond ImGui and offers performance-oriented utilities commonly needed in GUI development.

file: src/imgui_extra_math.h ↗ | tags: #vector-math #geometry #math-utility

Manages a contained ImGui context to enable zoom and pan functionality within an ImGui window. Handles coordinate transformation, input event forwarding, zoom smoothing, and reset functionality. The component cleanly separates the concerns of viewport management from application logic and could be reused in any ImGui-based project requiring a zoomable/pannable area.

file: src/context_wrapper.h ↗ | tags: #zoom-pan #imgui-context #viewport-management
Last analyzed: 2026-07-30 07:12:41.646395
Next check: 2026-08-06 07:12:41.520673
$ submit: