Graphics/vtkSuperquadricSource.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00059 #ifndef __vtkSuperquadricSource_h
00060 #define __vtkSuperquadricSource_h
00061
00062 #include "vtkPolyDataSource.h"
00063
00064 #define VTK_MAX_SUPERQUADRIC_RESOLUTION 1024
00065 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
00066 #define VTK_MIN_SUPERQUADRIC_ROUNDNESS 1e-24
00067
00068 class VTK_GRAPHICS_EXPORT vtkSuperquadricSource : public vtkPolyDataSource
00069 {
00070 public:
00073 static vtkSuperquadricSource *New();
00074
00075 vtkTypeRevisionMacro(vtkSuperquadricSource,vtkPolyDataSource);
00076 void PrintSelf(ostream& os, vtkIndent indent);
00077
00079
00080 vtkSetVector3Macro(Center,float);
00081 vtkGetVectorMacro(Center,float,3);
00083
00085
00086 vtkSetVector3Macro(Scale,float);
00087 vtkGetVectorMacro(Scale,float,3);
00089
00091
00092 vtkGetMacro(ThetaResolution,int);
00093 void SetThetaResolution(int i);
00095
00097
00098 vtkGetMacro(PhiResolution,int);
00099 void SetPhiResolution(int i);
00101
00103
00105 vtkGetMacro(Thickness,float);
00106 vtkSetClampMacro(Thickness,float,VTK_MIN_SUPERQUADRIC_THICKNESS,1.0);
00108
00110
00112 vtkGetMacro(PhiRoundness,float);
00113 void SetPhiRoundness(float e);
00115
00117
00119 vtkGetMacro(ThetaRoundness,float);
00120 void SetThetaRoundness(float e);
00122
00124
00125 vtkSetMacro(Size,float);
00126 vtkGetMacro(Size,float);
00128
00130
00132 vtkBooleanMacro(Toroidal,int);
00133 vtkGetMacro(Toroidal,int);
00134 vtkSetMacro(Toroidal,int);
00136
00137 protected:
00138 vtkSuperquadricSource(int res=16);
00139 ~vtkSuperquadricSource() {};
00140
00141 int Toroidal;
00142 float Thickness;
00143 float Size;
00144 float PhiRoundness;
00145 float ThetaRoundness;
00146 void Execute();
00147 float Center[3];
00148 float Scale[3];
00149 int ThetaResolution;
00150 int PhiResolution;
00151
00152 private:
00153 vtkSuperquadricSource(const vtkSuperquadricSource&);
00154 void operator=(const vtkSuperquadricSource&);
00155 };
00156
00157 #endif
00158
00159