00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkSpatialFunction_h
00018 #define __itkSpatialFunction_h
00019
00020 #include "itkFunctionBase.h"
00021 #include "itkPoint.h"
00022
00023 namespace itk
00024 {
00025
00043 template <typename TOutput,
00044 unsigned int VImageDimension=3,
00045 typename TInput=Point<double, VImageDimension> >
00046 class ITK_EXPORT SpatialFunction : public FunctionBase<TInput, TOutput>
00047 {
00048 public:
00050 typedef SpatialFunction Self;
00051 typedef FunctionBase< TInput, TOutput> Superclass;
00052 typedef SmartPointer<Self> Pointer;
00053 typedef SmartPointer<const Self> ConstPointer;
00054
00056 itkTypeMacro(SpatialFunction, FunctionBase);
00057
00059 typedef typename Superclass::InputType InputType;
00060
00062 typedef typename Superclass::OutputType OutputType;
00063
00066 virtual OutputType Evaluate( const InputType& input ) const = 0;
00067
00068 protected:
00069 SpatialFunction();
00070 virtual ~SpatialFunction();
00071 void PrintSelf(std::ostream& os, Indent indent) const;
00072
00073 private:
00074 SpatialFunction(const Self&);
00075 void operator=(const Self&);
00076
00077 };
00078
00079 }
00080
00081 #ifndef ITK_MANUAL_INSTANTIATION
00082 #include "itkSpatialFunction.txx"
00083 #endif
00084
00085 #endif