00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00046 #ifndef __vtkParametricSuperToroid_h
00047 #define __vtkParametricSuperToroid_h
00048
00049 #include "vtkParametricFunction.h"
00050
00051 class VTK_COMMON_EXPORT vtkParametricSuperToroid : public vtkParametricFunction
00052 {
00053 public:
00054 vtkTypeRevisionMacro(vtkParametricSuperToroid,vtkParametricFunction);
00055 void PrintSelf(ostream& os, vtkIndent indent);
00056
00062 static vtkParametricSuperToroid *New();
00063
00065 virtual int GetDimension() {return 2;}
00066
00068
00070 vtkSetMacro(RingRadius,double);
00071 vtkGetMacro(RingRadius,double);
00073
00075
00077 vtkSetMacro(CrossSectionRadius,double);
00078 vtkGetMacro(CrossSectionRadius,double);
00080
00082
00083 vtkSetMacro(XRadius,double);
00084 vtkGetMacro(XRadius,double);
00086
00088
00089 vtkSetMacro(YRadius,double);
00090 vtkGetMacro(YRadius,double);
00092
00094
00095 vtkSetMacro(ZRadius,double);
00096 vtkGetMacro(ZRadius,double);
00098
00100
00101 vtkSetMacro(N1,double);
00102 vtkGetMacro(N1,double);
00104
00106
00107 vtkSetMacro(N2,double);
00108 vtkGetMacro(N2,double);
00110
00116 virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
00117
00126 virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
00127
00128 protected:
00129 vtkParametricSuperToroid();
00130 ~vtkParametricSuperToroid();
00131
00132
00133 double RingRadius;
00134 double CrossSectionRadius;
00135 double XRadius;
00136 double YRadius;
00137 double ZRadius;
00138 double N1;
00139 double N2;
00140
00141 private:
00142 vtkParametricSuperToroid(const vtkParametricSuperToroid&);
00143 void operator=(const vtkParametricSuperToroid&);
00144
00146 double Power ( double x, double n );
00147
00148 };
00149
00150 #endif
00151