ACF $AcfVersion:0$
Public Types | Public Member Functions | List of all members
imath::CSampledFunction Class Reference

Implementation of 1D sampled function with uniform sampling grid. More...

#include <CSampledFunction.h>

Inheritance diagram for imath::CSampledFunction:
imath::ISampledFunction imath::TISampledFunction< 1, 1 > imath::TIMathFunction< istd::TIndex< ArgumentDimensions >, TVector< ResultDimensions > > istd::IChangeable istd::IPolymorphic istd::IPolymorphic icmm::CSpectrum

Public Types

typedef istd::TIndex< 1 > Index
 
- Public Types inherited from imath::TISampledFunction< 1, 1 >
typedef imath::TIMathFunction< istd::TIndex< ArgumentDimensions >, imath::TVector< ResultDimensions > > BaseClass
 
typedef BaseClass::ArgumentType ArgumentType
 
typedef BaseClass::ResultType ResultType
 
typedef istd::TIndex< ArgumentDimensions > SampleIndex
 
- Public Types inherited from imath::TIMathFunction< istd::TIndex< ArgumentDimensions >, TVector< ResultDimensions > >
typedef istd::TIndex< ArgumentDimensions > ArgumentType
 
typedef TVector< ResultDimensions > ResultType
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_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
}
 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 QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

 CSampledFunction ()
 
 CSampledFunction (const CSampledFunction &function)
 
 CSampledFunction (const imath::ISampledFunction &function)
 
 CSampledFunction (int size, double defaultValue=0)
 
bool operator== (const CSampledFunction &other) const
 
void Reset ()
 
bool Initialize (int size, double defaultValue=0)
 
double GetSampleValue (int index) const
 
void SetSampleValue (int index, double value)
 
void SetLogicalRange (const istd::CRange &logicalRange)
 
double GetSamplingStep () const
 
double GetSampleCoordinate (int index) const
 
virtual bool CreateFunction (double *dataPtr, const ArgumentType &sizes) override
 Create function from input data.
 
virtual int GetTotalSamplesCount () const override
 Get number of samples stored in this container.
 
virtual double GetSampleAt (const SampleIndex &index) const override
 Get sample value at the given index.
 
virtual int GetGridSize (int dimensionIndex) const override
 Get number of samples for specified dimension.
 
virtual istd::CRange GetLogicalRange (int dimensionIndex) const override
 Get logical range for the specified dimension.
 
virtual istd::CRange GetResultValueRange (int dimensionIndex, int resultDimension=-1) const override
 Get the range (boundary) of possible result values for the given axis.
 
virtual std::vector< double > GetSamples () const override
 Get all samples as a vector.
 
virtual bool GetValueAt (const ArgumentType &argument, ResultType &result) const override
 
virtual ResultType GetValueAt (const ArgumentType &argument) const override
 
virtual int GetSupportedOperations () const override
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
 
virtual bool IsEqual (const IChangeable &object) const override
 
virtual istd::IChangeableUniquePtr CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const override
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) override
 Reset data to its default state.
 
- Public Member Functions inherited from imath::ISampledFunction
double operator[] (int index) const
 
- Public Member Functions inherited from imath::TISampledFunction< 1, 1 >
virtual int GetArgumentDimensionality () const
 Get the number of argument components.
 
virtual int GetResultDimensionality () const
 Get the number of result components.
 
- Public Member Functions inherited from imath::TIMathFunction< istd::TIndex< ArgumentDimensions >, TVector< ResultDimensions > >
virtual bool GetValueAt (const istd::TIndex< ArgumentDimensions > &argument, TVector< ResultDimensions > &result) const=0
 Get function value for specified argument value.
 
virtual TVector< ResultDimensions > GetValueAt (const istd::TIndex< ArgumentDimensions > &argument) const=0
 Get function value for specified argument value.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from istd::IChangeable
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 void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Implementation of 1D sampled function with uniform sampling grid.

Purpose

CSampledFunction represents a one-dimensional function sampled at regular intervals over a logical domain. It stores function values at discrete sample points and provides interpolation for continuous evaluation. This class is fundamental for representing digitized signals, sensor data, lookup tables, and discretized mathematical functions.

Key Concepts

Usage Examples

// Create function with 100 samples
imath::CSampledFunction func(100, 0.0);
// Set logical range [0, 10]
func.SetLogicalRange(istd::CRange(0.0, 10.0));
// Fill with sine wave data
for (int i = 0; i < 100; ++i) {
double x = func.GetSampleCoordinate(i); // Get position in [0, 10]
func.SetSampleValue(i, qSin(x));
}
// Evaluate at arbitrary point (with interpolation)
double result;
if (func.GetValueAt(3.7, result)) {
// result contains interpolated value at x=3.7
}
// Get sampling information
double step = func.GetSamplingStep(); // 10.0 / 99 ~ 0.101
int count = func.GetTotalSamplesCount(); // 100
// Copy from another sampled function
func2.CopyFrom(func);
// Access raw samples
std::vector<double> samples = func.GetSamples();
Implementation of 1D sampled function with uniform sampling grid.
virtual bool CopyFrom(const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override

Sampled Function vs Interpolator

Use CSampledFunction when:

Implemented Interfaces

See also
imath::ISampledFunction, imath::CSampledFunction2d, imath::CLinearInterpolator, imath::CAkimaInterpolator

Definition at line 84 of file CSampledFunction.h.

Member Typedef Documentation

◆ Index

Definition at line 87 of file CSampledFunction.h.

Constructor & Destructor Documentation

◆ CSampledFunction() [1/4]

imath::CSampledFunction::CSampledFunction ( )

◆ CSampledFunction() [2/4]

imath::CSampledFunction::CSampledFunction ( const CSampledFunction function)

◆ CSampledFunction() [3/4]

imath::CSampledFunction::CSampledFunction ( const imath::ISampledFunction function)
explicit

◆ CSampledFunction() [4/4]

imath::CSampledFunction::CSampledFunction ( int  size,
double  defaultValue = 0 
)
explicit

Member Function Documentation

◆ CloneMe()

virtual istd::IChangeableUniquePtr imath::CSampledFunction::CloneMe ( CompatibilityMode  mode = CM_WITHOUT_REFS) const
overridevirtual

Make a copy of this object.

Returns
new instance or NULL, if this operation is not supported.

Reimplemented from istd::IChangeable.

Reimplemented in icmm::CSpectrum.

◆ CopyFrom()

virtual bool imath::CSampledFunction::CopyFrom ( const IChangeable &  object,
CompatibilityMode  mode = CM_WITHOUT_REFS 
)
overridevirtual

Reimplemented in icmm::CSpectrum.

◆ CreateFunction()

virtual bool imath::CSampledFunction::CreateFunction ( double *  dataPtr,
const ArgumentType sizes 
)
overridevirtual

Create function from input data.

Implements imath::TISampledFunction< 1, 1 >.

◆ GetGridSize()

virtual int imath::CSampledFunction::GetGridSize ( int  dimensionIndex) const
overridevirtual

Get number of samples for specified dimension.

Implements imath::TISampledFunction< 1, 1 >.

◆ GetLogicalRange()

virtual istd::CRange imath::CSampledFunction::GetLogicalRange ( int  dimensionIndex) const
overridevirtual

Get logical range for the specified dimension.

Logical range defines boundaries of the function domain in the given dimension.

Implements imath::TISampledFunction< 1, 1 >.

◆ GetResultValueRange()

virtual istd::CRange imath::CSampledFunction::GetResultValueRange ( int  dimensionIndex,
int  resultDimension = -1 
) const
overridevirtual

Get the range (boundary) of possible result values for the given axis.

Optionally some result dimension can be also specified.

Parameters
dimensionIndexindex of argument dimension.
resultDimensionoptional index of result dimension, it can be negative if all dimensions are meaned.
Returns
range of possible values, or invalid range if it is unknown.

Implements imath::TISampledFunction< 1, 1 >.

◆ GetSampleAt()

virtual double imath::CSampledFunction::GetSampleAt ( const SampleIndex index) const
overridevirtual

Get sample value at the given index.

Implements imath::TISampledFunction< 1, 1 >.

◆ GetSampleCoordinate()

double imath::CSampledFunction::GetSampleCoordinate ( int  index) const
inline

◆ GetSamples()

virtual std::vector< double > imath::CSampledFunction::GetSamples ( ) const
overridevirtual

Get all samples as a vector.

Returns
vector containing all sample values

Implements imath::TISampledFunction< 1, 1 >.

◆ GetSampleValue()

double imath::CSampledFunction::GetSampleValue ( int  index) const
inline

Definition at line 133 of file CSampledFunction.h.

◆ GetSamplingStep()

double imath::CSampledFunction::GetSamplingStep ( ) const
inline

Definition at line 155 of file CSampledFunction.h.

References istd::TRange< ValueType >::GetLength().

◆ GetSupportedOperations()

virtual int imath::CSampledFunction::GetSupportedOperations ( ) const
overridevirtual

Get set of flags for supported operations.

See also
SupportedOperations

Reimplemented from istd::IChangeable.

Reimplemented in icmm::CSpectrum.

◆ GetTotalSamplesCount()

virtual int imath::CSampledFunction::GetTotalSamplesCount ( ) const
overridevirtual

Get number of samples stored in this container.

Implements imath::TISampledFunction< 1, 1 >.

◆ GetValueAt() [1/2]

virtual ResultType imath::CSampledFunction::GetValueAt ( const ArgumentType argument) const
overridevirtual

◆ GetValueAt() [2/2]

virtual bool imath::CSampledFunction::GetValueAt ( const ArgumentType argument,
ResultType result 
) const
overridevirtual

◆ Initialize()

bool imath::CSampledFunction::Initialize ( int  size,
double  defaultValue = 0 
)

◆ IsEqual()

virtual bool imath::CSampledFunction::IsEqual ( const IChangeable &  object) const
overridevirtual

Reimplemented in icmm::CSpectrum.

◆ operator==()

bool imath::CSampledFunction::operator== ( const CSampledFunction other) const

◆ Reset()

void imath::CSampledFunction::Reset ( )

◆ ResetData()

virtual bool imath::CSampledFunction::ResetData ( CompatibilityMode  mode = CM_WITHOUT_REFS)
overridevirtual

Reset data to its default state.

Default implementation in istd::IChangeable does nothing.

Returns
true if the operation was successful, and false otherwise.

Reimplemented from istd::IChangeable.

Reimplemented in icmm::CSpectrum.

◆ SetLogicalRange()

void imath::CSampledFunction::SetLogicalRange ( const istd::CRange logicalRange)
inline

Definition at line 149 of file CSampledFunction.h.

◆ SetSampleValue()

void imath::CSampledFunction::SetSampleValue ( int  index,
double  value 
)
inline

Definition at line 141 of file CSampledFunction.h.


The documentation for this class was generated from the following file: