VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes

Instances of DtSmoother are used to provide approximated position and orientation information for entities. More...

+ Inheritance diagram for DtSmoother:
+ Collaboration diagram for DtSmoother:

Public Member Functions

 DtSmoother ()
 Default constructor.
virtual ~DtSmoother ()
 Destructor.
 DtSmoother (const DtSmoother &src)
 Copy constructor.
DtSmootheroperator= (const DtSmoother &src)
 Assignment operator.
virtual DtApproximatorclone () const
 Create a copy of this object.
virtual void setLocation (const DtVector &loc, DtTime t)
 Set absolute location.
virtual const DtVectorapproxLocation (DtTime t) const
 Get the approximated location at the specified time.
virtual void setVelocity (const DtVector &vel, DtTime t)
 Set absolute velocity.
virtual const DtVectorapproxVelocity (DtTime t) const
 Get the approximated velocity at the specified time.
virtual void setOrientation (const DtTaitBryan &ori, DtTime t)
 Set absolute orientation.
virtual const DtTaitBryanapproxEuler (DtTime t) const
 Get approximated orientation (Euler angles) at the specified time.
virtual void setAcceleration (const DtVector &acc, DtTime t)
 Set/Get absolute acceleration.
virtual const DtVectoracceleration (DtTime t) const
virtual void setRotationalVelocity (const DtVector &vel, DtTime t)
 Set/Get absolute rotational velocity.
virtual const DtVectorrotationalVelocity (DtTime t) const
virtual const DtDcmapproxBodyToGeoc (DtTime t) const
 Get the approximated data body to geocentric coordinate matrix.
virtual void setSmoothPeriod (DtTime t)
 Set/Get smoothing period - the amount of time over which smoothing takes place.
virtual DtTime smoothPeriod () const
virtual void setOriSmoothPeriod (DtTime t)
 Set/Get orientation smoothing period - the amount of time over which orientation smoothing takes place.
virtual DtTime oriSmoothPeriod () const
virtual void setSmoothEnable (bool onOff)
virtual bool smoothEnable () const
- Public Member Functions inherited from DtDeadReckoner
 DtDeadReckoner ()
 Default CTOR.
 DtDeadReckoner (const DtDeadReckoner &orig)
 Copy CTOR.
virtual ~DtDeadReckoner ()
 Virtual DTOR.
DtDeadReckoneroperator= (const DtDeadReckoner &orig)
 Assignment Operator.
virtual const DtVectordeadReckonedLocation (DtTime curTime) const
 Get the dead-reckoned location at the specified time.
virtual const DtVectordeadReckonedVelocity (DtTime curTime) const
 Get the dead-reckoned velocity at the specified time.
virtual const DtTaitBryandeadReckonedEuler (DtTime curTime) const
 Get dead-reckoned orientation (Euler angles) at the specified time.
virtual const DtTimelocationUpdateTime () const
 Get the last update time of the absolute location.
virtual const DtTimevelocityUpdateTime () const
 Get the last update time of the absolute velocity.
virtual const DtTimeorientationUpdateTime () const
 Get the last update time of the absolute orientation.
virtual const DtDcmdeadReckonedBodyToGeoc (DtTime curTime) const
 Get the dead-reckoned body to geocentric coordinate matrix.
virtual void setAlgorithm (DtDeadReckonTypes alg)
 Set/Get the dead reckoning algorithm used for generating the approximated values from the absolute values.
virtual DtDeadReckonTypes algorithm () const
virtual int isRotational () const
 Returns 1 if the dead reckoning algorithm is a rotational one, 0 otherwise.
virtual void deadReckonPosition (DtTime dt, const DtVector &oldPos, const DtVector &oldVel, const DtVector &oldAccel, DtVector &newVel, DtVector &newPos) const
 Calculate the dead reckon position information based on the algorithm type.
virtual void deadReckonOrientation (DtTime dt, const DtDcm &old_b2w, const DtDirectedRotRate &drr, DtDcm &new_b2w) const
 Calculate the orientation matrix based on the algorithm type.
- Public Member Functions inherited from DtApproximator
virtual ~DtApproximator ()
 Virtual DTOR.
DtApproximatoroperator= (const DtApproximator &orig)
 Assignment operator.
virtual void setFrozen (bool frozen)
 Set/Get whether the dead-reckoner is frozen.
virtual bool isFrozen () const

Static Public Member Functions

static void setDfltSmoothPeriod (DtTime smoothPeriod)
 Set/Get the default smoothing period.
static DtTime dfltSmoothPeriod ()
static void setMasterSmoothEnable (bool onOff)
 Set/Get the value of the "master" smoothing-enabled switch.
static bool masterSmoothEnable ()
static void rotAngleAndAxisFromRotMatrix (DtVector &n, double &phi, const DtDcm &m)
static void rotMatrixFromRotRatesAndTime (DtDcm &m, DtDcm &o, DtVector &n, double &w, const DtVector &r, double t)
- Static Public Member Functions inherited from DtDeadReckoner
static int isRotational (DtDeadReckonTypes algorithm)
 Returns 1 if the dead reckoning algorithm is a rotational one, 0 otherwise.
static void deadReckonPosition (DtTime dt, DtDeadReckonTypes algorithm, const DtVector &oldPos, const DtVector &oldVel, const DtVector &oldAccel, DtVector &newVel, DtVector &newPos)
 Calculate the dead reckon position information.
static void deadReckonOrientation (DtTime dt, DtDeadReckonTypes algorithm, const DtDcm &old_b2w, const DtDirectedRotRate &drr, DtDcm &new_b2w)
 Calculate the orientation matrix.

Protected Member Functions

virtual void resetPosSmoother (DtTime t)
virtual void resetOriSmoother (DtTime t)
virtual const DtVectorsmoothPosition (DtTime t)
virtual const DtVectorsmoothVelocity (DtTime t)
virtual const DtDcmsmoothBodyToGeoc (DtTime t)
virtual void initSmootherParams ()
virtual void initSmoothOriParams ()
DtSmootherself () const
 Get rid of constness on the "this" pointer in order to access non-const functions from const member functions (such as simple accessors).
- Protected Member Functions inherited from DtDeadReckoner
virtual void deadReckonLoc (DtTime curTime) const
 If the last dead reckoned position is not valid for the specified time, recalculate it and update the time at which this value is valid.
virtual void deadReckonBodyToGeoc (DtTime curTime) const
 If the last dead reckoned body to geocentric coordinate matrix is not valid for the specified time, recalculate it and update the time at which this value is valid.
virtual void deadReckonEuler (DtTime curTime) const
 If the last dead reckoned orientation (Euler angles) is not valid for the specified time, recalculate it and update the time at which this value is valid.
- Protected Member Functions inherited from DtApproximator
 DtApproximator ()
 Default CTOR.
 DtApproximator (const DtApproximator &orig)
 Copy CTOR.

Protected Attributes

DtVector myLastDrPos
DtVector myLastDrVel
DtVector mySmoothPos
DtVector mySmoothVel
DtVector myX1
DtVector myV1
DtVector myA1
DtVector myA2
DtTime myTau
DtTime myTau2
DtTime myTau2Inv
DtTime myTauSq4
DtTime myTauSq4Inv
DtTime myLastSetTime
DtTime myPostSmoothTime
DtTime myHalfSmoothTime
DtTime myOriTau
DtTime myLastSetOriTime
DtTime myPostSmoothOriTime
DtTime myLastSmoothOriTime
DtTime myLastSmoothTbTime
double mySmoothRotRate
DtDcm myLastDrOri
DtDcm mySmoothOri
DtDcm mySmoothOmegaMx
DtVector mySmoothRotAxis
DtTaitBryan mySmoothTb
bool myIsDirty
bool myOriIsDirty
bool myTbIsDirty
bool mySmoothEnable
- Protected Attributes inherited from DtDeadReckoner
DtVector myLocAtTimeOfValidity
DtVector myVelAtTimeOfValidity
DtTime mySimTimePosDataValid
DtDcm myBodyToGeocAtTimeOfValidity
DtTime mySimTimeOrientDataValid
DtVector myDRLoc
DtVector myDRVel
DtTime myDRPosTime
DtDcm myDRBodyToGeoc
DtTime myDRBodyToGeocTime
DtTaitBryan myDREuler
DtTime myDREulerTime
DtDirectedRotRate myDirectedRotRate
DtDeadReckonTypes myAlgorithm
DtVector myAccel
DtBodyRates myRotVel
- Protected Attributes inherited from DtApproximator
bool myFrozenFlag

Static Protected Attributes

static double theTimeTolerance
static bool theMasterSmoothEnable
static DtTime theDfltSmoothPeriod

Detailed Description

Instances of DtSmoother are used to provide approximated position and orientation information for entities.

Position and orientation information is approximated over time from the last set absolute (non-approximated) information. When a new position is set, the current position moves smoothly to reflect the new information, rather than jumping to the new absolute position.

Constructor & Destructor Documentation

DtSmoother::DtSmoother ( )

Default constructor.

virtual DtSmoother::~DtSmoother ( )
virtual

Destructor.

DtSmoother::DtSmoother ( const DtSmoother src)

Copy constructor.

Member Function Documentation

virtual const DtVector& DtSmoother::acceleration ( DtTime  t) const
virtual

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual const DtDcm& DtSmoother::approxBodyToGeoc ( DtTime  t) const
virtual

Get the approximated data body to geocentric coordinate matrix.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual const DtTaitBryan& DtSmoother::approxEuler ( DtTime  t) const
virtual

Get approximated orientation (Euler angles) at the specified time.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual const DtVector& DtSmoother::approxLocation ( DtTime  t) const
virtual

Get the approximated location at the specified time.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual const DtVector& DtSmoother::approxVelocity ( DtTime  t) const
virtual

Get the approximated velocity at the specified time.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual DtApproximator* DtSmoother::clone ( ) const
virtual

Create a copy of this object.

Memory is allocated and it is the responsibility of the caller to free the memory via delete.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

static DtTime DtSmoother::dfltSmoothPeriod ( )
static

Reimplemented in DtOldSmoother.

virtual void DtSmoother::initSmootherParams ( )
protectedvirtual
virtual void DtSmoother::initSmoothOriParams ( )
protectedvirtual
static bool DtSmoother::masterSmoothEnable ( )
static

Reimplemented in DtOldSmoother.

DtSmoother& DtSmoother::operator= ( const DtSmoother src)

Assignment operator.

virtual DtTime DtSmoother::oriSmoothPeriod ( ) const
virtual
virtual void DtSmoother::resetOriSmoother ( DtTime  t)
protectedvirtual
virtual void DtSmoother::resetPosSmoother ( DtTime  t)
protectedvirtual
static void DtSmoother::rotAngleAndAxisFromRotMatrix ( DtVector n,
double &  phi,
const DtDcm m 
)
static
virtual const DtVector& DtSmoother::rotationalVelocity ( DtTime  t) const
virtual

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

static void DtSmoother::rotMatrixFromRotRatesAndTime ( DtDcm m,
DtDcm o,
DtVector n,
double &  w,
const DtVector r,
double  t 
)
static
DtSmoother * DtSmoother::self ( ) const
inlineprotected

Get rid of constness on the "this" pointer in order to access non-const functions from const member functions (such as simple accessors).

This should be used sparingly since it bypasses the const protection. Note: This is essentially like an operator and is non-virtual, since can't override based on return type. Allows derived classes to also define this member.

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setAcceleration ( const DtVector acc,
DtTime  t 
)
virtual

Set/Get absolute acceleration.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

static void DtSmoother::setDfltSmoothPeriod ( DtTime  smoothPeriod)
static

Set/Get the default smoothing period.

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setLocation ( const DtVector loc,
DtTime  t 
)
virtual

Set absolute location.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

static void DtSmoother::setMasterSmoothEnable ( bool  onOff)
static

Set/Get the value of the "master" smoothing-enabled switch.

Master smoothing switch defaults to on.

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setOrientation ( const DtTaitBryan ori,
DtTime  t 
)
virtual

Set absolute orientation.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setOriSmoothPeriod ( DtTime  t)
virtual

Set/Get orientation smoothing period - the amount of time over which orientation smoothing takes place.

Pass a value of -1 to indicate use of the default smoothing period.

virtual void DtSmoother::setRotationalVelocity ( const DtVector vel,
DtTime  t 
)
virtual

Set/Get absolute rotational velocity.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setSmoothEnable ( bool  onOff)
virtual

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setSmoothPeriod ( DtTime  t)
virtual

Set/Get smoothing period - the amount of time over which smoothing takes place.

Pass a value of -1 to indicate use of the default smoothing period.

Reimplemented in DtOldSmoother.

virtual void DtSmoother::setVelocity ( const DtVector vel,
DtTime  t 
)
virtual

Set absolute velocity.

Reimplemented from DtDeadReckoner.

Reimplemented in DtOldSmoother.

virtual const DtDcm& DtSmoother::smoothBodyToGeoc ( DtTime  t)
protectedvirtual
virtual bool DtSmoother::smoothEnable ( ) const
virtual

Reimplemented in DtOldSmoother.

virtual DtTime DtSmoother::smoothPeriod ( ) const
virtual

Reimplemented in DtOldSmoother.

virtual const DtVector& DtSmoother::smoothPosition ( DtTime  t)
protectedvirtual
virtual const DtVector& DtSmoother::smoothVelocity ( DtTime  t)
protectedvirtual

Member Data Documentation

DtVector DtSmoother::myA1
protected
DtVector DtSmoother::myA2
protected
DtTime DtSmoother::myHalfSmoothTime
protected
bool DtSmoother::myIsDirty
protected
DtDcm DtSmoother::myLastDrOri
protected
DtVector DtSmoother::myLastDrPos
protected
DtVector DtSmoother::myLastDrVel
protected
DtTime DtSmoother::myLastSetOriTime
protected
DtTime DtSmoother::myLastSetTime
protected
DtTime DtSmoother::myLastSmoothOriTime
protected
DtTime DtSmoother::myLastSmoothTbTime
protected
bool DtSmoother::myOriIsDirty
protected
DtTime DtSmoother::myOriTau
protected
DtTime DtSmoother::myPostSmoothOriTime
protected
DtTime DtSmoother::myPostSmoothTime
protected
bool DtSmoother::mySmoothEnable
protected
DtDcm DtSmoother::mySmoothOmegaMx
protected
DtDcm DtSmoother::mySmoothOri
protected
DtVector DtSmoother::mySmoothPos
protected
DtVector DtSmoother::mySmoothRotAxis
protected
double DtSmoother::mySmoothRotRate
protected
DtTaitBryan DtSmoother::mySmoothTb
protected
DtVector DtSmoother::mySmoothVel
protected
DtTime DtSmoother::myTau
protected
DtTime DtSmoother::myTau2
protected
DtTime DtSmoother::myTau2Inv
protected
DtTime DtSmoother::myTauSq4
protected
DtTime DtSmoother::myTauSq4Inv
protected
bool DtSmoother::myTbIsDirty
protected
DtVector DtSmoother::myV1
protected
DtVector DtSmoother::myX1
protected
DtTime DtSmoother::theDfltSmoothPeriod
staticprotected
bool DtSmoother::theMasterSmoothEnable
staticprotected
double DtSmoother::theTimeTolerance
staticprotected

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

Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)