void Object3D::dirty() { GeodeFindVisitor visitor; _originalNode->accept(visitor); std::vector<Geode*> geodeList = visitor.getGeodeList(); std::vector<Geode*>::iterator it; for(it=geodeList.begin(); it!=geodeList.end(); ++it) { Geode *geode = *it; if(geode) { for(unsigned int i=0; i<geode->getNumDrawables(); i++) { Drawable *drawable = geode->getDrawable(i); drawable->dirtyBound(); Geometry* geom(drawable->asGeometry()); osgUtil::SmoothingVisitor sv; sv.smooth(*geom); geom->getNormalArray()->dirty(); } } } }