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 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