1 #ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__HXX__
2 #define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__HXX__
4 // -------------------------------------------------------------------------
6 cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
7 QuadEdgeBaseIterator( E* e, int op, bool start )
15 // -------------------------------------------------------------------------
17 cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
18 ~QuadEdgeBaseIterator( )
22 // -------------------------------------------------------------------------
24 typename cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
25 Self& cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
26 operator=( const Self& r )
30 this->m_StartEdge = r.m_StartEdge;
31 this->m_Iterator = r.m_Iterator;
32 this->m_OpType = r.m_OpType;
33 this->m_Start = r.m_Start;
39 // -------------------------------------------------------------------------
41 E* cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
44 return( this->m_StartEdge );
47 // -------------------------------------------------------------------------
49 E* cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
52 return( this->m_Iterator );
55 // -------------------------------------------------------------------------
57 int cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
60 return( this->m_OpType );
63 // -------------------------------------------------------------------------
65 bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
68 return( this->m_Start );
71 // -------------------------------------------------------------------------
73 bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
77 ( this->m_StartEdge == r.m_StartEdge ) &&
78 ( this->m_Iterator == r.m_Iterator ) &&
79 ( this->m_OpType == r.m_OpType ) &&
80 ( this->m_Start == r.m_Start )
84 // -------------------------------------------------------------------------
86 bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
87 operator==( const Self& r ) const
90 ( this->m_StartEdge == r.m_StartEdge ) &&
91 ( this->m_Iterator == r.m_Iterator ) &&
92 ( this->m_OpType == r.m_OpType ) &&
93 ( this->m_Start == r.m_Start )
97 // -------------------------------------------------------------------------
99 bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
100 operator!=( Self& r )
102 return( !( this->operator==( r ) ) );
105 // -------------------------------------------------------------------------
107 bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
108 operator!=( const Self& r ) const
110 return( !( this->operator==( r ) ) );
113 // -------------------------------------------------------------------------
115 typename cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
116 Self& cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
122 this->m_Start = !( this->m_Iterator == this->m_StartEdge );
128 // -------------------------------------------------------------------------
130 typename cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
131 Self& cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
137 this->m_Start = !( this->m_Iterator == this->m_StartEdge );
143 // -------------------------------------------------------------------------
145 void cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
148 switch( this->m_OpType )
151 this->m_Iterator = this->m_Iterator->GetOnext( );
154 this->m_Iterator = this->m_Iterator->GetLnext( );
157 this->m_Iterator = this->m_Iterator->GetRnext( );
160 this->m_Iterator = this->m_Iterator->GetDnext( );
163 this->m_Iterator = this->m_Iterator->GetOprev( );
166 this->m_Iterator = this->m_Iterator->GetLprev( );
169 this->m_Iterator = this->m_Iterator->GetRprev( );
172 this->m_Iterator = this->m_Iterator->GetDprev( );
179 // -------------------------------------------------------------------------
181 cpExtensions::DataStructures::QuadEdgeIterator< E >::
182 QuadEdgeIterator( E* e, int op, bool start )
183 : Superclass( e, op, start )
187 // -------------------------------------------------------------------------
189 cpExtensions::DataStructures::QuadEdgeIterator< E >::
194 // -------------------------------------------------------------------------
196 E* cpExtensions::DataStructures::QuadEdgeIterator< E >::
199 return( this->m_Iterator );
202 // -------------------------------------------------------------------------
204 cpExtensions::DataStructures::QuadEdgeConstIterator< E >::
205 QuadEdgeConstIterator( const E* e, int op, bool start )
206 : Superclass( e, op, start )
210 // -------------------------------------------------------------------------
212 cpExtensions::DataStructures::QuadEdgeConstIterator< E >::
213 ~QuadEdgeConstIterator( )
217 // -------------------------------------------------------------------------
219 const E* cpExtensions::DataStructures::QuadEdgeConstIterator< E >::
222 return( this->m_Iterator );
225 // -------------------------------------------------------------------------
227 cpExtensions::DataStructures::QuadEdgePointIterator< E >::
228 QuadEdgePointIterator( const E* e, int op, bool start )
229 : Superclass( e, op, start )
233 // -------------------------------------------------------------------------
235 cpExtensions::DataStructures::QuadEdgePointIterator< E >::
236 ~QuadEdgePointIterator( )
240 // -------------------------------------------------------------------------
242 typename E::TPrimalGeometry&
243 cpExtensions::DataStructures::QuadEdgePointIterator< E >::
246 return( this->m_Iterator->GetOrigin( ) );
249 // -------------------------------------------------------------------------
251 cpExtensions::DataStructures::QuadEdgePointConstIterator< E >::
252 QuadEdgePointConstIterator( const E* e, int op, bool start )
253 : Superclass( e, op, start )
257 // -------------------------------------------------------------------------
259 cpExtensions::DataStructures::QuadEdgePointConstIterator< E >::
260 ~QuadEdgePointConstIterator( )
264 // -------------------------------------------------------------------------
266 const typename E::TPrimalGeometry&
267 cpExtensions::DataStructures::QuadEdgePointConstIterator< E >::
270 return( this->m_Iterator->GetOrigin( ) );
273 #endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__HXX__