00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkFrustumSpatialFunction_h
00018
#define __itkFrustumSpatialFunction_h
00019
00020
#include "itkInteriorExteriorSpatialFunction.h"
00021
00022
namespace itk
00023 {
00024
00036
template <
unsigned int VImageDimension=3,
typename TInput=Po
int<
double,3> >
00037 class ITK_EXPORT FrustumSpatialFunction :
00038
public InteriorExteriorSpatialFunction<VImageDimension,TInput>
00039 {
00040
public:
00041
00043 typedef FrustumSpatialFunction<VImageDimension,TInput> Self;
00044 typedef InteriorExteriorSpatialFunction<VImageDimension,TInput> Superclass;
00045 typedef SmartPointer<Self> Pointer;
00046 typedef SmartPointer<const Self> ConstPointer;
00047
00049
itkTypeMacro(FrustumSpatialFunction,
InteriorExteriorSpatialFunction);
00050
00052
itkNewMacro(
Self);
00053
00055 typedef typename Superclass::InputType
InputType;
00056
00058 typedef typename Superclass::OutputType
OutputType;
00059
00061
OutputType Evaluate(
const InputType& position)
const;
00062
00064
itkGetMacro( Apex,
InputType);
00065
itkSetMacro( Apex,
InputType);
00066
00069
itkGetMacro( AngleZ,
double);
00070
itkSetMacro( AngleZ,
double);
00071
00073
itkGetMacro( ApertureAngleX,
double);
00074
itkSetMacro( ApertureAngleX,
double);
00075
00077
itkGetMacro( ApertureAngleY,
double);
00078
itkSetMacro( ApertureAngleY,
double);
00079
00081
itkGetMacro( TopPlane,
double);
00082
itkSetMacro( TopPlane,
double);
00083
00085
itkGetMacro( BottomPlane,
double);
00086
itkSetMacro( BottomPlane,
double);
00087
00088
protected:
00089 FrustumSpatialFunction();
00090
virtual ~FrustumSpatialFunction();
00091
void PrintSelf(std::ostream& os,
Indent indent)
const;
00092
00093
private:
00094 FrustumSpatialFunction(
const Self&);
00095
void operator=(
const Self&);
00096
00098
InputType m_Apex;
00099
00101
double m_AngleZ;
00102
00104
double m_ApertureAngleX;
00105
00107
double m_ApertureAngleY;
00108
00110
double m_TopPlane;
00111
00113
double m_BottomPlane;
00114
00115 };
00116
00117 }
00118
00119
#ifndef ITK_MANUAL_INSTANTIATION
00120
#include "itkFrustumSpatialFunction.txx"
00121
#endif
00122
00123
#endif
00124
00125
00126
00127