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