diff --git a/src/osgUtil/MeshOptimizers.cpp b/src/osgUtil/MeshOptimizers.cpp index a21076a9f..f337fc436 100644 --- a/src/osgUtil/MeshOptimizers.cpp +++ b/src/osgUtil/MeshOptimizers.cpp @@ -56,7 +56,7 @@ struct GeometryArrayGatherer GeometryArrayGatherer(osg::Geometry& geometry) { - add(geometry.getVertexArray()); + add(geometry.getVertexArray(), osg::Array::BIND_PER_VERTEX); add(geometry.getNormalArray()); add(geometry.getColorArray()); add(geometry.getSecondaryColorArray()); @@ -64,7 +64,7 @@ struct GeometryArrayGatherer unsigned int i; for(i=0;igetBinding()==osg::Array::BIND_PER_VERTEX) + if (!array) return; + + if (overrideBinding!=osg::Array::BIND_UNDEFINED && array->getBinding()!=overrideBinding) + { + array->setBinding(overrideBinding); + } + + if (array->getBinding()==osg::Array::BIND_PER_VERTEX) { _arrayList.push_back(array); }