Public Member Functions | Protected Attributes | List of all members
ion::Animation::CSpline< TSplineNode > Class Template Reference

#include <CSpline.h>

Inheritance diagram for ion::Animation::CSpline< TSplineNode >:
Inheritance graph
[legend]
Collaboration diagram for ion::Animation::CSpline< TSplineNode >:
Collaboration graph
[legend]

Public Member Functions

std::vector< TSplineNode > const & GetNodes () const
 
std::vector< TSplineNode > & GetNodes ()
 
void AddNode (TSplineNode const &Node)
 
void SetLooping (bool const looping)
 
bool IsLooping () const
 
void SetDefaultInterpolator (SharedPointer< ISplineInterpolator< TSplineNode >> defaultInterpolator)
 
SharedPointer< ISplineInterpolator< TSplineNode > > GetDefaultInterpolator () const
 
int SanitizeIndex (int Index) const
 
TSplineNode const & GetNode (int const Index) const
 
TSplineNode GetNodeInterpolated (float const Intermediate, SharedPointer< ISplineInterpolator< TSplineNode >> Interpolator=0) const
 
float BuildDistanceTable (float const Increment=0.1f, SharedPointer< ISplineInterpolator< TSplineNode >> Interpolator=0)
 
float GetIntermediateFromDistance (float const Distance, SharedPointer< ISplineInterpolator< TSplineNode >> Interpolator=0)
 
TSplineNode GetNodeFromDistance (float const Distance, SharedPointer< ISplineInterpolator< TSplineNode >> Interpolator=0)
 
float GetTotalPathLength ()
 

Protected Attributes

std::vector< TSplineNode > Nodes
 
std::vector< float > DistanceTable
 
float MuIncrement = 0
 
bool Looping = true
 
SharedPointer< ISplineInterpolator< TSplineNode > > DefaultInterpolator = std::make_shared<CLinearSplineInterpolator<TSplineNode>>()
 

Member Function Documentation

template<typename TSplineNode >
void ion::Animation::CSpline< TSplineNode >::AddNode ( TSplineNode const &  Node)
template<typename TSplineNode >
float ion::Animation::CSpline< TSplineNode >::BuildDistanceTable ( float const  Increment = 0.1f,
SharedPointer< ISplineInterpolator< TSplineNode >>  Interpolator = 0 
)
template<typename TSplineNode >
SharedPointer< ISplineInterpolator< TSplineNode > > ion::Animation::CSpline< TSplineNode >::GetDefaultInterpolator ( ) const
template<typename TSplineNode >
float ion::Animation::CSpline< TSplineNode >::GetIntermediateFromDistance ( float const  Distance,
SharedPointer< ISplineInterpolator< TSplineNode >>  Interpolator = 0 
)
template<typename TSplineNode >
TSplineNode const & ion::Animation::CSpline< TSplineNode >::GetNode ( int const  Index) const
virtual
template<typename TSplineNode >
TSplineNode ion::Animation::CSpline< TSplineNode >::GetNodeFromDistance ( float const  Distance,
SharedPointer< ISplineInterpolator< TSplineNode >>  Interpolator = 0 
)
template<typename TSplineNode >
TSplineNode ion::Animation::CSpline< TSplineNode >::GetNodeInterpolated ( float const  Intermediate,
SharedPointer< ISplineInterpolator< TSplineNode >>  Interpolator = 0 
) const
template<typename TSplineNode >
std::vector< TSplineNode > const & ion::Animation::CSpline< TSplineNode >::GetNodes ( ) const
virtual
template<typename TSplineNode >
std::vector< TSplineNode > & ion::Animation::CSpline< TSplineNode >::GetNodes ( )
virtual
template<typename TSplineNode >
float ion::Animation::CSpline< TSplineNode >::GetTotalPathLength ( )
template<typename TSplineNode >
bool ion::Animation::CSpline< TSplineNode >::IsLooping ( ) const
virtual
template<typename TSplineNode >
int ion::Animation::CSpline< TSplineNode >::SanitizeIndex ( int  Index) const
virtual
template<typename TSplineNode >
void ion::Animation::CSpline< TSplineNode >::SetDefaultInterpolator ( SharedPointer< ISplineInterpolator< TSplineNode >>  defaultInterpolator)
template<typename TSplineNode >
void ion::Animation::CSpline< TSplineNode >::SetLooping ( bool const  looping)

Member Data Documentation

template<typename TSplineNode >
SharedPointer<ISplineInterpolator<TSplineNode> > ion::Animation::CSpline< TSplineNode >::DefaultInterpolator = std::make_shared<CLinearSplineInterpolator<TSplineNode>>()
mutableprotected
template<typename TSplineNode >
std::vector<float> ion::Animation::CSpline< TSplineNode >::DistanceTable
protected
template<typename TSplineNode >
bool ion::Animation::CSpline< TSplineNode >::Looping = true
protected
template<typename TSplineNode >
float ion::Animation::CSpline< TSplineNode >::MuIncrement = 0
protected
template<typename TSplineNode >
std::vector<TSplineNode> ion::Animation::CSpline< TSplineNode >::Nodes
protected

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