VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Common/ComputationalGeometry/vtkParametricFunction.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkParametricFunction.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 =========================================================================*/
00055 #ifndef vtkParametricFunction_h
00056 #define vtkParametricFunction_h
00057 
00058 #include "vtkCommonComputationalGeometryModule.h" // For export macro
00059 #include "vtkObject.h"
00060 
00061 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
00062 {
00063 public:
00064   vtkTypeMacro(vtkParametricFunction, vtkObject);
00065   void PrintSelf(ostream& os, vtkIndent indent);
00066 
00072   virtual int GetDimension() = 0;
00073 
00082   virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) = 0;
00083 
00089   virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) = 0;
00090 
00092 
00093   vtkSetMacro(MinimumU,double);
00094   vtkGetMacro(MinimumU,double);
00096 
00098 
00099   vtkSetMacro(MaximumU,double);
00100   vtkGetMacro(MaximumU,double);
00102 
00104 
00105   vtkSetMacro(MinimumV,double);
00106   vtkGetMacro(MinimumV,double);
00108 
00110 
00111   vtkSetMacro(MaximumV,double);
00112   vtkGetMacro(MaximumV,double);
00114 
00116 
00117   vtkSetMacro(MinimumW,double);
00118   vtkGetMacro(MinimumW,double);
00120 
00122 
00123   vtkSetMacro(MaximumW,double);
00124   vtkGetMacro(MaximumW,double);
00126 
00128 
00130   vtkSetClampMacro(JoinU,int,0,1);
00131   vtkGetMacro(JoinU,int);
00132   vtkBooleanMacro(JoinU,int);
00134 
00136 
00137   vtkSetClampMacro(JoinV, int, 0, 1);
00138   vtkGetMacro(JoinV, int);
00139   vtkBooleanMacro(JoinV, int);
00141 
00143 
00144   vtkSetClampMacro(JoinW, int, 0, 1);
00145   vtkGetMacro(JoinW, int);
00146   vtkBooleanMacro(JoinW, int);
00148 
00150 
00153   vtkSetClampMacro(TwistU,int,0,1);
00154   vtkGetMacro(TwistU,int);
00155   vtkBooleanMacro(TwistU,int);
00157 
00159 
00162   vtkSetClampMacro(TwistV, int, 0, 1);
00163   vtkGetMacro(TwistV, int);
00164   vtkBooleanMacro(TwistV, int);
00166 
00168 
00171   vtkSetClampMacro(TwistW, int, 0, 1);
00172   vtkGetMacro(TwistW, int);
00173   vtkBooleanMacro(TwistW, int);
00175 
00177 
00183   vtkSetClampMacro(ClockwiseOrdering,int,0,1);
00184   vtkGetMacro(ClockwiseOrdering,int);
00185   vtkBooleanMacro(ClockwiseOrdering,int);
00187 
00189 
00192   vtkSetClampMacro(DerivativesAvailable,int,0,1);
00193   vtkGetMacro(DerivativesAvailable,int);
00194   vtkBooleanMacro(DerivativesAvailable,int);
00196 
00197 protected:
00198   vtkParametricFunction();
00199   virtual ~vtkParametricFunction();
00200 
00201   // Variables
00202   double MinimumU;
00203   double MaximumU;
00204   double MinimumV;
00205   double MaximumV;
00206   double MinimumW;
00207   double MaximumW;
00208 
00209   int JoinU;
00210   int JoinV;
00211   int JoinW;
00212 
00213   int TwistU;
00214   int TwistV;
00215   int TwistW;
00216 
00217   int ClockwiseOrdering;
00218 
00219   int DerivativesAvailable;
00220 
00221 private:
00222   vtkParametricFunction(const vtkParametricFunction&);  // Not implemented.
00223   void operator=(const vtkParametricFunction&);  // Not implemented.
00224 
00225 };
00226 
00227 #endif