From ae587540156fe6610b2a17aff2b529396d1e43de Mon Sep 17 00:00:00 2001 From: cignoni Date: Tue, 13 Dec 2011 10:07:00 +0000 Subject: [PATCH] Significant change of names to the UpdateSelection Class. now follows the standard VertexClear instead of ClearVertex. Updated all the other files of vcg using it... (added also selection stuff for edges..) --- vcg/complex/algorithms/clean.h | 8 +-- vcg/complex/algorithms/clustering.h | 2 +- vcg/complex/algorithms/update/selection.h | 55 ++++++++++++++------- vcg/complex/algorithms/voronoi_clustering.h | 4 +- 4 files changed, 43 insertions(+), 26 deletions(-) diff --git a/vcg/complex/algorithms/clean.h b/vcg/complex/algorithms/clean.h index e69dabe8..3d6c474a 100644 --- a/vcg/complex/algorithms/clean.h +++ b/vcg/complex/algorithms/clean.h @@ -785,7 +785,7 @@ private: assert(tri::HasEEAdjacency(m)); tri::UpdateTopology::EdgeEdge(m); - if(SelectFlag) UpdateSelection::ClearVertex(m); + if(SelectFlag) UpdateSelection::VertexClear(m); int nonManifoldCnt=0; SimpleTempData TD(m.vert,0); @@ -828,8 +828,8 @@ private: UpdateFlags::FaceClear(m,nmfBit[0]+nmfBit[1]+nmfBit[2]); if(SelectFlag){ - UpdateSelection::ClearVertex(m); - UpdateSelection::ClearFace(m); + UpdateSelection::VertexClear(m); + UpdateSelection::FaceClear(m); } assert(tri::HasFFAdjacency(m)); @@ -872,7 +872,7 @@ private: static int CountNonManifoldVertexFF( MeshType & m, bool selectVert = true ) { assert(tri::HasFFAdjacency(m)); - if(selectVert) UpdateSelection::ClearVertex(m); + if(selectVert) UpdateSelection::VertexClear(m); int nonManifoldCnt=0; SimpleTempData TD(m.vert,0); diff --git a/vcg/complex/algorithms/clustering.h b/vcg/complex/algorithms/clustering.h index d19f5eaf..642b3efb 100644 --- a/vcg/complex/algorithms/clustering.h +++ b/vcg/complex/algorithms/clustering.h @@ -358,7 +358,7 @@ class Clustering void SelectPointSet(MeshType &m) { typename STDEXT::hash_map::iterator gi; - UpdateSelection::ClearVertex(m); + UpdateSelection::VertexClear(m); for(gi=GridCell.begin();gi!=GridCell.end();++gi) { VertexType *ptr=(*gi).second.Ptr(); diff --git a/vcg/complex/algorithms/update/selection.h b/vcg/complex/algorithms/update/selection.h index 633e4343..73d37f20 100644 --- a/vcg/complex/algorithms/update/selection.h +++ b/vcg/complex/algorithms/update/selection.h @@ -118,12 +118,13 @@ typedef typename MeshType::ScalarType ScalarType; typedef typename MeshType::VertexType VertexType; typedef typename MeshType::VertexPointer VertexPointer; typedef typename MeshType::VertexIterator VertexIterator; +typedef typename MeshType::EdgeIterator EdgeIterator; typedef typename MeshType::FaceType FaceType; typedef typename MeshType::FacePointer FacePointer; typedef typename MeshType::FaceIterator FaceIterator; typedef typename vcg::Box3 Box3Type; -static size_t AllVertex(MeshType &m) +static size_t VertexAll(MeshType &m) { VertexIterator vi; for(vi = m.vert.begin(); vi != m.vert.end(); ++vi) @@ -131,15 +132,22 @@ static size_t AllVertex(MeshType &m) return m.vn; } -static size_t AllFace(MeshType &m) +static size_t EdgeAll(MeshType &m) +{ + EdgeIterator ei; + for(ei = m.edge.begin(); ei != m.edge.end(); ++ei) + if( !(*ei).IsD() ) (*ei).SetS(); + return m.fn; +} +static size_t FaceAll(MeshType &m) { FaceIterator fi; for(fi = m.face.begin(); fi != m.face.end(); ++fi) - if( !(*fi).IsD() ) (*fi).SetS(); - return m.fn; + if( !(*fi).IsD() ) (*fi).SetS(); + return m.fn; } -static size_t ClearVertex(MeshType &m) +static size_t VertexClear(MeshType &m) { VertexIterator vi; for(vi = m.vert.begin(); vi != m.vert.end(); ++vi) @@ -147,7 +155,15 @@ static size_t ClearVertex(MeshType &m) return 0; } -static size_t ClearFace(MeshType &m) +static size_t EdgeClear(MeshType &m) +{ + EdgeIterator ei; + for(ei = m.edge.begin(); ei != m.edge.end(); ++ei) + if( !(*ei).IsD() ) (*ei).ClearS(); + return 0; +} + +static size_t FaceClear(MeshType &m) { FaceIterator fi; for(fi = m.face.begin(); fi != m.face.end(); ++fi) @@ -157,11 +173,12 @@ static size_t ClearFace(MeshType &m) static void Clear(MeshType &m) { - ClearVertex(m); - ClearFace(m); + VertexClear(m); + EdgeClear(m); + FaceClear(m); } -static size_t CountFace(MeshType &m) +static size_t FaceCount(MeshType &m) { size_t selCnt=0; FaceIterator fi; @@ -170,7 +187,7 @@ static size_t CountFace(MeshType &m) return selCnt; } -static size_t CountVertex(MeshType &m) +static size_t VertexCount(MeshType &m) { size_t selCnt=0; VertexIterator vi; @@ -179,7 +196,7 @@ static size_t CountVertex(MeshType &m) return selCnt; } -static size_t InvertFace(MeshType &m) +static size_t FaceInvert(MeshType &m) { size_t selCnt=0; FaceIterator fi; @@ -195,7 +212,7 @@ static size_t InvertFace(MeshType &m) return selCnt; } -static size_t InvertVertex(MeshType &m) +static size_t VertexInvert(MeshType &m) { size_t selCnt=0; VertexIterator vi; @@ -215,7 +232,7 @@ static size_t InvertVertex(MeshType &m) static size_t VertexFromFaceLoose(MeshType &m) { size_t selCnt=0; - ClearVertex(m); + VertexClear(m); FaceIterator fi; for(fi = m.face.begin(); fi != m.face.end(); ++fi) if( !(*fi).IsD() && (*fi).IsS()) @@ -249,7 +266,7 @@ static size_t VertexFromFaceStrict(MeshType &m) static size_t FaceFromVertexStrict(MeshType &m) { size_t selCnt=0; - ClearFace(m); + FaceClear(m); FaceIterator fi; for(fi = m.face.begin(); fi != m.face.end(); ++fi) if( !(*fi).IsD()) @@ -267,7 +284,7 @@ static size_t FaceFromVertexStrict(MeshType &m) static size_t FaceFromVertexLoose(MeshType &m) { size_t selCnt=0; - ClearFace(m); + FaceClear(m); FaceIterator fi; for(fi = m.face.begin(); fi != m.face.end(); ++fi) if( !(*fi).IsD() && !(*fi).IsS()) @@ -284,7 +301,7 @@ static size_t FaceFromVertexLoose(MeshType &m) static size_t VertexFromBorderFlag(MeshType &m) { size_t selCnt=0; - ClearVertex(m); + VertexClear(m); VertexIterator vi; for(vi = m.vert.begin(); vi != m.vert.end(); ++vi) if( !(*vi).IsD() ) @@ -302,7 +319,7 @@ static size_t VertexFromBorderFlag(MeshType &m) static size_t FaceFromBorderFlag(MeshType &m) { size_t selCnt=0; - ClearFace(m); + FaceClear(m); FaceIterator fi; for(fi = m.face.begin(); fi != m.face.end(); ++fi) if( !(*fi).IsD() ) @@ -377,7 +394,7 @@ static size_t FaceConnectedFF(MeshType &m) static size_t FaceFromQualityRange(MeshType &m,float minq, float maxq) { size_t selCnt=0; - ClearFace(m); + FaceClear(m); FaceIterator fi; assert(HasPerFaceQuality(m)); for(fi=m.face.begin();fi!=m.face.end();++fi) @@ -396,7 +413,7 @@ static size_t FaceFromQualityRange(MeshType &m,float minq, float maxq) static size_t VertexFromQualityRange(MeshType &m,float minq, float maxq) { size_t selCnt=0; - ClearVertex(m); + VertexClear(m); VertexIterator vi; assert(HasPerVertexQuality(m)); for(vi=m.vert.begin();vi!=m.vert.end();++vi) diff --git a/vcg/complex/algorithms/voronoi_clustering.h b/vcg/complex/algorithms/voronoi_clustering.h index 02b710c5..2f2a5ff4 100644 --- a/vcg/complex/algorithms/voronoi_clustering.h +++ b/vcg/complex/algorithms/voronoi_clustering.h @@ -133,8 +133,8 @@ static void SelectRegion(MeshType &m, VertexPointer vp) { PerVertexPointerHandle sources = tri::Allocator:: template GetPerVertexAttribute (m,"sources"); assert(tri::Allocator::IsValidHandle(m,sources)); - tri::UpdateSelection::ClearFace(m); - tri::UpdateSelection::ClearVertex(m); + tri::UpdateSelection::FaceClear(m); + tri::UpdateSelection::VertexClear(m); for(FaceIterator fi=m.face.begin();fi!=m.face.end();++fi) {