![]() |
VR-Forces 4.7 Class Documentation
|
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) | |
| DtMaintainFormationMonitor & | operator= (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) |
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.
| typedef std::map<DtVrfObject*, DtPositionStatus> DtMaintainFormationMonitor::DtAggregatePositionStatusMap |
Map of subordinate to its position status in an aggregate.
| DtMaintainFormationMonitor::DtMaintainFormationMonitor | ( | DtVrfObject * | entity | ) |
| DtMaintainFormationMonitor::DtMaintainFormationMonitor | ( | const DtMaintainFormationMonitor & | orig | ) |
|
virtual |
| DtMaintainFormationMonitor& DtMaintainFormationMonitor::operator= | ( | const DtMaintainFormationMonitor & | orig | ) |
|
virtual |
|
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 |
|
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 |
|
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 |
|
virtual |
Check if give status is different from stored value.
|
virtual |
Get the stored position status for a given subordinate.
|
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 |
Prints the position status of all subordinates.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |