Curves
A library for curves generation.
curves::CubicHermiteE3Curve Class Reference

#include <CubicHermiteE3Curve.hpp>

Public Types

typedef HermiteE3Knot Coefficient
 
typedef LocalSupport2CoefficientManager< Coefficient >::CoefficientIter CoefficientIter
 
typedef HermiteE3Knot::Position ValueType
 
typedef HermiteE3Knot::Velocity DerivativeType
 
typedef HermiteE3Knot::Acceleration Acceleration
 

Public Member Functions

 CubicHermiteE3Curve ()
 
virtual ~CubicHermiteE3Curve ()
 
virtual void print (const std::string &str="") const
 Print the value of the coefficient, for debugging and unit tests. More...
 
virtual bool writeEvalToFile (const std::string &filename, int nSamples) const
 
virtual Time getMinTime () const
 The first valid time for the curve. More...
 
virtual Time getMaxTime () const
 The one past the last valid time for the curve. More...
 
bool isEmpty () const
 
int size () const
 
DerivativeType calculateSlope (const Time &timeA, const Time &timeB, const ValueType &coeffA, const ValueType &coeffB) const
 calculate the slope between 2 coefficients More...
 
virtual void extend (const std::vector< Time > &times, const std::vector< ValueType > &values, std::vector< Key > *outKeys=NULL)
 
virtual void fitCurve (const std::vector< Time > &times, const std::vector< ValueType > &values, std::vector< Key > *outKeys=NULL)
 Fit a new curve to these data points. More...
 
virtual void fitCurveWithDerivatives (const std::vector< Time > &times, const std::vector< ValueType > &values, const DerivativeType &initialDerivative=DerivativeType(), const DerivativeType &finalDerivative=DerivativeType(), std::vector< Key > *outKeys=NULL)
 
virtual void fitPeriodicCurve (const std::vector< Time > &times, const std::vector< ValueType > &values, std::vector< Key > *outKeys=NULL)
 
virtual bool evaluate (ValueType &value, Time time) const
 Evaluate the ambient space of the curve. More...
 
virtual bool evaluateDerivative (DerivativeType &derivative, Time time, unsigned int derivativeOrder) const
 Evaluate the curve derivatives. More...
 
bool evaluateLinearAcceleration (Acceleration &linearAcceleration, Time time) const
 
virtual void clear ()
 

Private Attributes

LocalSupport2CoefficientManager< Coefficientmanager_
 

Detailed Description

Implements the Cubic Hermite curve class. See KimKimShin paper. The Hermite interpolation function is defined, with the respective Jacobians regarding A and B: Translations: Equations for the unit interval:

Definition at line 63 of file CubicHermiteE3Curve.hpp.

Member Typedef Documentation

Constructor & Destructor Documentation

curves::CubicHermiteE3Curve::CubicHermiteE3Curve ( )
virtual curves::CubicHermiteE3Curve::~CubicHermiteE3Curve ( )
virtual

Member Function Documentation

DerivativeType curves::CubicHermiteE3Curve::calculateSlope ( const Time timeA,
const Time timeB,
const ValueType coeffA,
const ValueType coeffB 
) const

calculate the slope between 2 coefficients

virtual void curves::CubicHermiteE3Curve::clear ( )
virtual
virtual bool curves::CubicHermiteE3Curve::evaluate ( ValueType value,
Time  time 
) const
virtual

Evaluate the ambient space of the curve.

virtual bool curves::CubicHermiteE3Curve::evaluateDerivative ( DerivativeType derivative,
Time  time,
unsigned int  derivativeOrder 
) const
virtual

Evaluate the curve derivatives.

bool curves::CubicHermiteE3Curve::evaluateLinearAcceleration ( Acceleration linearAcceleration,
Time  time 
) const
virtual void curves::CubicHermiteE3Curve::extend ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values,
std::vector< Key > *  outKeys = NULL 
)
virtual

Extend the curve so that it can be evaluated at these times. Try to make the curve fit to the values. Note: Assumes that extend times strictly increase the curve time

virtual void curves::CubicHermiteE3Curve::fitCurve ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values,
std::vector< Key > *  outKeys = NULL 
)
virtual

Fit a new curve to these data points.

The existing curve will be cleared.fitCurveWithDerivatives Underneath the curve should have some default policy for fitting.

virtual void curves::CubicHermiteE3Curve::fitCurveWithDerivatives ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values,
const DerivativeType initialDerivative = DerivativeType(),
const DerivativeType finalDerivative = DerivativeType(),
std::vector< Key > *  outKeys = NULL 
)
virtual
virtual void curves::CubicHermiteE3Curve::fitPeriodicCurve ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values,
std::vector< Key > *  outKeys = NULL 
)
virtual
virtual Time curves::CubicHermiteE3Curve::getMaxTime ( ) const
virtual

The one past the last valid time for the curve.

virtual Time curves::CubicHermiteE3Curve::getMinTime ( ) const
virtual

The first valid time for the curve.

bool curves::CubicHermiteE3Curve::isEmpty ( ) const
virtual void curves::CubicHermiteE3Curve::print ( const std::string &  str = "") const
virtual

Print the value of the coefficient, for debugging and unit tests.

int curves::CubicHermiteE3Curve::size ( ) const
virtual bool curves::CubicHermiteE3Curve::writeEvalToFile ( const std::string &  filename,
int  nSamples 
) const
virtual

Member Data Documentation

LocalSupport2CoefficientManager<Coefficient> curves::CubicHermiteE3Curve::manager_
private

Definition at line 135 of file CubicHermiteE3Curve.hpp.


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