ITK  4.2.0
Insight Segmentation and Registration Toolkit
itkCorrespondenceDataStructureIterator.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkCorrespondenceDataStructureIterator_h
19 #define __itkCorrespondenceDataStructureIterator_h
20 
21 namespace itk
22 {
29 template< class TStructureType >
31 {
32 public:
35 
37  static unsigned int GetIteratorDimension()
38  {
39  return TStructureType::dim;
40  }
41 
43  bool IsAtEnd();
44 
46  void operator++(){ GoToNext(); }
47 
49  void operator++(int){ GoToNext(); }
50 
53  void GoToNext();
54 
56  void GoToNextBaseGroup();
57 
59  void Reset();
60 
62  CorrespondenceDataStructureIterator(TStructureType *StructurePtr);
63 
66 
67  typedef typename TStructureType::CorrespondingListType CorrespondingListType;
68  typedef typename TStructureType::ItemType ItemType;
69  typedef typename TStructureType::SecondaryNodeListType SecondaryNodeListType;
70  typedef typename TStructureType::NodeListType NodeListType;
71 
72  typedef typename CorrespondingListType::iterator CorrespondingListIterator;
73  typedef typename SecondaryNodeListType::iterator SecondaryNodeListIterator;
74  typedef typename NodeListType::iterator NodeListIterator;
75 
78  {
80  }
81 
84 
85  typename TStructureType::NodeListType::iterator m_NodeListIterator;
86 protected:
87 
89  bool m_IsAtEnd;
90  TStructureType * m_Structure;
95 };
96 } // end namespace itk
97 
98 #ifndef ITK_MANUAL_INSTANTIATION
99 #include "itkCorrespondenceDataStructureIterator.hxx"
100 #endif
101 
102 #endif
103