Subversion Repositories gelsvn

Rev

Rev 39 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 39 Rev 62
Line 36... Line 36...
36
		{
36
		{
37
			typedef typename R::VertexIter VertexIter;
37
				typedef typename R::VertexIter VertexIter;
38
			typedef typename R::FaceIter FaceIter;
38
				typedef typename R::FaceIter FaceIter;
39
			typedef typename R::HalfEdgeIter HalfEdgeIter;
39
				typedef typename R::HalfEdgeIter HalfEdgeIter;
40
 
40
 
41
			HalfEdgeIter he;
-
 
42
			CGLA::Vec3f pos;
41
				/// Constructor, argument is vertex position
43
 
-
 
44
			Vertex_template(const CGLA::Vec3f&);
42
				Vertex_template(const CGLA::Vec3f&);
45
 
43
 
46
			bool is_boundary();
44
				/// Outgoing halfedge
47
			void check_boundary_consistency();
45
				HalfEdgeIter he;
48
 
46
 
49
			const CGLA::Vec3f& get_pos() const {return pos;}
47
				/// Geometric vertex position
50
			void set_pos(const CGLA::Vec3f& _pos) {pos=_pos;}
48
				CGLA::Vec3f pos;
51
 
49
 
-
 
50
				/// General purpose integer. Normally used as index or flag.
52
			int touched;
51
				int touched;
53
		};
52
		};
54
 
53
 
55
	template<class R>
54
		template<class R>
56
		struct HalfEdge_template
55
		struct HalfEdge_template
57
		{
56
		{
58
			typedef typename R::VertexIter VertexIter;
57
				typedef typename R::VertexIter VertexIter;
59
			typedef typename R::FaceIter FaceIter;
58
				typedef typename R::FaceIter FaceIter;
60
			typedef typename R::HalfEdgeIter HalfEdgeIter;
59
				typedef typename R::HalfEdgeIter HalfEdgeIter;
61
 
60
 
-
 
61
				/// Constructor
-
 
62
				HalfEdge_template();
-
 
63
 
-
 
64
				/// Vertex pointed to by this halfedge.
62
			VertexIter   vert;
65
				VertexIter   vert;
-
 
66
 
-
 
67
				/// Next halfedge in face loop.
63
			HalfEdgeIter next;
68
				HalfEdgeIter next;
-
 
69
 
-
 
70
				/// Previous halfedge in face loop.
64
			HalfEdgeIter prev;
71
				HalfEdgeIter prev;
65
 
72
 
-
 
73
				/// Face owning this halfedge
66
			FaceIter     face;
74
				FaceIter     face;
-
 
75
 
-
 
76
				/// Opposite halfedge
67
			HalfEdgeIter opp;
77
				HalfEdgeIter opp;
68
 
78
 
69
			bool is_boundary();
79
				/// General purpose integer. Normally used as index or flag.
70
			int touched;
80
				int touched;
71
 
81
 
72
			HalfEdge_template();
-
 
73
		};
82
		};
74
 
83
 
75
	template<class R>
84
		template<class R>
76
		struct Face_template
85
		struct Face_template
77
		{
86
		{
78
			typedef typename R::VertexIter VertexIter;
87
				typedef typename R::VertexIter VertexIter;
79
			typedef typename R::FaceIter FaceIter;
88
				typedef typename R::FaceIter FaceIter;
80
			typedef typename R::HalfEdgeIter HalfEdgeIter;
89
				typedef typename R::HalfEdgeIter HalfEdgeIter;
81
 
90
 
-
 
91
				/// Constructor
-
 
92
				Face_template();
-
 
93
 
-
 
94
				/// Last is just some halfedge in the face loop.
82
			HalfEdgeIter last;
95
				HalfEdgeIter last;
83
			int touched;
-
 
84
 
96
 
-
 
97
				/// General purpose integer. Normally used as index or flag.
85
			Face_template();
98
				int touched;
86
		};
99
		};
87
 
100
 
88
	struct Iters
101
		struct Iters
89
	{
102
		{
90
		typedef Vertex_template<Iters> V;
103
				typedef Vertex_template<Iters> V;