![]() |
ICF 3.0.5.47
Technical documentation of ICF Libraries
|
Spline interpolation function using polynomial 3 degree segments. More...
#include <TSplineGridFunctionBase.h>
Public Types | |
typedef TFulcrumGridFunctionBase< Argument, Result, Fulcrums > | BaseClass |
typedef Degree | DerivativeDegreeType |
![]() | |
typedef TFulcrumGrid< Argument, Fulcrums > | BaseClass |
typedef istd::TCachedUpdateManagerWrap< iser::ISerializable > | BaseClass2 |
typedef TIMathFunction< Argument, Result > | BaseClass3 |
typedef TIMathFunction< Argument, Result >::ArgumentType | ArgumentType |
![]() | |
enum | ChangeFlags |
Data model change notification flags. More... | |
typedef Fulcrums::ElementType | FulcrumType |
typedef Fulcrums::IndexType | FulcrumIndex |
typedef Fulcrums::SizesType | FulcrumSizes |
typedef Argument | PositionType |
![]() | |
enum | ChangeFlags { CF_ICF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING , CF_DELEGATED , CF_NO_UNDO } |
Data model change notification flags. More... | |
enum | SupportedOperations { SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 , SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4 , SO_CHANGE_LOCK = 1 << 5 } |
Flags for supported operations. More... | |
enum | CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT } |
Control how relationship betweeen objects are interpreted. More... | |
![]() | |
typedef iser::ISerializable | BaseClass |
![]() | |
typedef Argument | ArgumentType |
typedef Result | ResultType |
Public Member Functions | |
virtual bool | GetValueAt (const Argument &argument, Result &result) const |
Get function value for specified argument value. | |
virtual Result | GetValueAt (const Argument &argument) const |
Get function value for specified argument value. | |
![]() | |
TFulcrumGrid () | |
void | Reset () |
Removes all fulcrum points. | |
FulcrumSizes | GetGridSize () const |
Return complete grid size. | |
int | GetDimensionsCount () const |
Get number of dimensions. | |
virtual bool | SetDimensionsCount (int count) |
Set number of dimensions. | |
int | GetLayersCount (int dimension) const |
Get number of fulcrum points used in this function. | |
virtual void | SetLayersCount (int dimension, int count) |
Set number of fulcrum layers at specified dimension. | |
double | GetLayerPosition (int dimension, int layerIndex) const |
Get position of specified layer of fulcrums. | |
virtual void | SetLayerPosition (int dimension, int layerIndex, double position) |
Set position of specified layer of fulcrums. | |
void | GetFulcrumPosition (const FulcrumIndex &index, PositionType &result) const |
Get position of node at specified grid index. | |
const FulcrumType & | GetFulcrumAtIndex (const FulcrumIndex &index) const |
Get value at specified index. | |
virtual void | SetFulcrumAtIndex (const FulcrumIndex &index, const FulcrumType &value) |
Set single fulcrum point. | |
int | InsertLayer (int dimension, double position) |
Inserts single fulcrum layer. | |
virtual void | RemoveLayer (int dimension, int layerIndex) |
Remove fulcrums at spacified layer. | |
virtual bool | Serialize (iser::IArchive &archive) |
Load or store state of this object as a archive stream. | |
bool | operator== (const TFulcrumGrid< Argument, Fulcrums > &value) const |
bool | operator!= (const TFulcrumGrid< Argument, Fulcrums > &value) const |
![]() | |
virtual quint32 | GetMinimalVersion (int versionId) const |
Get minimal needed version to correct storing of this data. | |
![]() | |
virtual int | GetSupportedOperations () const |
Get set of flags for supported operations. | |
virtual bool | CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) |
Copy this object from another one. | |
virtual bool | IsEqual (const IChangeable &object) const |
Compare this object with another object. | |
virtual std::unique_ptr< IChangeable > | CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const |
Make a copy of this object. | |
virtual bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) |
Reset data to its default state. | |
virtual QMutex * | GetChangesLock () const |
Get mutex beeing locked during changes, if available. | |
virtual void | BeginChangeGroup (const ChangeSet &changeSet) |
Starts group of changes. | |
virtual void | EndChangeGroup (const ChangeSet &changeSet) |
Ends group of changes. | |
![]() | |
TCachedUpdateManagerWrap () | |
virtual void | BeginChanges (const IChangeable::ChangeSet &changeSet) |
virtual void | EndChanges (const IChangeable::ChangeSet &changeSet) |
![]() |
Protected Member Functions | |
void | CumulateRecursiveValueAt (const Argument &argument, int dimension, const typename BaseClass::FulcrumSizes &sizes, typename BaseClass::FulcrumIndex &index, DerivativeDegreeType °ree, double cumulationFactor, Result &result) const |
Cumulate interpolated value or derivative at specified recursion level. | |
virtual const BaseClass::ResultType & | GetFulcrumDerivativeAtIndex (const typename BaseClass::FulcrumIndex &index, const DerivativeDegreeType °ree) const =0 |
Get derivative of specified degree at specified index position. | |
virtual bool | IsDerivativeDegreeSupported (const DerivativeDegreeType °ree) const =0 |
Check, if this or higher degree derrivatives are supported. | |
![]() | |
virtual bool | CalculateCache (const ChangeSet &changeSet) |
Calculate cache. | |
![]() | |
virtual void | SortFulcrums () |
Sort fulcrums in this collection. | |
int | FindLayerIndex (int dimension, double value) const |
Find layer index of specified value for specified dimension. | |
Fulcrums::IndexType | FindIndices (const PositionType &argument) const |
Find indices of cuboid containing specified argument value. | |
![]() | |
virtual void | OnBeginChanges () |
Callback function for begin change event. | |
virtual void | OnEndChanges (const ChangeSet &changeSet) |
Callback function for end change event. | |
![]() | |
bool | EnsureCacheValid () const |
Ensures cache is valid. | |
void | InvalidateCache (const IChangeable::ChangeSet &changeSet) |
Make cache invalid. | |
void | SetCacheValid () |
Say that cache is valid. | |
Additional Inherited Members | |
![]() | |
static const ChangeSet & | GetNoChanges () |
Get empty set of changes. | |
static const ChangeSet & | GetAnyChange () |
Get anonymous change set. | |
static const ChangeSet & | GetAllChanges () |
Get anonymous change set. | |
static const ChangeSet & | GetDelegatedChanges () |
Get delegated change set. | |
![]() | |
static const ChangeSet | s_fulcrumPositionChange |
Spline interpolation function using polynomial 3 degree segments.
To reduce number of coefficients only precalculated derrivative values for each fulcrum will be stored.
Argument | function argument type. |
Result | function result type. |
Fulcrums | array type used to stored fulcrums. |
Degree | type of object storing index of derivative degree. It should implement operator[] to access drivative degree for specified dimension. |
Definition at line 31 of file TSplineGridFunctionBase.h.
TFulcrumGridFunctionBase<Argument, Result, Fulcrums> imath::TSplineGridFunctionBase< Argument, Result, Fulcrums, Degree >::BaseClass |
Definition at line 34 of file TSplineGridFunctionBase.h.
Degree imath::TSplineGridFunctionBase< Argument, Result, Fulcrums, Degree >::DerivativeDegreeType |
Definition at line 36 of file TSplineGridFunctionBase.h.
|
protected |
Cumulate interpolated value or derivative at specified recursion level.
argument | position, where interpolation should be calculated. The elements with index less of equal dimension indicate non grid components (hard to explain). The other components should be taken from index. |
sizes | size fulcrum grid. |
dimension | working dimension and recursion level. |
index | multidimensional index pointing at cuboid element in fulcrum grid. The elements with index greater dimension indicate asked subspace in grid (hard to explain). For the sake of performance it is internal modified, but original state is reverted before this method returns. |
degree | derivative degree will be taken. For the sake of performance it is internal modified, but original state is reverted before this method returns. |
cumulationFactor | scaled factor for cumulation. |
result | object where values are cumulated. |
Definition at line 127 of file TSplineGridFunctionBase.h.
References imath::CSplineSegmentFunction::GetDerivativeKernelAt(), and imath::CSplineSegmentFunction::GetValueKernelAt().
|
protectedpure virtual |
Get derivative of specified degree at specified index position.
|
virtual |
Get function value for specified argument value.
This overloaded menthod is provided only for convinence.
argument | function argument. |
Implements imath::TIMathFunction< Argument, Result >.
Definition at line 114 of file TSplineGridFunctionBase.h.
|
virtual |
Get function value for specified argument value.
argument | function argument. |
result | function value for specified argument. |
Implements imath::TIMathFunction< Argument, Result >.
Definition at line 89 of file TSplineGridFunctionBase.h.
|
protectedpure virtual |
Check, if this or higher degree derrivatives are supported.
© Witold Gantzke and Kirill Lepskiy