Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
The LinearInterpolator class is a template class that implements Catmull-Rom spline interpolation. More...
#include <CatmullRomInterpolator.hpp>
Public Member Functions | |
CatmullRomInterpolator () | |
CatmullRomInterpolator (const std::vector< T > &path) | |
void | setupEndPoints (bool is_loop) |
Call this function after having specified the control points if you want to automatically generate the start/end control points. More... | |
T | computePoint (float t) const |
Samples the Catmull-Rom spline at the given point. The t parameter must be in the range 0.0 ... 1.0 included. More... | |
void | setPath (const std::vector< T > &path) |
The control points defining the Catmull-Rom spline. More... | |
const std::vector< T > & | path () const |
The control points defining the Catmull-Rom spline. More... | |
std::vector< T > & | path () |
The control points defining the Catmull-Rom spline. More... | |
Public Member Functions inherited from vl::Object | |
Object () | |
Constructor. More... | |
Object (const Object &other) | |
Copy constructor: copies the name, ref count mutex and user data. More... | |
Object & | operator= (const Object &other) |
Copy operator: copies the object's name, ref count mutex and user data. More... | |
const std::string & | objectName () const |
The name of the object, by default set to the object's class name. More... | |
void | setObjectName (const char *name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setObjectName (const std::string &name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setRefCountMutex (IMutex *mutex) |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
IMutex * | refCountMutex () |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
const IMutex * | refCountMutex () const |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
int | referenceCount () const |
Returns the number of references of an object. More... | |
void | incReference () const |
Increments the reference count of an object. More... | |
void | decReference () |
Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More... | |
void | setAutomaticDelete (bool autodel_on) |
If set to true the Object is deleted when its reference count reaches 0. More... | |
bool | automaticDelete () const |
If set to true the Object is deleted when its reference count reaches 0. More... | |
template<class T > | |
T * | as () |
Casts an Object to the specified class. More... | |
template<class T > | |
const T * | as () const |
Casts an Object to the specified class. More... | |
Protected Attributes | |
std::vector< T > | mPath |
std::vector< T > | mCatmullRomSpline |
Protected Attributes inherited from vl::Object | |
std::string | mObjectName |
IMutex * | mRefCountMutex |
int | mReferenceCount |
bool | mAutomaticDelete |
Additional Inherited Members | |
Protected Member Functions inherited from vl::Object | |
virtual | ~Object () |
The LinearInterpolator class is a template class that implements Catmull-Rom spline interpolation.
Catmull-Rom spline interpolation allows smoother interpolations than simple linear interpolation, is thus indicated for example when you want to smoothly interpolate from one position to another or from one color to another.
Definition at line 46 of file CatmullRomInterpolator.hpp.
|
inline |
Definition at line 51 of file CatmullRomInterpolator.hpp.
|
inline |
Definition at line 56 of file CatmullRomInterpolator.hpp.
|
inline |
Samples the Catmull-Rom spline at the given point. The t
parameter must be in the range 0.0 ... 1.0 included.
Definition at line 96 of file CatmullRomInterpolator.hpp.
References vl::clamp(), vl::CatmullRomInterpolator< T >::mCatmullRomSpline, and VL_CHECK.
|
inline |
The control points defining the Catmull-Rom spline.
Definition at line 133 of file CatmullRomInterpolator.hpp.
References vl::CatmullRomInterpolator< T >::mPath.
Referenced by vl::CatmullRomInterpolator< T >::setPath().
|
inline |
The control points defining the Catmull-Rom spline.
Definition at line 136 of file CatmullRomInterpolator.hpp.
References vl::CatmullRomInterpolator< T >::mPath.
|
inline |
The control points defining the Catmull-Rom spline.
Because of the Catmull-Rom formula the interpolated path must start and end with an extra control point (one on each side) and cannot have less than 4 control points. You can also automatically generate such extra control points by calling the setupEndPoints() method.
Definition at line 130 of file CatmullRomInterpolator.hpp.
References vl::CatmullRomInterpolator< T >::mPath, and vl::CatmullRomInterpolator< T >::path().
|
inline |
Call this function after having specified the control points if you want to automatically generate the start/end control points.
Definition at line 59 of file CatmullRomInterpolator.hpp.
References vl::CatmullRomInterpolator< T >::mCatmullRomSpline, vl::CatmullRomInterpolator< T >::mPath, and VL_CHECK.
|
protected |
Definition at line 140 of file CatmullRomInterpolator.hpp.
Referenced by vl::CatmullRomInterpolator< T >::computePoint(), and vl::CatmullRomInterpolator< T >::setupEndPoints().
|
protected |
Definition at line 139 of file CatmullRomInterpolator.hpp.
Referenced by vl::CatmullRomInterpolator< T >::path(), vl::CatmullRomInterpolator< T >::setPath(), and vl::CatmullRomInterpolator< T >::setupEndPoints().
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:07.
© Copyright Michele Bosi. All rights reserved.