Subversion Repositories gelsvn

Rev

Rev 120 | Go to most recent revision | Blame | Compare with Previous | 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)
                {}

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

                HalfEdgeIter get_null_halfedge_iter()
                {
                                static HalfEdgeList l;
                                return l.end();
                }


}