ITK  4.2.0
Insight Segmentation and Registration Toolkit
itkFloodFilledSpatialFunctionConditionalConstIterator.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 __itkFloodFilledSpatialFunctionConditionalConstIterator_h
19 #define __itkFloodFilledSpatialFunctionConditionalConstIterator_h
20 
22 
23 namespace itk
24 {
34 template< class TImage, class TFunction >
36  TImage, TFunction >
37 {
38 public:
39 
43 
46 
49 
51  typedef typename Superclass::IndexType IndexType;
52 
55 
57  typedef typename Superclass::SizeType SizeType;
58 
61 
63  typedef typename Superclass::ImageType ImageType;
64 
67 
69  typedef typename Superclass::PixelType PixelType;
70 
75  FunctionType *fnPtr,
76  IndexType startIndex);
77 
82  FunctionType *fnPtr);
83 
86 
88  bool IsPixelIncluded(const IndexType & index) const;
89 
91  void SetOriginInclusionStrategy() { m_InclusionStrategy = 0; }
92 
94  void SetCenterInclusionStrategy() { m_InclusionStrategy = 1; }
95 
97  void SetCompleteInclusionStrategy() { m_InclusionStrategy = 2; }
98 
100  void SetIntersectInclusionStrategy() { m_InclusionStrategy = 3; }
101 protected: //made protected so other iterators can access
102 
114  unsigned char m_InclusionStrategy;
115 };
116 } // end namespace itk
117 
118 // Define instantiation macro for this template.
119 #define ITK_TEMPLATE_FloodFilledSpatialFunctionConditionalConstIterator(_, EXPORT, TypeX, TypeY) \
120  namespace itk \
121  { \
122  _( 2 ( class EXPORT FloodFilledSpatialFunctionConditionalConstIterator< ITK_TEMPLATE_2 TypeX > ) ) \
123  namespace Templates \
124  { \
125  typedef FloodFilledSpatialFunctionConditionalConstIterator< ITK_TEMPLATE_2 TypeX > \
126  FloodFilledSpatialFunctionConditionalConstIterator##TypeY; \
127  } \
128  }
129 
130 #if ITK_TEMPLATE_EXPLICIT
131 #include "Templates/itkFloodFilledSpatialFunctionConditionalConstIterator+-.h"
132 #endif
133 
134 #if ITK_TEMPLATE_TXX
135 #include "itkFloodFilledSpatialFunctionConditionalConstIterator.hxx"
136 #endif
137 
138 #endif
139