<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ITK: itkConstNeighborhoodIterator.h Source File</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a> » <a class="el" href="dir_ea7fc529ede9a38b0438cf13831ae873.html">Common</a> </div> <div class="contents"> <h1>itkConstNeighborhoodIterator.h</h1><a href="itkConstNeighborhoodIterator_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Program: Insight Segmentation & Registration Toolkit</span> <a name="l00004"></a>00004 <span class="comment"> Module: $RCSfile: itkConstNeighborhoodIterator.h,v $</span> <a name="l00005"></a>00005 <span class="comment"> Language: C++</span> <a name="l00006"></a>00006 <span class="comment"> Date: $Date: 2008-10-07 12:04:17 $</span> <a name="l00007"></a>00007 <span class="comment"> Version: $Revision: 1.38 $</span> <a name="l00008"></a>00008 <span class="comment"></span> <a name="l00009"></a>00009 <span class="comment"> Copyright (c) Insight Software Consortium. All rights reserved.</span> <a name="l00010"></a>00010 <span class="comment"> See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> This software is distributed WITHOUT ANY WARRANTY; without even </span> <a name="l00013"></a>00013 <span class="comment"> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span> <a name="l00014"></a>00014 <span class="comment"> PURPOSE. See the above copyright notices for more information.</span> <a name="l00015"></a>00015 <span class="comment"></span> <a name="l00016"></a>00016 <span class="comment">=========================================================================*/</span> <a name="l00017"></a>00017 <span class="preprocessor">#ifndef __itkConstNeighborhoodIterator_h</span> <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __itkConstNeighborhoodIterator_h</span> <a name="l00019"></a>00019 <span class="preprocessor"></span> <a name="l00020"></a>00020 <span class="preprocessor">#include <vector></span> <a name="l00021"></a>00021 <span class="preprocessor">#include <string.h></span> <a name="l00022"></a>00022 <span class="preprocessor">#include <iostream></span> <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="itkImage_8h.html">itkImage.h</a>"</span> <a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="itkIndex_8h.html">itkIndex.h</a>"</span> <a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="itkOffset_8h.html">itkOffset.h</a>"</span> <a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="itkSize_8h.html">itkSize.h</a>"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="itkImageRegion_8h.html">itkImageRegion.h</a>"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="itkMacro_8h.html">itkMacro.h</a>"</span> <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="itkNeighborhood_8h.html">itkNeighborhood.h</a>"</span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="itkImageBoundaryCondition_8h.html">itkImageBoundaryCondition.h</a>"</span> <a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="itkExceptionObject_8h.html">itkExceptionObject.h</a>"</span> <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="itkZeroFluxNeumannBoundaryCondition_8h.html">itkZeroFluxNeumannBoundaryCondition.h</a>"</span> <a name="l00033"></a>00033 <a name="l00034"></a>00034 <span class="keyword">namespace </span>itk { <a name="l00035"></a>00035 <a name="l00050"></a>00050 <span class="keyword">template</span><<span class="keyword">class </span>TImage, <span class="keyword">class </span>TBoundaryCondition <a name="l00051"></a>00051 = ZeroFluxNeumannBoundaryCondition<TImage> > <a name="l00052"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">00052</a> <span class="keyword">class </span><a class="code" href="itkWin32Header_8h.html#7d4384322557205d75f0719c012dded6">ITK_EXPORT</a> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">ConstNeighborhoodIterator</a> <a name="l00053"></a>00053 : <span class="keyword">public</span> <a class="code" href="classitk_1_1Neighborhood.html" title="A light-weight container object for storing an N-dimensional neighborhood of values...">Neighborhood</a><ITK_TYPENAME TImage::InternalPixelType *, <a name="l00054"></a>00054 ::itk::GetImageDimension<TImage>::ImageDimension> <a name="l00055"></a>00055 { <a name="l00056"></a>00056 <span class="keyword">public</span>: <a name="l00058"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#360e182ce00665447ed71060c34b08f3">00058</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> TImage::InternalPixelType InternalPixelType; <a name="l00059"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#884c860dc4a98d25b83a767936a3b6c5">00059</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> TImage::PixelType PixelType; <a name="l00060"></a>00060 <a name="l00062"></a>00062 <a class="code" href="itkMacro_8h.html#1905cf6b2e88235996fa7ff73b2fb0eb">itkStaticConstMacro</a>(Dimension, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, TImage::ImageDimension); <a name="l00063"></a>00063 <a name="l00065"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#71ecdad396abc0b8ad69386b70760722">00065</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">ConstNeighborhoodIterator</a> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a>; <a name="l00066"></a>00066 <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Neighborhood.html" title="A light-weight container object for storing an N-dimensional neighborhood of values...">Neighborhood</a><InternalPixelType *, <a name="l00067"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ce091b90950df1b631dbd2e3ed83f3ec">00067</a> <a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(Dimension)> <a class="code" href="classitk_1_1Neighborhood.html" title="A light-weight container object for storing an N-dimensional neighborhood of values...">Superclass</a>; <a name="l00068"></a>00068 <a name="l00070"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#a225903e3f863505fe863a586d59c02f">00070</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Offset.html">Superclass::OffsetType</a> <a class="code" href="classitk_1_1Offset.html">OffsetType</a>; <a name="l00071"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#0f61efbd24120b53fb0807543bf76478">00071</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> OffsetType::OffsetValueType OffsetValueType; <a name="l00072"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#e6f10f04f901b0f7027759c65d7a9103">00072</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">Superclass::RadiusType</a> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">RadiusType</a>; <a name="l00073"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#3b51476211bd9e7a3c47935689d05a72">00073</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">Superclass::SizeType</a> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">SizeType</a>; <a name="l00074"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#5f310556fd936811a745fd8f554423bc">00074</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::SizeValueType SizeValueType; <a name="l00075"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ccbbd85354c4ddebb7d0ba331adadf30">00075</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::Iterator Iterator; <a name="l00076"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#500614983011672228a42951180daba4">00076</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> Superclass::ConstIterator ConstIterator; <a name="l00077"></a>00077 <a name="l00079"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#5e1ddee6169fe2549b6696cd80c7bf6a">00079</a> <span class="keyword">typedef</span> TImage ImageType; <a name="l00080"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#4b94fbe46b2095f856230edb87c00e6c">00080</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">TImage::RegionType</a> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">RegionType</a>; <a name="l00081"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#6c7a8cec352563e17b80ca99b93cc592">00081</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Index.html">Index<itkGetStaticConstMacro(Dimension)></a> <a class="code" href="classitk_1_1Index.html">IndexType</a>; <a name="l00082"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#bb175fa86a355db314e9461b463b96e9">00082</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> IndexType::IndexValueType IndexValueType; <a name="l00083"></a>00083 <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Neighborhood.html" title="A light-weight container object for storing an N-dimensional neighborhood of values...">Neighborhood<PixelType, itkGetStaticConstMacro(Dimension)></a> <a name="l00084"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#473d7354f10bce788c643dd00090de60">00084</a> <a class="code" href="classitk_1_1Neighborhood.html" title="A light-weight container object for storing an N-dimensional neighborhood of values...">NeighborhoodType</a>; <a name="l00086"></a>00086 <a name="l00090"></a>00090 <span class="keyword">typedef</span> <span class="keyword">typename</span> ImageType::NeighborhoodAccessorFunctorType <a name="l00091"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#cd2d3344f589128caa11fab29e739796">00091</a> NeighborhoodAccessorFunctorType; <a name="l00092"></a>00092 <a name="l00094"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#4be6b84cf44e588115f01edc654f3d28">00094</a> <span class="keyword">typedef</span> TBoundaryCondition BoundaryConditionType; <a name="l00095"></a>00095 <a name="l00097"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#d7600beecc7e9a0e661742672a7f1738">00097</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1ImageBoundaryCondition.html">ImageBoundaryCondition<ImageType></a> *<a class="code" href="classitk_1_1ImageBoundaryCondition.html">ImageBoundaryConditionPointerType</a>; <a name="l00098"></a>00098 <span class="keyword">typedef</span> <a class="code" href="classitk_1_1ImageBoundaryCondition.html">ImageBoundaryCondition<ImageType></a> <span class="keyword">const</span> * <a name="l00099"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#d499c180bb5e5810607cc2a6f7e90fd6">00099</a> <a class="code" href="classitk_1_1ImageBoundaryCondition.html" title="A virtual base object that defines an interface to a class of boundary condition...">ImageBoundaryConditionConstPointerType</a>; <a name="l00100"></a>00100 <a name="l00102"></a>00102 <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">ConstNeighborhoodIterator</a>(); <a name="l00103"></a>00103 <a name="l00105"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#e7f7e159022b54425d38967200b0ba78">00105</a> <span class="keyword">virtual</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#e7f7e159022b54425d38967200b0ba78">~ConstNeighborhoodIterator</a>() {} <a name="l00106"></a>00106 <a name="l00108"></a>00108 <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">ConstNeighborhoodIterator</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">ConstNeighborhoodIterator</a> & ); <a name="l00109"></a>00109 <a name="l00112"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#cb864f37a72f08ba4f3fb8bcb86a451f">00112</a> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">ConstNeighborhoodIterator</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">SizeType</a> &radius, <a name="l00113"></a>00113 <span class="keyword">const</span> ImageType * ptr, <a name="l00114"></a>00114 <span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">RegionType</a> &region) <a name="l00115"></a>00115 { <a name="l00116"></a>00116 this->Initialize(radius, ptr, region); <a name="l00117"></a>00117 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i < Dimension; i++) <a name="l00118"></a>00118 { m_InBounds[i] = <span class="keyword">false</span>; } <a name="l00119"></a>00119 this->ResetBoundaryCondition(); <a name="l00120"></a>00120 m_NeighborhoodAccessorFunctor = ptr->GetNeighborhoodAccessor(); <a name="l00121"></a>00121 m_NeighborhoodAccessorFunctor.SetBegin( ptr->GetBufferPointer() ); <a name="l00122"></a>00122 } <a name="l00124"></a>00124 <a name="l00126"></a>00126 <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a> &operator=(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a>& orig); <a name="l00127"></a>00127 <a name="l00129"></a>00129 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#920ae03048a5ad715d803ca2e92b52de">PrintSelf</a>(std::ostream &, <a class="code" href="classitk_1_1Indent.html" title="Control indentation during Print() invocation.">Indent</a>) <span class="keyword">const</span>; <a name="l00130"></a>00130 <a name="l00133"></a>00133 OffsetType ComputeInternalIndex(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n) <span class="keyword">const</span>; <a name="l00134"></a>00134 <a name="l00136"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#c43347c0d6668b3858bf76d50859de5e">00136</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> GetBound()<span class="keyword"> const</span> <a name="l00137"></a>00137 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Bound; } <a name="l00138"></a>00138 <a name="l00141"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#2dddbcc86e4a18ee2139cddb38d1d8af">00141</a> <span class="keywordtype">long</span> GetBound(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n)<span class="keyword"> const</span> <a name="l00142"></a>00142 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Bound[n]; } <a name="l00143"></a>00143 <a name="l00145"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">00145</a> <span class="keyword">const</span> InternalPixelType *GetCenterPointer()<span class="keyword"> const</span> <a name="l00146"></a>00146 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this-><span class="keyword">operator</span>[]((this-><a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">Size</a>())>>1)); } <a name="l00147"></a>00147 <a name="l00150"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#0ea909afedda3be43a83d98b4eb6fcaf">00150</a> PixelType GetCenterPixel()<span class="keyword"> const</span> <a name="l00151"></a>00151 <span class="keyword"> </span>{<span class="keywordflow">return</span> m_NeighborhoodAccessorFunctor.Get( this->GetCenterPointer() );} <a name="l00152"></a>00152 <a name="l00154"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#2c3d058a73542cee16562ccaf813dad6">00154</a> <span class="keyword">const</span> ImageType * GetImagePointer(<span class="keywordtype">void</span>)<span class="keyword"> const</span> <a name="l00155"></a>00155 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_ConstImage; } <a name="l00156"></a>00156 <a name="l00159"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ffdca574f1ad80d798fa9b4c93aa1612">00159</a> <span class="keyword">virtual</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> GetIndex(<span class="keywordtype">void</span>)<span class="keyword"> const</span> <a name="l00160"></a>00160 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Loop; } <a name="l00161"></a>00161 <a name="l00164"></a>00164 <span class="keyword">virtual</span> NeighborhoodType GetNeighborhood() <span class="keyword">const</span>; <a name="l00165"></a>00165 <a name="l00167"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#f04763be3c465d8cdbcb8824440989a0">00167</a> <span class="keyword">virtual</span> PixelType GetPixel(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)<span class="keyword"> const</span> <a name="l00168"></a>00168 <span class="keyword"> </span>{ <a name="l00169"></a>00169 <span class="keywordflow">if</span>( !m_NeedToUseBoundaryCondition ) <a name="l00170"></a>00170 { <a name="l00171"></a>00171 <span class="keywordflow">return</span> ( m_NeighborhoodAccessorFunctor.Get( this->operator[]( i ) ) ); <a name="l00172"></a>00172 } <a name="l00173"></a>00173 <span class="keywordtype">bool</span> inbounds; <a name="l00174"></a>00174 <span class="keywordflow">return</span> this->GetPixel( i, inbounds ); <a name="l00175"></a>00175 } <a name="l00177"></a>00177 <a name="l00183"></a>00183 <span class="keyword">virtual</span> PixelType GetPixel(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> i, <span class="keywordtype">bool</span>& IsInBounds) <span class="keyword">const</span>; <a name="l00184"></a>00184 <a name="l00187"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#8374392a1e750d2af457f773adfe824d">00187</a> <span class="keyword">virtual</span> PixelType GetPixel(<span class="keyword">const</span> <a class="code" href="classitk_1_1Offset.html">OffsetType</a> &o)<span class="keyword"> const</span> <a name="l00188"></a>00188 <span class="keyword"> </span>{ <a name="l00189"></a>00189 <span class="keywordtype">bool</span> inbounds; <a name="l00190"></a>00190 <span class="keywordflow">return</span> (this->GetPixel(this->GetNeighborhoodIndex(o), inbounds)); <a name="l00191"></a>00191 } <a name="l00193"></a>00193 <a name="l00199"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#b6cd2b622619cf70843d4709c8d97a0b">00199</a> <span class="keyword">virtual</span> PixelType GetPixel(<span class="keyword">const</span> <a class="code" href="classitk_1_1Offset.html">OffsetType</a> &o, <a name="l00200"></a>00200 <span class="keywordtype">bool</span>& IsInBounds)<span class="keyword"> const</span> <a name="l00201"></a>00201 <span class="keyword"> </span>{<span class="keywordflow">return</span> (this-><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#b6cd2b622619cf70843d4709c8d97a0b">GetPixel</a>(this->GetNeighborhoodIndex(o), IsInBounds)); } <a name="l00202"></a>00202 <a name="l00206"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#4644798ac82d2c98e26647eb5bd01701">00206</a> <span class="keyword">virtual</span> PixelType GetNext(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> axis, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)<span class="keyword"> const</span> <a name="l00207"></a>00207 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this->GetPixel(this->GetCenterNeighborhoodIndex() <a name="l00208"></a>00208 + (i * this->GetStride(axis)))); } <a name="l00209"></a>00209 <a name="l00213"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#250455acc237b2a3eacc7d13f413a6a0">00213</a> <span class="keyword">virtual</span> PixelType GetNext(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> axis)<span class="keyword"> const</span> <a name="l00214"></a>00214 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this->GetPixel(this->GetCenterNeighborhoodIndex() <a name="l00215"></a>00215 + this->GetStride(axis))); } <a name="l00216"></a>00216 <a name="l00220"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#248ace9111530de11d0e627499eb0c3e">00220</a> <span class="keyword">virtual</span> PixelType GetPrevious(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> axis, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)<span class="keyword"> const</span> <a name="l00221"></a>00221 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this->GetPixel(this->GetCenterNeighborhoodIndex() <a name="l00222"></a>00222 - (i * this->GetStride(axis)))); } <a name="l00223"></a>00223 <a name="l00227"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#c7c92804c9404c9d438f43e485b48d05">00227</a> <span class="keyword">virtual</span> PixelType GetPrevious(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> axis)<span class="keyword"> const</span> <a name="l00228"></a>00228 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this->GetPixel(this->GetCenterNeighborhoodIndex() <a name="l00229"></a>00229 - this->GetStride(axis))); } <a name="l00230"></a>00230 <a name="l00233"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#271d8890a7f6ceadd79c3ee34d2cfceb">00233</a> <span class="keyword">virtual</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> GetIndex(<span class="keyword">const</span> <a class="code" href="classitk_1_1Offset.html">OffsetType</a> &o)<span class="keyword"> const</span> <a name="l00234"></a>00234 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this-><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#271d8890a7f6ceadd79c3ee34d2cfceb">GetIndex</a>() + o); } <a name="l00235"></a>00235 <a name="l00238"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ed358b5c475541bdf626cadd06398a24">00238</a> <span class="keyword">virtual</span> <a class="code" href="classitk_1_1Index.html">IndexType</a> GetIndex(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)<span class="keyword"> const</span> <a name="l00239"></a>00239 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (this-><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ed358b5c475541bdf626cadd06398a24">GetIndex</a>() + this->GetOffset(i)); } <a name="l00240"></a>00240 <a name="l00242"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#1c0cfac5a084fc3bccfdb9a365170e17">00242</a> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">RegionType</a> GetRegion()<span class="keyword"> const</span> <a name="l00243"></a>00243 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_Region; } <a name="l00244"></a>00244 <a name="l00247"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#e4999308491061545ecf90b2348b4224">00247</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> GetBeginIndex()<span class="keyword"> const</span> <a name="l00248"></a>00248 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_BeginIndex; } <a name="l00249"></a>00249 <a name="l00252"></a>00252 <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">RegionType</a> GetBoundingBoxAsImageRegion() <span class="keyword">const</span>; <a name="l00253"></a>00253 <a name="l00255"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#cb5da44f584405841ef2152650c2f18a">00255</a> <a class="code" href="classitk_1_1Offset.html">OffsetType</a> GetWrapOffset()<span class="keyword"> const</span> <a name="l00256"></a>00256 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_WrapOffset; } <a name="l00257"></a>00257 <a name="l00263"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#05561b54f5f5c637cff52add8cc242bb">00263</a> OffsetValueType GetWrapOffset(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n)<span class="keyword"> const</span> <a name="l00264"></a>00264 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_WrapOffset[n]; } <a name="l00265"></a>00265 <a name="l00269"></a>00269 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GoToBegin(); <a name="l00270"></a>00270 <a name="l00273"></a>00273 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GoToEnd(); <a name="l00274"></a>00274 <a name="l00277"></a>00277 <span class="keyword">virtual</span> <span class="keywordtype">void</span> Initialize(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#5bf82236e1e50e653de84c8ead448599">SizeType</a> &radius, <span class="keyword">const</span> ImageType *ptr, <a name="l00278"></a>00278 <span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">RegionType</a> &region); <a name="l00279"></a>00279 <a name="l00282"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#b44c77a584eba2f0a0899aae873873ea">00282</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsAtBegin()<span class="keyword"> const</span> <a name="l00283"></a>00283 <span class="keyword"> </span>{ <span class="keywordflow">return</span> ( this->GetCenterPointer() == m_Begin ); } <a name="l00284"></a>00284 <a name="l00287"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#763ea8ad6a5683e4db34c5ea456ce8f2">00287</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsAtEnd()<span class="keyword"> const</span> <a name="l00288"></a>00288 <span class="keyword"> </span>{ <a name="l00289"></a>00289 <span class="keywordflow">if</span> ( this->GetCenterPointer() > m_End ) <a name="l00290"></a>00290 { <a name="l00291"></a>00291 ExceptionObject e(__FILE__, __LINE__); <a name="l00292"></a>00292 <a class="code" href="classitk_1_1OStringStream.html">OStringStream</a> msg; <a name="l00293"></a>00293 msg << <span class="stringliteral">"In method IsAtEnd, CenterPointer = "</span> << this->GetCenterPointer() <a name="l00294"></a>00294 << <span class="stringliteral">" is greater than End = "</span> << m_End <a name="l00295"></a>00295 << std::endl <a name="l00296"></a>00296 << <span class="stringliteral">" "</span> << *<span class="keyword">this</span>; <a name="l00297"></a>00297 e.SetDescription(msg.str().c_str()); <a name="l00298"></a>00298 <span class="keywordflow">throw</span> e; <a name="l00299"></a>00299 } <a name="l00300"></a>00300 <span class="keywordflow">return</span> ( this->GetCenterPointer() == m_End ); <a name="l00301"></a>00301 } <a name="l00303"></a>00303 <a name="l00308"></a>00308 <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a> &operator++(); <a name="l00309"></a>00309 <a name="l00314"></a>00314 <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a> &operator--(); <a name="l00315"></a>00315 <a name="l00319"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ee2213b6ad059779e949d9c2197e3f51">00319</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceitk.html#e1c1b02c301187419478f5126c789a01">operator==</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a> &it)<span class="keyword"> const </span> <a name="l00320"></a>00320 <span class="keyword"> </span>{ <span class="keywordflow">return</span> it.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">GetCenterPointer</a>() == this->GetCenterPointer(); } <a name="l00321"></a>00321 <a name="l00325"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#0398e3981bb2513596c360519dea1035">00325</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceitk_1_1ImageToImageFilterDetail.html#7bf30438b5d3bdc0eddbecd9b17baa3b">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a> &it)<span class="keyword"> const</span> <a name="l00326"></a>00326 <span class="keyword"> </span>{ <span class="keywordflow">return</span> it.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">GetCenterPointer</a>() != this->GetCenterPointer(); } <a name="l00327"></a>00327 <a name="l00331"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#d1c6c658114ad4ba97cd452d617ef784">00331</a> <span class="keywordtype">bool</span> operator<(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a> &it)<span class="keyword"> const</span> <a name="l00332"></a>00332 <span class="keyword"> </span>{ <span class="keywordflow">return</span> this->GetCenterPointer() < it.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">GetCenterPointer</a>(); } <a name="l00333"></a>00333 <a name="l00337"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#5b24bd5c2f0b92c4ed12ded34d3f03e4">00337</a> <span class="keywordtype">bool</span> operator<=(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a> &it)<span class="keyword"> const</span> <a name="l00338"></a>00338 <span class="keyword"> </span>{ <span class="keywordflow">return</span> this->GetCenterPointer() <= it.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">GetCenterPointer</a>(); } <a name="l00339"></a>00339 <a name="l00343"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#bbadf5ffcc70d1a78ac0d6f826bdac78">00343</a> <span class="keywordtype">bool</span> operator>(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a> &it)<span class="keyword"> const</span> <a name="l00344"></a>00344 <span class="keyword"> </span>{ <span class="keywordflow">return</span> this->GetCenterPointer() > it.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">GetCenterPointer</a>(); } <a name="l00345"></a>00345 <a name="l00349"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#fef45c8bffd9545724fffad0fb4737aa">00349</a> <span class="keywordtype">bool</span> operator>=(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a> &it)<span class="keyword"> const</span> <a name="l00350"></a>00350 <span class="keyword"> </span>{ <span class="keywordflow">return</span> this->GetCenterPointer() >= it.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#813f9d19bde597c4be563a45a5ef538b">GetCenterPointer</a>(); } <a name="l00351"></a>00351 <a name="l00356"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#fbfa4277b78bdcbdbb3c14670a3b5244">00356</a> <span class="keywordtype">void</span> SetLocation( <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a>& position ) <a name="l00357"></a>00357 { <a name="l00358"></a>00358 this->SetLoop(position); <a name="l00359"></a>00359 this->SetPixelPointers(position); <a name="l00360"></a>00360 } <a name="l00362"></a>00362 <a name="l00363"></a>00363 <a name="l00367"></a>00367 <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a> &operator+=(<span class="keyword">const</span> OffsetType &); <a name="l00368"></a>00368 <a name="l00372"></a>00372 <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ac7d0120fe5292cdcdddb6163b8cb150">Self</a> &operator-=(<span class="keyword">const</span> OffsetType &); <a name="l00373"></a>00373 <a name="l00375"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#2cd369bbf3bd8af43a52477a7055f05a">00375</a> <a class="code" href="classitk_1_1Offset.html">OffsetType</a> <a class="code" href="namespaceitk.html#86980caba0abbe85b61177a4c1bf5869">operator-</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html" title="Const version of NeighborhoodIterator, defining iteration of a local N-dimensional...">Self</a>& b) <a name="l00376"></a>00376 { <span class="keywordflow">return</span> m_Loop - b.<a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#57dec155c6b65bf6400253c260edf237">m_Loop</a>; } <a name="l00377"></a>00377 <a name="l00381"></a>00381 <span class="keywordtype">bool</span> InBounds() <span class="keyword">const</span>; <a name="l00382"></a>00382 <a name="l00388"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#69ecde48dd9fc3d52f5569dd1d7fd048">00388</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> OverrideBoundaryCondition(<span class="keyword">const</span> <a name="l00389"></a>00389 <a class="code" href="classitk_1_1ImageBoundaryCondition.html">ImageBoundaryConditionPointerType</a> i) <a name="l00390"></a>00390 { m_BoundaryCondition = i; } <a name="l00391"></a>00391 <a name="l00394"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#52e92b334466b6b3cf8f51fa0ad559ef">00394</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> ResetBoundaryCondition() <a name="l00395"></a>00395 { m_BoundaryCondition = &m_InternalBoundaryCondition; } <a name="l00396"></a>00396 <a name="l00398"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#4ffa7d2436fa01192dba295a31c5d8de">00398</a> <span class="keywordtype">void</span> SetBoundaryCondition( <span class="keyword">const</span> TBoundaryCondition &c ) <a name="l00399"></a>00399 { m_InternalBoundaryCondition = c; } <a name="l00400"></a>00400 <a name="l00402"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#3c299b5fa08ddccd970adeafaae82d6f">00402</a> <span class="keyword">const</span> BoundaryConditionType *GetBoundaryCondition()<span class="keyword"> const</span> <a name="l00403"></a>00403 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <span class="keyword">dynamic_cast<</span>BoundaryConditionType *<span class="keyword">></span>(m_BoundaryCondition); } <a name="l00404"></a>00404 <a name="l00406"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#4c912f8cf82aef500b32d677fb1ef369">00406</a> <span class="keywordtype">void</span> NeedToUseBoundaryConditionOn() <a name="l00407"></a>00407 { <a name="l00408"></a>00408 this->SetNeedToUseBoundaryCondition(<span class="keyword">true</span>); <a name="l00409"></a>00409 } <a name="l00410"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#438cb0146b802b04a771a2461952cff8">00410</a> <span class="keywordtype">void</span> NeedToUseBoundaryConditionOff() <a name="l00411"></a>00411 { <a name="l00412"></a>00412 this->SetNeedToUseBoundaryCondition(<span class="keyword">false</span>); <a name="l00413"></a>00413 } <a name="l00414"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#4ad31c4f81a1f71f83ad22c8f2dae27c">00414</a> <span class="keywordtype">void</span> SetNeedToUseBoundaryCondition(<span class="keywordtype">bool</span> b) <a name="l00415"></a>00415 { <a name="l00416"></a>00416 m_NeedToUseBoundaryCondition = b; <a name="l00417"></a>00417 } <a name="l00418"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ca3545a3111e33a846fef188b34de3fb">00418</a> <span class="keywordtype">bool</span> GetNeedToUseBoundaryCondition()<span class="keyword"> const</span> <a name="l00419"></a>00419 <span class="keyword"> </span>{ <a name="l00420"></a>00420 <span class="keywordflow">return</span> m_NeedToUseBoundaryCondition; <a name="l00421"></a>00421 } <a name="l00423"></a>00423 <a name="l00424"></a>00424 <span class="keyword">protected</span>: <a name="l00425"></a>00425 <a name="l00428"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#07a4ea30304a415abaf8f26008bc3005">00428</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetLoop( <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a>& p ) <a name="l00429"></a>00429 { m_Loop = p; m_IsInBoundsValid = <span class="keyword">false</span>;} <a name="l00430"></a>00430 <a name="l00434"></a>00434 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetBound(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#5bf82236e1e50e653de84c8ead448599">SizeType</a> &); <a name="l00435"></a>00435 <a name="l00440"></a>00440 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPixelPointers(<span class="keyword">const</span> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#be32dc19e71d40322ad9828b9ab40853">IndexType</a> &); <a name="l00441"></a>00441 <a name="l00444"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#b8fab0a605b185a7ed5552e495c354a6">00444</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetBeginIndex( <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html">IndexType</a>& start) <a name="l00445"></a>00445 { m_BeginIndex = start; } <a name="l00446"></a>00446 <a name="l00449"></a>00449 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetEndIndex(); <a name="l00450"></a>00450 <a name="l00453"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#aa45bb9d78d2b7c5ea9e2498be70e0b9">00453</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_BeginIndex; <a name="l00454"></a>00454 <a name="l00456"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#0d50d481c1ba292388ea2a3ca22070de">00456</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_Bound; <a name="l00457"></a>00457 <a name="l00459"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#d2b561fadd8c9ecf247aef51e38fc05b">00459</a> <span class="keyword">const</span> InternalPixelType *m_Begin; <a name="l00460"></a>00460 <a name="l00462"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#e06823fc20a02cb69173229198b49f85">00462</a> <span class="keyword">typename</span> ImageType::ConstWeakPointer m_ConstImage; <a name="l00463"></a>00463 <a name="l00465"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#afdd020c08e4b7ececb96de3e062a8b5">00465</a> <span class="keyword">const</span> InternalPixelType *m_End; <a name="l00466"></a>00466 <a name="l00469"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#7c1772cf4402dbc494df3958d5c43150">00469</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_EndIndex; <a name="l00470"></a>00470 <a name="l00472"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#57dec155c6b65bf6400253c260edf237">00472</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_Loop; <a name="l00473"></a>00473 <a name="l00475"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#b7cc0b678bbb29420ded9730e6b3d612">00475</a> <a class="code" href="namespaceHardConnectedComponentImageFilter.html#ed8c4a40607d317c666eb96ea265e126">RegionType</a> m_Region; <a name="l00476"></a>00476 <a name="l00482"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#1bb8837056d746fa9bce4078edd5ff09">00482</a> <a class="code" href="classitk_1_1Offset.html">OffsetType</a> m_WrapOffset; <a name="l00483"></a>00483 <a name="l00488"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#320897c5aa28b1e90fffda02bb400e69">00488</a> <a class="code" href="classitk_1_1ImageBoundaryCondition.html">ImageBoundaryConditionPointerType</a> m_BoundaryCondition; <a name="l00489"></a>00489 <a name="l00492"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#ebbc266ffec0ce343855ca5935166f40">00492</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> m_InBounds[Dimension]; <a name="l00493"></a>00493 <a name="l00495"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#9a0eb9d630ab726ad903e32a987605e7">00495</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> m_IsInBounds; <a name="l00496"></a>00496 <a name="l00500"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#b55b4e5a01c1755b65566902cfb58fa6">00500</a> <span class="keyword">mutable</span> <span class="keywordtype">bool</span> m_IsInBoundsValid; <a name="l00501"></a>00501 <a name="l00503"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#0abb0f1b2749f26e15a73ab1f5f43153">00503</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_InnerBoundsLow; <a name="l00504"></a>00504 <a name="l00506"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#45ea9b17fd77521beadcbcc16279d64f">00506</a> <a class="code" href="classitk_1_1Index.html">IndexType</a> m_InnerBoundsHigh; <a name="l00507"></a>00507 <a name="l00509"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#244ec69b83c57f2f52e88c0d84a02a90">00509</a> TBoundaryCondition m_InternalBoundaryCondition; <a name="l00510"></a>00510 <a name="l00512"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#e6dcc6ab4186f0233f40474ab2bcdd4d">00512</a> <span class="keywordtype">bool</span> m_NeedToUseBoundaryCondition; <a name="l00513"></a>00513 <a name="l00515"></a><a class="code" href="classitk_1_1ConstNeighborhoodIterator.html#134ada39d31a2386fb86744bc9377d12">00515</a> NeighborhoodAccessorFunctorType m_NeighborhoodAccessorFunctor; <a name="l00516"></a>00516 <a name="l00517"></a>00517 }; <a name="l00518"></a>00518 <a name="l00519"></a>00519 <span class="keyword">template</span><<span class="keyword">class</span> TImage> <a name="l00520"></a>00520 <span class="keyword">inline</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> <a name="l00521"></a><a class="code" href="namespaceitk.html#f9ab0997c93bed50c850f0874931f1a1">00521</a> <a class="code" href="namespaceitk.html#f9ab0997c93bed50c850f0874931f1a1">operator+</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> &it, <a name="l00522"></a>00522 <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> <a name="l00523"></a>00523 ::OffsetType &ind) <a name="l00524"></a>00524 { <a name="l00525"></a>00525 <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> ret; <a name="l00526"></a>00526 ret = it; <a name="l00527"></a>00527 ret += ind; <a name="l00528"></a>00528 <span class="keywordflow">return</span> ret; <a name="l00529"></a>00529 } <a name="l00530"></a>00530 <a name="l00531"></a>00531 <span class="keyword">template</span><<span class="keyword">class</span> TImage> <a name="l00532"></a>00532 <span class="keyword">inline</span> ConstNeighborhoodIterator<TImage> <a name="l00533"></a><a class="code" href="namespaceitk.html#5220829800569b323b8a735525f92cbf">00533</a> <a class="code" href="namespaceitk.html#f9ab0997c93bed50c850f0874931f1a1">operator+</a>(<span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> <a name="l00534"></a>00534 ::OffsetType &ind, <a name="l00535"></a>00535 <span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> &it) <a name="l00536"></a>00536 { <span class="keywordflow">return</span> (it + ind); } <a name="l00537"></a>00537 <a name="l00538"></a>00538 <span class="keyword">template</span><<span class="keyword">class</span> TImage> <a name="l00539"></a>00539 <span class="keyword">inline</span> ConstNeighborhoodIterator<TImage> <a name="l00540"></a><a class="code" href="namespaceitk.html#86980caba0abbe85b61177a4c1bf5869">00540</a> <a class="code" href="namespaceitk.html#86980caba0abbe85b61177a4c1bf5869">operator-</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> &it, <a name="l00541"></a>00541 <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> <a name="l00542"></a>00542 ::OffsetType &ind) <a name="l00543"></a>00543 { <a name="l00544"></a>00544 <a class="code" href="classitk_1_1ConstNeighborhoodIterator.html">ConstNeighborhoodIterator<TImage></a> ret; <a name="l00545"></a>00545 ret = it; <a name="l00546"></a>00546 ret -= ind; <a name="l00547"></a>00547 <span class="keywordflow">return</span> ret; <a name="l00548"></a>00548 } <a name="l00549"></a>00549 <a name="l00550"></a>00550 } <span class="comment">// namespace itk</span> <a name="l00551"></a>00551 <a name="l00552"></a>00552 <span class="comment">// Define instantiation macro for this template.</span> <a name="l00553"></a><a class="code" href="itkConstNeighborhoodIterator_8h.html#a5f2f42995de6c664c8d6dff14df57b9">00553</a> <span class="preprocessor">#define ITK_TEMPLATE_ConstNeighborhoodIterator(_, EXPORT, x, y) namespace itk { \</span> <a name="l00554"></a>00554 <span class="preprocessor"> _(2(class EXPORT ConstNeighborhoodIterator< ITK_TEMPLATE_2 x >)) \</span> <a name="l00555"></a>00555 <span class="preprocessor"> namespace Templates { typedef ConstNeighborhoodIterator< ITK_TEMPLATE_2 x > \</span> <a name="l00556"></a>00556 <span class="preprocessor"> ConstNeighborhoodIterator##y; } \</span> <a name="l00557"></a>00557 <span class="preprocessor"> }</span> <a name="l00558"></a>00558 <span class="preprocessor"></span> <a name="l00559"></a>00559 <span class="preprocessor">#if ITK_TEMPLATE_EXPLICIT</span> <a name="l00560"></a>00560 <span class="preprocessor"></span><span class="preprocessor"># include "Templates/itkConstNeighborhoodIterator+-.h"</span> <a name="l00561"></a>00561 <span class="preprocessor">#endif</span> <a name="l00562"></a>00562 <span class="preprocessor"></span> <a name="l00563"></a>00563 <span class="preprocessor">#if ITK_TEMPLATE_TXX</span> <a name="l00564"></a>00564 <span class="preprocessor"></span><span class="preprocessor"># include "itkConstNeighborhoodIterator.txx"</span> <a name="l00565"></a>00565 <span class="preprocessor">#endif</span> <a name="l00566"></a>00566 <span class="preprocessor"></span> <a name="l00567"></a>00567 <span class="comment">/*</span> <a name="l00568"></a>00568 <span class="comment">#ifndef ITK_MANUAL_INSTANTIATION</span> <a name="l00569"></a>00569 <span class="comment">#include "itkConstNeighborhoodIterator.txx"</span> <a name="l00570"></a>00570 <span class="comment">#endif</span> <a name="l00571"></a>00571 <span class="comment">*/</span> <a name="l00572"></a>00572 <span class="preprocessor">#endif</span> <a name="l00573"></a>00573 <span class="preprocessor"></span> </pre></div></div> <hr><address><small> Generated at Thu May 7 22:29:00 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>