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