VTK  9.3.0
vtkParametricFunction.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
53 #ifndef vtkParametricFunction_h
54 #define vtkParametricFunction_h
55 
56 #include "vtkCommonComputationalGeometryModule.h" // For export macro
57 #include "vtkObject.h"
58 
59 VTK_ABI_NAMESPACE_BEGIN
60 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
61 {
62 public:
64  void PrintSelf(ostream& os, vtkIndent indent) override;
65 
74  virtual int GetDimension() = 0;
75 
88  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) = 0;
89 
99  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) = 0;
100 
102 
105  vtkSetMacro(MinimumU, double);
106  vtkGetMacro(MinimumU, double);
108 
110 
113  vtkSetMacro(MaximumU, double);
114  vtkGetMacro(MaximumU, double);
116 
118 
121  vtkSetMacro(MinimumV, double);
122  vtkGetMacro(MinimumV, double);
124 
126 
129  vtkSetMacro(MaximumV, double);
130  vtkGetMacro(MaximumV, double);
132 
134 
137  vtkSetMacro(MinimumW, double);
138  vtkGetMacro(MinimumW, double);
140 
142 
145  vtkSetMacro(MaximumW, double);
146  vtkGetMacro(MaximumW, double);
148 
150 
153  vtkSetClampMacro(JoinU, vtkTypeBool, 0, 1);
154  vtkGetMacro(JoinU, vtkTypeBool);
155  vtkBooleanMacro(JoinU, vtkTypeBool);
157 
159 
162  vtkSetClampMacro(JoinV, vtkTypeBool, 0, 1);
163  vtkGetMacro(JoinV, vtkTypeBool);
164  vtkBooleanMacro(JoinV, vtkTypeBool);
166 
168 
171  vtkSetClampMacro(JoinW, vtkTypeBool, 0, 1);
172  vtkGetMacro(JoinW, vtkTypeBool);
173  vtkBooleanMacro(JoinW, vtkTypeBool);
175 
177 
183  vtkSetClampMacro(TwistU, vtkTypeBool, 0, 1);
184  vtkGetMacro(TwistU, vtkTypeBool);
185  vtkBooleanMacro(TwistU, vtkTypeBool);
187 
189 
195  vtkSetClampMacro(TwistV, vtkTypeBool, 0, 1);
196  vtkGetMacro(TwistV, vtkTypeBool);
197  vtkBooleanMacro(TwistV, vtkTypeBool);
199 
201 
207  vtkSetClampMacro(TwistW, vtkTypeBool, 0, 1);
208  vtkGetMacro(TwistW, vtkTypeBool);
209  vtkBooleanMacro(TwistW, vtkTypeBool);
211 
213 
222  vtkSetClampMacro(ClockwiseOrdering, vtkTypeBool, 0, 1);
223  vtkGetMacro(ClockwiseOrdering, vtkTypeBool);
224  vtkBooleanMacro(ClockwiseOrdering, vtkTypeBool);
226 
228 
233  vtkSetClampMacro(DerivativesAvailable, vtkTypeBool, 0, 1);
234  vtkGetMacro(DerivativesAvailable, vtkTypeBool);
235  vtkBooleanMacro(DerivativesAvailable, vtkTypeBool);
237 
238 protected:
241 
242  // Variables
243  double MinimumU;
244  double MaximumU;
245  double MinimumV;
246  double MaximumV;
247  double MinimumW;
248  double MaximumW;
249 
253 
257 
259 
261 
262 private:
264  void operator=(const vtkParametricFunction&) = delete;
265 };
266 
267 VTK_ABI_NAMESPACE_END
268 #endif
a simple class to control print indentation
Definition: vtkIndent.h:38
abstract base class for most VTK objects
Definition: vtkObject.h:61
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:64