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=Point<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