Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
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
00056 #ifndef __vtkSuperquadric_h
00057 #define __vtkSuperquadric_h
00058
00059 #include "vtkImplicitFunction.h"
00060
00061 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
00062
00063 class VTK_FILTERING_EXPORT vtkSuperquadric : public vtkImplicitFunction
00064 {
00065 public:
00069 static vtkSuperquadric *New();
00070
00071 vtkTypeRevisionMacro(vtkSuperquadric,vtkImplicitFunction);
00072 void PrintSelf(ostream& os, vtkIndent indent);
00073
00074
00075 float EvaluateFunction(float x[3]);
00076 float EvaluateFunction(float x, float y, float z)
00077 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00078 void EvaluateGradient(float x[3], float g[3]);
00079
00081
00082 vtkSetVector3Macro(Center,float);
00083 vtkGetVectorMacro(Center,float,3);
00085
00087
00088 vtkSetVector3Macro(Scale,float);
00089 vtkGetVectorMacro(Scale,float,3);
00091
00093
00095 vtkGetMacro(Thickness,float);
00096 vtkSetClampMacro(Thickness,float,VTK_MIN_SUPERQUADRIC_THICKNESS,1.0f);
00098
00100
00102 vtkGetMacro(PhiRoundness,float);
00103 void SetPhiRoundness(float e);
00105
00107
00109 vtkGetMacro(ThetaRoundness,float);
00110 void SetThetaRoundness(float e);
00112
00114
00115 vtkSetMacro(Size,float);
00116 vtkGetMacro(Size,float);
00118
00120
00122 vtkBooleanMacro(Toroidal,int);
00123 vtkGetMacro(Toroidal,int);
00124 vtkSetMacro(Toroidal,int);
00126
00127 protected:
00128 vtkSuperquadric();
00129 ~vtkSuperquadric() {};
00130
00131 int Toroidal;
00132 float Thickness;
00133 float Size;
00134 float PhiRoundness;
00135 float ThetaRoundness;
00136 float Center[3];
00137 float Scale[3];
00138 private:
00139 vtkSuperquadric(const vtkSuperquadric&);
00140 void operator=(const vtkSuperquadric&);
00141 };
00142
00143 #endif
00144
00145