VR-Forces 4.0.4 Class Documentation
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtVrfKinematicState Class Reference

This class is a DtSimKinematicState with the addition of another CS for local database coordinates. More...

Inheritance diagram for DtVrfKinematicState:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtVrfKinematicState (const Coordinate_System *coordinateSystem, DtSimObjectStateRepository *stateRep, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
 Constructor.
 DtVrfKinematicState (const DtVrfKinematicState &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
 Copy Constructor.
const DtVrfKinematicStateoperator= (const DtVrfKinematicState &orig)
 Assignment Operator.
virtual ~DtVrfKinematicState ()
 Destructor.
virtual DtSimKinematicStateclone (const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const
 Clone.
virtual void setCoordinateSystem (const Coordinate_System *coordinateSystem)
 Sets coordinate system used in converting between local (database) and other (geocentric or topocentric) coordinates.
virtual const Coordinate_SystemcoordinateSystem () const
virtual const DtVectorlocalPosition () const
 Position in local (database) coordinates, in meters.
virtual void setLocalPosition (const DtVector &localPosition)
virtual void setWorldVertices (const DtList &vertices, DtVector &newGeometricCenter)
 Override to set dirty flag for local.
virtual const DtVectorlocalVelocity () const
 Velocity in local (database) coordinates, in meters/second.
virtual void setLocalVelocity (const DtVector &localVelocity, bool recomputeSpeed=true)
virtual DtReal localSpeed () const
 Speed, in meters/second.
virtual void setLocalSpeed (DtReal localSpeed)
virtual const DtVectorlocalAcceleration () const
 Acceleration in local (database) coordinates, in meters/second/second.
virtual void setLocalAcceleration (const DtVector &localAcceleration)
virtual const DtVectorrelativeAcceleration () const
 Note that for both of the relative calls, the supplied acceleration or velocity should be in local (datbase) coordinates.
virtual void setRelativeAcceleration (const DtVector &localAcceleration)
virtual const DtVectorrelativeVelocity () const
 If attached, returns parent and sets parent velocity, else returns/sets local.
virtual void setRelativeVelocity (const DtVector &localVelocity, bool recomputeSpeed=true)
virtual DtVector bodyVelocity () const
 Returns bodyVelocity if not attached, else relative velocity.
virtual void invalidateRelativeVelocity ()
virtual void invalidateRelativeAcceleration ()
virtual const DtTaitBryan & localOrientationWrtDatabase () const
 Euler angles with respect to the local (database) coordinate system, in radians.
virtual void setLocalOrientationWrtDatabase (const DtTaitBryan &localOrientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX)
virtual const DtDcm & localOrientationMatrix () const
 Directed cosine matrix for rotating from body coordinates to the local (database) coordinate system.
virtual void setLocalOrientationMatrix (const DtDcm &localOrientationMatrix, bool recomputeEulers=true)
virtual void setRotationConstraint (DtKinematicStateCS::DtRotationConstraint constraint)
virtual const DtVectorworldPosition () const
 Position in geocentric coordinates, in meters.
virtual void setWorldPosition (const DtVector &gecoentricPosition)
virtual const DtVectorworldVelocity () const
 Velocity in geocentric coordinates, in meters/second.
virtual void setWorldVelocity (const DtVector &gecoentricVelocity, bool recomputeSpeed=true)
virtual const DtVectorworldAcceleration () const
 Acceleration in geocentric coordinates, in meters/second/second.
virtual void setWorldAcceleration (const DtVector &gecoentricAcceleration)
virtual const DtTaitBryan & worldOrientation () const
 Euler angles with respect to the geocentric coordinate system, in radians.
virtual void setWorldOrientation (const DtTaitBryan &orientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX)
virtual void setParentOrientation (const DtTaitBryan &orientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX)
 Overridden to invalidate the localVV.
virtual void setParentPosition (const DtVector &position)
 Overridden to invalidate the localVV.
virtual void setWorldOrientationMatrix (const DtDcm &orientationMatrix, bool recomputeEulers=true)
 Directed cosine matrix for rotating from body coordinates to the geocentric coordinate system.
virtual void parentKinematicsChanged ()
 Overridden to invalidate the localVV.
DtCoordSysValidationVectorlocalVV ()
 No user serviceable parts inside! This accessor makes the validation vectors accessible to the object manager so that it set them when reading from the Order of battle file...
virtual void validateLocalState ()
 Called from validateState(), validates all local variables. Called from putSelf.
virtual void validateState ()
virtual void addLocalVertex (const DtVector &vertex, DtVector &newGeometricCenter)
 Object geometry methods -- these methods reference some information in the world kinematic state.
virtual const DtLocalVertexListlocalVertices () const
 Returns local vertex list and iterator.
virtual const
DtLocalVectorIterator
localVertexIterator () const
virtual void removeVertex (int i)
 Removes vertex at the specified position.
virtual void setGeometryNeedsUpdate (bool b)
 Sets flags to update vertices.
virtual void invalidateLocalGeometry ()
 Sets the myLocalObjectGeometryInvalid flag to true.
virtual const DtTaitBryan & localOrientation () const
virtual void setLocalOrientation (const DtTaitBryan &topoOrientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX)
virtual void setLocalVertices (const DtLocalVertexList &vertices, DtVector &newGeometricCenter)
 Sets local vertices and also translates to body coordinates.
virtual void setLocalVertices (const DtList &vertices, DtVector &newGeometricCenter)
 Sets local vertices and also translates to body coordinates.

Protected Member Functions

virtual const DtKinematicStateCSlocalKinematicState () const
 Get / set kinematic state in local coords.
virtual DtKinematicStateCSlocalKinematicState ()
virtual void setLocalKinematicState (const DtKinematicStateCS &localKinematicState)
virtual void clearLocalVertices ()

Protected Attributes

DtKinematicStateCS myLocalKinematicState
 Position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database coordinate system (same as parent for base object).
DtCoordSysValidationVector myLocalVV
const Coordinate_SystemmyCoordinateSystemPtr
DtTaitBryan myTopoOrientation
 This data member is used in localOrientation(), to provide a way to return a const reference to a DtTaitBryan representing topo Euler angles.
DtVector myRelativeAcceleration
bool myRelativeAccelerationInvalid
DtVector myRelativeVelocity
bool myRelativeVelocityInvalid
bool myLocalObjectGeometryInvalid
DtLocalVertexList myLocalVertexList

Private Member Functions

 DtVrfKinematicState ()

Detailed Description

This class is a DtSimKinematicState with the addition of another CS for local database coordinates.


Constructor & Destructor Documentation

DtVrfKinematicState::DtVrfKinematicState ( const Coordinate_System coordinateSystem,
DtSimObjectStateRepository stateRep,
const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
)

Constructor.

DtVrfKinematicState::DtVrfKinematicState ( const DtVrfKinematicState orig,
const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
)

Copy Constructor.

Destructor.


Member Function Documentation

const DtVrfKinematicState& DtVrfKinematicState::operator= ( const DtVrfKinematicState orig)

Assignment Operator.

virtual DtSimKinematicState* DtVrfKinematicState::clone ( const DtString rwName = DtString::nullString(),
DtReaderWriterRegistry parentRegistry = 0 
) const [virtual]

Clone.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setCoordinateSystem ( const Coordinate_System coordinateSystem) [virtual]

Sets coordinate system used in converting between local (database) and other (geocentric or topocentric) coordinates.

Must be called with a valid coordinate system before any public member functions are called.

virtual const Coordinate_System* DtVrfKinematicState::coordinateSystem ( ) const [virtual]
virtual const DtVector& DtVrfKinematicState::localPosition ( ) const [virtual]

Position in local (database) coordinates, in meters.

virtual void DtVrfKinematicState::setLocalPosition ( const DtVector localPosition) [virtual]
virtual void DtVrfKinematicState::setWorldVertices ( const DtList &  vertices,
DtVector newGeometricCenter 
) [virtual]

Override to set dirty flag for local.

Reimplemented from DtSimKinematicState.

virtual const DtVector& DtVrfKinematicState::localVelocity ( ) const [virtual]

Velocity in local (database) coordinates, in meters/second.

virtual void DtVrfKinematicState::setLocalVelocity ( const DtVector localVelocity,
bool  recomputeSpeed = true 
) [virtual]
virtual DtReal DtVrfKinematicState::localSpeed ( ) const [virtual]

Speed, in meters/second.

virtual void DtVrfKinematicState::setLocalSpeed ( DtReal  localSpeed) [virtual]
virtual const DtVector& DtVrfKinematicState::localAcceleration ( ) const [virtual]

Acceleration in local (database) coordinates, in meters/second/second.

virtual void DtVrfKinematicState::setLocalAcceleration ( const DtVector localAcceleration) [virtual]
virtual const DtVector& DtVrfKinematicState::relativeAcceleration ( ) const [virtual]

Note that for both of the relative calls, the supplied acceleration or velocity should be in local (datbase) coordinates.

The returned values are also in local (database) coordinates If attached, returns parent and sets parent acceleration, else returns/sets local

virtual void DtVrfKinematicState::setRelativeAcceleration ( const DtVector localAcceleration) [virtual]
virtual const DtVector& DtVrfKinematicState::relativeVelocity ( ) const [virtual]

If attached, returns parent and sets parent velocity, else returns/sets local.

virtual void DtVrfKinematicState::setRelativeVelocity ( const DtVector localVelocity,
bool  recomputeSpeed = true 
) [virtual]
virtual DtVector DtVrfKinematicState::bodyVelocity ( ) const [virtual]

Returns bodyVelocity if not attached, else relative velocity.

Reimplemented from DtSimKinematicState.

virtual const DtTaitBryan& DtVrfKinematicState::localOrientationWrtDatabase ( ) const [virtual]

Euler angles with respect to the local (database) coordinate system, in radians.

virtual void DtVrfKinematicState::setLocalOrientationWrtDatabase ( const DtTaitBryan &  localOrientation,
DtKinematicStateCS::DtRotationConstraint  recomputeMatrix = DtKinematicStateCS::RotateAboutX 
) [virtual]
virtual const DtDcm& DtVrfKinematicState::localOrientationMatrix ( ) const [virtual]

Directed cosine matrix for rotating from body coordinates to the local (database) coordinate system.

virtual void DtVrfKinematicState::setLocalOrientationMatrix ( const DtDcm &  localOrientationMatrix,
bool  recomputeEulers = true 
) [virtual]

Reimplemented from DtSimKinematicState.

virtual const DtVector& DtVrfKinematicState::worldPosition ( ) const [virtual]

Position in geocentric coordinates, in meters.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setWorldPosition ( const DtVector gecoentricPosition) [virtual]

Reimplemented from DtSimKinematicState.

virtual const DtVector& DtVrfKinematicState::worldVelocity ( ) const [virtual]

Velocity in geocentric coordinates, in meters/second.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setWorldVelocity ( const DtVector gecoentricVelocity,
bool  recomputeSpeed = true 
) [virtual]

Reimplemented from DtSimKinematicState.

virtual const DtVector& DtVrfKinematicState::worldAcceleration ( ) const [virtual]

Acceleration in geocentric coordinates, in meters/second/second.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setWorldAcceleration ( const DtVector gecoentricAcceleration) [virtual]

Reimplemented from DtSimKinematicState.

virtual const DtTaitBryan& DtVrfKinematicState::worldOrientation ( ) const [virtual]

Euler angles with respect to the geocentric coordinate system, in radians.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setWorldOrientation ( const DtTaitBryan &  orientation,
DtKinematicStateCS::DtRotationConstraint  recomputeMatrix = DtKinematicStateCS::RotateAboutX 
) [virtual]

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setParentOrientation ( const DtTaitBryan &  orientation,
DtKinematicStateCS::DtRotationConstraint  recomputeMatrix = DtKinematicStateCS::RotateAboutX 
) [virtual]

Overridden to invalidate the localVV.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setParentPosition ( const DtVector position) [virtual]

Overridden to invalidate the localVV.

Reimplemented from DtSimKinematicState.

virtual void DtVrfKinematicState::setWorldOrientationMatrix ( const DtDcm &  orientationMatrix,
bool  recomputeEulers = true 
) [virtual]

Directed cosine matrix for rotating from body coordinates to the geocentric coordinate system.

Reimplemented from DtSimKinematicState.

Overridden to invalidate the localVV.

Reimplemented from DtSimKinematicState.

No user serviceable parts inside! This accessor makes the validation vectors accessible to the object manager so that it set them when reading from the Order of battle file...

virtual void DtVrfKinematicState::validateLocalState ( ) [virtual]

Called from validateState(), validates all local variables. Called from putSelf.

virtual void DtVrfKinematicState::validateState ( ) [virtual]

Reimplemented from DtSimKinematicState.

virtual const DtTaitBryan& DtVrfKinematicState::localOrientation ( ) const [virtual]
Deprecated:
To be removed after VR-Forces version 3.11 The following functions are only applicable for UTM databases.

Set/get topocentric Euler angles (heading, pitch, and roll). Use localOrientationWrtDatabase() instead, to get Euler angles with respect to the local (database) coordinate system, independent of the particular type of coordinate system in use (e.g. UTM, geocentric).

virtual void DtVrfKinematicState::setLocalOrientation ( const DtTaitBryan &  topoOrientation,
DtKinematicStateCS::DtRotationConstraint  recomputeMatrix = DtKinematicStateCS::RotateAboutX 
) [virtual]
Deprecated:
To be removed after VR-Forces version 3.11 The following functions are only applicable for UTM databases.

Set/get topocentric Euler angles (heading, pitch, and roll). Use localOrientationWrtDatabase() instead, to get Euler angles with respect to the local (database) coordinate system, independent of the particular type of coordinate system in use (e.g. UTM, geocentric).

virtual void DtVrfKinematicState::addLocalVertex ( const DtVector vertex,
DtVector newGeometricCenter 
) [virtual]

Object geometry methods -- these methods reference some information in the world kinematic state.

Adds a new vertex to the world geometry (translating to body)

virtual void DtVrfKinematicState::setLocalVertices ( const DtLocalVertexList vertices,
DtVector newGeometricCenter 
) [virtual]

Sets local vertices and also translates to body coordinates.

The new newGeometricCenter parameter is updated based on the verticies provided.

virtual void DtVrfKinematicState::setLocalVertices ( const DtList &  vertices,
DtVector newGeometricCenter 
) [virtual]

Sets local vertices and also translates to body coordinates.

The new newGeometricCenter parameter is updated based on the verticies provided.

virtual const DtLocalVertexList& DtVrfKinematicState::localVertices ( ) const [virtual]

Returns local vertex list and iterator.

virtual void DtVrfKinematicState::removeVertex ( int  ) [virtual]

Removes vertex at the specified position.

Reimplemented from DtSimKinematicState.

void DtVrfKinematicState::setGeometryNeedsUpdate ( bool  b) [inline, virtual]

Sets flags to update vertices.

Reimplemented from DtSimKinematicState.

References myLocalObjectGeometryInvalid.

Sets the myLocalObjectGeometryInvalid flag to true.

Should be called by anyone who sets the object geometry without going though this class. Also calls invalidateWorldGeometry().

virtual const DtKinematicStateCS& DtVrfKinematicState::localKinematicState ( ) const [protected, virtual]

Get / set kinematic state in local coords.

I don't expect the set version to be used, but it's included for completeness.

virtual void DtVrfKinematicState::setLocalKinematicState ( const DtKinematicStateCS localKinematicState) [protected, virtual]
virtual void DtVrfKinematicState::clearLocalVertices ( ) [protected, virtual]

Member Data Documentation

Position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database coordinate system (same as parent for base object).

DtTaitBryan DtVrfKinematicState::myTopoOrientation [protected]

This data member is used in localOrientation(), to provide a way to return a const reference to a DtTaitBryan representing topo Euler angles.

It is needed to provide a backwards compatible interface only.

Referenced by setGeometryNeedsUpdate().


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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)