Orfeo Toolbox  3.16
itkImageToImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkImageToImageFilter.h,v $
5  Language: C++
6  Date: $Date: 2009-02-05 19:04:57 $
7  Version: $Revision: 1.49 $
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  Portions of this code are covered under the VTK copyright.
13  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details.
14 
15  This software is distributed WITHOUT ANY WARRANTY; without even
16  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
17  PURPOSE. See the above copyright notices for more information.
18 
19 =========================================================================*/
20 #ifndef __itkImageToImageFilter_h
21 #define __itkImageToImageFilter_h
22 
23 #include "itkImage.h"
24 #include "itkImageSource.h"
25 #include "itkConceptChecking.h"
27 
28 namespace itk
29 {
30 
63 template <class TInputImage, class TOutputImage>
64 class ITK_EXPORT ImageToImageFilter : public ImageSource<TOutputImage>
65 {
66 public:
72 
73 
76 
78  typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
79  typedef typename Superclass::OutputImagePixelType OutputImagePixelType;
80 
82  typedef TInputImage InputImageType;
83  typedef typename InputImageType::Pointer InputImagePointer;
84  typedef typename InputImageType::ConstPointer InputImageConstPointer;
85  typedef typename InputImageType::RegionType InputImageRegionType;
86  typedef typename InputImageType::PixelType InputImagePixelType;
87 
89  itkStaticConstMacro(InputImageDimension, unsigned int,
90  TInputImage::ImageDimension);
91  itkStaticConstMacro(OutputImageDimension, unsigned int,
92  TOutputImage::ImageDimension);
93 
95  virtual void SetInput( const InputImageType *image);
96  virtual void SetInput( unsigned int, const TInputImage * image);
97  const InputImageType * GetInput(void);
98  const InputImageType * GetInput(unsigned int idx);
99 
119  virtual void PushBackInput( const InputImageType *image);
120  virtual void PopBackInput();
121  virtual void PushFrontInput( const InputImageType *image);
122  virtual void PopFrontInput();
123 
124 
125 protected:
128 
129  virtual void PrintSelf(std::ostream& os, Indent indent) const;
130 
155  virtual void GenerateInputRequestedRegion();
156 
157 
160  typedef ImageToImageFilterDetail::ImageRegionCopier<itkGetStaticConstMacro(OutputImageDimension),
161  itkGetStaticConstMacro(InputImageDimension)> InputToOutputRegionCopierType;
162 
165  typedef ImageToImageFilterDetail::ImageRegionCopier<itkGetStaticConstMacro(InputImageDimension),
166  itkGetStaticConstMacro(OutputImageDimension)> OutputToInputRegionCopierType;
167 
203  virtual void CallCopyOutputRegionToInputRegion(InputImageRegionType &destRegion,
204  const OutputImageRegionType &srcRegion);
205 
236  virtual void CallCopyInputRegionToOutputRegion(OutputImageRegionType &destRegion,
237  const InputImageRegionType &srcRegion);
238 
239 
248  void PushBackInput(const DataObject *input)
249  { Superclass::PushBackInput(input); }
250  void PushFrontInput(const DataObject *input)
251  { Superclass::PushFrontInput(input); }
252 
253 private:
254  ImageToImageFilter(const Self&); //purposely not implemented
255  void operator=(const Self&); //purposely not implemented
256 };
257 
258 } // end namespace itk
259 
260 // Define instantiation macro for this template.
261 #define ITK_TEMPLATE_ImageToImageFilter(_, EXPORT, x, y) namespace itk { \
262  _(2(class EXPORT ImageToImageFilter< ITK_TEMPLATE_2 x >)) \
263  namespace Templates { typedef ImageToImageFilter< ITK_TEMPLATE_2 x > ImageToImageFilter##y; } \
264  }
265 
266 #if ITK_TEMPLATE_EXPLICIT
267 # include "Templates/itkImageToImageFilter+-.h"
268 #endif
269 
270 #if ITK_TEMPLATE_TXX
271 # include "itkImageToImageFilter.txx"
272 #endif
273 
274 #endif

Generated at Sat Feb 2 2013 23:45:05 for Orfeo Toolbox with doxygen 1.8.1.1