VTK  9.3.20240328
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
63 #ifndef vtkParametricFunction_h
64 #define vtkParametricFunction_h
65 
66 #include "vtkCommonComputationalGeometryModule.h" // For export macro
67 #include "vtkObject.h"
68 
69 VTK_ABI_NAMESPACE_BEGIN
70 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
71 {
72 public:
74  void PrintSelf(ostream& os, vtkIndent indent) override;
75 
84  virtual int GetDimension() = 0;
85 
98  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) = 0;
99 
109  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) = 0;
110 
112 
115  vtkSetMacro(MinimumU, double);
116  vtkGetMacro(MinimumU, double);
118 
120 
123  vtkSetMacro(MaximumU, double);
124  vtkGetMacro(MaximumU, double);
126 
128 
131  vtkSetMacro(MinimumV, double);
132  vtkGetMacro(MinimumV, double);
134 
136 
139  vtkSetMacro(MaximumV, double);
140  vtkGetMacro(MaximumV, double);
142 
144 
147  vtkSetMacro(MinimumW, double);
148  vtkGetMacro(MinimumW, double);
150 
152 
155  vtkSetMacro(MaximumW, double);
156  vtkGetMacro(MaximumW, double);
158 
160 
163  vtkSetClampMacro(JoinU, vtkTypeBool, 0, 1);
164  vtkGetMacro(JoinU, vtkTypeBool);
165  vtkBooleanMacro(JoinU, vtkTypeBool);
167 
169 
172  vtkSetClampMacro(JoinV, vtkTypeBool, 0, 1);
173  vtkGetMacro(JoinV, vtkTypeBool);
174  vtkBooleanMacro(JoinV, vtkTypeBool);
176 
178 
181  vtkSetClampMacro(JoinW, vtkTypeBool, 0, 1);
182  vtkGetMacro(JoinW, vtkTypeBool);
183  vtkBooleanMacro(JoinW, vtkTypeBool);
185 
187 
193  vtkSetClampMacro(TwistU, vtkTypeBool, 0, 1);
194  vtkGetMacro(TwistU, vtkTypeBool);
195  vtkBooleanMacro(TwistU, vtkTypeBool);
197 
199 
205  vtkSetClampMacro(TwistV, vtkTypeBool, 0, 1);
206  vtkGetMacro(TwistV, vtkTypeBool);
207  vtkBooleanMacro(TwistV, vtkTypeBool);
209 
211 
217  vtkSetClampMacro(TwistW, vtkTypeBool, 0, 1);
218  vtkGetMacro(TwistW, vtkTypeBool);
219  vtkBooleanMacro(TwistW, vtkTypeBool);
221 
223 
232  vtkSetClampMacro(ClockwiseOrdering, vtkTypeBool, 0, 1);
233  vtkGetMacro(ClockwiseOrdering, vtkTypeBool);
234  vtkBooleanMacro(ClockwiseOrdering, vtkTypeBool);
236 
238 
243  vtkSetClampMacro(DerivativesAvailable, vtkTypeBool, 0, 1);
244  vtkGetMacro(DerivativesAvailable, vtkTypeBool);
245  vtkBooleanMacro(DerivativesAvailable, vtkTypeBool);
247 
248 protected:
251 
252  // Variables
253  double MinimumU;
254  double MaximumU;
255  double MinimumV;
256  double MaximumV;
257  double MinimumW;
258  double MaximumW;
259 
263 
267 
269 
271 
272 private:
274  void operator=(const vtkParametricFunction&) = delete;
275 };
276 
277 VTK_ABI_NAMESPACE_END
278 #endif
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:161
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