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