VR-Engage  2.2
Loading...
Searching...
No Matches
makVre::DtBezierInterpolator< T > Class Template Reference

Detailed Description

template<typename T>
class makVre::DtBezierInterpolator< T >

This template class provides interpolation between start and end values using Bezier curves for easing over a specified time period. Specializations are provided for float, double, DtVector, and DtQuat types.

Template Parameters
TThe type of value to interpolate

#include <bezierInterpolator.h>

Inheritance diagram for makVre::DtBezierInterpolator< T >:
[legend]

Public Member Functions

 DtBezierInterpolator (makVrv::DtEaser easer, T start, T stop, double period)
 
 ~DtBezierInterpolator ()
 
void tick (double dt)
 
value () const
 
bool isDone () const
 
void reset ()
 
void reset (T start, T stop, double period)
 
void reset (makVrv::DtEaser easer, T start, T stop, double period)
 
start () const
 
stop () const
 
double timeRemaining () const
 

Protected Attributes

makVrv::DtEaser myEaser
 
myStart
 
myEnd
 
myCurrentValue
 
double myPeriod
 
double myCurrentTime
 

Constructor & Destructor Documentation

◆ DtBezierInterpolator()

template<typename T>
makVre::DtBezierInterpolator< T >::DtBezierInterpolator ( makVrv::DtEaser easer,
T start,
T stop,
double period )

Constructor.

Constructor implementation.

Initializes the interpolator with an easing function, start and end values, and the time period.

Parameters
easerThe easing function to use for interpolation
startThe starting value
stopThe ending value
periodThe time period over which to interpolate (in seconds)

References myCurrentTime, myCurrentValue, myEaser, myEnd, myPeriod, myStart, start(), and stop().

◆ ~DtBezierInterpolator()

template<typename T>
makVre::DtBezierInterpolator< T >::~DtBezierInterpolator ( )

Destructor.

Destructor implementation.

Member Function Documentation

◆ tick()

template<typename T>
void makVre::DtBezierInterpolator< T >::tick ( double dt)

Updates the interpolation based on elapsed time.

This function advances the interpolation by the given time step, recalculating the current value based on the elapsed time and easing function. Specialized implementations are provided for float, double, DtVector, and DtQuat.

Parameters
dtThe time step in seconds

◆ value()

template<typename T>
T makVre::DtBezierInterpolator< T >::value ( ) const

Gets the current interpolated value.

Gets the current value of the interpolation.

Returns
The current value of the interpolation

References myCurrentValue.

◆ isDone()

template<typename T>
bool makVre::DtBezierInterpolator< T >::isDone ( ) const

Checks if the interpolation has completed.

Returns
true if the current time has reached or exceeded the period

References myCurrentTime, and myPeriod.

◆ reset() [1/3]

template<typename T>
void makVre::DtBezierInterpolator< T >::reset ( )

Resets the interpolation to the beginning.

Sets the current value back to the start value and resets the time to zero

References myCurrentTime, myCurrentValue, and myStart.

◆ reset() [2/3]

template<typename T>
void makVre::DtBezierInterpolator< T >::reset ( T start,
T stop,
double period )

Resets the interpolation with new start, end, and period values.

Resets the interpolation with new parameters.

Parameters
startThe new starting value
stopThe new ending value
periodThe new time period (in seconds)

References myCurrentTime, myCurrentValue, myEnd, myPeriod, myStart, start(), and stop().

◆ reset() [3/3]

template<typename T>
void makVre::DtBezierInterpolator< T >::reset ( makVrv::DtEaser easer,
T start,
T stop,
double period )

Resets the interpolation with a new easer and parameters.

Parameters
easerThe new easing function
startThe new starting value
stopThe new ending value
periodThe new time period (in seconds)

References myCurrentTime, myCurrentValue, myEaser, myEnd, myPeriod, myStart, start(), and stop().

◆ start()

template<typename T>
T makVre::DtBezierInterpolator< T >::start ( ) const

Gets the start value.

Gets the start value of the interpolation.

Returns
The start value of the interpolation

References myStart.

Referenced by DtBezierInterpolator(), reset(), and reset().

◆ stop()

template<typename T>
T makVre::DtBezierInterpolator< T >::stop ( ) const

Gets the end value.

Gets the end value of the interpolation.

Returns
The end value of the interpolation

References myEnd.

Referenced by DtBezierInterpolator(), reset(), and reset().

◆ timeRemaining()

template<typename T>
double makVre::DtBezierInterpolator< T >::timeRemaining ( ) const

Gets the time remaining in the interpolation.

Returns
The remaining time in seconds

References myCurrentTime, and myPeriod.

Member Data Documentation

◆ myEaser

template<typename T>
makVrv::DtEaser makVre::DtBezierInterpolator< T >::myEaser
protected

The easing function to use.

Referenced by DtBezierInterpolator(), and reset().

◆ myStart

template<typename T>
T makVre::DtBezierInterpolator< T >::myStart
protected

The starting value.

Referenced by DtBezierInterpolator(), reset(), reset(), reset(), and start().

◆ myEnd

template<typename T>
T makVre::DtBezierInterpolator< T >::myEnd
protected

The ending value.

Referenced by DtBezierInterpolator(), reset(), reset(), and stop().

◆ myCurrentValue

template<typename T>
T makVre::DtBezierInterpolator< T >::myCurrentValue
protected

The current interpolated value.

Referenced by DtBezierInterpolator(), reset(), reset(), reset(), and value().

◆ myPeriod

template<typename T>
double makVre::DtBezierInterpolator< T >::myPeriod
protected

The total time period for the interpolation (in seconds)

Referenced by DtBezierInterpolator(), isDone(), reset(), reset(), and timeRemaining().

◆ myCurrentTime

template<typename T>
double makVre::DtBezierInterpolator< T >::myCurrentTime
protected

The current elapsed time (in seconds)

Referenced by DtBezierInterpolator(), isDone(), reset(), reset(), reset(), and timeRemaining().


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