24#ifndef _GEMA_INTERPOLATOR_H_
25#define _GEMA_INTERPOLATOR_H_
144enum class GmInterpolatorSubset {
205 Q_UNUSED(pointSet); Q_UNUSED(coord); Q_UNUSED(squaredDistances); Q_UNUSED(typeParam); Q_UNUSED(weights);
229 Q_UNUSED(pointSet); Q_UNUSED(typeParam);
265 static bool initInterpolators();
268 static int strToInterpolatorType(
QString str,
bool acceptsNo =
false);
Base interface for providing discontinuity geometry information for spatial indices.
Definition gmDiscontinuitySet.h:59
Base interface for FEM (finite element) mesh elements.
Definition gmElement.h:38
Basic interface for a set storing point cartesian coordinates. This set can be filled with points fro...
Definition gmInterpolatorCoordinateBindings.h:75
Interface for a coordinate set that stores Gauss point coordinates. Besides returning coordinates,...
Definition gmInterpolatorCoordinateBindings.h:176
Interpolator class used for managing available interpolator algorithms and providing basic support fu...
Definition gmInterpolator.h:245
const GmInterpolatorObject * _interp
The interpolator object for the requested interpolation type. NULL if this interpolator is invalid.
Definition gmInterpolator.h:291
const GmValueAccessor * _coordAc
The accessor for node coordinates.
Definition gmInterpolator.h:293
const GmInterpolatorObject * interpolatorObject() const
Returns the interpolator object used by this interpolator.
Definition gmInterpolator.h:257
const GmMesh * _mesh
The mesh containing the source data points. Can be NULL since it is required by only some interpolato...
Definition gmInterpolator.h:294
const GmMesh * mesh() const
Returns the mesh associated with this interpolator. Can be NULL.
Definition gmInterpolator.h:260
bool isValid() const
Is this a valid object? Invalid objects can arise, for example, if the interpolator type given in the...
Definition gmInterpolator.h:254
QVariant _interpParam
The interpolator parameter received on the constructor.
Definition gmInterpolator.h:292
QString interpolatorTypeToStr() const
Returns a string representing the interpolator object.
Definition gmInterpolator.h:263
virtual ~GmInterpolator()
Virtual destructor.
Definition gmInterpolator.h:248
Interface class for the implementation of each of the possible interpolation algorithms available in ...
Definition gmInterpolator.h:156
GmInterpolatorObject()
Protected default constructor to make sure that Interpolator objects are created only by the GmInterp...
Definition gmInterpolator.h:238
virtual bool supportsInterpolatorKind(GmInterpolatorKind kind) const =0
Returns whether this interpolator object supports the given interpolator kind or not.
virtual bool requiresElement() const
Does this interpolator object requires that the coordinate set provided to interpolationWeights() con...
Definition gmInterpolator.h:174
virtual GmInterpolatorType type() const =0
Returns the interpolator object type.
virtual bool typeParamIsValid(const QVariant &v) const
Is the given interpolator type parameter valid? The default implementation accepts only empty variant...
Definition gmInterpolator.h:162
virtual bool distanceBasedWeights(GmInterpolatorCoordinateSetBinding *pointSet, const GmVector &coord, const GmVector &squaredDistances, const QVariant &typeParam, GmVector &weights) const
Worker function for the default implementation of interpolationWeights(). This is the function that n...
Definition gmInterpolator.h:201
virtual bool requiresNaturalCoordinates() const
Does this interpolator object requires that the coordinate passed as parameter to interpolationWeight...
Definition gmInterpolator.h:186
virtual bool requiresMesh() const
Does this interpolator object requires that the coordinate set provided to interpolationWeights() con...
Definition gmInterpolator.h:180
virtual QString typeParamToStr(const QVariant &v) const
Converts an interpolator type parameter to a string.
Definition gmInterpolator.h:165
virtual const GmMatrix & gaussToNodesExtrapolationMatrix(GmInterpolatorGaussCoordinateSetBinding *pointSet, const QVariant &typeParam, GmMatrix &weights) const
Basic function for returning the extrapolation matrix used by the GM_GAUSS_TO_NODE_INTERPOLATOR inter...
Definition gmInterpolator.h:226
Binding class used to provide the coordinate of the interpolated point, either in cartesian or natura...
Definition gmInterpolatorCoordinateBindings.h:598
Binding class used to host the data structure where calculated interpolated values will be stored....
Definition gmInterpolatorOutputBindings.h:43
Binding class used to host the data structure where calculated interpolated values will be stored for...
Definition gmInterpolatorOutputBindings.h:261
Class representing a category with multiple logging levels.
Definition gmLog.h:58
Base interface class for Mesh type plugins.
Definition gmMesh.h:48
Class responsible for managing discovery and loading of plugins.
Definition gmPluginLoader.h:43
Interface class for accessing and setting values from an "indexable" collection of values.
Definition gmValueAccessor.h:60
Declaration of useful configuration definitions for the Core library.
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35
GmInterpolatorType
Available interpolation methods. Not every method is suitable for every kind of interpolator class....
Definition gmInterpolator.h:64
@ GM_MLS_INTERPOLATOR
Interpolated value is based on the moving least squares method. A method parameter specifies the RBF ...
Definition gmInterpolator.h:103
@ GM_DEFAULT_INTERPOLATOR
Interpolation should be done using the default method for the interpolator object.
Definition gmInterpolator.h:134
@ GM_IDW_INTERPOLATOR
Interpolated value is the average of the known values weighted by inverse distance from the interpola...
Definition gmInterpolator.h:90
@ GM_SHAPE_INTERPOLATOR
Interpolated value is found by using the elements shape function.
Definition gmInterpolator.h:113
@ GM_LSHAPE_INTERPOLATOR
Interpolated value is found by using the elements equivalent linear shape function....
Definition gmInterpolator.h:124
@ GM_NO_INTERPOLATOR
No interpolation needed. Not valid to construct an interpolator object but useful when defining user ...
Definition gmInterpolator.h:133
@ GM_NN_INTERPOLATOR
Interpolated value is equal to the value of the closest known value from the interpolation point....
Definition gmInterpolator.h:77
@ GM_NUM_INTERPOLATORS
The number of available interpolators.
Definition gmInterpolator.h:132
GmInterpolatorKind
Enum identifying the types of available interpolation classes.
Definition gmInterpolator.h:49
@ GM_GAUSS_TO_NODE_INTERPOLATOR_H
Classes for interpolating values in Gauss points to hierarchical element nodes.
Definition gmInterpolator.h:54
@ GM_POINTCLOUD_TO_POINT_INTERPOLATOR
Classes for interpolating values in a point cloud to another point.
Definition gmInterpolator.h:53
@ GM_GAUSS_TO_NODE_INTERPOLATOR
Classes for interpolating values in Gauss points to element nodes.
Definition gmInterpolator.h:51
@ GM_NODE_TO_POINT_INTERPOLATOR
Classes for interpolating values in cell nodes to points inside the cell.
Definition gmInterpolator.h:50
@ GM_GAUSS_TO_POINT_INTERPOLATOR
Classes for interpolating values in Gauss points to element points.
Definition gmInterpolator.h:52
GmLogLevel
Available log levels list.
Definition gmLog.h:36
Declaration of the GmMatrix class.
arma::mat GmMatrix
The basic type for a GeMA matrix object. Currently based on an Armadillo matrix.
Definition gmMatrix.h:38
Declaration of the GmVector class.
arma::vec GmVector
The basic type for a GeMA vector object. Currently based on an Armadillo vector.
Definition gmVector.h:34
QString tr(const char *sourceText, const char *disambiguation, int n)
bool isValid() const const