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 "vtkCommonComputationalGeometryModule.h" // For export macro 00050 #include "vtkParametricFunction.h" 00051 00052 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSuperToroid : public vtkParametricFunction 00053 { 00054 public: 00055 vtkTypeMacro(vtkParametricSuperToroid,vtkParametricFunction); 00056 void PrintSelf(ostream& os, vtkIndent indent); 00057 00063 static vtkParametricSuperToroid *New(); 00064 00066 virtual int GetDimension() {return 2;} 00067 00069 00071 vtkSetMacro(RingRadius,double); 00072 vtkGetMacro(RingRadius,double); 00074 00076 00078 vtkSetMacro(CrossSectionRadius,double); 00079 vtkGetMacro(CrossSectionRadius,double); 00081 00083 00084 vtkSetMacro(XRadius,double); 00085 vtkGetMacro(XRadius,double); 00087 00089 00090 vtkSetMacro(YRadius,double); 00091 vtkGetMacro(YRadius,double); 00093 00095 00096 vtkSetMacro(ZRadius,double); 00097 vtkGetMacro(ZRadius,double); 00099 00101 00102 vtkSetMacro(N1,double); 00103 vtkGetMacro(N1,double); 00105 00107 00108 vtkSetMacro(N2,double); 00109 vtkGetMacro(N2,double); 00111 00117 virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]); 00118 00127 virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]); 00128 00129 protected: 00130 vtkParametricSuperToroid(); 00131 ~vtkParametricSuperToroid(); 00132 00133 // Variables 00134 double RingRadius; 00135 double CrossSectionRadius; 00136 double XRadius; 00137 double YRadius; 00138 double ZRadius; 00139 double N1; 00140 double N2; 00141 00142 private: 00143 vtkParametricSuperToroid(const vtkParametricSuperToroid&); // Not implemented. 00144 void operator=(const vtkParametricSuperToroid&); // Not implemented. 00145 00147 double Power ( double x, double n ); 00148 00149 }; 00150 00151 #endif 00152