00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#ifndef __itkConicShellInteriorExteriorSpatialFunction_h
00019
#define __itkConicShellInteriorExteriorSpatialFunction_h
00020
00021
#include "vnl/vnl_vector.h"
00022
#include "itkInteriorExteriorSpatialFunction.h"
00023
#include "itkCovariantVector.h"
00024
00025
namespace itk
00026 {
00027
00056
template <
unsigned int VDimension=3,
typename TInput=Po
int<
double,3> >
00057 class ITK_EXPORT ConicShellInteriorExteriorSpatialFunction:
00058
public InteriorExteriorSpatialFunction<VDimension, TInput>
00059 {
00060
public:
00061
00063 typedef ConicShellInteriorExteriorSpatialFunction
Self;
00064 typedef InteriorExteriorSpatialFunction<VDimension> Superclass;
00065 typedef SmartPointer<Self> Pointer;
00066 typedef SmartPointer<const Self> ConstPointer;
00067
00069
itkTypeMacro(ConicShellInteriorExteriorSpatialFunction,
InteriorExteriorSpatialFunction);
00070
00072
itkNewMacro(
Self);
00073
00075 typedef typename Superclass::InputType
InputType;
00076
00078 typedef typename Superclass::OutputType
OutputType;
00079
00081 typedef CovariantVector<double, VDimension> GradientType;
00082
00084
OutputType Evaluate(
const InputType& position)
const;
00085
00087
itkGetMacro( Origin,
InputType);
00088
itkSetMacro( Origin,
InputType);
00089
00091
GradientType GetOriginGradient() {
return m_OriginGradient;}
00092 void SetOriginGradient(
GradientType grad);
00093
00095
itkGetMacro( DistanceMin,
double);
00096
itkSetMacro( DistanceMin,
double);
00097
00099
itkGetMacro( DistanceMax,
double);
00100
itkSetMacro( DistanceMax,
double);
00101
00103
itkGetMacro( Epsilon,
double);
00104
itkSetMacro( Epsilon,
double);
00105
00107
itkGetMacro( Polarity,
bool);
00108
itkSetMacro( Polarity,
bool);
00109
00110
protected:
00111 ConicShellInteriorExteriorSpatialFunction();
00112
virtual ~ConicShellInteriorExteriorSpatialFunction();
00113
void PrintSelf(std::ostream& os,
Indent indent)
const;
00114
00115
private:
00116 ConicShellInteriorExteriorSpatialFunction(
const Self&);
00117
void operator=(
const Self&);
00118
00120
InputType m_Origin;
00121
00123
GradientType m_OriginGradient;
00124
00125
double m_DistanceMin;
00126
double m_DistanceMax;
00127
double m_Epsilon;
00128
bool m_Polarity;
00129
00130 };
00131
00132 }
00133
00134
#ifndef ITK_MANUAL_INSTANTIATION
00135
#include "itkConicShellInteriorExteriorSpatialFunction.txx"
00136
#endif
00137
00138
#endif