![]() |
VR-Forces 4.0.4 Class Documentation
|
class DtSimKinematicState: This class encapsulates the kinematic state of an object wrt to the local (database) and network (geocentric) coordinate systems, as well as wrt it's own parent for attached objects such as launchers. More...

Public Member Functions | |
| DtSimKinematicState (DtSimObjectStateRepository *stateRep, const DtString &name=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=NULL) | |
| Constructor. | |
| DtSimKinematicState (DtSimObjectStateRepository *stateRep, const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtSimKinematicState (const DtSimKinematicState &orig, const DtString &name=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) | |
| Copy Constructor. | |
| DtSimKinematicState (const DtSimKinematicState &orig, const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=0) | |
| const DtSimKinematicState & | operator= (const DtSimKinematicState &orig) |
| Assignment Operator. | |
| virtual | ~DtSimKinematicState () |
| Destructor. | |
| virtual DtSimKinematicState * | clone (const DtString &name=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=NULL) const |
| Clone. | |
| virtual DtSimKinematicState * | clone (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL) const |
| virtual const DtVector & | parentPosition () const |
| virtual void | setParentPosition (const DtVector &position) |
| virtual const DtVector & | parentVelocity () const |
| virtual void | setParentVelocity (const DtVector &velocity, bool recomputeSpeed=true) |
| virtual DtReal | parentSpeed () const |
| virtual const DtVector & | parentAcceleration () const |
| virtual void | setParentAcceleration (const DtVector &acceleration) |
| virtual const DtTaitBryan & | parentOrientation () const |
| virtual void | setParentOrientation (const DtTaitBryan &orientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX) |
| virtual const DtDcm & | parentOrientationMatrix () const |
| virtual void | setParentOrientationMatrix (const DtDcm &orientationMatrix, bool recomputeEulers=true) |
| virtual const DtVector & | worldPosition () const |
| virtual void | setWorldPosition (const DtVector &position) |
| virtual const DtVector & | worldVelocity () const |
| virtual void | setWorldVelocity (const DtVector &velocity, bool recomputeSpeed=true) |
| virtual DtReal | worldSpeed () const |
| virtual const DtVector & | worldAcceleration () const |
| virtual void | setWorldAcceleration (const DtVector &acceleration) |
| virtual const DtTaitBryan & | worldOrientation () const |
| virtual void | setWorldOrientation (const DtTaitBryan &orientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX) |
| virtual const DtDcm & | worldOrientationMatrix () const |
| virtual void | setWorldOrientationMatrix (const DtDcm &orientationMatrix, bool recomputeEulers=true) |
| virtual DtVector | bodyVelocity () const |
| virtual DtTaitBryan | topoEuler () const |
| virtual double | heading () const |
| virtual double | pitch () const |
| virtual double | roll () const |
| virtual const DtVector & | rotationalVelocity () const |
| virtual void | setRotationalVelocity (const DtVector &rotationalVelocity) |
| virtual DtKinematicStateCS::DtRotationConstraint | rotationConstraint () const |
| virtual void | setRotationConstraint (DtKinematicStateCS::DtRotationConstraint constraint) |
| virtual DtKinematicStateCS::DtSimOrientationType | orientationType () const |
| Wrapper for DtKinematicStateCS functions. | |
| virtual void | setOrientationType (DtKinematicStateCS::DtSimOrientationType orientationType) |
| virtual DtSimObjectStateRepository * | stateRepository () const |
| virtual void | parentKinematicsChanged () |
| DtCoordSysValidationVector & | parentVV () |
| DtCoordSysValidationVector & | worldVV () |
| virtual void | putSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtReaderWriter::appPath()) |
| Override to check for invalid parent and world state date before writing self to file. | |
| virtual void | validateParentState () |
| Validates all values (if they are invalid) including world and parent. | |
| virtual void | validateWorldState () |
| virtual void | validateState () |
| virtual void | clearWorldVertices () |
| Clears out vertex list. | |
| virtual void | copyWorldVertices (const DtList &) |
| virtual void | addWorldVertex (const DtVector &vertex, DtVector &newGeometricCenter) |
| Object geometry methods -- these methods reference some information in the world kinematic state. | |
| virtual void | setWorldVertices (const DtVertexList &vertices, DtVector &newGeometricCenter) |
| Sets world vertices and translates them to body coordinates. | |
| virtual void | setWorldVertices (const DtList &vertices, DtVector &newGeometricCenter) |
| virtual const DtVertexList & | worldVertices () const |
| Returns world vertices and iterator of world vertices. | |
| virtual const DtRwVectorIterator & | worldVertexIterator () const |
| virtual void | removeVertex (int) |
| Removes vertex at the specified position. | |
| virtual void | setGeometryNeedsUpdate (bool) |
| Sets flags to update vertices. | |
| virtual void | invalidateWorldGeometry () |
| Sets the myObjectGeometryInvalid flag to true. | |
Protected Member Functions | |
| virtual const DtKinematicStateCS & | parentKinematicState () const |
| Get / set kinematic state in parent coords. | |
| virtual DtKinematicStateCS & | parentKinematicState () |
| virtual void | setParentKinematicState (const DtKinematicStateCS &parentKinematicState) |
| virtual const DtKinematicStateCS & | worldKinematicState () const |
| Get / set kinematic state in world coords. | |
| virtual DtKinematicStateCS & | worldKinematicState () |
| virtual void | setWorldKinematicState (const DtKinematicStateCS &worldKinematicState) |
| virtual void | setWorldPositionFromParent () |
| Update the world position from the parent's position. | |
| virtual void | setWorldOrientationFromParent () |
| Update the world orientation from the parent's orientation. | |
| virtual bool | calculateGeometricCenter (const DtList &vertices, DtVector &geometricCenter) const |
| Given the list, finds the geometric center of the points in the list. | |
| virtual void | calculateBodyCoordinates (const DtList &worldVertices) |
| Given the current world position and world orientation, calculate body coordinates. | |
Protected Attributes | |
| DtKinematicStateCS | myParentKinematicState |
| position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in parent's coordinate system | |
| DtKinematicStateCS | myWorldKinematicState |
| position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database coordinate system (same as parent for base object) | |
| DtVertexList | myWorldVertices |
| DtCoordSysValidationVector | myParentVV |
| XXX This will not be here... | |
| DtCoordSysValidationVector | myWorldVV |
| DtRwVector | myRotationalVelocity |
| this is the rate at which the object is rolling, pitching and yawing | |
| DtSimObjectStateRepository * | myStateRepository |
| DtTaitBryan | myTopoEuler |
| bool | myTopoInvalid |
| bool | myObjectGeometryInvalid |
| If true, and if this item is attached to a parent, redo object geometry. | |
Private Member Functions | |
| DtSimKinematicState () | |
| Default Constructor. Do not use. | |
class DtSimKinematicState: This class encapsulates the kinematic state of an object wrt to the local (database) and network (geocentric) coordinate systems, as well as wrt it's own parent for attached objects such as launchers.
| DtSimKinematicState::DtSimKinematicState | ( | DtSimObjectStateRepository * | stateRep, |
| const DtString & | name = DtString::nullString(), |
||
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
Constructor.
| DtSimKinematicState::DtSimKinematicState | ( | DtSimObjectStateRepository * | stateRep, |
| const DtSymbolString & | name, | ||
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
| DtSimKinematicState::DtSimKinematicState | ( | const DtSimKinematicState & | orig, |
| const DtString & | name = DtString::nullString(), |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
Copy Constructor.
| DtSimKinematicState::DtSimKinematicState | ( | const DtSimKinematicState & | orig, |
| const DtSymbolString & | name, | ||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
| virtual DtSimKinematicState::~DtSimKinematicState | ( | ) | [virtual] |
Destructor.
| DtSimKinematicState::DtSimKinematicState | ( | ) | [private] |
Default Constructor. Do not use.
| const DtSimKinematicState& DtSimKinematicState::operator= | ( | const DtSimKinematicState & | orig | ) |
Assignment Operator.
| virtual DtSimKinematicState* DtSimKinematicState::clone | ( | const DtString & | name = DtString::nullString(), |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) | const [virtual] |
Clone.
Reimplemented in DtVrfKinematicState.
| virtual DtSimKinematicState* DtSimKinematicState::clone | ( | const DtSymbolString & | name, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) | const [virtual] |
| virtual const DtVector& DtSimKinematicState::parentPosition | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setParentPosition | ( | const DtVector & | position | ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual const DtVector& DtSimKinematicState::parentVelocity | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setParentVelocity | ( | const DtVector & | velocity, |
| bool | recomputeSpeed = true |
||
| ) | [virtual] |
| virtual DtReal DtSimKinematicState::parentSpeed | ( | ) | const [virtual] |
| virtual const DtVector& DtSimKinematicState::parentAcceleration | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setParentAcceleration | ( | const DtVector & | acceleration | ) | [virtual] |
| virtual const DtTaitBryan& DtSimKinematicState::parentOrientation | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setParentOrientation | ( | const DtTaitBryan & | orientation, |
| DtKinematicStateCS::DtRotationConstraint | recomputeMatrix = DtKinematicStateCS::RotateAboutX |
||
| ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual const DtDcm& DtSimKinematicState::parentOrientationMatrix | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setParentOrientationMatrix | ( | const DtDcm & | orientationMatrix, |
| bool | recomputeEulers = true |
||
| ) | [virtual] |
| virtual const DtVector& DtSimKinematicState::worldPosition | ( | ) | const [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual void DtSimKinematicState::setWorldPosition | ( | const DtVector & | position | ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual const DtVector& DtSimKinematicState::worldVelocity | ( | ) | const [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual void DtSimKinematicState::setWorldVelocity | ( | const DtVector & | velocity, |
| bool | recomputeSpeed = true |
||
| ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual DtReal DtSimKinematicState::worldSpeed | ( | ) | const [virtual] |
| virtual const DtVector& DtSimKinematicState::worldAcceleration | ( | ) | const [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual void DtSimKinematicState::setWorldAcceleration | ( | const DtVector & | acceleration | ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual const DtTaitBryan& DtSimKinematicState::worldOrientation | ( | ) | const [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual void DtSimKinematicState::setWorldOrientation | ( | const DtTaitBryan & | orientation, |
| DtKinematicStateCS::DtRotationConstraint | recomputeMatrix = DtKinematicStateCS::RotateAboutX |
||
| ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual const DtDcm& DtSimKinematicState::worldOrientationMatrix | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setWorldOrientationMatrix | ( | const DtDcm & | orientationMatrix, |
| bool | recomputeEulers = true |
||
| ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual DtVector DtSimKinematicState::bodyVelocity | ( | ) | const [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual DtTaitBryan DtSimKinematicState::topoEuler | ( | ) | const [virtual] |
| virtual double DtSimKinematicState::heading | ( | ) | const [virtual] |
| virtual double DtSimKinematicState::pitch | ( | ) | const [virtual] |
| virtual double DtSimKinematicState::roll | ( | ) | const [virtual] |
| virtual const DtVector& DtSimKinematicState::rotationalVelocity | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setRotationalVelocity | ( | const DtVector & | rotationalVelocity | ) | [virtual] |
| virtual DtKinematicStateCS::DtRotationConstraint DtSimKinematicState::rotationConstraint | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::setRotationConstraint | ( | DtKinematicStateCS::DtRotationConstraint | constraint | ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual DtKinematicStateCS::DtSimOrientationType DtSimKinematicState::orientationType | ( | ) | const [virtual] |
Wrapper for DtKinematicStateCS functions.
| virtual void DtSimKinematicState::setOrientationType | ( | DtKinematicStateCS::DtSimOrientationType | orientationType | ) | [virtual] |
| virtual DtSimObjectStateRepository* DtSimKinematicState::stateRepository | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::parentKinematicsChanged | ( | ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual void DtSimKinematicState::putSelf | ( | FILE * | fp, |
| int | indentLevel = 0, |
||
| bool | writeUnspecified = false, |
||
| const DtFilename & | path = DtReaderWriter::appPath() |
||
| ) | [virtual] |
Override to check for invalid parent and world state date before writing self to file.
Updates position and orientation as needed and then call base class putSelf().
Reimplemented from DtReaderWriter.
| virtual void DtSimKinematicState::validateParentState | ( | ) | [virtual] |
Validates all values (if they are invalid) including world and parent.
| virtual void DtSimKinematicState::validateWorldState | ( | ) | [virtual] |
| virtual void DtSimKinematicState::validateState | ( | ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual void DtSimKinematicState::clearWorldVertices | ( | ) | [virtual] |
Clears out vertex list.
| virtual void DtSimKinematicState::copyWorldVertices | ( | const DtList & | ) | [virtual] |
| virtual void DtSimKinematicState::addWorldVertex | ( | 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 DtSimKinematicState::setWorldVertices | ( | const DtVertexList & | vertices, |
| DtVector & | newGeometricCenter | ||
| ) | [virtual] |
Sets world vertices and translates them to body coordinates.
| virtual void DtSimKinematicState::setWorldVertices | ( | const DtList & | vertices, |
| DtVector & | newGeometricCenter | ||
| ) | [virtual] |
Reimplemented in DtVrfKinematicState.
| virtual const DtVertexList& DtSimKinematicState::worldVertices | ( | ) | const [virtual] |
Returns world vertices and iterator of world vertices.
| virtual const DtRwVectorIterator& DtSimKinematicState::worldVertexIterator | ( | ) | const [virtual] |
| virtual void DtSimKinematicState::removeVertex | ( | int | ) | [virtual] |
Removes vertex at the specified position.
Reimplemented in DtVrfKinematicState.
| void DtSimKinematicState::setGeometryNeedsUpdate | ( | bool | b | ) | [inline, virtual] |
Sets flags to update vertices.
Reimplemented in DtVrfKinematicState.
References myObjectGeometryInvalid.
| virtual void DtSimKinematicState::invalidateWorldGeometry | ( | ) | [virtual] |
Sets the myObjectGeometryInvalid flag to true.
Should be called by anyone who sets the object geometry without going though this class.
| virtual const DtKinematicStateCS& DtSimKinematicState::parentKinematicState | ( | ) | const [protected, virtual] |
Get / set kinematic state in parent coords.
I don't expect the set version to be used, but it's included for completeness.
| virtual DtKinematicStateCS& DtSimKinematicState::parentKinematicState | ( | ) | [protected, virtual] |
| virtual void DtSimKinematicState::setParentKinematicState | ( | const DtKinematicStateCS & | parentKinematicState | ) | [protected, virtual] |
| virtual const DtKinematicStateCS& DtSimKinematicState::worldKinematicState | ( | ) | const [protected, virtual] |
Get / set kinematic state in world coords.
I don't expect the set version to be used, but it's included for completeness.
| virtual DtKinematicStateCS& DtSimKinematicState::worldKinematicState | ( | ) | [protected, virtual] |
| virtual void DtSimKinematicState::setWorldKinematicState | ( | const DtKinematicStateCS & | worldKinematicState | ) | [protected, virtual] |
| virtual void DtSimKinematicState::setWorldPositionFromParent | ( | ) | [protected, virtual] |
Update the world position from the parent's position.
| virtual void DtSimKinematicState::setWorldOrientationFromParent | ( | ) | [protected, virtual] |
Update the world orientation from the parent's orientation.
| virtual bool DtSimKinematicState::calculateGeometricCenter | ( | const DtList & | vertices, |
| DtVector & | geometricCenter | ||
| ) | const [protected, virtual] |
Given the list, finds the geometric center of the points in the list.
| virtual void DtSimKinematicState::calculateBodyCoordinates | ( | const DtList & | worldVertices | ) | [protected, virtual] |
Given the current world position and world orientation, calculate body coordinates.
Note that the resultant coordinates will be placed in the object geometry of the DtVrfObjectGeometry of the state repository class
position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in parent's coordinate system
position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database coordinate system (same as parent for base object)
DtKinematicStateCS myLocalKinematicState; position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in geocentric coordinate system
DtVertexList DtSimKinematicState::myWorldVertices [mutable, protected] |
XXX This will not be here...
This belongs in the network interface. just have to figure out how it gets set. --> DtDeadReckonTypes myDeadReckoningAlgorithm;
DtRwVector DtSimKinematicState::myRotationalVelocity [protected] |
this is the rate at which the object is rolling, pitching and yawing
DtTaitBryan DtSimKinematicState::myTopoEuler [protected] |
bool DtSimKinematicState::myTopoInvalid [protected] |
bool DtSimKinematicState::myObjectGeometryInvalid [mutable, protected] |
If true, and if this item is attached to a parent, redo object geometry.
Referenced by setGeometryNeedsUpdate().