Added HalfedgeLoop iterator to iterate over loops of halfedges (faces, hoes). closes #1979

git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@987 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
Jan Möbius
2014-01-15 15:43:16 +00:00
parent 18d44c13e7
commit ae7ae806ae
2 changed files with 25 additions and 0 deletions

View File

@@ -118,6 +118,10 @@ public:
&Iterators::GenericCirculatorBaseT<This>::toEdgeHandle>
VertexEdgeIter;
typedef Iterators::GenericCirculatorT<This, This::FaceHandle, This::HalfedgeHandle,
&Iterators::GenericCirculatorBaseT<This>::toHalfedgeHandle>
HalfedgeLoopIter;
typedef VertexVertexIter ConstVertexVertexIter;
typedef VertexOHalfedgeIter ConstVertexOHalfedgeIter;
typedef VertexIHalfedgeIter ConstVertexIHalfedgeIter;
@@ -147,6 +151,12 @@ public:
typedef FaceHalfedgeIter ConstFaceHalfedgeIter;
typedef FaceEdgeIter ConstFaceEdgeIter;
typedef FaceFaceIter ConstFaceFaceIter;
/*
* Halfedge circulator
*/
typedef HalfedgeLoopIter ConstHalfedgeLoopIter;
//@}
// --- shortcuts
@@ -521,6 +531,9 @@ public:
/// face - face circulator
FaceFaceIter ff_begin(FaceHandle _fh)
{ return FaceFaceIter(*this, _fh); }
/// halfedge circulator
HalfedgeLoopIter hl_begin(HalfedgeHandle _heh)
{ return HalfedgeLoopIter(*this, _heh); }
/// const face - vertex circulator
ConstFaceVertexIter cfv_begin(FaceHandle _fh) const
@@ -534,6 +547,9 @@ public:
/// const face - face circulator
ConstFaceFaceIter cff_begin(FaceHandle _fh) const
{ return ConstFaceFaceIter(*this, _fh); }
/// const halfedge circulator
ConstHalfedgeLoopIter chl_begin(HalfedgeHandle _heh) const
{ return ConstHalfedgeLoopIter(*this, _heh); }
// 'end' circulators
@@ -581,6 +597,9 @@ public:
/// face - face circulator
FaceFaceIter ff_end(FaceHandle _fh)
{ return FaceFaceIter(*this, _fh, true); }
/// face - face circulator
HalfedgeLoopIter hl_end(HalfedgeHandle _heh)
{ return HalfedgeLoopIter(*this, _heh, true); }
/// const face - vertex circulator
ConstFaceVertexIter cfv_end(FaceHandle _fh) const
@@ -594,6 +613,9 @@ public:
/// const face - face circulator
ConstFaceFaceIter cff_end(FaceHandle _fh) const
{ return ConstFaceFaceIter(*this, _fh, true); }
/// const face - face circulator
ConstHalfedgeLoopIter chl_end(HalfedgeHandle _heh) const
{ return ConstHalfedgeLoopIter(*this, _heh, true); }
//@}