Visualizing Constructive Solid Geometry (CSG)
In recent years, tools like graphviz have made automatic graphical layout of graph structures in images both practical and useful. Traditionally, geometric hierarchies in BRL-CAD databases have been visualized either as lists or trees, and those methods continue to be the primary geometry browsing methods.
This task would investigate the possibility of using automatic graph layout libraries to produce a graph based visualization of the structure of .g databases. Potentially useful libraries must be under a compatible license - candidates include:
The task is not simply to generate images of graphical geometry hierarchies - that is relatively straightforward and can be done with scripts - but to design graphical, interactive widgets in Tk that utilize graph algorithms to interactively display geometry structure in useful, intuitive and interactive ways (tying changes in wireframe 3D renderings to selection or de-selection of nodes in a graph display of .g geometry, for example).
A good exercise for students creating proposals for this task would be to review various examples of information organization and display using graph algorithms, and how they might be used when visualizing and interacting with geometry structure. Proposals should include specific ideas (mockups and example layouts are a good way to convey graphical ideas).
- Familiarity with Tcl/Tk
- Familiarity with C/C++
- Comfortable understanding of graphs (will be working with graph libraries)
Difficulty: low to medium, depending on background