From 01750729b61047be77705426d6dd59df0c8be463 Mon Sep 17 00:00:00 2001 From: ganovelli Date: Wed, 26 Nov 2008 17:57:09 +0000 Subject: [PATCH] missing checks on deleted simplex added --- vcg/complex/trimesh/polygon_support.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/vcg/complex/trimesh/polygon_support.h b/vcg/complex/trimesh/polygon_support.h index 387cf2e2..725de062 100644 --- a/vcg/complex/trimesh/polygon_support.h +++ b/vcg/complex/trimesh/polygon_support.h @@ -57,11 +57,14 @@ namespace vcg // the vertices are the same, simply import them typename PolyMeshType::VertexIterator vi; typename TriMeshType::FaceIterator tfi,tfib ; - typename TriMeshType ::VertexIterator tvi = Allocator::AddVertices(tm,pm.vn); - for(tvi = tm.vert.begin(),vi = pm.vert.begin(); tvi != tm.vert.end(); ++tvi,++vi)(*tvi).ImportLocal(*vi); + typename TriMeshType ::VertexIterator tvi = Allocator::AddVertices(tm,pm.vert.size()); + int cnt = 0; + for(tvi = tm.vert.begin(),vi = pm.vert.begin(); tvi != tm.vert.end(); ++tvi,++vi,++cnt) + if(!(*vi).IsD()) (*tvi).ImportLocal(*vi); else vcg::tri::Allocator::DeleteVertex(tm,(*tvi)); typename PolyMeshType::FaceIterator fi; - for(fi = pm.face.begin(); fi != pm.face.end(); ++fi){ + for(fi = pm.face.begin(); fi != pm.face.end(); ++fi) + if(!((*fi).IsD())){ points.clear(); for(int i = 0; i < (*fi).VN(); ++i) { typename PolyMeshType::VertexType * v = (*fi).V(i); @@ -91,10 +94,11 @@ namespace vcg static void ImportFromTriMesh( PolyMeshType & pm, TriMeshType & tm){ // the vertices are the same, simply import them - int cnt = 0; + int cnt = 0; typename TriMeshType ::ConstVertexIterator tvi; typename PolyMeshType::VertexIterator vi = vcg::tri::Allocator::AddVertices(pm,tm.vert.size()); - for(tvi = tm.vert.begin(); tvi != tm.vert.end(); ++tvi,++vi,++cnt) if(!(*tvi).IsD())(*vi).ImportLocal(*tvi); + for(tvi = tm.vert.begin(); tvi != tm.vert.end(); ++tvi,++vi,++cnt) + if(!(*tvi).IsD())(*vi).ImportLocal(*tvi); else vcg::tri::Allocator ::DeleteVertex(pm,(*vi)); // convert the faces typename TriMeshType::FaceIterator tfi;