Extensibility - if it ain't there add it (easily)
-
Core scene graph
-
Nodes - via subclassing or app & cull callbacks to add new behaviours or structure to the internal graph
-
Drawable leaves - via subclassing or app, cull & draw callbacks to encapsulate OpenGL primitive drawing
-
StateAttributes - via subclassing to encapsulate OpenGL state extensions
-
User Data - All osg::Object's can have UserData associated with them
-
Traversers & Visitors - very easy to add new operations on the scene graph and objects contained within it - Visitor Design Pattern!
-
Node Kits - allow runtime extension of the scene graph.
-
Plugins - add your own readers and writers without modifying the core applications.