Updates to the Geometry to add more access methods, and updates to Optimizer

to add the new merge primtives option.
This commit is contained in:
Robert Osfield
2002-07-19 14:19:49 +00:00
parent d8d0ac60a7
commit 7682e32521
3 changed files with 15 additions and 34 deletions

View File

@@ -234,45 +234,15 @@ struct SortDynGeoSet
osg::Geode* GeoSetBuilder::createOsgGeoSets(osg::Geode* geode)
{
if( geode == NULL) geode = _geode.get();
if( geode == NULL) return geode;
DynGeoSetList::iterator itr;
if (_dynGeoSetList.size()==1)
for(DynGeoSetList::iterator itr = _dynGeoSetList.begin();
itr!=_dynGeoSetList.end();
++itr)
{
osg::Geometry* geom = new osg::Geometry;
geode->addDrawable(geom);
_dynGeoSetList.front()->addToGeometry(geom);
}
else if (_dynGeoSetList.size()>1)
{
std::sort(_dynGeoSetList.begin(),_dynGeoSetList.end(),SortDynGeoSet());
osg::Geometry* geom = new osg::Geometry;
geode->addDrawable(geom);
_dynGeoSetList.front()->addToGeometry(geom);
static int counter=0;
itr = _dynGeoSetList.begin();
DynGeoSetList::iterator prev = itr++;
for(;
itr!=_dynGeoSetList.end();
++itr)
{
if ((*itr)->compatible(*(*prev))==0)
{
(*itr)->addToGeometry(geom);
counter++;
} else
{
geom = new osg::Geometry;
geode->addDrawable(geom);
(*itr)->addToGeometry(geom);
}
}
(*itr)->addToGeometry(geom);
}
osgUtil::Tesselator tesselator;