00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00042 #ifndef __vtkParametricSuperEllipsoid_h
00043 #define __vtkParametricSuperEllipsoid_h
00044
00045 #include "vtkParametricFunction.h"
00046
00047 class VTK_COMMON_EXPORT vtkParametricSuperEllipsoid : public vtkParametricFunction
00048 {
00049 public:
00050 vtkTypeMacro(vtkParametricSuperEllipsoid,vtkParametricFunction);
00051 void PrintSelf(ostream& os, vtkIndent indent);
00052
00058 static vtkParametricSuperEllipsoid *New();
00059
00061 virtual int GetDimension() {return 2;}
00062
00064
00065 vtkSetMacro(XRadius,double);
00066 vtkGetMacro(XRadius,double);
00068
00070
00071 vtkSetMacro(YRadius,double);
00072 vtkGetMacro(YRadius,double);
00074
00076
00077 vtkSetMacro(ZRadius,double);
00078 vtkGetMacro(ZRadius,double);
00080
00082
00083 vtkSetMacro(N1,double);
00084 vtkGetMacro(N1,double);
00086
00088
00089 vtkSetMacro(N2,double);
00090 vtkGetMacro(N2,double);
00092
00098 virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
00099
00108 virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
00109
00110 protected:
00111 vtkParametricSuperEllipsoid();
00112 ~vtkParametricSuperEllipsoid();
00113
00114
00115 double XRadius;
00116 double YRadius;
00117 double ZRadius;
00118 double N1;
00119 double N2;
00120
00121 private:
00122 vtkParametricSuperEllipsoid(const vtkParametricSuperEllipsoid&);
00123 void operator=(const vtkParametricSuperEllipsoid&);
00124
00126 double Power ( double x, double n );
00127
00128 };
00129
00130 #endif