|
KSeExpr 4.0.4.0
|
Interpolation curve class for double->double and double->Vec3D. More...
#include <Curve.h>
Classes | |
| struct | CV |
Public Types | |
| enum | InterpType { kNone = 0 , kLinear , kSmooth , kSpline , kMonotoneSpline } |
| Supported interpolation types. More... | |
Public Member Functions | |
| Curve () | |
| void | addPoint (double position, const T &val, InterpType type) |
| Adds a point to the curve. | |
| void | preparePoints () |
| Prepares points for evaluation (sorts and computes boundaries, clamps extrema) | |
| T | getValue (double param) const |
| Evaluates curve and returns full value. | |
| double | getChannelValue (double param, int channel) const |
| CV | getLowerBoundCV (double param) const |
Static Public Member Functions | |
| static bool | interpTypeValid (InterpType interp) |
| Returns whether the given interpolation type is supported. | |
| static bool | cvLessThan (const CV &cv1, const CV &cv2) |
| CV Parameter ordering (cv1._pos < cv2._pos) | |
Private Member Functions | |
| void | clampCurveSegment (const T &delta, T &d1, T &d2) |
| Performs hermite derivative clamping in canonical space. | |
| double | comp (const double &val, const int) |
| double | comp (const Vec3d &val, const int i) |
| void | clampCurveSegment (const double &delta, double &d1, double &d2) |
| void | clampCurveSegment (const Vec3d &delta, Vec3d &d1, Vec3d &d2) |
Static Private Member Functions | |
| static double | comp (const T &val, int i) |
| Returns a component of the given value. | |
Private Attributes | |
| int | cacheCV |
| std::vector< CV > | _cvData |
| bool | prepared |
Interpolation curve class for double->double and double->Vec3D.
Interpolation curve class for mapping from double -> double or double -> Vec3D Subject to some interpolation points.
Each segment is interpolated according to the interpolation type specified on the left control point. Interpolation types supported are members of InterpType below.
Valid instantiation types for this are double, or Vec3D
| enum KSeExpr::Curve::InterpType |
| KSeExpr::Curve< T >::Curve | ( | ) |
| void KSeExpr::Curve< T >::addPoint | ( | double | position, |
| const T & | val, | ||
| InterpType | type ) |
|
inlineprivate |
|
private |
Performs hermite derivative clamping in canonical space.
Referenced by preparePoints().
|
private |
|
private |
|
staticprivate |
Returns a component of the given value.
Referenced by getChannelValue().
|
private |
|
static |
CV Parameter ordering (cv1._pos < cv2._pos)
Definition at line 26 of file Curve.cpp.
References KSeExpr::Curve< T >::CV::_pos.
Referenced by getChannelValue(), getLowerBoundCV(), getValue(), and preparePoints().
| double KSeExpr::Curve< T >::getChannelValue | ( | double | param, |
| int | channel ) const |
Evaluates curve for a sub-component of the interpolation values must call preparePoints() before this is ok to call
Definition at line 139 of file Curve.cpp.
References _cvData, comp(), cvLessThan(), kLinear, kMonotoneSpline, kNone, kSmooth, kSpline, and prepared.
| Curve< T >::CV KSeExpr::Curve< T >::getLowerBoundCV | ( | double | param | ) | const |
| T KSeExpr::Curve< T >::getValue | ( | double | param | ) | const |
Evaluates curve and returns full value.
Definition at line 94 of file Curve.cpp.
References _cvData, cvLessThan(), kLinear, kMonotoneSpline, kNone, kSmooth, kSpline, and prepared.
|
static |
Returns whether the given interpolation type is supported.
Definition at line 198 of file Curve.cpp.
References kLinear, kMonotoneSpline, kNone, kSmooth, and kSpline.
Referenced by KSeExpr::CCurveFuncX::evalConstant(), KSeExpr::CurveFuncX::evalConstant(), KSeExpr::CCurveFuncX::prep(), and KSeExpr::CurveFuncX::prep().
| void KSeExpr::Curve< T >::preparePoints | ( | ) |
Prepares points for evaluation (sorts and computes boundaries, clamps extrema)
Definition at line 46 of file Curve.cpp.
References _cvData, KSeExpr::Curve< T >::CV::_deriv, KSeExpr::Curve< T >::CV::_interp, KSeExpr::Curve< T >::CV::_pos, KSeExpr::Curve< T >::CV::_val, cacheCV, clampCurveSegment(), cvLessThan(), kMonotoneSpline, kNone, and prepared.
|
private |
Definition at line 47 of file Curve.h.
Referenced by addPoint(), Curve(), getChannelValue(), getLowerBoundCV(), getValue(), and preparePoints().
|
mutableprivate |
Definition at line 28 of file Curve.h.
Referenced by Curve(), and preparePoints().
|
private |
Definition at line 48 of file Curve.h.
Referenced by addPoint(), Curve(), getChannelValue(), getLowerBoundCV(), getValue(), and preparePoints().