Subversion Repositories gelsvn

Rev

Rev 129 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
39 bj 1
#include "HalfEdge.h"
2
#include "Manifold.h"
3
 
4
using namespace CGLA;
5
 
6
namespace HMesh
7
{
444 jab 8
	HalfEdgeIter get_null_halfedge_iter()
9
	{
10
		static HalfEdgeList l;
11
		return l.end();
12
	}
13
 
14
	template<class R>
15
	HalfEdge_template<R>::HalfEdge_template():
16
	vert(NULL_VERTEX_ITER),
17
	next(NULL_HALFEDGE_ITER),
18
	prev(NULL_HALFEDGE_ITER),
19
	face(NULL_FACE_ITER),
20
	opp(NULL_HALFEDGE_ITER),
21
	touched(0)
22
	{}
23
 
24
	bool is_boundary(HalfEdgeIter h)
25
	{
26
		return h->face == NULL_FACE_ITER || h->opp->face == NULL_FACE_ITER;
27
	}
28
 
29
 
30
	void link(HalfEdgeIter h0, HalfEdgeIter h1)
31
	{
32
		h0->next = h1;
33
		h1->prev = h0;
34
	}
35
 
36
	void glue(HalfEdgeIter h0, HalfEdgeIter h1)
37
	{
38
		h0->opp = h1;
39
		h1->opp = h0;
40
	}
41
 
42
	float length(HalfEdgeIter h)
43
	{
44
		return (h->vert->pos-h->opp->vert->pos).length();
45
	}
46
 
47
 
48
	template struct HalfEdge_template<Iters>;
49
 
50
 
39 bj 51
}