WSF
WsfBMStatusMessage.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9// Classification: UNCLASSIFIED
10
11#ifndef WSF_BM_STATUS_MESSAGE_HPP
12#define WSF_BM_STATUS_MESSAGE_HPP
13
14#include <memory>
15#include <WsfBMCommon.hpp>
16#include <WsfMessage.hpp>
17#include <iadsLib/combatStatusMessage.hpp>
19#include <UtVec3.hpp>
20#include <WsfGeoPoint.hpp>
21#include <UtNullCreate.hpp>
22
23class WsfPlatform;
24class WsfWeapon;
25class WsfSimulation;
26
27// currently, everything gets sliced
28class WsfBMStatusMessage : public WsfMessage, public WsfBMManagedTypeWrapper<il::baseMessage>
29{
30 public:
31 //WsfBMStatusMessage (const UtNullCreate& aNull);
32 //WsfBMStatusMessage(WsfSimulation *simPtr);
33 WsfBMStatusMessage(std::weak_ptr<il::logger::GlobalLogger> aGlobalLogger);
34 WsfBMStatusMessage(WsfPlatform* aPlatformPtr);
35 WsfBMStatusMessage(WsfPlatform* aPlatformPtr, const std::shared_ptr<il::baseMessage>& message);
36
38
39 virtual ~WsfBMStatusMessage();
40
41 WsfBMStatusMessage* Clone() const override;
42
43 const char* GetScriptClassName() const override;
44 virtual const char* GetBaseClassName();
45 static WsfStringId GetTypeId();
46
47 void SetStatusTime(const double sim_time_s);
48 double GetStatusTime() const;
49
50 void SetPlatform(const WsfPlatform* aPlatformPtr);
51 const WsfPlatform* GetPlatform(const WsfSimulation* simPtr) const;
52 std::string GetPlatformName() const;
53
54 void SetMaxAssignments(const int max_assignments);
55 int GetMaxAssignments() const;
56
57 void SetNumAssignments(const int num_assignments);
58 int GetNumAssignments() const;
59
60 void SetWeaponStatus(const WsfPlatform* shooter, const WsfWeapon* weapon);
61
63 void SetSystemStatus(const eSystemStatus& status);
65
66 void SetPosition(const double sim_time_s, const WsfGeoPoint& location);
67 bool HasPosition() const;
68 const WsfGeoPoint GetPosition() const;
69 double GetPositionTime() const;
70
71 void SetVelocityECEF(const UtVec3d& vel);
72 bool HasVelocity() const;
73 const UtVec3d GetVelocityECEF() const;
74
75 inline std::shared_ptr<const il::combatStatusMessage> GetRawMessagePtr() const { return std::static_pointer_cast <il::combatStatusMessage>(m_wrapped_ptr); }
76
77 private:
78 inline std::shared_ptr<il::combatStatusMessage> GetMutableRawMessagePtr() { return std::static_pointer_cast <il::combatStatusMessage>(m_wrapped_ptr); }
79};
80
81#endif
UtVec3d vel
Definition WsfScriptTrackClass.cpp:1881
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfBMManagedTypeWrapper(const std::string &script_class_name)
Definition WsfBMGenericTypeWrapper.hpp:58
std::string GetPlatformName() const
Definition WsfBMStatusMessage.cpp:108
std::shared_ptr< const il::combatStatusMessage > GetRawMessagePtr() const
Definition WsfBMStatusMessage.hpp:75
WsfBMStatusMessage(std::weak_ptr< il::logger::GlobalLogger > aGlobalLogger)
Definition WsfBMStatusMessage.cpp:31
static WsfStringId GetTypeId()
Definition WsfBMStatusMessage.cpp:81
void SetPosition(const double sim_time_s, const WsfGeoPoint &location)
Definition WsfBMStatusMessage.cpp:196
virtual const char * GetBaseClassName()
Definition WsfBMStatusMessage.cpp:76
int GetMaxAssignments() const
Definition WsfBMStatusMessage.cpp:118
int GetNumAssignments() const
Definition WsfBMStatusMessage.cpp:128
eSystemStatus GetSystemStatus() const
Definition WsfBMStatusMessage.cpp:171
void SetStatusTime(const double sim_time_s)
Definition WsfBMStatusMessage.cpp:87
const WsfGeoPoint GetPosition() const
Definition WsfBMStatusMessage.cpp:209
eSystemStatus
Definition WsfBMStatusMessage.hpp:62
@ E_SYS_GREEN
Definition WsfBMStatusMessage.hpp:62
@ E_SYS_WHITE
Definition WsfBMStatusMessage.hpp:62
@ E_SYS_YELLOW
Definition WsfBMStatusMessage.hpp:62
@ E_SYS_RED
Definition WsfBMStatusMessage.hpp:62
const char * GetScriptClassName() const override
Definition WsfBMStatusMessage.cpp:71
void SetWeaponStatus(const WsfPlatform *shooter, const WsfWeapon *weapon)
Definition WsfBMStatusMessage.cpp:133
const WsfPlatform * GetPlatform(const WsfSimulation *simPtr) const
Definition WsfBMStatusMessage.cpp:102
double GetPositionTime() const
Definition WsfBMStatusMessage.cpp:220
bool HasPosition() const
Definition WsfBMStatusMessage.cpp:204
void SetSystemStatus(const eSystemStatus &status)
Definition WsfBMStatusMessage.cpp:146
WsfBMStatusMessage * Clone() const override
Definition WsfBMStatusMessage.cpp:66
bool HasVelocity() const
Definition WsfBMStatusMessage.cpp:230
const UtVec3d GetVelocityECEF() const
Definition WsfBMStatusMessage.cpp:235
void SetNumAssignments(const int num_assignments)
Definition WsfBMStatusMessage.cpp:123
virtual ~WsfBMStatusMessage()
Definition WsfBMStatusMessage.cpp:62
void SetVelocityECEF(const UtVec3d &vel)
Definition WsfBMStatusMessage.cpp:225
void SetPlatform(const WsfPlatform *aPlatformPtr)
Definition WsfBMStatusMessage.cpp:97
void SetMaxAssignments(const int max_assignments)
Definition WsfBMStatusMessage.cpp:113
double GetStatusTime() const
Definition WsfBMStatusMessage.cpp:92
std::shared_ptr< il::baseMessage > m_wrapped_ptr
Definition WsfBMGenericTypeWrapper.hpp:48
Definition WsfGeoPoint.hpp:29
WsfMessage(WsfStringId aType)
Constructor for XIO (de)serialization.
Definition WsfMessage.cpp:25
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfWeapon.hpp:63
Copyrights Multiple, All Rights Reserved