From 747317027265b2ad8209976c57a9cb5d1d7fdf6e Mon Sep 17 00:00:00 2001 From: cignoni Date: Mon, 15 Sep 2008 10:08:41 +0000 Subject: [PATCH] Improved robustness of FF adj from texture coords adjacency. Now faces with degenerated tex coords are more correctly managed. --- vcg/complex/trimesh/update/topology.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/vcg/complex/trimesh/update/topology.h b/vcg/complex/trimesh/update/topology.h index 6acdac32..36446fb5 100644 --- a/vcg/complex/trimesh/update/topology.h +++ b/vcg/complex/trimesh/update/topology.h @@ -324,14 +324,18 @@ static void FaceFaceFromTexCoord(MeshType &m) if( ! (*pf).IsD() ) for(int j=0;j<3;++j) { - (*p).Set(&(*pf),j); - ++p; + if( (*pf).WT(j) != (*pf).WT((j+1)%3) ) + { + (*p).Set(&(*pf),j); + ++p; + } } + + e.resize(p-e.begin()); // remove from the end of the edge vector the unitiailized ones assert(p==e.end()); - sort(e.begin(), e.end()); // Lo ordino per vertici - - int ne = 0; // Numero di edge reali + sort(e.begin(), e.end()); + int ne = 0; // number of real edges typename std::vector::iterator pe,ps; ps = e.begin();pe=e.begin(); //for(ps = e.begin(),pe=e.begin();pe<=e.end();++pe) // Scansione vettore ausiliario