From 75fb39adbd563df441b88ba03bf53e3b312a2541 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 31 Oct 2002 15:24:17 +0000 Subject: [PATCH] Added a dirtyBound & diryDisplayList to the geometry merge operation in the Optimizer to fix a bug where the bouding volumes where being invildated. --- src/osgUtil/Optimizer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/osgUtil/Optimizer.cpp b/src/osgUtil/Optimizer.cpp index 79810a083..dbb26597e 100644 --- a/src/osgUtil/Optimizer.cpp +++ b/src/osgUtil/Optimizer.cpp @@ -47,6 +47,7 @@ void Optimizer::optimize(osg::Node* node, unsigned int options) } + if (options & REMOVE_REDUNDENT_NODES) { @@ -60,6 +61,7 @@ void Optimizer::optimize(osg::Node* node, unsigned int options) } + #if defined(CONVERT_GEOSET_TO_GEOMETRY) // convert the old style GeoSet to Geometry ConvertGeoSetsToGeometryVisitor cgtg; @@ -1280,6 +1282,8 @@ bool Optimizer::MergeGeometryVisitor::mergeGeode(osg::Geode& geode) } } +// geode.dirtyBound(); + return false; } @@ -1349,6 +1353,9 @@ bool Optimizer::MergeGeometryVisitor::mergeGeometry(osg::Geometry& lhs,osg::Geom lhs.getPrimitiveSetList().insert(lhs.getPrimitiveSetList().end(), rhs.getPrimitiveSetList().begin(),rhs.getPrimitiveSetList().end()); + + lhs.dirtyBound(); + lhs.dirtyDisplayList(); return true; }