00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkSpatialFunctionImageEvaluatorFilter_h
00018 #define __itkSpatialFunctionImageEvaluatorFilter_h
00019
00020 #include "itkImageFunction.h"
00021 #include "itkImageRegionIterator.h"
00022 #include "itkImageToImageFilter.h"
00023 #include "itkSize.h"
00024 #include "itkSpatialFunction.h"
00025
00026 namespace itk
00027 {
00028
00041 template<class TSpatialFunction, class TInputImage, class TOutputImage>
00042 class ITK_EXPORT SpatialFunctionImageEvaluatorFilter :
00043 public ImageToImageFilter<TInputImage, TOutputImage>
00044 {
00045 public:
00047 typedef SpatialFunctionImageEvaluatorFilter Self;
00048 typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
00049 typedef SmartPointer<Self> Pointer;
00050 typedef SmartPointer<const Self> ConstPointer;
00051
00053 itkNewMacro(Self);
00054
00056 itkTypeMacro( SpatialFunctionImageEvaluatorFilter, ImageToImageFilter );
00057
00059 itkStaticConstMacro(NDimensions, unsigned int,
00060 TInputImage::ImageDimension);
00061
00063 typedef typename TInputImage::SizeType SizeType;
00064
00066 typedef typename TOutputImage::IndexType IndexType;
00067
00069 typedef typename TOutputImage::PixelType PixelType;
00070
00072 typedef typename TOutputImage::RegionType OutputImageRegionType;
00073
00075 typedef TSpatialFunction FunctionType;
00076
00078 typedef typename FunctionType::OutputType FunctionValueType;
00079
00081 typedef typename FunctionType::InputType PositionType;
00082
00084 void SetFunction( FunctionType* PixelFunction )
00085 {m_PixelFunction = PixelFunction;};
00086
00087 protected:
00088 SpatialFunctionImageEvaluatorFilter();
00089 virtual ~SpatialFunctionImageEvaluatorFilter() {};
00090
00092 void GenerateData();
00093
00094 private:
00095 SpatialFunctionImageEvaluatorFilter(const Self&);
00096 void operator=(const Self&);
00097
00099 FunctionType* m_PixelFunction;
00100 };
00101
00102 }
00103
00104 #ifndef ITK_MANUAL_INSTANTIATION
00105 #include "itkSpatialFunctionImageEvaluatorFilter.txx"
00106 #endif
00107
00108 #endif