|
WSF
|
#include <WsfLOS_Manager.hpp>


Classes | |
| class | State |
| State data used in LOS calculations. More... | |
| class | LOS_Key |
| Line-of-sight key - a combination of the unique IDs of the two entities. More... | |
Public Member Functions | |
| WsfLOS_Manager (WsfLOS_ManagerData &aData) | |
| ~WsfLOS_Manager () override | |
| bool | Initialize () override |
| Initialize the LOS manager. | |
| void | PlatformDeleted (double aSimTime, WsfPlatform *aPlatformPtr) |
| Removes LOS data when a platform is deleted. | |
| void | Update (double aSimTime) |
| Simulation time has advanced; platforms are updated. | |
| bool | DebugEnabled () const |
| Determine if debugging is enabled. | |
| void | SetDebugEnabled (bool aDebugEnabled) |
| Public Member Functions inherited from WsfSimulationExtension | |
| WsfSimulationExtension () | |
| ~WsfSimulationExtension () override=default | |
| WsfSimulation & | GetSimulation () const |
| const WsfScenario & | GetScenario () const |
| virtual void | AddedToSimulation () |
| virtual bool | PrepareExtension () |
| virtual bool | PlatformsInitialized () |
| virtual void | PendingStart () |
| virtual void | Start () |
| virtual void | Complete (double aSimTime) |
| Public Member Functions inherited from WsfExtension | |
| virtual | ~WsfExtension ()=default |
| const std::string & | GetExtensionName () const |
| Public Member Functions inherited from WsfLOS_ManagerData | |
| WsfLOS_ManagerData () | |
| bool | ProcessInput (UtInput &aInput) |
| Process the line_of_sight_manager block. | |
Static Public Member Functions | |
| static WsfLOS_Manager * | Find (const WsfSimulation &aSimulation) |
| static void | __private_SetSim (WsfSimulationExtension &aExtension, WsfSimulation *aSimPtr) |
Vegetation masking methods | |
| typedef std::map< unsigned int, State > | StateMapType |
| typedef std::map< unsignedint, State >::iterator | StateMapTypeIterator |
| typedef std::pair< unsigned int, State > | StateMapTypePair |
| typedef std::map< LOS_Key, bool > | LOS_MapType |
| typedef std::map< LOS_Key, bool >::iterator | LOS_MapTypeIterator |
| typedef std::pair< LOS_Key, bool > | LOS_MapTypePair |
| typedef std::list< unsigned int > | LOS_RequestType |
| typedef std::list< unsignedint >::iterator | LOS_RequestTypeIterator |
| typedef std::map< unsigned int, unsigned int > | PriorityQueueType |
| typedef std::map< unsignedint, unsignedint >::iterator | PriorityQueueTypeIterator |
| typedef std::pair< unsigned int, unsigned int > | PriorityQueueTypePair |
| bool | MaskedByVegetation (WsfPlatform *aPlatformPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | MaskedByVegetation (WsfEM_Antenna *aAntennaPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | MaskedByVegetation (WsfEM_Antenna *aAntennaPtr, WsfEM_Antenna *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| StateMapType & | GetStateData () |
| Reference to the LOS manager state data so worker thread can use it. | |
Platform and part move check methods | |
| bool | PlatformMoved (WsfPlatform *aPlatformPtr) |
| bool | PlatformMoveCheck (WsfPlatform *aPlatformPtr, StateMapTypeIterator &aIter) |
| bool | PartMoved (WsfArticulatedPart *aPartPtr) |
| bool | PartMoveCheck (WsfArticulatedPart *aPartPtr, StateMapTypeIterator &aIter) |
LOS check methods | |
| bool | IsTargetVisible (WsfPlatform *aPlatformPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | IsTargetVisible (WsfEM_Antenna *aAntennaPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | IsTargetVisible (WsfEM_Antenna *aAntennaPtr, WsfEM_Antenna *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
Terrain masking methods | |
| bool | MaskedByTerrain (WsfPlatform *aPlatformPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | MaskedByTerrain (WsfEM_Antenna *aAntennaPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | MaskedByTerrain (WsfEM_Antenna *aAntennaPtr, WsfEM_Antenna *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
LOS check methods - Non-threaded | |
| bool | IsTargetVisibleNow (WsfPlatform *aPlatformPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | IsTargetVisibleNow (WsfEM_Antenna *aAntennaPtr, WsfPlatform *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | IsTargetVisibleNow (WsfEM_Antenna *aAntennaPtr, WsfEM_Antenna *aTargetPtr, double aMaxRange=0.0, double aRadiusScale=1.0) |
| bool | Moved (WsfEM_Antenna *aAntennaPtr) |
| Returns true if entity's movement is greater than the move tolerance (default is true). | |
| bool | Moved (WsfPlatform *aPlatformPtr) |
| bool | LOS_DataExists (unsigned int aID1, unsigned int aID2) |
| Returns true if LOS data exists for the two entities. | |
| bool | LOS_DataExists (unsigned int aID1, unsigned int aID2, LOS_MapTypeIterator &aIter) |
| bool | LOS_DataExists (unsigned int aID1, unsigned int aID2, LOS_MapType &aLOS_Map, LOS_MapTypeIterator &aIter) |
| bool | StateDataExists (unsigned int aID) |
| Returns true is state data exists for the entity. | |
| bool | StateDataExists (unsigned int aID, StateMapTypeIterator &iter) |
| bool | SetLOS_Data (unsigned int aID1, unsigned int aID2, bool aVisible) |
| Returns true if LOS data was successfully updated. | |
| bool | SetLOS_Data (unsigned int aID1, unsigned int aID2, bool aVisible, LOS_MapTypeIterator &aIter) |
| bool | SetStateData (unsigned int aID, State &aNewState) |
| Returns true if state data was successfully updated. | |
| bool | SetStateData (unsigned int aID, State &aNewState, StateMapTypeIterator &aIter) |
| void | DeleteLOS_Data (unsigned int aID, LOS_MapType &aLOS_Map) |
| Removes all map entries from the given map with a LOS_Key containing the given ID. | |
| void | UpdateStateData (LOS_RequestType &aLOS_RequestQueue) |
| Used in multi-threaded mode; updates the platform and part state data. | |
Additional Inherited Members | |
| Public Attributes inherited from WsfLOS_ManagerData | |
| double | mMaxAllowableLocDelta |
| Maximum location change allowed to determine if move occurred. | |
| bool | mMultiThreaded |
| Thread behavior. | |
| bool | mDebugEnabled |
| Debug flag. | |
| bool | mVegLayerMaskingEnabled |
| Vegetation Layer Masking. | |
| bool | mUseHeightForGroundPlatforms |
| ThreadData | mThreadData |
| Protected Member Functions inherited from WsfExtension | |
| void | InitializeExtensionName (const std::string &aName) |
The line of sight manager provides a centralized location from which LOS checks are handled. These checks occur particularly frequently in sensor AttemptToDetect methods. Through caching LOS checks, particularly for static platforms, the "m on n" computational problem is somewhat mitigated.
| typedef std::map<LOS_Key, bool> WsfLOS_Manager::LOS_MapType |
| typedef std::map<LOS_Key,bool>::iterator WsfLOS_Manager::LOS_MapTypeIterator |
| typedef std::pair<LOS_Key, bool> WsfLOS_Manager::LOS_MapTypePair |
| typedef std::list<unsigned int> WsfLOS_Manager::LOS_RequestType |
| typedef std::list<unsignedint>::iterator WsfLOS_Manager::LOS_RequestTypeIterator |
| typedef std::map<unsigned int, unsigned int> WsfLOS_Manager::PriorityQueueType |
| typedef std::map<unsignedint,unsignedint>::iterator WsfLOS_Manager::PriorityQueueTypeIterator |
| typedef std::pair<unsigned int, unsigned int> WsfLOS_Manager::PriorityQueueTypePair |
| typedef std::map<unsigned int, State> WsfLOS_Manager::StateMapType |
| typedef std::map<unsignedint,State>::iterator WsfLOS_Manager::StateMapTypeIterator |
| typedef std::pair<unsigned int, State> WsfLOS_Manager::StateMapTypePair |
| WsfLOS_Manager::WsfLOS_Manager | ( | WsfLOS_ManagerData & | aData | ) |
References WsfLOS_ManagerData::mThreadData, WsfLOS_ManagerData::WsfLOS_ManagerData(), and WsfSimulationExtension::WsfSimulationExtension().
Referenced by Find().
|
override |
References WsfLOS_ManagerData::mMultiThreaded.
|
inline |
Determine if debugging is enabled.
References WsfLOS_ManagerData::mDebugEnabled.
|
protected |
Removes all map entries from the given map with a LOS_Key containing the given ID.
Delete all LOS data containing the given ID.
| aID | [input] The ID to remove. |
| aLOS_Map | [input] The LOS container to process. |
Referenced by PlatformDeleted(), and Update().
|
static |
|
inline |
Reference to the LOS manager state data so worker thread can use it.
|
overridevirtual |
Initialize the LOS manager.
Initializes the LOS manager; called by WsfSimulation.
Reimplemented from WsfSimulationExtension.
References WsfSimulationExtension::GetSimulation(), WsfLOS_ManagerData::mMultiThreaded, PlatformDeleted(), and WsfObserver::PlatformDeleted().
| bool WsfLOS_Manager::IsTargetVisible | ( | WsfEM_Antenna * | aAntennaPtr, |
| WsfEM_Antenna * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target visible.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetArticulatedPart(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfSimulationExtension::GetSimulation(), WsfUniqueId::GetUniqueId(), IsTargetVisibleNow(), LOS_DataExists(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_ManagerData::mMultiThreaded, and simTime.
| bool WsfLOS_Manager::IsTargetVisible | ( | WsfEM_Antenna * | aAntennaPtr, |
| WsfPlatform * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target visible.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetArticulatedPart(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfSimulationExtension::GetSimulation(), WsfUniqueId::GetUniqueId(), IsTargetVisibleNow(), LOS_DataExists(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_ManagerData::mMultiThreaded, and simTime.
| bool WsfLOS_Manager::IsTargetVisible | ( | WsfPlatform * | aPlatformPtr, |
| WsfPlatform * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target visible.
| aPlatformPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfObject::GetName(), WsfSimulationExtension::GetSimulation(), WsfUniqueId::GetUniqueId(), IsTargetVisibleNow(), LOS_DataExists(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_ManagerData::mMultiThreaded, and simTime.
|
protected |
Is the line-of-sight to a target visible.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetArticulatedPart(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfUniqueId::GetUniqueId(), LOS_DataExists(), MaskedByTerrain(), MaskedByVegetation(), WsfLOS_ManagerData::mDebugEnabled, Moved(), WsfLOS_ManagerData::mVegLayerMaskingEnabled, and SetLOS_Data().
|
protected |
Is the line-of-sight to a target visible.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetArticulatedPart(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfUniqueId::GetUniqueId(), LOS_DataExists(), MaskedByTerrain(), MaskedByVegetation(), WsfLOS_ManagerData::mDebugEnabled, Moved(), WsfLOS_ManagerData::mVegLayerMaskingEnabled, and SetLOS_Data().
|
protected |
Is the line-of-sight to a target visible.
| aPlatformPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfObject::GetName(), WsfUniqueId::GetUniqueId(), LOS_DataExists(), MaskedByTerrain(), MaskedByVegetation(), WsfLOS_ManagerData::mDebugEnabled, Moved(), WsfLOS_ManagerData::mVegLayerMaskingEnabled, and SetLOS_Data().
Referenced by IsTargetVisible(), IsTargetVisible(), and IsTargetVisible().
|
protected |
Returns true if LOS data exists for the two entities.
Does line-of-sight data already exist for the two entities.
| aID1 | [input] Unique ID of endpoint entity. |
| aID2 | [input] Unique ID of other endpoint entity. |
References WsfSimulationExtension::GetSimulation(), and WsfSimulation::MultiThreadingActive().
Referenced by IsTargetVisible(), IsTargetVisible(), IsTargetVisible(), IsTargetVisibleNow(), IsTargetVisibleNow(), and IsTargetVisibleNow().
|
protected |
Does line-of-sight data already exist for the two entities.
| aID1 | [input] Unique ID of endpoint entity. |
| aID2 | [input] Unique ID of other endpoint entity. |
| aLOS_Map | [input] LOS data container to search |
| aIter | [output] Iterator pointing to the entry if it exists. |
References WsfSimulationExtension::GetSimulation(), and WsfSimulation::MultiThreadingActive().
|
protected |
Does line-of-sight data already exist for the two entities.
| aID1 | [input] Unique ID of endpoint entity. |
| aID2 | [input] Unique ID of other endpoint entity. |
| aIter | [output] Iterator pointing to the entry if it exists. |
References WsfSimulationExtension::GetSimulation(), and WsfSimulation::MultiThreadingActive().
| bool WsfLOS_Manager::MaskedByTerrain | ( | WsfEM_Antenna * | aAntennaPtr, |
| WsfEM_Antenna * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target obscured by the terrain.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetLocationLLA(), WsfSimulationExtension::GetSimulation(), WsfSimulation::GetTerrainInterface(), and wsf::TerrainInterface::MaskedByTerrain().
| bool WsfLOS_Manager::MaskedByTerrain | ( | WsfEM_Antenna * | aAntennaPtr, |
| WsfPlatform * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target obscured by the terrain.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfPlatform::GetHeight(), WsfEM_Antenna::GetLocationLLA(), WsfSimulationExtension::GetSimulation(), WsfPlatform::GetSpatialDomain(), WsfSimulation::GetTerrainInterface(), wsf::TerrainInterface::MaskedByTerrain(), WsfLOS_ManagerData::mUseHeightForGroundPlatforms, and WSF_SPATIAL_DOMAIN_LAND.
| bool WsfLOS_Manager::MaskedByTerrain | ( | WsfPlatform * | aPlatformPtr, |
| WsfPlatform * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target obscured by the terrain.
| aPlatformPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfPlatform::GetHeight(), WsfSimulationExtension::GetSimulation(), WsfPlatform::GetSpatialDomain(), WsfSimulation::GetTerrainInterface(), wsf::TerrainInterface::MaskedByTerrain(), WsfLOS_ManagerData::mUseHeightForGroundPlatforms, and WSF_SPATIAL_DOMAIN_LAND.
Referenced by IsTargetVisibleNow(), IsTargetVisibleNow(), and IsTargetVisibleNow().
| bool WsfLOS_Manager::MaskedByVegetation | ( | WsfEM_Antenna * | aAntennaPtr, |
| WsfEM_Antenna * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target obscured by the vegetation layer.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetLocationLLA(), WsfSimulationExtension::GetSimulation(), WsfSimulation::GetTerrainInterface(), and wsf::TerrainInterface::MaskedByVegetation().
| bool WsfLOS_Manager::MaskedByVegetation | ( | WsfEM_Antenna * | aAntennaPtr, |
| WsfPlatform * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target obscured by the vegetation layer.
| aAntennaPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfEM_Antenna::GetLocationLLA(), WsfSimulationExtension::GetSimulation(), WsfSimulation::GetTerrainInterface(), and wsf::TerrainInterface::MaskedByVegetation().
| bool WsfLOS_Manager::MaskedByVegetation | ( | WsfPlatform * | aPlatformPtr, |
| WsfPlatform * | aTargetPtr, | ||
| double | aMaxRange = 0.0, | ||
| double | aRadiusScale = 1.0 ) |
Is the line-of-sight to a target obscured by the vegetation layer.
| aPlatformPtr | [input] Pointer to the source. |
| aTargetPtr | [input] Pointer to the target. |
| aMaxRange | [input] Distance at which to stop checking. (default = 0.0; no range checking) |
| aRadiusScale | [input] Effective earth radius multiplier (default = 1.0) |
References WsfSimulationExtension::GetSimulation(), WsfSimulation::GetTerrainInterface(), and wsf::TerrainInterface::MaskedByVegetation().
Referenced by IsTargetVisibleNow(), IsTargetVisibleNow(), and IsTargetVisibleNow().
|
protected |
Returns true if entity's movement is greater than the move tolerance (default is true).
Has the entity moved beyond the allowable tolerance.
| aAntennaPtr | [input] Pointer to the entity. |
References WsfEM_Antenna::GetArticulatedPart(), and PartMoved().
Referenced by IsTargetVisibleNow(), IsTargetVisibleNow(), and IsTargetVisibleNow().
|
protected |
Has the entity moved beyond the allowable tolerance.
| aPlatformPtr | [input] Pointer to the entity. |
References PlatformMoved().
|
protected |
Performs a move check on a platform part and save the state data.
| aPartPtr | [input] A pointer to the platform. |
| aIter | [input] Iterator pointing to the entry. |
References WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfUniqueId::GetUniqueId(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_Manager::State::mLLA, WsfLOS_Manager::State::mLocationWCS, WsfLOS_ManagerData::mMaxAllowableLocDelta, WsfLOS_Manager::State::mMoved, WsfLOS_Manager::State::mPlatformIndex, WsfLOS_Manager::State::mTime, and SetStateData().
Referenced by PartMoved(), and UpdateStateData().
|
protected |
Performs a move check on a platform part and save the state data.
| aPartPtr | [input] A pointer to the platform. |
References WsfPlatform::GetIndex(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfUniqueId::GetUniqueId(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_Manager::State::mLLA, WsfLOS_Manager::State::mLocationWCS, WsfLOS_Manager::State::mMoved, WsfLOS_Manager::State::mPlatformIndex, PartMoveCheck(), SetStateData(), and StateDataExists().
Referenced by Moved().
| void WsfLOS_Manager::PlatformDeleted | ( | double | aSimTime, |
| WsfPlatform * | aPlatformPtr ) |
Removes LOS data when a platform is deleted.
Perform cleanup associated with a platform being deleted from the simulation.
| aSimTime | [input] The current simulation time. |
| aPlatformPtr | [input] Pointer to the platform to be deleted. |
References WsfComponentList::RoleIterator< T >::AtEnd(), DeleteLOS_Data(), WsfSimulationExtension::GetSimulation(), WsfUniqueId::GetUniqueId(), WsfLOS_ManagerData::mMultiThreaded, WsfSimulation::MultiThreadingActive(), and StateDataExists().
Referenced by Initialize().
|
protected |
Performs a move check on a platform and save the state data.
| aPlatformPtr | [input] A pointer to the platform. |
| aIter | [input] Iterator pointing to the entry. |
References WsfObject::GetName(), WsfUniqueId::GetUniqueId(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_Manager::State::mLLA, WsfLOS_Manager::State::mLocationWCS, WsfLOS_ManagerData::mMaxAllowableLocDelta, WsfLOS_Manager::State::mMoved, WsfLOS_Manager::State::mPlatformIndex, WsfLOS_Manager::State::mTime, and SetStateData().
Referenced by PlatformMoved(), and UpdateStateData().
|
protected |
Performs a move check on a platform and save the state data.
| aPlatformPtr | [input] A pointer to the platform. |
References WsfPlatform::GetIndex(), WsfObject::GetName(), WsfUniqueId::GetUniqueId(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_Manager::State::mLLA, WsfLOS_Manager::State::mLocationWCS, WsfLOS_Manager::State::mMoved, WsfLOS_Manager::State::mPlatformIndex, PlatformMoveCheck(), SetStateData(), and StateDataExists().
Referenced by Moved().
|
inline |
Set the debug state.
| aDebugEnabled | New debug state |
References WsfLOS_ManagerData::mDebugEnabled.
|
protected |
Returns true if LOS data was successfully updated.
Set the line-of-sight data.
| aID1 | [input] Unique ID of endpoint entity. |
| aID2 | [input] Unique ID of other endpoint entity. |
| aVisible | [input] True if line-of-sight between entities is not masked. |
References WsfSimulationExtension::GetSimulation(), WsfLOS_ManagerData::mMultiThreaded, and WsfSimulation::MultiThreadingActive().
Referenced by IsTargetVisibleNow(), IsTargetVisibleNow(), and IsTargetVisibleNow().
|
protected |
Set the line-of-sight data.
| aID1 | [input] Unique ID of endpoint entity. |
| aID2 | [input] Unique ID of other endpoint entity. |
| aVisible | [input] True if line-of-sight between entities is not masked. |
| aIter | [output] Iterator pointing to the entry if it exists. |
References WsfSimulationExtension::GetSimulation(), WsfLOS_ManagerData::mMultiThreaded, and WsfSimulation::MultiThreadingActive().
|
protected |
Returns true if state data was successfully updated.
Set the state data.
| aID | [input] Unique ID of entity. |
| aNewState | [input] Current state of entity. |
References WsfSimulationExtension::GetSimulation(), WsfLOS_ManagerData::mMultiThreaded, and WsfSimulation::MultiThreadingActive().
Referenced by PartMoveCheck(), PartMoved(), PlatformMoveCheck(), and PlatformMoved().
|
protected |
Set the state data.
| aID | [input] Unique ID of entity. |
| aNewState | [input] Current state of entity. |
| aIter | [output] Iterator pointing to the entry if it exists. |
References WsfSimulationExtension::GetSimulation(), WsfLOS_ManagerData::mMultiThreaded, and WsfSimulation::MultiThreadingActive().
|
protected |
Returns true is state data exists for the entity.
Does state data already exist for the entity.
| aID | [input] Unique ID of entity. |
References WsfSimulationExtension::GetSimulation(), and WsfSimulation::MultiThreadingActive().
Referenced by PartMoved(), PlatformDeleted(), and PlatformMoved().
|
protected |
Does state data already exist for the entity.
| aID | [input] Unique ID of entity. |
| aIter | [output] Iterator pointing to the entry if it exists. |
References WsfSimulationExtension::GetSimulation(), and WsfSimulation::MultiThreadingActive().
| void WsfLOS_Manager::Update | ( | double | aSimTime | ) |
Simulation time has advanced; platforms are updated.
Called by WsfFrameStepSimulatio::AdvanceFrame. Updates the state data.
| aSimTime | [input] The current simulation time. |
References DeleteLOS_Data(), WsfLOS_ManagerData::mDebugEnabled, WsfLOS_ManagerData::mMultiThreaded, and UpdateStateData().
|
protected |
Used in multi-threaded mode; updates the platform and part state data.
Update the LOS manager state data.
| aLOS_RequestQueue | [output] The list of platforms or parts that have moved this frame. |
References WsfSimulation::GetPlatformByIndex(), WsfSimulationExtension::GetSimulation(), PartMoveCheck(), PlatformMoveCheck(), and platformPtr.
Referenced by Update().