dox/Filtering/vtkSuperquadric.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00045 #ifndef __vtkSuperquadric_h
00046 #define __vtkSuperquadric_h
00047
00048 #include "vtkImplicitFunction.h"
00049
00050 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
00051
00052 class VTK_FILTERING_EXPORT vtkSuperquadric : public vtkImplicitFunction
00053 {
00054 public:
00058 static vtkSuperquadric *New();
00059
00060 vtkTypeRevisionMacro(vtkSuperquadric,vtkImplicitFunction);
00061 void PrintSelf(ostream& os, vtkIndent indent);
00062
00063
00064 float EvaluateFunction(float x[3]);
00065 float EvaluateFunction(float x, float y, float z)
00066 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00067 void EvaluateGradient(float x[3], float g[3]);
00068
00070
00071 vtkSetVector3Macro(Center,float);
00072 vtkGetVectorMacro(Center,float,3);
00074
00076
00077 vtkSetVector3Macro(Scale,float);
00078 vtkGetVectorMacro(Scale,float,3);
00080
00082
00084 vtkGetMacro(Thickness,float);
00085 vtkSetClampMacro(Thickness,float,VTK_MIN_SUPERQUADRIC_THICKNESS,1.0f);
00087
00089
00091 vtkGetMacro(PhiRoundness,float);
00092 void SetPhiRoundness(float e);
00094
00096
00098 vtkGetMacro(ThetaRoundness,float);
00099 void SetThetaRoundness(float e);
00101
00103
00104 vtkSetMacro(Size,float);
00105 vtkGetMacro(Size,float);
00107
00109
00111 vtkBooleanMacro(Toroidal,int);
00112 vtkGetMacro(Toroidal,int);
00113 vtkSetMacro(Toroidal,int);
00115
00116 protected:
00117 vtkSuperquadric();
00118 ~vtkSuperquadric() {};
00119
00120 int Toroidal;
00121 float Thickness;
00122 float Size;
00123 float PhiRoundness;
00124 float ThetaRoundness;
00125 float Center[3];
00126 float Scale[3];
00127 private:
00128 vtkSuperquadric(const vtkSuperquadric&);
00129 void operator=(const vtkSuperquadric&);
00130 };
00131
00132 #endif
00133
00134