So many times I have drawn out the connectivity of my projects, files, functions, etc. So many times that I decided such a task could be automated. Inspiration came from the Java SDK stress demo, or whatever its called, with the nodes that pop when close to one another. The force functions are probably the same too: negative gravity mixed with Hooke's spring force law.
I first attempted this before I ever wrote a language parser. These first attempts would interconnect common variable names like 'x' or 'i' dozens of times more than they should. With dreams of incorporating variable scoping and what not I put the project aside. Somewhere along the line after writing my own language parser/compiler I felt an urge to get back into it. I only managed to write the preprocessor's worth though, and even that occasionally will flip out on me.
Press '~' to get into the console. More on that will eventually be posted in the M_Foundation library page.
Controls:Right-Click | Click to select a node. Drag to move that node. |
Left-Click | Drag about a node to rotate the view around it. Click on a connection listed in the upper-left corner to select that connected node. |
Mouse Wheel | Zoom in and out |
S | move left |
F | move right |
R | move up |
V | move down |
E | move forward |
D | move back |
Name | Params | Default Value | Desc |
load | string filename | Load a certain filename. Wildcards and what not are permitted. | |
use_old_loader | int yesno | 0 | Enable the old loader. This attempts to parse C++ code, but does so poorly. |
graph_range | int range | -1 | Restrict the graph to only show range hops from the currently selected node. |