]> Creatis software - clitk.git/blob - registration/clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter.h
Debug RTStruct conversion with empty struc
[clitk.git] / registration / clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter.h
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to: 
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://www.centreleonberard.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
9   This software is distributed WITHOUT ANY WARRANTY; without even
10   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11   PURPOSE.  See the copyright notices for more information.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18 #ifndef __clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter_h
19 #define __clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter_h
20 #include "clitkSpatioTemporalMultiResolutionPyramidImageFilter.h"
21 #include "vnl/vnl_matrix.h"
22
23 namespace clitk
24 {
25
26 template <
27   class TInputImage, 
28   class TOutputImage
29   >
30 class ITK_EXPORT RecursiveSpatioTemporalMultiResolutionPyramidImageFilter : 
31     public SpatioTemporalMultiResolutionPyramidImageFilter< TInputImage, TOutputImage >
32 {
33 public:
34   /** Standard class typedefs. */
35   typedef RecursiveSpatioTemporalMultiResolutionPyramidImageFilter  Self;
36   typedef SpatioTemporalMultiResolutionPyramidImageFilter<TInputImage,TOutputImage>  Superclass;
37   typedef itk::SmartPointer<Self>                          Pointer;
38   typedef itk::SmartPointer<const Self>                    ConstPointer;
39
40   /** Method for creation through the object factory. */
41   itkNewMacro(Self);
42
43   /** Run-time type information (and related methods). */
44   itkTypeMacro(RecursiveSpatioTemporalMultiResolutionPyramidImageFilter, 
45                SpatioTemporalMultiResolutionPyramidImageFilter);
46
47   /** ImageDimension enumeration. */
48   itkStaticConstMacro(ImageDimension, unsigned int,
49                       Superclass::ImageDimension);
50
51   /** Inherit types from the superclass.. */
52   typedef typename Superclass::InputImageType         InputImageType;
53   typedef typename Superclass::OutputImageType        OutputImageType;
54   typedef typename Superclass::InputImagePointer      InputImagePointer;
55   typedef typename Superclass::OutputImagePointer     OutputImagePointer;
56   typedef typename Superclass::InputImageConstPointer InputImageConstPointer;
57
58   /** Given one output whose requested region has been set, 
59    * this method sets the requtested region for the remaining
60    * output images.
61    * The original documentation of this method is below.
62    * \sa ProcessObject::GenerateOutputRequestedRegion(); */
63   virtual void GenerateOutputRequestedRegion(itk::DataObject *output);
64
65   /** RecursiveSpatioTemporalMultiResolutionPyramidImageFilter requires a larger input
66    * requested region than the output requested regions to accomdate the
67    * shrinkage and smoothing operations.  As such,
68    * SpatioTemporalMultiResolutionPyramidImageFilter needs to provide an implementation for
69    * GenerateInputRequestedRegion().  The original documentation of this
70    * method is below.  \sa ProcessObject::GenerateInputRequestedRegion() */
71   virtual void GenerateInputRequestedRegion();
72
73 protected:
74   RecursiveSpatioTemporalMultiResolutionPyramidImageFilter();
75   ~RecursiveSpatioTemporalMultiResolutionPyramidImageFilter() {};
76   void PrintSelf(std::ostream&os, itk::Indent indent) const;
77
78   /** Generate the output data. */
79   void GenerateData();
80
81 private:
82   RecursiveSpatioTemporalMultiResolutionPyramidImageFilter(const Self&); //purposely not implemented
83   void operator=(const Self&); //purposely not implemented
84   
85 };
86
87
88 } // namespace clitk
89
90 #ifndef ITK_MANUAL_INSTANTIATION
91 #include "clitkRecursiveSpatioTemporalMultiResolutionPyramidImageFilter.txx"
92 #endif
93
94 #endif