VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
DtMaintainFormationMonitor Class Reference

class DtMaintainFormationMonitor: More...

Public Types

enum  DtPositionStatus { DtUndefinedPosition = -1, DtInPosition, DtBehindPosition, DtAheadOfPosition }
typedef std::map< DtVrfObject
*, DtPositionStatus
DtAggregatePositionStatusMap
 Map of subordinate to its position status in an aggregate.

Public Member Functions

 DtMaintainFormationMonitor (DtVrfObject *entity)
 DtMaintainFormationMonitor (const DtMaintainFormationMonitor &orig)
DtMaintainFormationMonitoroperator= (const DtMaintainFormationMonitor &orig)
virtual ~DtMaintainFormationMonitor ()
virtual void tick ()
virtual void setCatchupFactor (double catchUpFactor)
 Sets and gets the speed multiplier factor set in its subordinates when they are falling behind in formation.
virtual double catchupFactor () const
virtual void setSlowDownFactor (double slowDownFactor)
 Sets and gets the speed multiplier the aggregate uses to send speed control messages to a subordinate when it is ahead of where it should be in formation.
virtual double slowDownFactor () const
virtual void setInPositionTolerance (double tolerance)
 Tolerance about which an entity is considered to be 'in position' while moving in formation.
virtual double inPositionTolerance () const
virtual bool positionStatusHasChanged (DtVrfObject *subordinate, DtPositionStatus status)
 Check if give status is different from stored value.
virtual DtPositionStatus getPositionStatus (DtVrfObject *subordinate)
 Get the stored position status for a given subordinate.
virtual void setPositionStatus (DtVrfObject *entity, DtMaintainFormationMonitor::DtPositionStatus status)
 Set the position status for given subordinate.
virtual void printPositionStatus ()
 Prints the position status of all subordinates.

Protected Member Functions

virtual DtPositionStatus positionStatus (const DtVector &geocentricOrigin, const DtDcm &geocentricOrientation, const DtVector &geocentricTestPosition, const DtVector &idealBodyCoordinatesPosition, double inPositionTolerance)
virtual void sendSpeedControl (DtVrfObject *entity, DtPositionStatus status)
virtual void sendSetSpeedRequest (const DtVrfObject &entity, double speed)

Protected Attributes

double myCatchupFactor
double mySlowDownFactor
double myInPositionTolerance
DtVrfObjectmyEntity
DtVrfAggregateStateRepositorymyAggregateStateRepository
DtFormationStatemyFormationState
DtAggregatePositionStatusMap myAggregatePositionStatusMap

Detailed Description

class DtMaintainFormationMonitor:

Instances of DtMaintainFormationMonitor are used to monitor an aggregate moving in formation. It checks for entities out of formation position, and sends set speed requests to tell them to slow down or speed up as needed, to correct the formation.

Member Typedef Documentation

Map of subordinate to its position status in an aggregate.

Member Enumeration Documentation

Enumerator:
DtUndefinedPosition 
DtInPosition 
DtBehindPosition 
DtAheadOfPosition 

Constructor & Destructor Documentation

DtMaintainFormationMonitor::DtMaintainFormationMonitor ( DtVrfObject entity)
DtMaintainFormationMonitor::DtMaintainFormationMonitor ( const DtMaintainFormationMonitor orig)
virtual DtMaintainFormationMonitor::~DtMaintainFormationMonitor ( )
virtual

Member Function Documentation

DtMaintainFormationMonitor& DtMaintainFormationMonitor::operator= ( const DtMaintainFormationMonitor orig)
virtual void DtMaintainFormationMonitor::tick ( )
virtual
virtual void DtMaintainFormationMonitor::setCatchupFactor ( double  catchUpFactor)
virtual

Sets and gets the speed multiplier factor set in its subordinates when they are falling behind in formation.

The default catchup factor is 1.5. Catchup factor is multiplied by ordered speed.

virtual double DtMaintainFormationMonitor::catchupFactor ( ) const
virtual
virtual void DtMaintainFormationMonitor::setSlowDownFactor ( double  slowDownFactor)
virtual

Sets and gets the speed multiplier the aggregate uses to send speed control messages to a subordinate when it is ahead of where it should be in formation.

The default slowdown factor is 0.1. times the ordered speeed. Factor is multiplied by ordered speed.

virtual double DtMaintainFormationMonitor::slowDownFactor ( ) const
virtual
virtual void DtMaintainFormationMonitor::setInPositionTolerance ( double  tolerance)
virtual

Tolerance about which an entity is considered to be 'in position' while moving in formation.

Expressed as a fraction of formation spacing (distance between an entity and the entity it is relative to in formation). If entity is +/- (0.5 * tolerance * formation spacing), aggregate sends a set speed message to the subordinate, indicating it should slow down or speed up, accordingly. Default is 0.2 (20 percent).

virtual double DtMaintainFormationMonitor::inPositionTolerance ( ) const
virtual
virtual bool DtMaintainFormationMonitor::positionStatusHasChanged ( DtVrfObject subordinate,
DtPositionStatus  status 
)
virtual

Check if give status is different from stored value.

virtual DtPositionStatus DtMaintainFormationMonitor::getPositionStatus ( DtVrfObject subordinate)
virtual

Get the stored position status for a given subordinate.

virtual void DtMaintainFormationMonitor::setPositionStatus ( DtVrfObject entity,
DtMaintainFormationMonitor::DtPositionStatus  status 
)
virtual

Set the position status for given subordinate.

This value will be used for comparison with a future value to determine if a 'set speed' request needs to be sent out.

virtual void DtMaintainFormationMonitor::printPositionStatus ( )
virtual

Prints the position status of all subordinates.

virtual DtPositionStatus DtMaintainFormationMonitor::positionStatus ( const DtVector geocentricOrigin,
const DtDcm &  geocentricOrientation,
const DtVector geocentricTestPosition,
const DtVector idealBodyCoordinatesPosition,
double  inPositionTolerance 
)
protectedvirtual
virtual void DtMaintainFormationMonitor::sendSpeedControl ( DtVrfObject entity,
DtPositionStatus  status 
)
protectedvirtual
virtual void DtMaintainFormationMonitor::sendSetSpeedRequest ( const DtVrfObject entity,
double  speed 
)
protectedvirtual

Member Data Documentation

double DtMaintainFormationMonitor::myCatchupFactor
protected
double DtMaintainFormationMonitor::mySlowDownFactor
protected
double DtMaintainFormationMonitor::myInPositionTolerance
protected
DtVrfObject* DtMaintainFormationMonitor::myEntity
protected
DtVrfAggregateStateRepository* DtMaintainFormationMonitor::myAggregateStateRepository
protected
DtFormationState* DtMaintainFormationMonitor::myFormationState
protected
DtAggregatePositionStatusMap DtMaintainFormationMonitor::myAggregatePositionStatusMap
protected

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

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)