|
ITK
5.1.0
Insight Toolkit
|
Go to the documentation of this file.
18 #ifndef itkQuadEdgeMeshBaseIterator_h
19 #define itkQuadEdgeMeshBaseIterator_h
24 #define itkQEDefineIteratorMethodsMacro(Op) \
25 virtual Iterator Begin##Op() { return Iterator(this, Self::Iterator::Operator##Op, true); } \
27 virtual ConstIterator Begin##Op() const { return ConstIterator(this, Self::ConstIterator::Operator##Op, true); } \
29 virtual Iterator End##Op() { return Iterator(this, Self::Iterator::Operator##Op, false); } \
31 virtual ConstIterator End##Op() const { return ConstIterator(this, Self::ConstIterator::Operator##Op, false); }
34 #define itkQEDefineIteratorGeomMethodsMacro(Op) \
35 virtual IteratorGeom BeginGeom##Op() { return IteratorGeom(this, Self::IteratorGeom::Operator##Op, true); } \
37 virtual ConstIteratorGeom BeginGeom##Op() const \
39 return ConstIteratorGeom(this, Self::ConstIteratorGeom::Operator##Op, true); \
42 virtual IteratorGeom EndGeom##Op() { return IteratorGeom(this, Self::IteratorGeom::Operator##Op, false); } \
44 virtual ConstIteratorGeom EndGeom##Op() const \
46 return ConstIteratorGeom(this, Self::ConstIteratorGeom::Operator##Op, false); \
57 template <
typename TQuadEdge>
99 m_StartEdge = r.m_StartEdge;
100 m_Iterator = r.m_Iterator;
101 m_OpType = r.m_OpType;
110 return (m_StartEdge);
132 return ((m_StartEdge == r.m_StartEdge) && (m_Iterator == r.m_Iterator) && (m_OpType == r.m_OpType) &&
133 (m_Start == r.m_Start));
139 return ((m_StartEdge == r.m_StartEdge) && (m_Iterator == r.m_Iterator) && (m_OpType == r.m_OpType) &&
140 (m_Start == r.m_Start));
146 return (!(this->
operator==(r)));
152 return (!(this->
operator==(r)));
161 m_Start = !(m_Iterator == m_StartEdge);
173 m_Start = !(m_Iterator == m_StartEdge);
186 m_Iterator = m_Iterator->GetOnext();
189 m_Iterator = m_Iterator->GetSym();
192 m_Iterator = m_Iterator->GetLnext();
195 m_Iterator = m_Iterator->GetRnext();
198 m_Iterator = m_Iterator->GetDnext();
201 m_Iterator = m_Iterator->GetOprev();
204 m_Iterator = m_Iterator->GetLprev();
207 m_Iterator = m_Iterator->GetRprev();
210 m_Iterator = m_Iterator->GetDprev();
213 m_Iterator = m_Iterator->GetInvOnext();
216 m_Iterator = m_Iterator->GetInvLnext();
219 m_Iterator = m_Iterator->GetInvRnext();
222 m_Iterator = m_Iterator->GetInvDnext();
246 template <
typename TQuadEdge>
267 return (this->m_Iterator);
272 return (this->m_Iterator);
282 template <
typename TGeometricalQuadEdge>
309 template <
typename TQuadEdge>
343 return (this->m_Iterator);
353 template <
typename TGeometricalQuadEdge>
QuadEdgeMeshConstIterator Self
~QuadEdgeMeshIterator() override=default
bool operator==(const Self &r) const
Base iterator class for QuadEdgeMesh.
Self & operator=(const Self &r)
typename QuadEdgeType::OriginRefType OriginRefType
typename QuadEdgeType::OriginRefType OriginRefType
Const iterator for QuadEdgeMesh.
const QuadEdgeType * Value() const
OriginRefType operator*()
~QuadEdgeMeshConstIteratorGeom() override=default
~QuadEdgeMeshConstIterator() override=default
QuadEdgeMeshConstIteratorGeom(const QuadEdgeType *e=(QuadEdgeType *) 0, int op=Superclass::OperatorOnext, bool start=true)
virtual ~QuadEdgeMeshBaseIterator()=default
const QuadEdgeType * Value() const
TGeometricalQuadEdge QuadEdgeType
QuadEdgeMeshConstIteratorGeom Self
QuadEdgeMeshBaseIterator(QuadEdgeType *e, int op=OperatorOnext, bool start=true)
QuadEdgeMeshBaseIterator Self
QuadEdgeMeshConstIterator(const QuadEdgeType *e=(QuadEdgeType *) 0, int op=Superclass::OperatorOnext, bool start=true)
bool operator!=(const Self &r) const
Non const geometrical iterator.
QuadEdgeMeshIterator(QuadEdgeType *e=(QuadEdgeType *) 0, int op=Superclass::OperatorOnext, bool start=true)
TGeometricalQuadEdge QuadEdgeType
QuadEdgeType * GetStartEdge() const
QuadEdgeType * GetIterator() const
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Const geometrical iterator.
const OriginRefType operator*() const
Self & operator=(const NoConstType &r)
static constexpr double e
Non const iterator for QuadMesh.
Self & operator=(const NoConstType &r)
TGeometricalQuadEdge QuadEdgeType
QuadEdgeMeshIteratorGeom(QuadEdgeType *e=(QuadEdgeType *) nullptr, int op=Superclass::OperatorOnext, bool start=true)