Field3D
|
Implements a simple function curve where samples of type T can be added along a 1D axis. Once samples exist they can be interpolated using the linear() call. More...
#include <Curve.h>
Classes | |
struct | CheckTEqual |
Used when finding values in the m_samples vector. More... | |
struct | CheckTGreaterThan |
Used when finding values in the m_samples vector. More... | |
Public Types | |
typedef std::pair< float, T > | Sample |
typedef std::vector< Sample > | SampleVec |
Public Member Functions | |
void | addSample (const float t, const T &value) |
Adds a sample point to the curve. More... | |
void | clear () |
Clears all samples in curve. More... | |
T | linear (const float t) const |
Linearly interpolates a value from the curve. More... | |
size_t | numSamples () const |
Returns the number of samples in the curve. More... | |
const SampleVec & | samples () const |
Returns a const reference to the samples in the curve. More... | |
Private Member Functions | |
T | defaultReturnValue () const |
The default return value is used when no sample points are available. This defaults to zero, but for some types (for example Quaternion), We need more arguments to the constructor. In these cases the method is specialized for the given T type. More... | |
Imath::Matrix44< float > | defaultReturnValue () const |
Imath::Matrix44< double > | defaultReturnValue () const |
T | lerp (const Sample &lower, const Sample &upper, const float t) const |
The default implementation for linear interpolation. Works for all classes for which Imath::lerp is implemented (i.e float/double, V2f, V3f). For other types this method needs to be specialized. More... | |
Private Attributes | |
SampleVec | m_samples |
Stores the samples that define the curve. Sample insertion ensures that the samples are sorted according to Sample.first. More... | |
Implements a simple function curve where samples of type T can be added along a 1D axis. Once samples exist they can be interpolated using the linear() call.
void Curve< T >::addSample | ( | const float | t, |
const T & | value | ||
) |
Adds a sample point to the curve.
t | Sample position |
value | Sample value |
Definition at line 172 of file Curve.h.
Referenced by MatrixFieldMapping::setLocalToWorld(), FrustumFieldMapping::setTransforms(), and MatrixFieldMapping::updateTransform().
T Curve< T >::linear | ( | const float | t | ) | const |
Linearly interpolates a value from the curve.
t | Position along curve |
Definition at line 199 of file Curve.h.
Referenced by FrustumFieldMapping::localToWorld(), MatrixFieldMapping::updateTransform(), and FrustumFieldMapping::worldToLocal().
|
inline |
Returns the number of samples in the curve.
Definition at line 99 of file Curve.h.
Referenced by MatrixFieldMapping::setLocalToWorld(), and MatrixFieldMapping::updateTransform().
Returns a const reference to the samples in the curve.
Definition at line 103 of file Curve.h.
Referenced by MatrixFieldMapping::isIdentical(), FrustumFieldMapping::isIdentical(), and MatrixFieldMapping::updateTransform().
|
inline |
Clears all samples in curve.
Definition at line 107 of file Curve.h.
Referenced by FrustumFieldMapping::clearCurves(), MatrixFieldMapping::makeIdentity(), and MatrixFieldMapping::updateTransform().
|
inlineprivate |
The default return value is used when no sample points are available. This defaults to zero, but for some types (for example Quaternion), We need more arguments to the constructor. In these cases the method is specialized for the given T type.
|
inlineprivate |
|
inlineprivate |
Stores the samples that define the curve. Sample insertion ensures that the samples are sorted according to Sample.first.
Definition at line 163 of file Curve.h.
Referenced by Curve< Imath::M44d >::clear(), Curve< Imath::M44d >::numSamples(), and Curve< Imath::M44d >::samples().