12#ifndef WSFSA_GROUP_HPP
13#define WSFSA_GROUP_HPP
15#include "wsf_air_combat_export.h"
44 double GetLat_deg()
const override {
return mCentroidLat_deg; }
45 void SetLat_deg(
double aLat_deg)
override { mCentroidLat_deg = aLat_deg; }
47 double GetLon_deg()
const override {
return mCentroidLon_deg; }
48 void SetLon_deg(
double aLon_deg)
override { mCentroidLon_deg = aLon_deg; }
51 void SetAltitude_ft(
double aAltitude_ft)
override { mCentroidAlt_ft =
static_cast<float>(aAltitude_ft); }
53 double GetSpeed_kts()
const override {
return mCentroidSpeed_kts; }
54 void SetSpeed_kts(
double aSpeed_kts)
override { mCentroidSpeed_kts =
static_cast<float>(aSpeed_kts); }
57 void SetHeading_deg(
double aHeading_deg)
override { mCentroidHeading_deg =
static_cast<float>(aHeading_deg); }
66 void SetPerceivedName(
const std::string& aIdString)
override { mGroupName = aIdString; }
71 ut::log::warning() <<
"SetAngleOnly not impolemented for WsfSA_Group.";
85 void SetFocus(
bool aFocus) { mIsFocused = aFocus; }
96 void SetElementList(
const ElementList& aList);
113 std::string mGroupName;
114 double mCentroidLat_deg = {0.0};
115 double mCentroidLon_deg = {0.0};
116 float mCentroidAlt_ft = {0.0f};
117 float mCentroidHeading_deg = {0.0f};
118 float mCentroidSpeed_kts = {0.0f};
119 float mRadiusCurrent_nm = {
static_cast<float>(500.0 * UtMath::cNM_PER_FT)};
120 float mRadiusMinimum_nm = {
static_cast<float>(500.0 * UtMath::cNM_PER_FT)};
121 double mLastUpdateTime_sec = {0.0};
122 bool mIsFocused = {
true};
123 bool mProtectElements = {
false};
124 bool mProtectFocus = {
false};
125 Identification mIdentification = UNKNOWN;
126 Importance mImportance = {NOMINAL};
128 ElementList mElementList;
139 void Destroy(
void* aObjectPtr)
override;
Definition WsfSA_EntityPerception.hpp:37
Definition WsfSA_Group.hpp:24
WsfSA_Group * Clone() const
Definition WsfSA_Group.hpp:34
void SetRadiusCurrent_nm(float aValue)
Definition WsfSA_Group.hpp:76
double GetLon_deg() const override
Definition WsfSA_Group.hpp:47
double GetHeading_deg() const override
Definition WsfSA_Group.hpp:56
bool GetAngleOnly() const override
Definition WsfSA_Group.hpp:68
void SetFocus(bool aFocus)
Definition WsfSA_Group.hpp:85
void SetIdentification(Identification aIdent) override
Definition WsfSA_Group.hpp:63
WsfSA_Group(const WsfPlatform *aOwningPlatform)
Definition WsfSA_Group.hpp:27
void SetPerceivedName(const std::string &aIdString) override
Definition WsfSA_Group.hpp:66
double GetLastUpdateTime_sec() const
Definition WsfSA_Group.hpp:81
bool GetFocus() const
Definition WsfSA_Group.hpp:84
double GetAltitude_ft() const override
Definition WsfSA_Group.hpp:50
float GetRadiusCurrent_nm() const
Definition WsfSA_Group.hpp:75
std::list< WsfSA_EntityPerception * > ElementList
Definition WsfSA_Group.hpp:32
void SetLastUpdateTime_sec(double aValue)
Definition WsfSA_Group.hpp:82
void SetAltitude_ft(double aAltitude_ft) override
Definition WsfSA_Group.hpp:51
std::string GetPerceivedName() const override
Definition WsfSA_Group.hpp:65
void SetLon_deg(double aLon_deg) override
Definition WsfSA_Group.hpp:48
void SetHeading_deg(double aHeading_deg) override
Definition WsfSA_Group.hpp:57
const ElementList & GetElementList() const
Definition WsfSA_Group.hpp:95
bool GetFocusProtection() const
Definition WsfSA_Group.hpp:90
void SetFocusProtection(bool aProtectFocus)
Definition WsfSA_Group.hpp:91
size_t GetNumElements() const
Definition WsfSA_Group.hpp:93
void SetSpeed_kts(double aSpeed_kts) override
Definition WsfSA_Group.hpp:54
const char * GetScriptClassName() const override
Definition WsfSA_Group.hpp:39
void SetAngleOnly(bool aAngleOnly) override
Definition WsfSA_Group.hpp:69
ElementList * ModifiableElementList()
Definition WsfSA_Group.hpp:98
void SetLat_deg(double aLat_deg) override
Definition WsfSA_Group.hpp:45
double GetSpeed_kts() const override
Definition WsfSA_Group.hpp:53
double GetLat_deg() const override
Definition WsfSA_Group.hpp:44
void SetElementProtection(bool aProtectElements)
Definition WsfSA_Group.hpp:88
ItemType GetItemType() const override
Definition WsfSA_Group.hpp:41
bool GetElementProtection() const
Definition WsfSA_Group.hpp:87
float GetRadiusMinimum_nm() const
Definition WsfSA_Group.hpp:78
void SetRadiusMinimum_nm(float aValue)
Definition WsfSA_Group.hpp:79
The WsfSA_PerceivedItem class is used as a base class for WsfSA_EntityPerception and WsfSA_Group,...
Definition WsfSA_PerceivedItem.hpp:38
virtual void SetImportance(Importance aImportance)=0
virtual Importance GetImportance() const =0
Identification
Definition WsfSA_PerceivedItem.hpp:41
virtual Identification GetIdentification() const =0
virtual double EstimatedTimeToIntercept(WsfPlatform *aTarget) const =0
Returns an estimate of the time for this entity to intercept the specified platform.
WsfSA_PerceivedItem()
Definition WsfSA_PerceivedItem.hpp:66
virtual bool IsSame(const WsfSA_PerceivedItem *aOther) const =0
ItemType
Definition WsfSA_PerceivedItem.hpp:50
@ GROUP
Definition WsfSA_PerceivedItem.hpp:52
UT_DECLARE_SCRIPT_METHOD(SetElementProtection)
UT_DECLARE_SCRIPT_METHOD(ElementList)
~WsfScriptSA_GroupClass() override=default
UT_DECLARE_SCRIPT_METHOD(CentroidLat)
UT_DECLARE_SCRIPT_METHOD(GetFocusProtection)
UT_DECLARE_SCRIPT_METHOD(GroupName)
WsfScriptSA_GroupClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfSA_Group.cpp:225
UT_DECLARE_SCRIPT_METHOD(NumElements)
UT_DECLARE_SCRIPT_METHOD(CentroidLon)
UT_DECLARE_SCRIPT_METHOD(CentroidSpeed)
UT_DECLARE_SCRIPT_METHOD(GetFocus)
UT_DECLARE_SCRIPT_METHOD(CentroidAlt)
UT_DECLARE_SCRIPT_METHOD(CentroidHeading)
void Destroy(void *aObjectPtr) override
Definition WsfSA_Group.cpp:251
UT_DECLARE_SCRIPT_METHOD(RadiusMinimum)
UT_DECLARE_SCRIPT_METHOD(SetFocusProtection)
UT_DECLARE_SCRIPT_METHOD(RadiusCurrent)
UT_DECLARE_SCRIPT_METHOD(LastUpdateTime)
UT_DECLARE_SCRIPT_METHOD(GetElementProtection)
WsfScriptSA_PerceivedItemClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfSA_PerceivedItem.cpp:171