Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkPathConstIterator.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkPathConstIterator.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:29:20 $ 00007 Version: $Revision: 1.4 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 #ifndef __itkPathConstIterator_h 00018 #define __itkPathConstIterator_h 00019 00020 #include "itkIndex.h" 00021 #include "itkImage.h" 00022 #include "itkPath.h" 00023 00024 namespace itk 00025 { 00026 00047 template<class TImage, class TPath> 00048 class ITK_EXPORT PathConstIterator 00049 { 00050 public: 00052 typedef PathConstIterator Self; 00053 00058 itkStaticConstMacro(ImageIteratorDimension, unsigned int, 00059 TImage::ImageDimension); 00060 00062 typedef typename TImage::IndexType IndexType; 00063 typedef typename TImage::IndexValueType IndexValueType; 00064 00066 typedef typename TImage::OffsetType OffsetType; 00067 typedef typename TImage::OffsetValueType OffsetValueType; 00068 00070 typedef typename TImage::SizeType SizeType; 00071 typedef typename TImage::SizeValueType SizeValueType; 00072 00074 typedef typename TImage::RegionType RegionType; 00075 00077 typedef TImage ImageType; 00078 00082 typedef typename TImage::PixelContainer PixelContainer; 00083 typedef typename PixelContainer::Pointer PixelContainerPointer; 00084 00086 typedef typename TImage::InternalPixelType InternalPixelType; 00087 00089 typedef typename TImage::PixelType PixelType; 00090 00093 typedef typename TImage::AccessorType AccessorType; 00094 00096 typedef TPath PathType; 00097 00099 typedef typename PathType::InputType PathInputType; 00100 00102 typedef typename PathType::OutputType PathOutputType; 00103 00105 itkTypeMacro(PathConstIterator, None); 00106 00108 static unsigned int GetImageIteratorDimension() 00109 { 00110 return TImage::ImageDimension; 00111 } 00112 00114 const PathInputType GetPathPosition() 00115 { 00116 return m_CurrentPathPosition; 00117 } 00118 00120 const IndexType GetIndex() 00121 { 00122 return m_CurrentImageIndex; 00123 } 00124 00126 const PixelType & Get(void) const 00127 { 00128 return m_Image->GetPixel(m_CurrentImageIndex ); 00129 } 00130 00134 bool IsAtEnd() 00135 { 00136 return m_IsAtEnd; 00137 } 00138 00143 inline virtual void VisitStartIndexAsLastIndexIfClosed(bool flag) 00144 { 00145 m_VisitStartIndexAsLastIndexIfClosed = flag; 00146 } 00147 00153 void GoToBegin(); 00154 00156 void operator++(); 00157 00160 Self &operator=(const Self& it); 00161 00163 PathConstIterator(const ImageType *imagePtr, const PathType *pathPtr); 00164 00166 virtual ~PathConstIterator() {}; 00167 00168 protected: //made protected so other iterators can access 00169 // This "constant" is initialized in the constructor 00170 OffsetType m_ZeroOffset; // = 0 for all dimensions 00171 00173 typename ImageType::ConstPointer m_Image; 00174 00176 typename PathType::ConstPointer m_Path; 00177 00179 RegionType m_Region; 00180 00182 const double* m_ImageOrigin; 00183 00185 const double* m_ImageSpacing; 00186 00188 const unsigned long int* m_ImageSize; 00189 00194 bool m_VisitStartIndexAsLastIndexIfClosed; 00195 00197 bool m_IsAtEnd; 00198 00200 PathInputType m_CurrentPathPosition; 00201 00203 IndexType m_CurrentImageIndex; 00204 }; 00205 00206 } // end namespace itk 00207 00208 #ifndef ITK_MANUAL_INSTANTIATION 00209 #include "itkPathConstIterator.txx" 00210 #endif 00211 00212 #endif

Generated at Sat Mar 31 02:26:51 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000