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