11#ifndef WSF_BM_UTILS_HPP
12#define WSF_BM_UTILS_HPP
25#include <iadsLib/idRecord.hpp>
27#include <iadsLib/baseMessage.hpp>
34#include <iadsLib/enum.hpp>
48 class BattleManagerInterface;
49 class AssetManagerInterface;
50 class DisseminateC2Interface;
51 class SensorsManagerInterface;
52 class WeaponsManagerInterface;
62 static int GetStringId(
const std::string& str_Value);
63 static std::string GetStringFromId(
const int stringid);
65 static bool IsTypeUnknown(
const std::string& type_str);
66 static bool IsSubtypeUnknown(
const std::string& subtype_str);
68 static bool IsTypeAny(
const std::string& type_str);
69 static bool IsSubtypeAny(
const std::string& subtype_str);
71 static int GetUnknownType();
72 static int GetUnknownSubtype();
74 static int GetType(
const std::string& type_str);
75 static int GetSubType(
const std::string& subtype_str);
77 static std::string GetSpatialDomain(
const WsfPlatform* platform);
79 static WsfTrackId ConvertTrackId(
const il::idRecord& il_record);
80 static il::idRecord ConvertTrackId(
const WsfTrackId& track_id);
81 static il::idRecord ConvertTrackId(
const int owning_plat_string_id,
const int tan);
83 static std::size_t GetTracksUpdated(
const WsfAssetManager*
am_proc,
double sim_time, std::vector<WsfLocalTrack*>& tracks);
84 static bool IsTrackGeneratedByLocalSensor(
WsfPlatform* relative_to_platform,
const WsfTrackId& track_id, il::SensorEnum reporting_sensor_type);
86 static WsfPlatform* GetMessageDestination(
WsfSimulation* sim_ptr,
const std::shared_ptr<const il::baseMessage>& message);
88 static int GetUnitIDFromPlatform(
const WsfPlatform* platform);
89 static il::idRecord GetUnitIDRecordFromPlatform(
const WsfPlatform* platform);
90 static il::idRecord GetUnitIDRecordFromPlatformIndex(
WsfSimulation* sim_ptr,
const int plat_idx);
95 static bool IsDirectCommander(
const WsfPlatform* test_cmdr,
const WsfPlatform* against_plat,
const std::string& opt_cmd_chain_name =
"");
97 static WsfPlatform* GetTopMostCommander(
const WsfPlatform* from,
const std::string& opt_cmd_chain_name =
"");
101 static il::idRecord GetAssignedIDRecord(
WsfSimulation* sim_ptr,
const int plat_idx,
const int wpn_idx);
103 static WsfPlatform* GetAssignedPlatformFromAssignedIDRecord(
WsfSimulation* sim_ptr,
const il::idRecord& assigned_id);
104 static WsfWeapon* GetAssignedWeaponFromAssignedIDRecord(
WsfSimulation* sim_ptr,
const il::idRecord& assigned_id);
107 static il::idRecord GetWeaponID(
const WsfPlatform* platform,
const std::string& weapon_name);
109 static il::idRecord GetWeaponID(
WsfSimulation* sim_ptr,
const int plat_idx,
const int wpn_idx);
110 static bool IsWeaponIDValid(
const int id);
114 static int GetSensorID(
WsfPlatform* platform,
const std::string& sensor_name);
116 static il::idRecord GetSensorID(
WsfSimulation* sim_ptr,
const int plat_idx,
const int snsr_idx);
117 static il::SensorEnum GetSensorType(
const WsfSensor& sensor);
121 static void GetOriginalTracks(
WsfSimulation* sim,
const WsfLocalTrack* track, std::set<WsfTrackId>& tested_tracks, std::vector<const WsfTrack*>& original_tracks);
153 const bool aLogWarnings =
true);
170 static unsigned int GetWeaponIndexOnPlatform(
const WsfPlatform* platform,
const WsfWeapon* weapon);
auto am_proc
Definition WsfScriptBMUtilsClass.cpp:269
Definition WsfAssetManager.hpp:63
Definition WsfBMAssignmentMessage.hpp:43
Definition WsfBMAssignmentStatusMessage.hpp:44
Definition WsfBMDisseminateC2.hpp:53
Definition WsfBMSensorsManager.hpp:50
Definition WsfBMTrackMessage.hpp:30
Definition WsfBMUtils.hpp:56
static WsfBMSensorsManager * FindAttachedSensorsManagerRef2(const WsfPlatform *platform, const bool log_errors=false)
Definition WsfBMUtils.cpp:826
static bool HeadingValid(const WsfTrack *track)
Definition WsfBMUtils.cpp:877
static UtVec3d GetOrientationWCS(const double sim_time_s, WsfPlatform *plat)
Definition WsfBMUtils.cpp:1066
static int GetPlatformMaxAssignments(const WsfPlatform *plat)
Definition WsfBMUtils.cpp:1082
const char * GetScriptClassName() const override
Definition WsfBMUtils.hpp:60
static WsfAssetManager * FindAttachedAssetManagerRef2(const WsfPlatform *platform, const bool log_errors=false)
Definition WsfBMUtils.cpp:808
static void SetAssignmentStatusFromAuxDataString(WsfBMAssignmentStatusMessage *assignment_status, const std::string &status_string)
static bool AuxDataExists(const WsfPlatform *platform, const std::string &attrib_name)
Definition WsfBMUtils.cpp:838
static bool IsAssignedBy(const WsfPlatform *plat, const WsfBMAssignmentMessage &message)
Definition WsfBMUtils.cpp:723
static int GetPlatformNumAssignments(const WsfPlatform *plat)
Definition WsfBMUtils.cpp:1095
static WsfBMTrackMessage ConvertTrack(WsfSimulation *aSimPtr, const WsfLocalTrack *aTrackPtr, const bool aLogWarnings=true)
Definition WsfBMUtils.cpp:927
static std::string AssignmentStatusToAuxDataString(const WsfBMAssignmentStatusMessage *assignment_status)
static std::shared_ptr< il::AssetManagerInterface > FindAttachedAssetManagerRef(const WsfPlatform *platform, const bool log_errors=true)
Definition WsfBMUtils.cpp:773
static double GetPlatformNumAssignmentDelay(const WsfPlatform *plat)
Definition WsfBMUtils.cpp:1108
static std::shared_ptr< il::DisseminateC2Interface > FindAttachedDisseminationManagerRef(const WsfPlatform *platform, const bool log_errors=true)
Definition WsfBMUtils.cpp:787
static WsfLocalTrack * FindCorrelatedTrack(WsfTrackManager *trk_mgr, const WsfTrackId *aRawTrackId)
Definition WsfBMUtils.cpp:717
static WsfBMWeaponsManager * FindAttachedWeaponsManagerRef2(const WsfPlatform *platform, const bool log_errors=false)
Definition WsfBMUtils.cpp:832
static std::shared_ptr< il::SensorsManagerInterface > FindAttachedSensorsManagerRef(const WsfPlatform *platform, const bool log_errors=true)
Definition WsfBMUtils.cpp:794
static WsfPlatform * GetTarget(WsfSimulation *sim_ptr, const WsfTrack *track)
Definition WsfBMUtils.cpp:916
static double GetHeading(const WsfTrack *track)
Definition WsfBMUtils.cpp:892
static WsfBMDisseminateC2 * FindAttachedDisseminationManagerRef2(const WsfPlatform *platform, const bool log_errors=false)
Definition WsfBMUtils.cpp:820
static std::shared_ptr< il::WeaponsManagerInterface > FindAttachedWeaponsManagerRef(const WsfPlatform *platform, const bool log_errors=true)
Definition WsfBMUtils.cpp:801
static std::shared_ptr< il::BattleManagerInterface > FindAttachedBattleManagerRef(const WsfPlatform *platform, const bool log_errors=true)
Definition WsfBMUtils.cpp:780
static WsfBattleManager * FindAttachedBattleManagerRef2(const WsfPlatform *platform, const bool log_errors=false)
Definition WsfBMUtils.cpp:814
Definition WsfBMWeaponsManager.hpp:50
Definition WsfBattleManager.hpp:61
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
const std::string & GetType() const
Definition WsfObject.cpp:243
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
Definition WsfSensor.hpp:92
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
Definition WsfTrackManager.hpp:62
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeapon.hpp:63
Definition WsfAssetManager.hpp:34