Orfeo Toolbox  3.16
itkIsoContourDistanceImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkIsoContourDistanceImageFilter.h,v $
5  Language: C++
6  Date: $Date: 2009-04-23 03:53:35 $
7  Version: $Revision: 1.9 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkIsoContourDistanceImageFilter_h
18 #define __itkIsoContourDistanceImageFilter_h
19 
20 #include "itkImageToImageFilter.h"
21 #include "itkNarrowBand.h"
22 #include "itkBarrier.h"
23 
24 namespace itk
25 {
53 template <class TInputImage, class TOutputImage>
55  public ImageToImageFilter<TInputImage,TOutputImage>
56 {
57 public:
63 
65  itkNewMacro(Self);
66 
69 
73 
76  itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension);
77  itkStaticConstMacro(OutputImageDimension, unsigned int,
78  TOutputImage::ImageDimension);
79 
82  typedef typename OutputImageType::PixelType PixelType;
83  typedef typename InputImageType::PixelType InputPixelType;
84  typedef typename OutputImageType::RegionType OutputImageRegionType;
86  typedef typename InputImageType::SizeType InputSizeType;
87  typedef typename OutputImageType::SizeType SizeType;
88  typedef typename InputImageType::IndexType InputIndexType;
89  typedef typename OutputImageType::IndexType IndexType;
90 
98 
99 
102  itkSetMacro( LevelSetValue, InputPixelType );
103  itkGetConstMacro( LevelSetValue, InputPixelType );
104 
107  itkSetMacro( FarValue, PixelType );
108  itkGetConstMacro( FarValue, PixelType );
109 
110 
113  itkSetMacro( NarrowBanding, bool );
114  itkGetConstMacro( NarrowBanding, bool );
115  itkBooleanMacro( NarrowBanding );
116 
117 
119  void SetNarrowBand( NarrowBandType * ptr );
120  NarrowBandPointer GetNarrowBand() const
121  { return m_NarrowBand; }
122 
123 #ifdef ITK_USE_CONCEPT_CHECKING
124 
125  itkConceptMacro(InputEqualityComparableCheck,
127  itkConceptMacro(OutputEqualityComparableCheck,
129  itkConceptMacro(SameDimensionCheck,
131  itkConceptMacro(DoubleConvertibleToOutputCheck,
133  itkConceptMacro(InputConvertibleToOutputCheck,
135  itkConceptMacro(OutputAdditiveOperatorsCheck,
137  itkConceptMacro(InputOStreamWritableCheck,
139  itkConceptMacro(OutputOStreamWritableCheck,
142 #endif
143 
144 protected:
147  void PrintSelf(std::ostream& os, Indent indent) const;
148 
149  void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
150  int threadId );
151  void ThreadedGenerateDataFull(const OutputImageRegionType& outputRegionForThread,
152  int threadId );
153  void ThreadedGenerateDataBand(const OutputImageRegionType& outputRegionForThread,
154  int threadId );
155  void BeforeThreadedGenerateData();
156 
157  virtual void GenerateInputRequestedRegion();
158  virtual void EnlargeOutputRequestedRegion( DataObject * );
159 
160 private:
161  IsoContourDistanceImageFilter(const Self&); //purposely not implemented
162  void operator=(const Self&); //purposely not implemented
163 
166 
169  std::vector<RegionType> m_NarrowBandRegion;
170 
173 };
174 
175 } // namespace itk
176 
177 #ifndef ITK_MANUAL_INSTANTIATION
179 #endif
180 
181 #endif

Generated at Sat Feb 2 2013 23:46:29 for Orfeo Toolbox with doxygen 1.8.1.1