12#ifndef WSFSA_ENTITYPERCEPTION_HPP
13#define WSFSA_ENTITYPERCEPTION_HPP
15#include "wsf_air_combat_export.h"
17#include "UtScriptAccessible.hpp"
18#include "UtScriptClass.hpp"
19#include "UtScriptClassDefine.hpp"
106 operator int() {
return (
int)mEntityPlatformIndex; }
107 operator const int()
const {
return (
int)mEntityPlatformIndex; }
108 operator size_t() {
return mEntityPlatformIndex; }
109 operator const size_t()
const {
return mEntityPlatformIndex; }
117 void SetIdIffFriend();
119 void SetIdIffNeutral();
120 void SetIdIffUnknown();
122 void SetIdAuxFriend();
124 void SetIdAuxNeutral();
125 void SetIdAuxUnknown();
127 void SetIdSideFriend();
129 void SetIdSideNeutral();
130 void SetIdSideUnknown();
132 void SetIdTypeFriend();
134 void SetIdTypeNeutral();
135 void SetIdTypeUnknown();
143 double Time()
const {
return mTime; }
144 void Time(
double aTime) { mTime = aTime; }
153 void SetLat_deg(
double aLat_deg)
override { mLat_deg = aLat_deg; }
156 void SetLon_deg(
double aLon_deg)
override { mLon_deg = aLon_deg; }
159 void SetAltitude_ft(
double aAltitude_ft)
override { mAltitude_ft = aAltitude_ft; }
162 void SetSpeed_kts(
double aSpeed_kts)
override { mSpeed_kts = aSpeed_kts; }
165 void SetHeading_deg(
double aHeading_deg)
override { mHeading_deg = aHeading_deg; }
171 void SetRisk(
double aRisk) { mRisk = UtMath::Limit(aRisk, 0.0, 1.0); }
174 void SetDefensiveness(
double aDefensiveness) { mDefensiveness = UtMath::Limit(aDefensiveness, 0.0, 1.0); }
177 void SetUrgency(
double aUrgency) { mUrgency = UtMath::Limit(aUrgency, 0.0, 1.0); }
183 void SetIdString(
const std::string& aIdString) { mIdString = aIdString; }
189 void SetPerceivedName(
const std::string& aPerceivedName)
override { mPerceivedName = aPerceivedName; }
192 void SetPerceivedType(
const std::string& aPerceivedType) { mPerceivedType = aPerceivedType; }
198 void SetIdFlag(
const std::string& aIdFlag) { mIdFlag = aIdFlag; }
286 size_t mEntityPlatformIndex = 0;
292 double mLat_deg = {0.0};
293 double mLon_deg = {0.0};
294 double mAltitude_ft = {0.0};
295 double mSpeed_kts = {0.0};
296 double mHeading_deg = {0.0};
297 double mRisk = {0.0};
298 double mDefensiveness = {0.0};
299 double mUrgency = {0.0};
300 std::string mIdString = {
""};
301 size_t mPerceivedIndex = {0};
302 std::string mPerceivedName = {
""};
303 std::string mPerceivedType = {
""};
304 uint16_t mFlightId = {0};
305 std::string mIdFlag = {
""};
306 bool mAngleOnly = {
false};
307 bool mIdIffFriend = {
false};
308 bool mIdIffFoe = {
false};
309 bool mIdIffNeutral = {
false};
310 bool mIdIffUnknown = {
false};
311 bool mIdAuxFriend = {
false};
312 bool mIdAuxFoe = {
false};
313 bool mIdAuxNeutral = {
false};
314 bool mIdAuxUnknown = {
false};
315 bool mIdSideFriend = {
false};
316 bool mIdSideFoe = {
false};
317 bool mIdSideNeutral = {
false};
318 bool mIdSideUnknown = {
false};
319 bool mIdTypeFriend = {
false};
320 bool mIdTypeFoe = {
false};
321 bool mIdTypeNeutral = {
false};
322 bool mIdTypeUnknown = {
false};
323 bool mIsMissile = {
false};
324 bool mIsCoasting = {
false};
325 bool mIsNonTrackAsset = {
false};
326 bool mFriendlyAsset = {
false};
327 bool mIsHostile = {
false};
328 double mLastUpdateTime = {0.0};
329 double mLastExtrapolationTime = {0.0};
330 Identification mIdentification = {UNKNOWN};
332 Importance mImportance = {NOMINAL};
336 WsfSA_Group* mParentGroup =
nullptr;
337 UtReferenceCount* mParentRC =
nullptr;
339 bool mMalformedPerception = {
341 WsfSimulation* mSimulationPtr = {
nullptr};
352 void*
Create(
const UtScriptContext& aInstance)
override;
353 void*
Clone(
void* aObjectPtr)
override;
354 void Destroy(
void* aObjectPtr)
override;
Definition WsfLocalTrack.hpp:32
Definition WsfProcessor.hpp:39
Definition WsfSA_EntityPerception.hpp:37
bool GetIdTypeFriend() const
Definition WsfSA_EntityPerception.hpp:239
bool GetIdIffNeutral() const
Definition WsfSA_EntityPerception.hpp:209
size_t GetPerceivedIndex() const
Definition WsfSA_EntityPerception.hpp:185
bool GetIdAuxFoe() const
Definition WsfSA_EntityPerception.hpp:218
bool GetIdTypeUnknown() const
Definition WsfSA_EntityPerception.hpp:248
bool GetIdTypeNeutral() const
Definition WsfSA_EntityPerception.hpp:245
void SetIdIffFriend(bool aSetting)
Definition WsfSA_EntityPerception.hpp:204
void SetLastExtrapolationTime(double aTime)
Definition WsfSA_EntityPerception.hpp:274
void SetIdTypeFoe(bool aSetting)
Definition WsfSA_EntityPerception.hpp:243
void SetEntityPlatformIndex(size_t aEntityPlatformIndex)
Definition WsfSA_EntityPerception.hpp:147
void SetAngleOnly(bool aSetting) override
Definition WsfSA_EntityPerception.hpp:201
double GetLat_deg() const override
Definition WsfSA_EntityPerception.hpp:152
bool GetIdSideFoe() const
Definition WsfSA_EntityPerception.hpp:230
void SetIsMissile(bool aSetting)
Definition WsfSA_EntityPerception.hpp:252
size_t GetTargetPlatformIndex() const
Definition WsfSA_EntityPerception.hpp:112
std::string GetPerceivedName() const override
Definition WsfSA_EntityPerception.hpp:188
void SetTargetPlatformIndex(size_t aIndex)
Definition WsfSA_EntityPerception.hpp:111
bool GetIdIffFriend() const
Definition WsfSA_EntityPerception.hpp:203
void SetIdSideUnknown(bool aSetting)
Definition WsfSA_EntityPerception.hpp:237
void SetIdSideFoe(bool aSetting)
Definition WsfSA_EntityPerception.hpp:231
void SetMalformedCondition()
Definition WsfSA_EntityPerception.hpp:139
double Time() const
Definition WsfSA_EntityPerception.hpp:143
double GetRisk() const
Definition WsfSA_EntityPerception.hpp:170
const char * GetScriptClassName() const override
Definition WsfSA_EntityPerception.hpp:105
bool GetIsCoasting() const
Definition WsfSA_EntityPerception.hpp:254
bool GetIdAuxNeutral() const
Definition WsfSA_EntityPerception.hpp:221
void SetPerceivedName(const std::string &aPerceivedName) override
Definition WsfSA_EntityPerception.hpp:189
Identification GetIdentification() const override
Definition WsfSA_EntityPerception.hpp:167
bool GetIdTypeFoe() const
Definition WsfSA_EntityPerception.hpp:242
bool operator==(const WsfSA_EntityPerception &aRhs)=delete
bool operator!=(const WsfSA_EntityPerception &aRhs)=delete
double GetLon_deg() const override
Definition WsfSA_EntityPerception.hpp:155
double GetDefensiveness() const
Definition WsfSA_EntityPerception.hpp:173
void SetIsCoasting(bool aSetting)
Definition WsfSA_EntityPerception.hpp:255
bool GetIsNonTrackAsset() const
Definition WsfSA_EntityPerception.hpp:257
bool GetAngleOnly() const override
Definition WsfSA_EntityPerception.hpp:200
bool GetFriendlyAsset() const
Definition WsfSA_EntityPerception.hpp:260
void SetUrgency(double aUrgency)
Definition WsfSA_EntityPerception.hpp:177
void Time(double aTime)
Definition WsfSA_EntityPerception.hpp:144
void SetIdTypeFriend(bool aSetting)
Definition WsfSA_EntityPerception.hpp:240
bool GetIsMissile() const
Definition WsfSA_EntityPerception.hpp:251
void SetRisk(double aRisk)
Definition WsfSA_EntityPerception.hpp:171
double GetHeading_deg() const override
Definition WsfSA_EntityPerception.hpp:164
void SetDefensiveness(double aDefensiveness)
Definition WsfSA_EntityPerception.hpp:174
void SetIdString(const std::string &aIdString)
Definition WsfSA_EntityPerception.hpp:183
void SetIdSideFriend(bool aSetting)
Definition WsfSA_EntityPerception.hpp:228
void SetIdIffUnknown(bool aSetting)
Definition WsfSA_EntityPerception.hpp:213
void SetPerceivedType(const std::string &aPerceivedType)
Definition WsfSA_EntityPerception.hpp:192
void SetAltitude_ft(double aAltitude_ft) override
Definition WsfSA_EntityPerception.hpp:159
bool PerceptionIsMalformed() const
Definition WsfSA_EntityPerception.hpp:138
bool GetIdIffFoe() const
Definition WsfSA_EntityPerception.hpp:206
bool GetIsHostile() const
Definition WsfSA_EntityPerception.hpp:263
void SetIdSideNeutral(bool aSetting)
Definition WsfSA_EntityPerception.hpp:234
WsfSA_EntityPerception()=default
WsfLocalTrack * GetTrackPtr() const
Definition WsfSA_EntityPerception.hpp:149
void SetIdFlag(const std::string &aIdFlag)
Definition WsfSA_EntityPerception.hpp:198
double GetLastExtrapolationTime() const
Definition WsfSA_EntityPerception.hpp:273
void SetHeading_deg(double aHeading_deg) override
Definition WsfSA_EntityPerception.hpp:165
bool GetIdAuxUnknown() const
Definition WsfSA_EntityPerception.hpp:224
void SetIdIffFoe(bool aSetting)
Definition WsfSA_EntityPerception.hpp:207
double GetUrgency() const
Definition WsfSA_EntityPerception.hpp:176
uint16_t GetFlightId() const
Definition WsfSA_EntityPerception.hpp:194
void SetIsNonTrackAsset(bool aSetting)
Definition WsfSA_EntityPerception.hpp:258
void SetIdAuxFoe(bool aSetting)
Definition WsfSA_EntityPerception.hpp:219
double GetAltitude_ft() const override
Definition WsfSA_EntityPerception.hpp:158
void SetLon_deg(double aLon_deg) override
Definition WsfSA_EntityPerception.hpp:156
double GetLastUpdateTime() const
Definition WsfSA_EntityPerception.hpp:270
void SetIdentification(Identification aIdent) override
Definition WsfSA_EntityPerception.hpp:168
void SetImportance(Importance aImportance) override
Definition WsfSA_EntityPerception.hpp:180
void SetIdAuxFriend(bool aSetting)
Definition WsfSA_EntityPerception.hpp:216
void SetIdIffNeutral(bool aSetting)
Definition WsfSA_EntityPerception.hpp:210
void SetFlightId(uint16_t aFlightId)
Definition WsfSA_EntityPerception.hpp:195
std::string GetIdString() const
Definition WsfSA_EntityPerception.hpp:182
bool GetIdSideNeutral() const
Definition WsfSA_EntityPerception.hpp:233
std::string GetIdFlag() const
Definition WsfSA_EntityPerception.hpp:197
ItemType GetItemType() const override
Definition WsfSA_EntityPerception.hpp:141
void SetFriendlyAsset(bool aSetting)
Definition WsfSA_EntityPerception.hpp:261
void SetSpeed_kts(double aSpeed_kts) override
Definition WsfSA_EntityPerception.hpp:162
void SetIdAuxUnknown(bool aSetting)
Definition WsfSA_EntityPerception.hpp:225
WsfSA_EntityPerception * Clone() const
Definition WsfSA_EntityPerception.hpp:93
size_t GetEntityPlatformIndex() const
Definition WsfSA_EntityPerception.hpp:146
void SetTrackPtr(WsfLocalTrack *aTrackPtr)
Definition WsfSA_EntityPerception.hpp:150
void SetPerceivedIndex(size_t aIndex)
Definition WsfSA_EntityPerception.hpp:186
void SetIdAuxNeutral(bool aSetting)
Definition WsfSA_EntityPerception.hpp:222
Importance GetImportance() const override
Definition WsfSA_EntityPerception.hpp:179
void SetIdTypeUnknown(bool aSetting)
Definition WsfSA_EntityPerception.hpp:249
bool GetIdSideFriend() const
Definition WsfSA_EntityPerception.hpp:227
bool GetIdIffUnknown() const
Definition WsfSA_EntityPerception.hpp:212
double GetSpeed_kts() const override
Definition WsfSA_EntityPerception.hpp:161
std::string GetPerceivedType() const
Definition WsfSA_EntityPerception.hpp:191
bool GetIdSideUnknown() const
Definition WsfSA_EntityPerception.hpp:236
void SetIdTypeNeutral(bool aSetting)
Definition WsfSA_EntityPerception.hpp:246
void SetIsHostile(bool aSetting)
Definition WsfSA_EntityPerception.hpp:264
void SetLat_deg(double aLat_deg) override
Definition WsfSA_EntityPerception.hpp:153
void SetLastUpdateTime(double aTime)
Definition WsfSA_EntityPerception.hpp:271
bool GetIdAuxFriend() const
Definition WsfSA_EntityPerception.hpp:215
Definition WsfSA_Group.hpp:24
Importance
Definition WsfSA_PerceivedItem.hpp:56
WsfSA_PerceivedItem & operator=(const WsfSA_PerceivedItem &aRhs)
Definition WsfSA_PerceivedItem.cpp:55
Identification
Definition WsfSA_PerceivedItem.hpp:41
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
@ ENTITY
Definition WsfSA_PerceivedItem.hpp:51
UT_DECLARE_SCRIPT_METHOD(IdIffFriend)
UT_DECLARE_SCRIPT_METHOD(Heading)
UT_DECLARE_SCRIPT_METHOD(Track)
UT_DECLARE_SCRIPT_METHOD(PerceivedName)
UT_DECLARE_SCRIPT_METHOD(EstimatedTimeToIntercept)
UT_DECLARE_SCRIPT_METHOD(IdTypeNeutral)
UT_DECLARE_SCRIPT_METHOD(Time)
UT_DECLARE_SCRIPT_METHOD(SelectionScore)
UT_DECLARE_SCRIPT_METHOD(IdFlag)
void Destroy(void *aObjectPtr) override
Definition WsfSA_EntityPerception.cpp:1351
UT_DECLARE_SCRIPT_METHOD(AngleOnly)
UT_DECLARE_SCRIPT_METHOD(AltitudeValid)
UT_DECLARE_SCRIPT_METHOD(IdIffUnknown)
UT_DECLARE_SCRIPT_METHOD(PerceivedType)
UT_DECLARE_SCRIPT_METHOD(Altitude)
UT_DECLARE_SCRIPT_METHOD(FriendlyAsset)
UT_DECLARE_SCRIPT_METHOD(Lon)
UT_DECLARE_SCRIPT_METHOD(IdSideFriend)
UT_DECLARE_SCRIPT_METHOD(IdSideFoe)
UT_DECLARE_SCRIPT_METHOD(Index)
UT_DECLARE_SCRIPT_METHOD(Speed)
UT_DECLARE_SCRIPT_METHOD(IdTypeFriend)
UT_DECLARE_SCRIPT_METHOD(IdString)
UT_DECLARE_SCRIPT_METHOD(EntityPlatformIndex)
UT_DECLARE_SCRIPT_METHOD(IdTypeUnknown)
UT_DECLARE_SCRIPT_METHOD(IdSideNeutral)
UT_DECLARE_SCRIPT_METHOD(IdIffNeutral)
UT_DECLARE_SCRIPT_METHOD(Risk)
UT_DECLARE_SCRIPT_METHOD(Lat)
UT_DECLARE_SCRIPT_METHOD(IdIffFoe)
UT_DECLARE_SCRIPT_METHOD(IsHostile)
UT_DECLARE_SCRIPT_METHOD(Defensiveness)
UT_DECLARE_SCRIPT_METHOD(IdAuxFoe)
UT_DECLARE_SCRIPT_METHOD(HeadingValid)
UT_DECLARE_SCRIPT_METHOD(IdSideUnknown)
UT_DECLARE_SCRIPT_METHOD(IdAuxNeutral)
void * Clone(void *aObjectPtr) override
Definition WsfSA_EntityPerception.cpp:1346
UT_DECLARE_SCRIPT_METHOD(FlightId)
UT_DECLARE_SCRIPT_METHOD(IdAuxFriend)
UT_DECLARE_SCRIPT_METHOD(Bearing)
UT_DECLARE_SCRIPT_METHOD(Urgency)
UT_DECLARE_SCRIPT_METHOD(PerceivedIndex)
UT_DECLARE_SCRIPT_METHOD(Identification)
WsfScriptSA_EntityPerceptionClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfSA_EntityPerception.cpp:1268
UT_DECLARE_SCRIPT_METHOD(IdAuxUnknown)
void * Create(const UtScriptContext &aInstance) override
Definition WsfSA_EntityPerception.cpp:1340
UT_DECLARE_SCRIPT_METHOD(IsMissile)
UT_DECLARE_SCRIPT_METHOD(SpeedValid)
UT_DECLARE_SCRIPT_METHOD(TargetValue)
UT_DECLARE_SCRIPT_METHOD(IdTypeFoe)
~WsfScriptSA_EntityPerceptionClass() override=default
UT_DECLARE_SCRIPT_METHOD(ThreatLevel)
WsfScriptSA_PerceivedItemClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfSA_PerceivedItem.cpp:171
Definition WsfSensor.hpp:92
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfWeapon.hpp:63