I’ve started yet another background project studying ways that Papervision 3D can be used for 3D data visualization. One of the earliest techniques in this area (for hierarchical data) was Cone Trees. The example below illustrates a very simple Papervision cone tree. Actual cones are used as the representation of the root node for a few reasons. First, I plan on having both free and target cameras available for tree/node visualization and fly-through. Cones are easily seen from any camera angle. Cones are already colored based on whether or not the node has children. The size of a cone may indicate the relative number of children (tall/thin -> few children, short/fat -> many children). This is helpful as I plan to add the ability to expand/contract nodes in the future.
Although visually unimpressive, the BaseCone class upon which the above image was created supports on-the-fly addition of children, with automatic repositioning of child nodes throughout the hierarchy. This makes it useful for on-the-fly parsing of XML data, for example.
Still a lot of work to do in automatically adjusting each level to avoid overlaps as children are added and all the camera support needs to be added.
I’ll keep plugging along. In the mean time, thanks to Ralph Hauwert for his explanation of some of the PV3D internals. I can’t figure out how these PV3D guys have time to make a living, raise families, and work on Papervision. They must really be from the planet Krypton 🙂