vtkSuperquadric.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00053 #ifndef __vtkSuperquadric_h
00054 #define __vtkSuperquadric_h
00055
00056 #include "vtkImplicitFunction.h"
00057
00058 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
00059
00060 class VTK_FILTERING_EXPORT vtkSuperquadric : public vtkImplicitFunction
00061 {
00062 public:
00066 static vtkSuperquadric *New();
00067
00068 vtkTypeRevisionMacro(vtkSuperquadric,vtkImplicitFunction);
00069 void PrintSelf(ostream& os, vtkIndent indent);
00070
00071
00072 double EvaluateFunction(double x[3]);
00073 double EvaluateFunction(double x, double y, double z)
00074 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00075 void EvaluateGradient(double x[3], double g[3]);
00076
00078
00079 vtkSetVector3Macro(Center,double);
00080 vtkGetVectorMacro(Center,double,3);
00082
00084
00085 vtkSetVector3Macro(Scale,double);
00086 vtkGetVectorMacro(Scale,double,3);
00088
00090
00092 vtkGetMacro(Thickness,double);
00093 vtkSetClampMacro(Thickness,double,VTK_MIN_SUPERQUADRIC_THICKNESS,1.0);
00095
00097
00099 vtkGetMacro(PhiRoundness,double);
00100 void SetPhiRoundness(double e);
00102
00104
00106 vtkGetMacro(ThetaRoundness,double);
00107 void SetThetaRoundness(double e);
00109
00111
00112 vtkSetMacro(Size,double);
00113 vtkGetMacro(Size,double);
00115
00117
00119 vtkBooleanMacro(Toroidal,int);
00120 vtkGetMacro(Toroidal,int);
00121 vtkSetMacro(Toroidal,int);
00123
00124 protected:
00125 vtkSuperquadric();
00126 ~vtkSuperquadric() {};
00127
00128 int Toroidal;
00129 double Thickness;
00130 double Size;
00131 double PhiRoundness;
00132 double ThetaRoundness;
00133 double Center[3];
00134 double Scale[3];
00135 private:
00136 vtkSuperquadric(const vtkSuperquadric&);
00137 void operator=(const vtkSuperquadric&);
00138 };
00139
00140 #endif
00141
00142