WSF
WsfSA_EntityPerception.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// Copyright 2020 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSA_ENTITYPERCEPTION_HPP
13#define WSFSA_ENTITYPERCEPTION_HPP
14
15#include "wsf_air_combat_export.h"
16
17#include "UtScriptAccessible.hpp"
18#include "UtScriptClass.hpp"
19#include "UtScriptClassDefine.hpp"
20#include "UtVec3.hpp"
22
23class WsfLocalTrack;
24class WsfPlatform;
25class WsfProcessor;
26class WsfSA_Group;
27class WsfSimulation;
28class WsfSensor;
29class WsfWeapon;
30
36class WSF_AIR_COMBAT_EXPORT WsfSA_EntityPerception : public WsfSA_PerceivedItem
37{
38public:
39 // Note: This will be added in the future
40 /*
41 class SA_EntitySystem
42 {
43 public:
44 SA_EntitySystem();
45 SA_EntitySystem(WsfWeapon& aWeapon);
46 SA_EntitySystem(WsfSensor& aSensor);
47 SA_EntitySystem(WsfProcessor& aProcessor);
48 SA_EntitySystem(SA_EntitySystem& aSrc, int ready, double quantity);
49
50 enum SA_SystemKind
51 {
52 SA_SYSTEM_KIND_NONE = 0,
53 SA_SYSTEM_KIND_SENSOR = 1,
54 SA_SYSTEM_KIND_PROCESSOR = 2,
55 SA_SYSTEM_KIND_WEAPON = 3,
56 SA_SYSTEM_KIND_JAMMER = 4,
57 SA_SYSTEM_KIND_UPLINK = 5
58 };
59
60 SA_SystemKind mSystemKind = SA_SYSTEM_KIND_NONE; // Denotes the kind of system (sensor, processor,
61 // weapon, jammer, or uplink)
62 std::string mSystemType{}; // WSF type definition (like "RADAR_MISSILE")
63 std::string mSystemName{}; // WSF object name int
64 mReadyAssignment = 0; // Similar to "channels" or "available request count",
65 // this represents the number of tasks this system can
66 // still accept
67 double mQuantityRemaining = 0.0;
68 };
69 */
70
72
73 // This constructor is typically used for assets, with aFriendlyAsset being set to true
75 double aSimTime,
76 const WsfPlatform* aOwningPlatform,
77 WsfPlatform& aPlatform,
78 bool aFriendlyAsset);
79
80 // This constructor is used for tracks
82 double aSimTime,
83 const WsfPlatform* aOwningPlatform,
84 WsfLocalTrack* aTrack);
85
86 // This constructor is used with an existing entity perception
87 WsfSA_EntityPerception(double aSimTime, const WsfPlatform* aOwningPlatform, const WsfSA_EntityPerception& aSrc);
88
90
91 ~WsfSA_EntityPerception() override;
92
93 WsfSA_EntityPerception* Clone() const { return new WsfSA_EntityPerception(*this); }
94
96
97 // NOTE: The operator== and operator!= are intentionally omitted.
98 // To compare two entity perceptions, compare using IsSame() instead.
99 bool operator==(const WsfSA_EntityPerception& aRhs) = delete;
100 bool operator!=(const WsfSA_EntityPerception& aRhs) = delete;
101
102 // This determines if the specified entity is the same as this entity
103 bool IsSame(const WsfSA_PerceivedItem* aOther) const override;
104
105 const char* GetScriptClassName() const override { return "WsfSA_EntityPerception"; }
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; }
110
111 void SetTargetPlatformIndex(size_t aIndex) { mEntityPlatformIndex = aIndex; }
112 size_t GetTargetPlatformIndex() const { return mEntityPlatformIndex; }
113
114 // These functions are used to set (true) or clear (false) various Id settings,
115 // without the need to pass a boolean argument. Some will automatically set/clear
116 // other Id settings as appropriate.
117 void SetIdIffFriend();
118 void SetIdIffFoe();
119 void SetIdIffNeutral();
120 void SetIdIffUnknown();
121 void ClearIdIff();
122 void SetIdAuxFriend();
123 void SetIdAuxFoe();
124 void SetIdAuxNeutral();
125 void SetIdAuxUnknown();
126 void ClearIdAux();
127 void SetIdSideFriend();
128 void SetIdSideFoe();
129 void SetIdSideNeutral();
130 void SetIdSideUnknown();
131 void ClearIdSide();
132 void SetIdTypeFriend();
133 void SetIdTypeFoe();
134 void SetIdTypeNeutral();
135 void SetIdTypeUnknown();
136 void ClearIdType();
137
138 bool PerceptionIsMalformed() const { return mMalformedPerception; }
139 void SetMalformedCondition() { mMalformedPerception = true; }
140
141 ItemType GetItemType() const override { return ENTITY; }
142
143 double Time() const { return mTime; }
144 void Time(double aTime) { mTime = aTime; }
145
146 size_t GetEntityPlatformIndex() const { return mEntityPlatformIndex; }
147 void SetEntityPlatformIndex(size_t aEntityPlatformIndex) { mEntityPlatformIndex = aEntityPlatformIndex; }
148
149 WsfLocalTrack* GetTrackPtr() const { return mTrackPtr; }
150 void SetTrackPtr(WsfLocalTrack* aTrackPtr) { mTrackPtr = aTrackPtr; }
151
152 double GetLat_deg() const override { return mLat_deg; }
153 void SetLat_deg(double aLat_deg) override { mLat_deg = aLat_deg; }
154
155 double GetLon_deg() const override { return mLon_deg; }
156 void SetLon_deg(double aLon_deg) override { mLon_deg = aLon_deg; }
157
158 double GetAltitude_ft() const override { return mAltitude_ft; }
159 void SetAltitude_ft(double aAltitude_ft) override { mAltitude_ft = aAltitude_ft; }
160
161 double GetSpeed_kts() const override { return mSpeed_kts; }
162 void SetSpeed_kts(double aSpeed_kts) override { mSpeed_kts = aSpeed_kts; }
163
164 double GetHeading_deg() const override { return mHeading_deg; }
165 void SetHeading_deg(double aHeading_deg) override { mHeading_deg = aHeading_deg; }
166
167 Identification GetIdentification() const override { return mIdentification; }
168 void SetIdentification(Identification aIdent) override { mIdentification = aIdent; }
169
170 double GetRisk() const { return mRisk; }
171 void SetRisk(double aRisk) { mRisk = UtMath::Limit(aRisk, 0.0, 1.0); }
172
173 double GetDefensiveness() const { return mDefensiveness; }
174 void SetDefensiveness(double aDefensiveness) { mDefensiveness = UtMath::Limit(aDefensiveness, 0.0, 1.0); }
175
176 double GetUrgency() const { return mUrgency; }
177 void SetUrgency(double aUrgency) { mUrgency = UtMath::Limit(aUrgency, 0.0, 1.0); }
178
179 Importance GetImportance() const override { return mImportance; }
180 void SetImportance(Importance aImportance) override { mImportance = aImportance; }
181
182 std::string GetIdString() const { return mIdString; }
183 void SetIdString(const std::string& aIdString) { mIdString = aIdString; }
184
185 size_t GetPerceivedIndex() const { return mPerceivedIndex; }
186 void SetPerceivedIndex(size_t aIndex) { mPerceivedIndex = aIndex; }
187
188 std::string GetPerceivedName() const override { return mPerceivedName; }
189 void SetPerceivedName(const std::string& aPerceivedName) override { mPerceivedName = aPerceivedName; }
190
191 std::string GetPerceivedType() const { return mPerceivedType; }
192 void SetPerceivedType(const std::string& aPerceivedType) { mPerceivedType = aPerceivedType; }
193
194 uint16_t GetFlightId() const { return mFlightId; }
195 void SetFlightId(uint16_t aFlightId) { mFlightId = aFlightId; }
196
197 std::string GetIdFlag() const { return mIdFlag; }
198 void SetIdFlag(const std::string& aIdFlag) { mIdFlag = aIdFlag; }
199
200 bool GetAngleOnly() const override { return mAngleOnly; }
201 void SetAngleOnly(bool aSetting) override { mAngleOnly = aSetting; }
202
203 bool GetIdIffFriend() const { return mIdIffFriend; }
204 void SetIdIffFriend(bool aSetting) { mIdIffFriend = aSetting; }
205
206 bool GetIdIffFoe() const { return mIdIffFoe; }
207 void SetIdIffFoe(bool aSetting) { mIdIffFoe = aSetting; }
208
209 bool GetIdIffNeutral() const { return mIdIffNeutral; }
210 void SetIdIffNeutral(bool aSetting) { mIdIffNeutral = aSetting; }
211
212 bool GetIdIffUnknown() const { return mIdIffUnknown; }
213 void SetIdIffUnknown(bool aSetting) { mIdIffUnknown = aSetting; }
214
215 bool GetIdAuxFriend() const { return mIdAuxFriend; }
216 void SetIdAuxFriend(bool aSetting) { mIdAuxFriend = aSetting; }
217
218 bool GetIdAuxFoe() const { return mIdAuxFoe; }
219 void SetIdAuxFoe(bool aSetting) { mIdAuxFoe = aSetting; }
220
221 bool GetIdAuxNeutral() const { return mIdAuxNeutral; }
222 void SetIdAuxNeutral(bool aSetting) { mIdAuxNeutral = aSetting; }
223
224 bool GetIdAuxUnknown() const { return mIdAuxUnknown; }
225 void SetIdAuxUnknown(bool aSetting) { mIdAuxUnknown = aSetting; }
226
227 bool GetIdSideFriend() const { return mIdSideFriend; }
228 void SetIdSideFriend(bool aSetting) { mIdSideFriend = aSetting; }
229
230 bool GetIdSideFoe() const { return mIdSideFoe; }
231 void SetIdSideFoe(bool aSetting) { mIdSideFoe = aSetting; }
232
233 bool GetIdSideNeutral() const { return mIdSideNeutral; }
234 void SetIdSideNeutral(bool aSetting) { mIdSideNeutral = aSetting; }
235
236 bool GetIdSideUnknown() const { return mIdSideUnknown; }
237 void SetIdSideUnknown(bool aSetting) { mIdSideUnknown = aSetting; }
238
239 bool GetIdTypeFriend() const { return mIdTypeFriend; }
240 void SetIdTypeFriend(bool aSetting) { mIdTypeFriend = aSetting; }
241
242 bool GetIdTypeFoe() const { return mIdTypeFoe; }
243 void SetIdTypeFoe(bool aSetting) { mIdTypeFoe = aSetting; }
244
245 bool GetIdTypeNeutral() const { return mIdTypeNeutral; }
246 void SetIdTypeNeutral(bool aSetting) { mIdTypeNeutral = aSetting; }
247
248 bool GetIdTypeUnknown() const { return mIdTypeUnknown; }
249 void SetIdTypeUnknown(bool aSetting) { mIdTypeUnknown = aSetting; }
250
251 bool GetIsMissile() const { return mIsMissile; }
252 void SetIsMissile(bool aSetting) { mIsMissile = aSetting; }
253
254 bool GetIsCoasting() const { return mIsCoasting; }
255 void SetIsCoasting(bool aSetting) { mIsCoasting = aSetting; }
256
257 bool GetIsNonTrackAsset() const { return mIsNonTrackAsset; }
258 void SetIsNonTrackAsset(bool aSetting) { mIsNonTrackAsset = aSetting; }
259
260 bool GetFriendlyAsset() const { return mFriendlyAsset; }
261 void SetFriendlyAsset(bool aSetting) { mFriendlyAsset = aSetting; }
262
263 bool GetIsHostile() const { return mIsHostile; }
264 void SetIsHostile(bool aSetting) { mIsHostile = aSetting; }
265
266 WsfSA_Group* GetParentGroup();
267 const WsfSA_Group* GetParentGroup() const;
268 void SetParentGroup(WsfSA_Group* aParentGroup);
269
270 double GetLastUpdateTime() const { return mLastUpdateTime; }
271 void SetLastUpdateTime(double aTime) { mLastUpdateTime = aTime; }
272
273 double GetLastExtrapolationTime() const { return mLastExtrapolationTime; }
274 void SetLastExtrapolationTime(double aTime) { mLastExtrapolationTime = aTime; }
275
282 double EstimatedTimeToIntercept(WsfPlatform* aTarget) const override;
283
284private:
285 double mTime = 0.0;
286 size_t mEntityPlatformIndex = 0; // Zero is not valid (it will need to be initialized)
287 WsfLocalTrack* mTrackPtr = nullptr;
288
289 // Note: This will be added in the future
290 // std::vector<SA_EntitySystem> mSystems;
291
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}; // Normalized value (0.0 to 1.0)
298 double mDefensiveness = {0.0}; // Normalized value (0.0 to 1.0)
299 double mUrgency = {0.0}; // Normalized value (0.0 to 1.0)
300 std::string mIdString = {""};
301 size_t mPerceivedIndex = {0};
302 std::string mPerceivedName = {""};
303 std::string mPerceivedType = {""};
304 uint16_t mFlightId = {0}; // Zero indicates not a member of a flight
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};
331
332 Importance mImportance = {NOMINAL};
333
334 // Careful with this, as it creates a circular reference.
335 // An entity perception's lifetime should be less than that of the parent group.
336 WsfSA_Group* mParentGroup = nullptr;
337 UtReferenceCount* mParentRC = nullptr;
338
339 bool mMalformedPerception = {
340 false}; // This is used to denote a malformed perception, which can occur for a variety of reasons
341 WsfSimulation* mSimulationPtr = {nullptr}; // Required for some calculations (such as to get the platform for target ids)
342};
343
347{
348public:
349 WsfScriptSA_EntityPerceptionClass(const std::string& aClassName, UtScriptTypes* aTypesPtr);
351
352 void* Create(const UtScriptContext& aInstance) override;
353 void* Clone(void* aObjectPtr) override;
354 void Destroy(void* aObjectPtr) override;
355 // std::string ToString(void* aObjectPtr) const override;
356
357 UT_DECLARE_SCRIPT_METHOD(Index); // truth data - platform simulation index
359
360 UT_DECLARE_SCRIPT_METHOD(EntityPlatformIndex);
404 UT_DECLARE_SCRIPT_METHOD(EstimatedTimeToIntercept);
405
406 // Note: These will be added in the future
407 // UT_DECLARE_SCRIPT_METHOD(SystemCount);
408 // UT_DECLARE_SCRIPT_METHOD(SystemKind); //system at index
409 // UT_DECLARE_SCRIPT_METHOD(SystemType); //system at index
410 // UT_DECLARE_SCRIPT_METHOD(SystemName); //system at index
411 // UT_DECLARE_SCRIPT_METHOD(SystemReadyAssignment); //system at index
412 // UT_DECLARE_SCRIPT_METHOD(SystemQuantityRemaining); //system at index
413 // UT_DECLARE_SCRIPT_METHOD(InterceptLocation);
414 // UT_DECLARE_SCRIPT_METHOD(TrueBearingTo); //degrees
415 // UT_DECLARE_SCRIPT_METHOD(RelativeBearingTo); //degrees
416 // UT_DECLARE_SCRIPT_METHOD(ClosestApproachOf);
417 // UT_DECLARE_SCRIPT_METHOD(ClosingSpeedOf);
418};
419
420#endif
Definition WsfLocalTrack.hpp:32
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
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(EstimatedTimeToIntercept)
UT_DECLARE_SCRIPT_METHOD(SelectionScore)
void Destroy(void *aObjectPtr) override
Definition WsfSA_EntityPerception.cpp:1351
UT_DECLARE_SCRIPT_METHOD(EntityPlatformIndex)
void * Clone(void *aObjectPtr) override
Definition WsfSA_EntityPerception.cpp:1346
UT_DECLARE_SCRIPT_METHOD(PerceivedIndex)
UT_DECLARE_SCRIPT_METHOD(Identification)
WsfScriptSA_EntityPerceptionClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfSA_EntityPerception.cpp:1268
void * Create(const UtScriptContext &aInstance) override
Definition WsfSA_EntityPerception.cpp:1340
~WsfScriptSA_EntityPerceptionClass() override=default
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
Copyrights Multiple, All Rights Reserved