00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#ifndef __itkTorusInteriorExteriorSpatialFunction_h
00019
#define __itkTorusInteriorExteriorSpatialFunction_h
00020
00021
#include "vnl/vnl_vector.h"
00022
#include "itkInteriorExteriorSpatialFunction.h"
00023
#include "itkCovariantVector.h"
00024
00025
namespace itk
00026 {
00027
00038
template <
unsigned int VDimension=3,
typename TInput=Po
int<
double,3> >
00039 class ITK_EXPORT TorusInteriorExteriorSpatialFunction:
00040
public InteriorExteriorSpatialFunction<VDimension, TInput>
00041 {
00042
public:
00043
00045 typedef TorusInteriorExteriorSpatialFunction
Self;
00046 typedef InteriorExteriorSpatialFunction<VDimension> Superclass;
00047 typedef SmartPointer<Self> Pointer;
00048 typedef SmartPointer<const Self> ConstPointer;
00049
00051
itkTypeMacro(TorusInteriorExteriorSpatialFunction,
InteriorExteriorSpatialFunction);
00052
00054
itkNewMacro(
Self);
00055
00057 typedef typename Superclass::InputType
InputType;
00058
00060 typedef typename Superclass::OutputType
OutputType;
00061
00063
OutputType Evaluate(
const InputType& position)
const;
00064
00067
itkGetMacro( Origin,
InputType);
00068
itkSetMacro( Origin,
InputType);
00069
00071
itkGetMacro( MajorRadius,
double);
00072
itkSetMacro( MajorRadius,
double);
00073
00075
itkGetMacro( MinorRadius,
double);
00076
itkSetMacro( MinorRadius,
double);
00077
00078
protected:
00079 TorusInteriorExteriorSpatialFunction();
00080
virtual ~TorusInteriorExteriorSpatialFunction();
00081
void PrintSelf(std::ostream& os,
Indent indent)
const;
00082
00083
private:
00084 TorusInteriorExteriorSpatialFunction(
const Self&);
00085
void operator=(
const Self&);
00086
00089
InputType m_Origin;
00090
00092
double m_MajorRadius;
00093
00095
double m_MinorRadius;
00096
00097 };
00098
00099 }
00100
00101
#ifndef ITK_MANUAL_INSTANTIATION
00102
#include "itkTorusInteriorExteriorSpatialFunction.txx"
00103
#endif
00104
00105
#endif