00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkGaussianDerivativeSpatialFunction_h
00018
#define __itkGaussianDerivativeSpatialFunction_h
00019
00020
#include "itkSpatialFunction.h"
00021
#include "itkFixedArray.h"
00022
#include "itkPoint.h"
00023
00024
namespace itk
00025 {
00026
00041
template <
typename TOutput=
double,
00042
unsigned int VImageDimension=3,
00043
typename TInput=Point<double, VImageDimension> >
00044 class ITK_EXPORT GaussianDerivativeSpatialFunction :
public SpatialFunction<TOutput, VImageDimension, TInput>
00045 {
00046
public:
00048 typedef GaussianDerivativeSpatialFunction
Self;
00049 typedef SpatialFunction<TOutput, VImageDimension, TInput> Superclass;
00050 typedef SmartPointer<Self> Pointer;
00051 typedef SmartPointer<const Self> ConstPointer;
00052
00054
itkNewMacro(
Self);
00055
00057
itkTypeMacro(GaussianDerivativeSpatialFunction,
SpatialFunction);
00058
00060 typedef typename Superclass::InputType
InputType;
00061
00063 typedef typename Superclass::OutputType
OutputType;
00064
00066 typedef FixedArray<double, VImageDimension> ArrayType;
00067
00069 typedef Vector<double, VImageDimension> VectorType;
00070
00074
OutputType Evaluate(
const TInput& position)
const;
00075
00077
VectorType EvaluateVector(
const TInput& position)
const;
00078
00080
itkSetMacro(Scale,
double);
00081
itkGetMacro(Scale,
double);
00082
itkSetMacro(Normalized,
bool);
00083
itkGetMacro(Normalized,
bool);
00084
itkSetMacro(Sigma,
ArrayType);
00085
itkGetMacro(Sigma,
ArrayType);
00086
itkSetMacro(Mean,
ArrayType);
00087
itkGetMacro(Mean,
ArrayType);
00088
itkSetMacro(Direction,
unsigned int);
00089
itkGetMacro(Direction,
unsigned int);
00090
00091
protected:
00092 GaussianDerivativeSpatialFunction();
00093
virtual ~GaussianDerivativeSpatialFunction();
00094
void PrintSelf(std::ostream& os,
Indent indent)
const;
00095
00096
private:
00097 GaussianDerivativeSpatialFunction(
const Self&);
00098
void operator=(
const Self&);
00099
00101
unsigned int m_Direction;
00102
00104
ArrayType m_Sigma;
00105
00107
ArrayType m_Mean;
00108
00110
double m_Scale;
00111
00113
bool m_Normalized;
00114
00115 };
00116
00117 }
00118
00119
#ifndef ITK_MANUAL_INSTANTIATION
00120
#include "itkGaussianDerivativeSpatialFunction.txx"
00121
#endif
00122
00123
#endif