diff --git a/src/osgPlugins/flt/GeoSetBuilder.cpp b/src/osgPlugins/flt/GeoSetBuilder.cpp index 74bd0b045..8775cf4b3 100644 --- a/src/osgPlugins/flt/GeoSetBuilder.cpp +++ b/src/osgPlugins/flt/GeoSetBuilder.cpp @@ -27,7 +27,7 @@ #include #include -#include +#include #include #include @@ -317,17 +317,11 @@ osg::Geode* GeoSetBuilder::createOsgGeoSets(osg::Geode* geode) assert( stateset == geom->getStateSet() ); } - osgUtil::Tesselator tesselator; - for(unsigned int i=0;igetNumDrawables();++i) - { - osg::Geometry* geom = dynamic_cast(geode->getDrawable(i)); - if (geom) - { - geom->computeCorrectBindingsAndArraySizes(); - tesselator.retesselatePolygons(*geom); - } - } - + osgUtil::Optimizer optimizer; + optimizer.optimize(geode, osgUtil::Optimizer::SHARE_DUPLICATE_STATE | + osgUtil::Optimizer::MERGE_GEOMETRY | + osgUtil::Optimizer::CHECK_GEOMETRY | + osgUtil::Optimizer::TESSELATE_GEOMETRY); return geode; }