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 "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 vtkSetMacro(JoinU,int); 00131 vtkGetMacro(JoinU,int); 00132 vtkBooleanMacro(JoinU,int); 00134 00136 00137 vtkSetMacro(JoinV,int); 00138 vtkGetMacro(JoinV,int); 00139 vtkBooleanMacro(JoinV,int); 00141 00143 00146 vtkSetMacro(TwistU,int); 00147 vtkGetMacro(TwistU,int); 00148 vtkBooleanMacro(TwistU,int); 00150 00152 00155 vtkSetMacro(TwistV,int); 00156 vtkGetMacro(TwistV,int); 00157 vtkBooleanMacro(TwistV,int); 00159 00161 00167 vtkSetMacro(ClockwiseOrdering,int); 00168 vtkGetMacro(ClockwiseOrdering,int); 00169 vtkBooleanMacro(ClockwiseOrdering,int); 00171 00173 00176 vtkSetMacro(DerivativesAvailable,int); 00177 vtkGetMacro(DerivativesAvailable,int); 00178 vtkBooleanMacro(DerivativesAvailable,int); 00180 00181 protected: 00182 vtkParametricFunction(); 00183 virtual ~vtkParametricFunction(); 00184 00185 // Variables 00186 double MinimumU; 00187 double MaximumU; 00188 double MinimumV; 00189 double MaximumV; 00190 double MinimumW; 00191 double MaximumW; 00192 00193 int JoinU; 00194 int JoinV; 00195 int JoinW; 00196 00197 int TwistU; 00198 int TwistV; 00199 int TwistW; 00200 00201 int ClockwiseOrdering; 00202 00203 int DerivativesAvailable; 00204 00205 private: 00206 vtkParametricFunction(const vtkParametricFunction&); // Not implemented. 00207 void operator=(const vtkParametricFunction&); // Not implemented. 00208 00209 }; 00210 00211 #endif