VTK  9.1.0
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
81class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
82{
83public:
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
259protected:
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
283private:
285 void operator=(const vtkParametricFunction&) = delete;
286};
287
288#endif
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract base class for most VTK objects
Definition: vtkObject.h:73
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