00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkParametricMobius.h,v $ 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 =========================================================================*/ 00033 #ifndef __vtkParametricMobius_h 00034 #define __vtkParametricMobius_h 00035 00036 #include "vtkParametricFunction.h" 00037 00038 class VTK_COMMON_EXPORT vtkParametricMobius : public vtkParametricFunction 00039 { 00040 public: 00041 vtkTypeRevisionMacro(vtkParametricMobius,vtkParametricFunction); 00042 void PrintSelf(ostream& os, vtkIndent indent); 00043 00048 static vtkParametricMobius *New(); 00049 00051 00052 vtkSetMacro(Radius,double); 00053 vtkGetMacro(Radius,double); 00055 00057 virtual int GetDimension() {return 2;} 00058 00064 virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]); 00065 00074 virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]); 00075 00076 protected: 00077 vtkParametricMobius(); 00078 ~vtkParametricMobius(); 00079 00080 // Variables 00081 double Radius; 00082 00083 private: 00084 vtkParametricMobius(const vtkParametricMobius&); // Not implemented. 00085 void operator=(const vtkParametricMobius&); // Not implemented. 00086 }; 00087 00088 #endif