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
44 #ifndef vtkParametricFunction_h
45 #define vtkParametricFunction_h
46 
47 #include "vtkCommonComputationalGeometryModule.h" // For export macro
48 #include "vtkObject.h"
49 
50 VTK_ABI_NAMESPACE_BEGIN
51 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
52 {
53 public:
55  void PrintSelf(ostream& os, vtkIndent indent) override;
56 
65  virtual int GetDimension() = 0;
66 
79  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) = 0;
80 
90  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) = 0;
91 
93 
96  vtkSetMacro(MinimumU, double);
97  vtkGetMacro(MinimumU, double);
99 
101 
104  vtkSetMacro(MaximumU, double);
105  vtkGetMacro(MaximumU, double);
107 
109 
112  vtkSetMacro(MinimumV, double);
113  vtkGetMacro(MinimumV, double);
115 
117 
120  vtkSetMacro(MaximumV, double);
121  vtkGetMacro(MaximumV, double);
123 
125 
128  vtkSetMacro(MinimumW, double);
129  vtkGetMacro(MinimumW, double);
131 
133 
136  vtkSetMacro(MaximumW, double);
137  vtkGetMacro(MaximumW, double);
139 
141 
144  vtkSetClampMacro(JoinU, vtkTypeBool, 0, 1);
145  vtkGetMacro(JoinU, vtkTypeBool);
146  vtkBooleanMacro(JoinU, vtkTypeBool);
148 
150 
153  vtkSetClampMacro(JoinV, vtkTypeBool, 0, 1);
154  vtkGetMacro(JoinV, vtkTypeBool);
155  vtkBooleanMacro(JoinV, vtkTypeBool);
157 
159 
162  vtkSetClampMacro(JoinW, vtkTypeBool, 0, 1);
163  vtkGetMacro(JoinW, vtkTypeBool);
164  vtkBooleanMacro(JoinW, vtkTypeBool);
166 
168 
174  vtkSetClampMacro(TwistU, vtkTypeBool, 0, 1);
175  vtkGetMacro(TwistU, vtkTypeBool);
176  vtkBooleanMacro(TwistU, vtkTypeBool);
178 
180 
186  vtkSetClampMacro(TwistV, vtkTypeBool, 0, 1);
187  vtkGetMacro(TwistV, vtkTypeBool);
188  vtkBooleanMacro(TwistV, vtkTypeBool);
190 
192 
198  vtkSetClampMacro(TwistW, vtkTypeBool, 0, 1);
199  vtkGetMacro(TwistW, vtkTypeBool);
200  vtkBooleanMacro(TwistW, vtkTypeBool);
202 
204 
213  vtkSetClampMacro(ClockwiseOrdering, vtkTypeBool, 0, 1);
214  vtkGetMacro(ClockwiseOrdering, vtkTypeBool);
215  vtkBooleanMacro(ClockwiseOrdering, vtkTypeBool);
217 
219 
224  vtkSetClampMacro(DerivativesAvailable, vtkTypeBool, 0, 1);
225  vtkGetMacro(DerivativesAvailable, vtkTypeBool);
226  vtkBooleanMacro(DerivativesAvailable, vtkTypeBool);
228 
229 protected:
232 
233  // Variables
234  double MinimumU;
235  double MaximumU;
236  double MinimumV;
237  double MaximumV;
238  double MinimumW;
239  double MaximumW;
240 
244 
248 
250 
252 
253 private:
255  void operator=(const vtkParametricFunction&) = delete;
256 };
257 
258 VTK_ABI_NAMESPACE_END
259 #endif
a simple class to control print indentation
Definition: vtkIndent.h:29
abstract base class for most VTK objects
Definition: vtkObject.h:52
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