You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.5 KiB
C
82 lines
2.5 KiB
C
3 weeks ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: vtkFunctionSet.h
|
||
|
|
||
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||
|
|
||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||
|
PURPOSE. See the above copyright notice for more information.
|
||
|
|
||
|
=========================================================================*/
|
||
|
/**
|
||
|
* @class vtkFunctionSet
|
||
|
* @brief Abstract interface for sets of functions
|
||
|
*
|
||
|
* vtkFunctionSet specifies an abstract interface for set of functions
|
||
|
* of the form F_i = F_i(x_j) where F (with i=1..m) are the functions
|
||
|
* and x (with j=1..n) are the independent variables.
|
||
|
* The only supported operation is the function evaluation at x_j.
|
||
|
*
|
||
|
* @sa
|
||
|
* vtkImplicitDataSet vtkInterpolatedVelocityField
|
||
|
* vtkInitialValueProblemSolver
|
||
|
*/
|
||
|
|
||
|
#ifndef vtkFunctionSet_h
|
||
|
#define vtkFunctionSet_h
|
||
|
|
||
|
#include "vtkCommonMathModule.h" // For export macro
|
||
|
#include "vtkObject.h"
|
||
|
|
||
|
class VTKCOMMONMATH_EXPORT vtkFunctionSet : public vtkObject
|
||
|
{
|
||
|
public:
|
||
|
vtkTypeMacro(vtkFunctionSet, vtkObject);
|
||
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
||
|
|
||
|
/**
|
||
|
* Evaluate functions at x_j.
|
||
|
* x and f have to point to valid double arrays of appropriate
|
||
|
* sizes obtained with GetNumberOfFunctions() and
|
||
|
* GetNumberOfIndependentVariables.
|
||
|
* If you inherit this class, make sure to reimplement at least one of the two
|
||
|
* FunctionValues signatures.
|
||
|
*/
|
||
|
virtual int FunctionValues(double* x, double* f) { return this->FunctionValues(x, f, nullptr); }
|
||
|
virtual int FunctionValues(double* x, double* f, void* vtkNotUsed(userData))
|
||
|
{
|
||
|
return this->FunctionValues(x, f);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return the number of functions. Note that this is constant for
|
||
|
* a given type of set of functions and can not be changed at
|
||
|
* run time.
|
||
|
*/
|
||
|
virtual int GetNumberOfFunctions() { return this->NumFuncs; }
|
||
|
|
||
|
/**
|
||
|
* Return the number of independent variables. Note that this is
|
||
|
* constant for a given type of set of functions and can not be changed
|
||
|
* at run time.
|
||
|
*/
|
||
|
virtual int GetNumberOfIndependentVariables() { return this->NumIndepVars; }
|
||
|
|
||
|
protected:
|
||
|
vtkFunctionSet();
|
||
|
~vtkFunctionSet() override {}
|
||
|
|
||
|
int NumFuncs;
|
||
|
int NumIndepVars;
|
||
|
|
||
|
private:
|
||
|
vtkFunctionSet(const vtkFunctionSet&) = delete;
|
||
|
void operator=(const vtkFunctionSet&) = delete;
|
||
|
};
|
||
|
|
||
|
#endif
|