[Plib-cvs] plib/src/ssg ssgVtxArray.cxx,1.25,1.26
Brought to you by:
sjbaker
From: Wolfram K. <wol...@us...> - 2004-01-30 06:51:43
|
Update of /cvsroot/plib/plib/src/ssg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9548 Modified Files: ssgVtxArray.cxx Log Message: Fixed bug in ref-counts after call to removeUnusedVertices Index: ssgVtxArray.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/ssg/ssgVtxArray.cxx,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- ssgVtxArray.cxx 2 Sep 2002 06:05:49 -0000 1.25 +++ ssgVtxArray.cxx 29 Jan 2004 21:28:41 -0000 1.26 @@ -205,7 +205,8 @@ doColours = TRUE; long * oldIndex2NewIndex = new long[vertices->getNum()]; - int i, oldIndex, newIndex; + int i; + short oldIndex, newIndex; for(i=0;i<vertices->getNum();i++) oldIndex2NewIndex[i]=-1; // marker for "not used" @@ -224,7 +225,7 @@ for(i=0; i<indices->getNum(); i++) { oldIndex = *indices->get(i); if (oldIndex2NewIndex[ oldIndex ] != -1) - indices->set((short)oldIndex2NewIndex[ oldIndex ], i); + indices->set(static_cast<short>(oldIndex2NewIndex[ oldIndex ]), i); else { newIndex = newVL->getNum(); indices->set(newIndex , i); @@ -238,20 +239,25 @@ newCL->add(colours->get(oldIndex)); } } - vertices->deRef(); + vertices->deRef(); //ssgDeRefDelete(vertices); vertices = newVL; + newVL->ref(); if(doNormals) - { normals->deRef(); + { normals->deRef(); //ssgDeRefDelete(normals); normals = newNL; + newNL->ref(); + } if (doTexCoords) - { texcoords->deRef(); + { texcoords->deRef(); //ssgDeRefDelete(texcoords); texcoords = newTL; + newTL->ref(); } if (doColours) - { colours->deRef(); + { colours->deRef(); //ssgDeRefDelete(colours); colours = newCL; + newCL->ref(); } } |