Thanks Luc, changes merged and submitted to svn/trunk.  I spotted a
potential leak so have made the below changes after checking your
changes.

~/OpenSceneGraph/src/osgPlugins/dae$ svn diff
Index: daeRGeometry.cpp
===================================================================
--- daeRGeometry.cpp    (revision 13045)
+++ daeRGeometry.cpp    (working copy)
@@ -459,23 +459,22 @@
 void daeReader::processSinglePPrimitive(osg::Geode* geode,
     const domMesh* pDomMesh, const T* group, SourceMap& sources, GLenum mode)
 {
-    osg::Geometry *geometry = new osg::Geometry();
+    osg::ref_ptr<osg::Geometry> geometry = new osg::Geometry();
     if (NULL != group->getMaterial())
         geometry->setName(group->getMaterial());


-    osg::DrawElementsUInt* pDrawElements = new osg::DrawElementsUInt(mode);
-    geometry->addPrimitiveSet(pDrawElements);
+    osg::ref_ptr<osg::DrawElementsUInt> pDrawElements = new
osg::DrawElementsUInt(mode);
+    geometry->addPrimitiveSet(pDrawElements.get());

     domP_Array domPArray;
     domPArray.append(group->getP());
     std::vector<std::vector<GLuint> > indexLists;
-    resolveMeshArrays(domPArray, group->getInput_array(), pDomMesh,
-        geometry, sources, indexLists);
-    if (indexLists.front().size())
+    resolveMeshArrays(domPArray, group->getInput_array(), pDomMesh,
geometry, sources, indexLists);
+    if (!indexLists.front().empty())
     {
         pDrawElements->asVector().swap(indexLists.front());
-        geode->addDrawable( geometry );
+        geode->addDrawable( geometry.get() );
     }
 }
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to