virtual void apply(osg::Geode& geode) { geode.setUpdateCallback(new UpdateCallback()); //note, it makes no sense to attach a cull callback to the node //at there are no nodes to traverse below the geode, only //drawables, and as such the Cull node callbacks is ignored. //If you wish to control the culling of drawables //then use a drawable cullback... for(unsigned int i=0;i<geode.getNumDrawables();++i) { geode.getDrawable(i)->setUpdateCallback(new DrawableUpdateCallback()); geode.getDrawable(i)->setCullCallback(new DrawableCullCallback()); geode.getDrawable(i)->setDrawCallback(new DrawableDrawCallback()); } }