Subversion Repositories gelsvn

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

#include "HalfEdge.h"
#include "Manifold.h"

using namespace CGLA;

namespace HMesh
{
        template<class R>
        HalfEdge_template<R>::HalfEdge_template():
                vert(NULL_VERTEX_ITER),
                next(NULL_HALFEDGE_ITER),
                prev(NULL_HALFEDGE_ITER),
                face(NULL_FACE_ITER),
                opp(NULL_HALFEDGE_ITER),
                touched(0)
        {}

        template<class R>
        bool HalfEdge_template<R>::is_boundary()
        {
                return face == NULL_FACE_ITER || opp->face == NULL_FACE_ITER;
        }

        void link(HalfEdgeIter h0, HalfEdgeIter h1)
        {
                h0->next = h1;
                h1->prev = h0;
        }

        void glue(HalfEdgeIter h0, HalfEdgeIter h1)
        {
                h0->opp = h1;
                h1->opp = h0;
        }

        float length(HalfEdgeIter h)
        {
                return (h->vert->get_pos()-h->opp->vert->get_pos()).length();
        }

        HalfEdgeIter NULL_HALFEDGE_ITER(0);
        template class HalfEdge_template<Iters>;

}