Subversion Repositories gelsvn

Rev

Details | 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
{
8
	template<class R>
9
	HalfEdge_template<R>::HalfEdge_template():
10
		vert(NULL_VERTEX_ITER),
11
		next(NULL_HALFEDGE_ITER),
12
		prev(NULL_HALFEDGE_ITER),
13
		face(NULL_FACE_ITER),
14
		opp(NULL_HALFEDGE_ITER),
15
		touched(0)
16
	{}
17
 
18
	template<class R>
19
	bool HalfEdge_template<R>::is_boundary()
20
	{
21
		return face == NULL_FACE_ITER || opp->face == NULL_FACE_ITER;
22
	}
23
 
24
	void link(HalfEdgeIter h0, HalfEdgeIter h1)
25
	{
26
		h0->next = h1;
27
		h1->prev = h0;
28
	}
29
 
30
	void glue(HalfEdgeIter h0, HalfEdgeIter h1)
31
	{
32
		h0->opp = h1;
33
		h1->opp = h0;
34
	}
35
 
36
	float length(HalfEdgeIter h)
37
	{
38
		return (h->vert->get_pos()-h->opp->vert->get_pos()).length();
39
	}
40
 
41
	HalfEdgeIter NULL_HALFEDGE_ITER(0);
42
	template class HalfEdge_template<Iters>;
43
 
44
}