NodeGraph - A simple Directed Graph, with SVG UI
Nodegraph is a basic directed graph, used in my live coding project. It is a work in progress. The nodes in the graph are evaluated using a 'Pull' architecture, and support concepts of Flow and Control data. The included sample application shows the node UI you can build from the graph specification. It supports rotary knobs of linear and non-linear type, buttons and sliders. There is currently no way to build the graph visually, but it is a work in progress. You can currently generate visualizations of the graph and control input parameters. The intended use-case is a graph representing an audio synthesizer; you can find that project at MAudio when it is published. This project is cross platform and with a C++17 compiler should build on Mac, Linux and Windows. kk
To build this project, first build the MUtils project in a parallel directory: MUtils. This will install packages and the MUtils library. Your folders should look like this:
root/ vcpkg (generated by mutils build) mutils nodegraph
Then run the following scripts inside the nodegraph folder
config.bat OR config.sh
build.bat OR build.sh
Now in your project CMakeLists.txt, you can add the following to reference the library and pull in all the header paths. Note there are no include/library defines; the target_link_libraries is enough to pull all the necessary things in. See the example application for how this works.
find_package(NodeGraph REQUIRED)
...
target_link_libraries(MyApp PRIVATE NodeGraph::NodeGraph)