00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkCastImageFilter_h
00018 #define __itkCastImageFilter_h
00019
00020 #include "itkUnaryFunctorImageFilter.h"
00021
00022 namespace itk
00023 {
00024
00044 namespace Functor {
00045
00046 template< class TInput, class TOutput>
00047 class Cast
00048 {
00049 public:
00050 Cast() {};
00051 ~Cast() {};
00052 inline TOutput operator()( const TInput & A )
00053 {
00054 return static_cast<TOutput>( A );
00055 }
00056 };
00057 }
00058
00059 template <class TInputImage, class TOutputImage>
00060 class ITK_EXPORT CastImageFilter :
00061 public
00062 UnaryFunctorImageFilter<TInputImage,TOutputImage,
00063 Functor::Cast<
00064 typename TInputImage::PixelType,
00065 typename TOutputImage::PixelType> >
00066 {
00067 public:
00069 typedef CastImageFilter Self;
00070 typedef UnaryFunctorImageFilter<TInputImage,TOutputImage,
00071 Functor::Cast<
00072 typename TInputImage::PixelType,
00073 typename TOutputImage::PixelType>
00074 > Superclass;
00075 typedef SmartPointer<Self> Pointer;
00076 typedef SmartPointer<const Self> ConstPointer;
00077
00079 itkNewMacro(Self);
00080
00082 itkTypeMacro(CastImageFilter, UnaryFunctorImageFilter);
00083
00084 protected:
00085 CastImageFilter() {}
00086 virtual ~CastImageFilter() {}
00087
00088
00089 private:
00090 CastImageFilter(const Self&);
00091 void operator=(const Self&);
00092
00093 };
00094
00095
00096 }
00097
00098 #endif