diff --git a/vcg/complex/trimesh/clean.h b/vcg/complex/trimesh/clean.h
index d4515faf..844c25fd 100644
--- a/vcg/complex/trimesh/clean.h
+++ b/vcg/complex/trimesh/clean.h
@@ -389,7 +389,65 @@ private:
return deleted;
}
+ class SortedTriple
+ {
+ public:
+ SortedTriple() {}
+ SortedTriple(unsigned int v0, unsigned int v1, unsigned int v2,FacePointer _fp)
+ {
+ v[0]=v0;v[1]=v1;v[2]=v2;
+ fp=_fp;
+ std::sort(v,v+3);
+ }
+ bool operator < (const SortedTriple &p) const
+ {
+ return (v[2]!=p.v[2])?(v[2]
fvec;
+ for(fi=m.face.begin();fi!=m.face.end();++fi)
+ if(!(*fi).IsD())
+ {
+ fvec.push_back(SortedTriple( tri::Index(m,(*fi).V(0)),
+ tri::Index(m,(*fi).V(1)),
+ tri::Index(m,(*fi).V(2)),
+ &*fi));
+ }
+ assert (m.fn == fvec.size());
+ //for(int i=0;i::DeleteFace(m, *(fvec[i].fp) );
+ //qDebug("deleting face %i (pos in fvec %i)",tri::Index(m,fvec[i].fp) ,i);
+ }
+ }
+ return total;
+ }
/** This function removes that are not referenced by any face. The function updates the vn counter.
@param m The mesh
@return The number of removed vertices
@@ -1351,7 +1409,6 @@ static int MergeCloseVertex(MeshType &m, const ScalarType radius)
typedef vcg::vertex::PointDistanceFunctor VDistFunct;
std::vector closests;
int mergedCnt=0;
- VDistFunct distFunctor;
Point3f closestPt;
sht.Set(m.vert.begin(), m.vert.end());
UpdateFlags::VertexClearV(m);