VTK  9.2.5
vtkParametricFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkParametricFunction.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
75 #ifndef vtkParametricFunction_h
76 #define vtkParametricFunction_h
77 
78 #include "vtkCommonComputationalGeometryModule.h" // For export macro
79 #include "vtkObject.h"
80 
81 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
82 {
83 public:
85  void PrintSelf(ostream& os, vtkIndent indent) override;
86 
95  virtual int GetDimension() = 0;
96 
109  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) = 0;
110 
120  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) = 0;
121 
123 
126  vtkSetMacro(MinimumU, double);
127  vtkGetMacro(MinimumU, double);
129 
131 
134  vtkSetMacro(MaximumU, double);
135  vtkGetMacro(MaximumU, double);
137 
139 
142  vtkSetMacro(MinimumV, double);
143  vtkGetMacro(MinimumV, double);
145 
147 
150  vtkSetMacro(MaximumV, double);
151  vtkGetMacro(MaximumV, double);
153 
155 
158  vtkSetMacro(MinimumW, double);
159  vtkGetMacro(MinimumW, double);
161 
163 
166  vtkSetMacro(MaximumW, double);
167  vtkGetMacro(MaximumW, double);
169 
171 
174  vtkSetClampMacro(JoinU, vtkTypeBool, 0, 1);
175  vtkGetMacro(JoinU, vtkTypeBool);
176  vtkBooleanMacro(JoinU, vtkTypeBool);
178 
180 
183  vtkSetClampMacro(JoinV, vtkTypeBool, 0, 1);
184  vtkGetMacro(JoinV, vtkTypeBool);
185  vtkBooleanMacro(JoinV, vtkTypeBool);
187 
189 
192  vtkSetClampMacro(JoinW, vtkTypeBool, 0, 1);
193  vtkGetMacro(JoinW, vtkTypeBool);
194  vtkBooleanMacro(JoinW, vtkTypeBool);
196 
198 
204  vtkSetClampMacro(TwistU, vtkTypeBool, 0, 1);
205  vtkGetMacro(TwistU, vtkTypeBool);
206  vtkBooleanMacro(TwistU, vtkTypeBool);
208 
210 
216  vtkSetClampMacro(TwistV, vtkTypeBool, 0, 1);
217  vtkGetMacro(TwistV, vtkTypeBool);
218  vtkBooleanMacro(TwistV, vtkTypeBool);
220 
222 
228  vtkSetClampMacro(TwistW, vtkTypeBool, 0, 1);
229  vtkGetMacro(TwistW, vtkTypeBool);
230  vtkBooleanMacro(TwistW, vtkTypeBool);
232 
234 
243  vtkSetClampMacro(ClockwiseOrdering, vtkTypeBool, 0, 1);
244  vtkGetMacro(ClockwiseOrdering, vtkTypeBool);
245  vtkBooleanMacro(ClockwiseOrdering, vtkTypeBool);
247 
249 
254  vtkSetClampMacro(DerivativesAvailable, vtkTypeBool, 0, 1);
255  vtkGetMacro(DerivativesAvailable, vtkTypeBool);
256  vtkBooleanMacro(DerivativesAvailable, vtkTypeBool);
258 
259 protected:
262 
263  // Variables
264  double MinimumU;
265  double MaximumU;
266  double MinimumV;
267  double MaximumV;
268  double MinimumW;
269  double MaximumW;
270 
274 
278 
280 
282 
283 private:
285  void operator=(const vtkParametricFunction&) = delete;
286 };
287 
288 #endif
a simple class to control print indentation
Definition: vtkIndent.h:119
abstract base class for most VTK objects
Definition: vtkObject.h:82
abstract interface for parametric functions
virtual int GetDimension()=0
Return the dimension of parametric space.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9])=0
Performs the mapping $f(uvw)->(Pt,Duvw)$f.
~vtkParametricFunction() override
virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9])=0
Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
int vtkTypeBool
Definition: vtkABI.h:69