Rev 489 | Blame | Last modification | View Log | RSS feed
#include "FaceCirculator.h"
#include "FaceHandle.h"
#include "VertexHandle.h"
namespace HMesh
{
/*****************************
* FaceCirculator
******************************/
FaceCirculator::FaceCirculator(FaceHandle f)
: last(f.last()),
he(last),
steps(0)
{}
FaceCirculator::FaceCirculator(HalfEdgeHandle h)
: he(h),
last(h),
steps(0)
{}
VertexHandle FaceCirculator::vertex()
{
return he.vert();
}
FaceHandle FaceCirculator::face()
{
return he.next().opp().face();
}
HalfEdgeHandle FaceCirculator::next_halfedge()
{
return he.next();
}
void FaceCirculator::operator++()
{
he = he.next();
steps++;
}
void FaceCirculator::operator++(int)
{
++(*this);
}
bool FaceCirculator::end() const
{
return he == last && steps > 0;
}
IndexType FaceCirculator::no_steps() const
{
return steps;
}
/*****************************
* ConstFaceCirculator
******************************/
ConstFaceCirculator::ConstFaceCirculator(ConstFaceHandle f)
: last(f.last()), he(last), steps(0)
{}
ConstFaceCirculator::ConstFaceCirculator(ConstHalfEdgeHandle h)
: he(h), last(h), steps(0)
{}
ConstVertexHandle ConstFaceCirculator::vertex() const
{
return he.vert();
}
ConstFaceHandle ConstFaceCirculator::face() const
{
return he.next().opp().face();
}
ConstHalfEdgeHandle ConstFaceCirculator::next_halfedge() const
{
return he.next();
}
void ConstFaceCirculator::operator++()
{
he = he.next();
steps++;
}
void ConstFaceCirculator::operator++(int)
{
++(*this);
}
bool ConstFaceCirculator::end() const
{
return he == last && steps > 0;
}
IndexType ConstFaceCirculator::no_steps() const
{
return steps;
}
}