VR-Forces 5.0.2 Developer's Guide
 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:

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.

Public Types

enum  DtPositionStatus { DtUndefinedPosition = -1, DtInPosition, DtBehindPosition, DtAheadOfPosition }
 
typedef std::map< const
DtSimObject
*, DtPositionStatus
DtAggregatePositionStatusMap
 

Public Member Functions

 DtMaintainFormationMonitor (DtLocalObject *entity)
 
 DtMaintainFormationMonitor (const DtMaintainFormationMonitor &orig)
 
DtMaintainFormationMonitoroperator= (const DtMaintainFormationMonitor &orig)
 
virtual ~DtMaintainFormationMonitor ()
 
virtual void tick ()
 
virtual void setCatchupFactor (double catchUpFactor)
 
virtual double catchupFactor () const
 
virtual void setSlowDownFactor (double slowDownFactor)
 
virtual double slowDownFactor () const
 
virtual void setInPositionTolerance (double tolerance)
 
virtual double inPositionTolerance () const
 
virtual bool positionStatusHasChanged (const DtSimObject *subordinate, DtPositionStatus status)
 
virtual DtPositionStatus getPositionStatus (const DtSimObject *subordinate)
 
virtual void setPositionStatus (const DtSimObject *entity, DtMaintainFormationMonitor::DtPositionStatus status)
 
virtual void printPositionStatus ()
 

Protected Member Functions

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

Protected Attributes

double myCatchupFactor
 
double mySlowDownFactor
 
double myInPositionTolerance
 
DtLocalObjectmyEntity
 
const
DtVrfAggregateStateRepository
myAggregateStateRepository
 
const DtFormationStatemyFormationState
 
DtAggregatePositionStatusMap myAggregatePositionStatusMap
 

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 ( DtLocalObject 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 ( const DtSimObject subordinate,
DtPositionStatus  status 
)
virtual

Check if give status is different from stored value.

virtual DtPositionStatus DtMaintainFormationMonitor::getPositionStatus ( const DtSimObject subordinate)
virtual

Get the stored position status for a given subordinate.

virtual void DtMaintainFormationMonitor::setPositionStatus ( const DtSimObject 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 ( const DtSimObject entity,
DtPositionStatus  status 
)
protectedvirtual
virtual void DtMaintainFormationMonitor::sendSetSpeedRequest ( const DtSimObject entity,
double  speed 
)
protectedvirtual

Member Data Documentation

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

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)