00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkSymmetricEllipsoidInteriorExteriorSpatialFunction_h
00018 #define __itkSymmetricEllipsoidInteriorExteriorSpatialFunction_h
00019
00020 #include "itkInteriorExteriorSpatialFunction.h"
00021
00022 namespace itk
00023 {
00024
00037 template <unsigned int VDimension = 3,
00038 typename TInput = Point<double, VDimension> >
00039 class ITK_EXPORT SymmetricEllipsoidInteriorExteriorSpatialFunction:
00040 public InteriorExteriorSpatialFunction<VDimension, TInput>
00041 {
00042 public:
00044 typedef SymmetricEllipsoidInteriorExteriorSpatialFunction Self;
00045 typedef InteriorExteriorSpatialFunction<VDimension> Superclass;
00046 typedef SmartPointer<Self> Pointer;
00047 typedef SmartPointer<const Self> ConstPointer;
00048
00050 itkNewMacro(Self);
00051
00053 itkTypeMacro(SymmetricEllipsoidInteriorExteriorSpatialFunction,InteriorExteriorSpatialFunction);
00054
00056 typedef typename Superclass::InputType InputType;
00057
00059 typedef typename Superclass::OutputType OutputType;
00060
00062 OutputType Evaluate(const InputType& position) const;
00063
00065 itkGetMacro(Center, InputType);
00066 itkSetMacro(Center, InputType);
00067
00070 void SetOrientation(Vector<double> orientation, double uniqueAxis, double symmetricAxes);
00071
00072 protected:
00073 SymmetricEllipsoidInteriorExteriorSpatialFunction();
00074 virtual ~SymmetricEllipsoidInteriorExteriorSpatialFunction();
00075
00076 void PrintSelf(std::ostream& os, Indent indent) const;
00077
00078 private:
00079 SymmetricEllipsoidInteriorExteriorSpatialFunction(const Self&);
00080 void operator=(const Self&);
00081
00083 InputType m_Center;
00084
00086 double m_UniqueAxis;
00087
00089 double m_SymmetricAxes;
00090
00092 Vector<double, VDimension> m_Orientation;
00093
00095 double m_VectorRatio;
00096
00097 };
00098
00099 }
00100
00101 #ifndef ITK_MANUAL_INSTANTIATION
00102 #include "itkSymmetricEllipsoidInteriorExteriorSpatialFunction.txx"
00103 #endif
00104
00105 #endif