00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkBSplineCenteredResampleImageFilterBase.h,v $ 00005 Language: C++ 00006 Date: $Date: 2002/06/25 11:59:30 $ 00007 Version: $Revision: 1.3 $ 00008 00009 Copyright (c) 2002 Insight Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 Portions of this code are covered under the VTK copyright. 00013 See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details. 00014 00015 This software is distributed WITHOUT ANY WARRANTY; without even 00016 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00017 PURPOSE. See the above copyright notices for more information. 00018 00019 =========================================================================*/ 00020 00021 #ifndef __itkBSplineCenteredResampleImageFilterBase_h 00022 #define __itkBSplineCenteredResampleImageFilterBase_h 00023 00024 #include "itkBSplineResampleImageFilterBase.h" 00025 #include <vector> 00026 00027 00028 namespace itk 00029 { 00056 template <class TInputImage, class TOutputImage> 00057 class ITK_EXPORT BSplineCenteredResampleImageFilterBase : 00058 public BSplineResampleImageFilterBase<TInputImage, TOutputImage> 00059 { 00060 public: 00062 typedef BSplineCenteredResampleImageFilterBase Self; 00063 typedef BSplineResampleImageFilterBase<TInputImage, TOutputImage> Superclass; 00064 typedef SmartPointer<Self> Pointer; 00065 typedef SmartPointer<const Self> ConstPointer; 00066 00068 itkTypeMacro(BSplineCenteredResampleImageFilterBase, BSplineResampleImageFilterBase); 00069 00070 00072 itkNewMacro( Self ); 00073 00075 typedef typename Superclass::OutputImagePixelType OutputImagePixelType; 00076 00078 typedef typename Superclass::OutputImageIterator OutputImageIterator; 00079 00080 protected: 00081 00082 virtual void InitializePyramidSplineFilter(int SplineOrder); 00083 virtual void Reduce1DImage( 00084 const std::vector<double> & In, 00085 OutputImageIterator & Iter, 00086 unsigned int traverseSize 00087 ); 00088 00089 virtual void Expand1DImage( 00090 const std::vector<double> & In, 00091 OutputImageIterator & Iter, 00092 unsigned int traverseSize 00093 ); 00094 00095 protected: 00096 BSplineCenteredResampleImageFilterBase(); 00097 virtual ~BSplineCenteredResampleImageFilterBase() {}; 00098 void PrintSelf(std::ostream& os, Indent indent) const; 00099 00100 00101 private: 00102 BSplineCenteredResampleImageFilterBase( const Self& ); //purposely not implemented 00103 void operator=( const Self& ); //purposely not implemented 00104 00105 }; 00106 00107 } // namespace itk 00108 00109 #ifndef ITK_MANUAL_INSTANTIATION 00110 #include "itkBSplineCenteredResampleImageFilterBase.txx" 00111 #endif 00112 00113 #endif