Subversion Repositories gelsvn

Rev

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;
    }

    uint FaceCirculator::no_steps() const
    {
        return steps;
    }

}