VR-Link JAVA API Documentation
 All Classes Namespaces Files Functions Variables Enumerator Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
com.mak.vrlj.coord.Smoother Class Reference

An Approximator which applies smooth transitions to dead reckoning updates. More...

+ Inheritance diagram for com.mak.vrlj.coord.Smoother:
+ Collaboration diagram for com.mak.vrlj.coord.Smoother:

Public Member Functions

 Smoother ()
 No-arg constructor. More...
 
boolean equals (Object obj)
 
int hashCode ()
 
String toString ()
 
- Public Member Functions inherited from com.mak.vrlj.coord.DeadReckoner
 DeadReckoner ()
 No-arg constructor. More...
 
boolean equals (Object obj)
 
ConstVector3f getAcceleration ()
 Get the acceleration vector used by this Approximator. More...
 
DeadReckoningAlgorithm getAlgorithm ()
 Get the dead reckoning algorithm used by this Approximator. More...
 
ConstTaitBryan getApproxEuler (double curTime)
 Get the approximate Euler angles at time dt since last update. More...
 
ConstVector3d getApproxPosition (double curTime)
 Get the approximate position at time dt since last update. More...
 
ConstVector3f getApproxVelocity (double curTime)
 Get the approximate velocity at time dt since last update. More...
 
ConstTaitBryan getOrientationAtTimeOfValidity ()
 Get the last orientation update provided. More...
 
ConstVector3d getPositionAtTimeOfValidity ()
 Get the last position update provided. More...
 
ConstVector3f getRotationalVelocity (double t)
 Get the approximate rotational velocity at time dt since last update. More...
 
double getTimeOfLastLocationValidity ()
 Get the simulation time of last position update. More...
 
double getTimeOfLastOrientationValidity ()
 Get the simulation time of last orientation update. More...
 
ConstVector3f getVelocityAtTimeOfValidity ()
 Get the last velocity update provided. More...
 
int hashCode ()
 
void setAcceleration (ConstVector3f acc, double curTime)
 Set the known acceleration at a given time. More...
 
void setAlgorithm (DeadReckoningAlgorithm algorithm)
 Set the DeadReckoningAlgorithm this Approximator should use. More...
 
void setOrientation (ConstTaitBryan orient, double timeNow)
 Set the known orientation at a given time. More...
 
void setOrientationAtTimeOfValidity (ConstTaitBryan v)
 Set the known orientation at the most recent time of validity. More...
 
void setPosition (ConstVector3d loc, double timeNow)
 Set the known position at a given time. More...
 
void setPositionAtTimeOfValidity (ConstVector3d pos)
 Set the known position at the most recent time of validity. More...
 
void setRotationalVelocity (ConstVector3f bodyRates, double curTime)
 Set the known rotational velocity at a given time. More...
 
void setTimeOfLastOrientationValidity (double v)
 Set the last simulation time orientation was updated. More...
 
void setTimeOfLastPositionValidity (double v)
 Set the last simulation time position was updated. More...
 
void setVelocity (ConstVector3f vel, double curTime)
 Set the known velocity at a given time. More...
 
void setVelocityAtTimeOfValidity (ConstVector3f v)
 Set the known velocity at the most recent time of validity. More...
 
String toString ()
 
boolean getFrozenBit ()
 Get the flag for whether the entity is frozen. More...
 
void setFrozenBit (boolean isFrozen)
 Set the flag for whether the entity is frozen. More...
 

Static Public Member Functions

static double getDefaultSmoothPeriod ()
 Get the period used by the smoother, in seconds. More...
 
static boolean getMasterSmoothEnable ()
 Check whether master smooth is enabled. More...
 
static void setDefaultSmoothPeriod (double smoothPeriod)
 Set the period used by the smoother, in seconds. More...
 
static void setMasterSmoothEnable (boolean onOff)
 Enable or disable the master smooth. More...
 

Protected Member Functions

double getSmoothPeriod ()
 
void initSmoothOriParams ()
 
boolean isDirty ()
 
boolean isSmoothEnable ()
 
void setSmoothEnable (boolean smoothEnable)
 
void setSmoothPeriod (double t)
 
ConstMatrix3d smoothBodyToGeoc (double t)
 
ConstVector3d smoothPosition (double t)
 
ConstVector3f smoothVelocity (double t)
 
- Protected Member Functions inherited from com.mak.vrlj.coord.DeadReckoner
void deadReckonBodyToGeoc (double curTime)
 Dead reckon rotation to a given simulation time. More...
 
void deadReckonEuler (double curTime)
 Dead reckon Euler angles to a given simulation time. More...
 
void deadReckonOrientation (double dt, ConstMatrix3d old_b2w, ConstVector3f drr, double drrTheta, Matrix3d new_b2w)
 
void deadReckonPos (double curTime)
 Dead reckon position to a given simulation time. More...
 
void deadReckonPosition (double dt, ConstVector3d oldPos, ConstVector3f oldVel, ConstVector3f accel, Vector3f newVel, Vector3d newPos)
 
ConstVector3f getAccel ()
 
ConstMatrix3d getApproxBodyToGeoc (double curTime)
 Get the approximate body-to-geocentric rotation matrix. More...
 
ConstMatrix3d getBodyToGeocAtTimeOfValidity ()
 
ConstMatrix3d getDeadReckonedBodyToGeoc (double curTime)
 Get rotation matrix dead reckoned to a given simulation time. More...
 
ConstTaitBryan getDeadReckonedEuler (double curTime)
 Get Euler angles dead reckoned to a given simulation time. More...
 
ConstVector3d getDeadReckonedPosition (double curTime)
 Get position dead reckoned to a given simulation time. More...
 
ConstVector3f getDeadReckonedVelocity (double curTime)
 Get velocity dead reckoned to a given simulation time. More...
 
ConstMatrix3d getDRBodyToGeoc ()
 
ConstVector3f getRotVel ()
 

Private Member Functions

void initSmootherParams ()
 
void resetOriSmoother (double t)
 
void resetPosSmoother (double t)
 

Static Private Member Functions

static void rotAngleAndAxisFromRotMatrix (Vector3d n, double parm_phi, ConstMatrix3d m)
 
static double rotMatrixFromRotRatesAndTime (Matrix3d m, Matrix3d mo, Vector3d n, ConstVector3f r, double t)
 

Private Attributes

final Vector3d myLastDrPos = new Vector3d()
 
final Vector3f myLastDrVel = new Vector3f()
 
final Vector3d mySmoothPos = new Vector3d()
 
final Vector3f mySmoothVel = new Vector3f()
 
final Vector3d myX1 = new Vector3d()
 
final Vector3f myV1 = new Vector3f()
 
final Vector3f myA1 = new Vector3f()
 
final Vector3f myA2 = new Vector3f()
 
double myTau
 
double myTau2
 
double myTau2Inv
 
double myTauSq4
 
double myTauSq4Inv
 
double myLastSetTime
 
double myPostSmoothTime
 
double myHalfSmoothTime
 
double myOriTau
 
double myLastSetOriTime
 
double myPostSmoothOriTime
 
double myLastSmoothOriTime
 
final double myLastSmoothTbTime
 
double mySmoothRotRate
 
final Matrix3d myLastDrOri = new Matrix3d()
 
final Matrix3d mySmoothOri = new Matrix3d()
 
final Matrix3d mySmoothOmegaMx = new Matrix3d()
 
final Vector3d mySmoothRotAxis = new Vector3d()
 
final ConstTaitBryan mySmoothTb = new TaitBryan()
 
boolean myIsDirty
 
boolean myOriIsDirty
 
final boolean myTbIsDirty
 
boolean mySmoothEnable
 

Static Private Attributes

static final double theTimeTolerance = 1.0E-3
 
static boolean theMasterSmoothEnable = true
 
static double theDfltSmoothPeriod = 1.0
 

Detailed Description

An Approximator which applies smooth transitions to dead reckoning updates.

Constructor & Destructor Documentation

com.mak.vrlj.coord.Smoother.Smoother ( )
inline

Member Function Documentation

boolean com.mak.vrlj.coord.Smoother.equals ( Object  obj)
inline
static double com.mak.vrlj.coord.Smoother.getDefaultSmoothPeriod ( )
inlinestatic

Get the period used by the smoother, in seconds.

Returns
the period used by the smoother, in seconds.

References com.mak.vrlj.coord.Smoother.theDfltSmoothPeriod.

Referenced by com.mak.vrlj.coord.Smoother.Smoother().

static boolean com.mak.vrlj.coord.Smoother.getMasterSmoothEnable ( )
inlinestatic

Check whether master smooth is enabled.

Returns
true if master smooth is enabled.

References com.mak.vrlj.coord.Smoother.theMasterSmoothEnable.

Referenced by com.mak.vrlj.coord.Smoother.resetOriSmoother(), and com.mak.vrlj.coord.Smoother.resetPosSmoother().

double com.mak.vrlj.coord.Smoother.getSmoothPeriod ( )
inlineprotected
int com.mak.vrlj.coord.Smoother.hashCode ( )
inline
void com.mak.vrlj.coord.Smoother.initSmootherParams ( )
inlineprivate
void com.mak.vrlj.coord.Smoother.initSmoothOriParams ( )
inlineprotected
boolean com.mak.vrlj.coord.Smoother.isDirty ( )
inlineprotected
boolean com.mak.vrlj.coord.Smoother.isSmoothEnable ( )
inlineprotected
void com.mak.vrlj.coord.Smoother.resetOriSmoother ( double  t)
inlineprivate
void com.mak.vrlj.coord.Smoother.resetPosSmoother ( double  t)
inlineprivate
static void com.mak.vrlj.coord.Smoother.rotAngleAndAxisFromRotMatrix ( Vector3d  n,
double  parm_phi,
ConstMatrix3d  m 
)
inlinestaticprivate
static double com.mak.vrlj.coord.Smoother.rotMatrixFromRotRatesAndTime ( Matrix3d  m,
Matrix3d  mo,
Vector3d  n,
ConstVector3f  r,
double  t 
)
inlinestaticprivate
static void com.mak.vrlj.coord.Smoother.setDefaultSmoothPeriod ( double  smoothPeriod)
inlinestatic

Set the period used by the smoother, in seconds.

Parameters
smoothPeriodthe period used by the smoother, in seconds.

References com.mak.vrlj.coord.Smoother.theDfltSmoothPeriod.

static void com.mak.vrlj.coord.Smoother.setMasterSmoothEnable ( boolean  onOff)
inlinestatic

Enable or disable the master smooth.

Parameters
onOfftrue to enable master smooth.

References com.mak.vrlj.coord.Smoother.theMasterSmoothEnable.

void com.mak.vrlj.coord.Smoother.setSmoothEnable ( boolean  smoothEnable)
inlineprotected
void com.mak.vrlj.coord.Smoother.setSmoothPeriod ( double  t)
inlineprotected
ConstMatrix3d com.mak.vrlj.coord.Smoother.smoothBodyToGeoc ( double  t)
inlineprotected
ConstVector3d com.mak.vrlj.coord.Smoother.smoothPosition ( double  t)
inlineprotected
ConstVector3f com.mak.vrlj.coord.Smoother.smoothVelocity ( double  t)
inlineprotected
String com.mak.vrlj.coord.Smoother.toString ( )
inline

Member Data Documentation

final Vector3f com.mak.vrlj.coord.Smoother.myA1 = new Vector3f()
private
final Vector3f com.mak.vrlj.coord.Smoother.myA2 = new Vector3f()
private
double com.mak.vrlj.coord.Smoother.myHalfSmoothTime
private
boolean com.mak.vrlj.coord.Smoother.myIsDirty
private
final Matrix3d com.mak.vrlj.coord.Smoother.myLastDrOri = new Matrix3d()
private
final Vector3d com.mak.vrlj.coord.Smoother.myLastDrPos = new Vector3d()
private
final Vector3f com.mak.vrlj.coord.Smoother.myLastDrVel = new Vector3f()
private
double com.mak.vrlj.coord.Smoother.myLastSetOriTime
private
double com.mak.vrlj.coord.Smoother.myLastSetTime
private
double com.mak.vrlj.coord.Smoother.myLastSmoothOriTime
private
final double com.mak.vrlj.coord.Smoother.myLastSmoothTbTime
private
boolean com.mak.vrlj.coord.Smoother.myOriIsDirty
private
double com.mak.vrlj.coord.Smoother.myOriTau
private
double com.mak.vrlj.coord.Smoother.myPostSmoothOriTime
private
double com.mak.vrlj.coord.Smoother.myPostSmoothTime
private
boolean com.mak.vrlj.coord.Smoother.mySmoothEnable
private
final Matrix3d com.mak.vrlj.coord.Smoother.mySmoothOmegaMx = new Matrix3d()
private
final Matrix3d com.mak.vrlj.coord.Smoother.mySmoothOri = new Matrix3d()
private
final Vector3d com.mak.vrlj.coord.Smoother.mySmoothPos = new Vector3d()
private
final Vector3d com.mak.vrlj.coord.Smoother.mySmoothRotAxis = new Vector3d()
private
double com.mak.vrlj.coord.Smoother.mySmoothRotRate
private
final ConstTaitBryan com.mak.vrlj.coord.Smoother.mySmoothTb = new TaitBryan()
private
final Vector3f com.mak.vrlj.coord.Smoother.mySmoothVel = new Vector3f()
private
double com.mak.vrlj.coord.Smoother.myTau
private
double com.mak.vrlj.coord.Smoother.myTau2
private
double com.mak.vrlj.coord.Smoother.myTau2Inv
private
double com.mak.vrlj.coord.Smoother.myTauSq4
private
double com.mak.vrlj.coord.Smoother.myTauSq4Inv
private
final boolean com.mak.vrlj.coord.Smoother.myTbIsDirty
private
final Vector3f com.mak.vrlj.coord.Smoother.myV1 = new Vector3f()
private
final Vector3d com.mak.vrlj.coord.Smoother.myX1 = new Vector3d()
private
double com.mak.vrlj.coord.Smoother.theDfltSmoothPeriod = 1.0
staticprivate
boolean com.mak.vrlj.coord.Smoother.theMasterSmoothEnable = true
staticprivate
final double com.mak.vrlj.coord.Smoother.theTimeTolerance = 1.0E-3
staticprivate

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

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)