|
WSF
|
#include <WsfExtEntityDeadReckon.hpp>


Classes | |
| struct | DR_State |
| Stores the state of an entity. More... | |
| class | PlatformDR |
| Maintains a platform's dead reckon state. More... | |
Public Types | |
| enum | UpdateType { cNO_CHANGE = 0 , cDR_CHANGE = 1 , cHEARTBEAT = 2 } |
Public Member Functions | |
| WsfExtEntityDeadReckon (WsfExtInterface *aExtInterfacePtr) | |
| void | Initialize () |
| bool | ProcessInput (UtInput &aInput) |
| void | RequestService (bool aHeartbeatRequired) |
| void | ForceUpdate (double aSimTime, WsfPlatform *aPlatformPtr, bool aForceSend=false) |
| void | RequireExternalEntities (bool aExternalEntitiesRequired) |
| void | UseInitialDistributionInterval () |
| Requests that the initial distribution interval is to be used. | |
| double | GetHeartbeatTimer () const |
| Return the heartbeat timer (seconds). | |
| void | SetHeartbeatTimerOverride (double aTime) |
| Set the current heartbeat timer for this individual platform. | |
| double | GetEntityOrientationThreshold () const |
| Return the orientation threshold (radians). | |
| double | GetEntityPositionThreshold () const |
| Return the position threshold (meters). | |
| double | GetInitialDistributionInterval () const |
| void | SetInitialDistributionInterval (double aValue) |
| Allow the initial distribution interval to be set. | |
| double | GetMoverUpdateTimer () const |
| void | SetMoverUpdateTimer (double aMoverUpdateTimer) |
| Public Member Functions inherited from WsfExtEntityDeadReckonSetup | |
| WsfExtEntityDeadReckonSetup () | |
Public Attributes | |
| UtCallbackListN< void(double, PlatformDR &)> | DeadReckonChanged |
| UtCallbackListN< void(double, PlatformDR &)> | MoverUpdated |
| Public Attributes inherited from WsfExtEntityDeadReckonSetup | |
| bool | mDR_ServiceRequested |
| double | mHeartbeatTimer |
| double | mMoverUpdateTimer |
| double | mInitialDistributionInterval |
| double | mEntityPositionThreshold |
| double | mEntityOrientationThreshold |
Provides a central place where external interfaces can register for entity position updates using a dead reckoning algorithm. This allows for DR to be computed only once for each internal platform, instead of once for each interface.
| WsfExtEntityDeadReckon::WsfExtEntityDeadReckon | ( | WsfExtInterface * | aExtInterfacePtr | ) |
References WsfExtEntityDeadReckonSetup::WsfExtEntityDeadReckonSetup().
Referenced by WsfExtEntityDeadReckon::PlatformDR::PlatformDR().
| void WsfExtEntityDeadReckon::ForceUpdate | ( | double | aSimTime, |
| WsfPlatform * | aPlaformPtr, | ||
| bool | aForceSend = false ) |
Forces an update of the dead reckoning for a specific platform. The caller should ensure the platform is updated to the current time before calling this method.
References WsfPlatform::GetIndex().
Referenced by WsfDisVisualization::BehaviorChange(), and WsfDisPlatform::ForceUpdate().
|
inline |
Return the orientation threshold (radians).
References WsfExtEntityDeadReckonSetup::mEntityOrientationThreshold.
|
inline |
Return the position threshold (meters).
References WsfExtEntityDeadReckonSetup::mEntityPositionThreshold.
|
inline |
Return the heartbeat timer (seconds).
References WsfExtEntityDeadReckonSetup::mHeartbeatTimer.
|
inline |
|
inline |
References WsfExtEntityDeadReckonSetup::mMoverUpdateTimer.
| void WsfExtEntityDeadReckon::Initialize | ( | ) |
References WsfSimulation::GetPlatformCount(), WsfSimulation::GetPlatformEntry(), WsfSimulation::GetSimTime(), WsfSimulation::IsEventStepSimulation(), WsfExtEntityDeadReckonSetup::mDR_ServiceRequested, WsfExtEntityDeadReckonSetup::mHeartbeatTimer, WsfExtEntityDeadReckonSetup::mInitialDistributionInterval, WsfExtEntityDeadReckonSetup::mMoverUpdateTimer, WsfObserver::MoverUpdated(), WsfObserver::PlatformAdded(), WsfObserver::PlatformDeleted(), and platformPtr.
Referenced by RequestService().
| bool WsfExtEntityDeadReckon::ProcessInput | ( | UtInput & | aInput | ) |
| void WsfExtEntityDeadReckon::RequestService | ( | bool | aHeartbeatRequired | ) |
Request that WsfExtEntityDeadReckon is used. If this method isn't called, we assume we can do no work.
| aHeartbeatRequired | When 'true', WsfExtEntityDeadReckon will enforce updating the dead reckon state at a minimum of every heartbeat timer interval. |
References Initialize(), and WsfExtEntityDeadReckonSetup::mDR_ServiceRequested.
Referenced by wsf::simdis::Interface::AddedToSimulation().
| void WsfExtEntityDeadReckon::RequireExternalEntities | ( | bool | aExternalEntitiesRequired | ) |
References WsfSimulation::GetPlatformCount(), WsfSimulation::GetPlatformEntry(), WsfSimulation::GetSimTime(), and platformPtr.
Referenced by wsf::simdis::Interface::AddedToSimulation().
|
inline |
Set the current heartbeat timer for this individual platform.
|
inline |
Allow the initial distribution interval to be set.
References WsfExtEntityDeadReckonSetup::mInitialDistributionInterval.
|
inline |
References WsfExtEntityDeadReckonSetup::mMoverUpdateTimer.
|
inline |
Requests that the initial distribution interval is to be used.
| UtCallbackListN<void(double, PlatformDR&)> WsfExtEntityDeadReckon::DeadReckonChanged |
Invoked every time a platform's dead reckon has changed. This is guaranteed to be called at least once every heartbeat interval
Referenced by wsf::simdis::Interface::AddedToSimulation().
| UtCallbackListN<void(double, PlatformDR&)> WsfExtEntityDeadReckon::MoverUpdated |
Invoked every time GetSimulation()->GetObserver().MoverUpdated is called. The third parameter is 'true' if the dead reckon state was updated