00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00055 #ifndef __vtkSuperquadricSource_h
00056 #define __vtkSuperquadricSource_h
00057
00058 #include "vtkPolyDataAlgorithm.h"
00059
00060 #define VTK_MAX_SUPERQUADRIC_RESOLUTION 1024
00061 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
00062 #define VTK_MIN_SUPERQUADRIC_ROUNDNESS 1e-24
00063
00064 class VTK_GRAPHICS_EXPORT vtkSuperquadricSource : public vtkPolyDataAlgorithm
00065 {
00066 public:
00069 static vtkSuperquadricSource *New();
00070
00071 vtkTypeRevisionMacro(vtkSuperquadricSource,vtkPolyDataAlgorithm);
00072 void PrintSelf(ostream& os, vtkIndent indent);
00073
00075
00076 vtkSetVector3Macro(Center,double);
00077 vtkGetVectorMacro(Center,double,3);
00079
00081
00082 vtkSetVector3Macro(Scale,double);
00083 vtkGetVectorMacro(Scale,double,3);
00085
00087
00088 vtkGetMacro(ThetaResolution,int);
00089 void SetThetaResolution(int i);
00091
00093
00094 vtkGetMacro(PhiResolution,int);
00095 void SetPhiResolution(int i);
00097
00099
00101 vtkGetMacro(Thickness,double);
00102 vtkSetClampMacro(Thickness,double,VTK_MIN_SUPERQUADRIC_THICKNESS,1.0);
00104
00106
00108 vtkGetMacro(PhiRoundness,double);
00109 void SetPhiRoundness(double e);
00111
00113
00115 vtkGetMacro(ThetaRoundness,double);
00116 void SetThetaRoundness(double e);
00118
00120
00121 vtkSetMacro(Size,double);
00122 vtkGetMacro(Size,double);
00124
00126
00128 vtkBooleanMacro(Toroidal,int);
00129 vtkGetMacro(Toroidal,int);
00130 vtkSetMacro(Toroidal,int);
00132
00133 protected:
00134 vtkSuperquadricSource(int res=16);
00135 ~vtkSuperquadricSource() {};
00136
00137 int Toroidal;
00138 double Thickness;
00139 double Size;
00140 double PhiRoundness;
00141 double ThetaRoundness;
00142 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00143 double Center[3];
00144 double Scale[3];
00145 int ThetaResolution;
00146 int PhiResolution;
00147
00148 private:
00149 vtkSuperquadricSource(const vtkSuperquadricSource&);
00150 void operator=(const vtkSuperquadricSource&);
00151 };
00152
00153 #endif