Subversion Repositories gelsvn

Rev

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

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

using namespace CGLA;

namespace HMesh
{
        HalfEdgeIter get_null_halfedge_iter()
        {
                static HalfEdgeList l;
                return l.end();
        }
        
        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)
        {}
        
        bool is_boundary(HalfEdgeIter h)
        {
                return h->face == NULL_FACE_ITER || h->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->pos-h->opp->vert->pos).length();
        }
        
        
        template struct HalfEdge_template<Iters>;
        
        
}