VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkParametricSuperToroid.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 vtkTypeMacro(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 // Variables 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&); // Not implemented. 00143 void operator=(const vtkParametricSuperToroid&); // Not implemented. 00144 00146 double Power ( double x, double n ); 00147 00148 }; 00149 00150 #endif 00151