VTK
|
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 "vtkObject.h" 00059 00060 class VTK_COMMON_EXPORT vtkParametricFunction : public vtkObject 00061 { 00062 public: 00063 vtkTypeMacro(vtkParametricFunction, vtkObject); 00064 void PrintSelf(ostream& os, vtkIndent indent); 00065 00071 virtual int GetDimension() = 0; 00072 00081 virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) = 0; 00082 00088 virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) = 0; 00089 00091 00092 vtkSetMacro(MinimumU,double); 00093 vtkGetMacro(MinimumU,double); 00095 00097 00098 vtkSetMacro(MaximumU,double); 00099 vtkGetMacro(MaximumU,double); 00101 00103 00104 vtkSetMacro(MinimumV,double); 00105 vtkGetMacro(MinimumV,double); 00107 00109 00110 vtkSetMacro(MaximumV,double); 00111 vtkGetMacro(MaximumV,double); 00113 00115 00116 vtkSetMacro(MinimumW,double); 00117 vtkGetMacro(MinimumW,double); 00119 00121 00122 vtkSetMacro(MaximumW,double); 00123 vtkGetMacro(MaximumW,double); 00125 00127 00129 vtkSetMacro(JoinU,int); 00130 vtkGetMacro(JoinU,int); 00131 vtkBooleanMacro(JoinU,int); 00133 00135 00136 vtkSetMacro(JoinV,int); 00137 vtkGetMacro(JoinV,int); 00138 vtkBooleanMacro(JoinV,int); 00140 00142 00145 vtkSetMacro(TwistU,int); 00146 vtkGetMacro(TwistU,int); 00147 vtkBooleanMacro(TwistU,int); 00149 00151 00154 vtkSetMacro(TwistV,int); 00155 vtkGetMacro(TwistV,int); 00156 vtkBooleanMacro(TwistV,int); 00158 00160 00166 vtkSetMacro(ClockwiseOrdering,int); 00167 vtkGetMacro(ClockwiseOrdering,int); 00168 vtkBooleanMacro(ClockwiseOrdering,int); 00170 00172 00175 vtkSetMacro(DerivativesAvailable,int); 00176 vtkGetMacro(DerivativesAvailable,int); 00177 vtkBooleanMacro(DerivativesAvailable,int); 00179 00180 protected: 00181 vtkParametricFunction(); 00182 virtual ~vtkParametricFunction(); 00183 00184 // Variables 00185 double MinimumU; 00186 double MaximumU; 00187 double MinimumV; 00188 double MaximumV; 00189 double MinimumW; 00190 double MaximumW; 00191 00192 int JoinU; 00193 int JoinV; 00194 int JoinW; 00195 00196 int TwistU; 00197 int TwistV; 00198 int TwistW; 00199 00200 int ClockwiseOrdering; 00201 00202 int DerivativesAvailable; 00203 00204 private: 00205 vtkParametricFunction(const vtkParametricFunction&); // Not implemented. 00206 void operator=(const vtkParametricFunction&); // Not implemented. 00207 00208 }; 00209 00210 #endif