12#ifndef WSFSA_PERCEIVEDITEM_HPP
13#define WSFSA_PERCEIVEDITEM_HPP
15#include "wsf_air_combat_export.h"
17#include "UtReferenceTracked.hpp"
18#include "UtScriptAccessible.hpp"
19#include "UtScriptClass.hpp"
20#include "UtScriptClassDefine.hpp"
67 : UtScriptAccessible(){};
70 : UtScriptAccessible()
71 , mOwningPlatform(aOwningPlatform){};
88 double CalcRangeForPlatform(
const WsfPlatform* aPlatform);
91 double AngleOffHeadingFromOwningPlatform_deg();
117 virtual void SetBearing_deg(
double aBearing_deg) { mBearing_deg = aBearing_deg; }
126 virtual void SetThreatLevel(
double aThreatLevel) { mThreatLevel = UtMath::Limit(aThreatLevel, 0.0, 1.0); }
129 virtual void SetTargetValue(
double aTargetValue) { mTargetValue = UtMath::Limit(aTargetValue, 0.0, 1.0); }
171 double mBearing_deg = {0.0};
172 double mThreatLevel = {0.0};
173 double mTargetValue = {0.0};
174 std::string mPerceivedType = {
""};
175 bool mAltitudeValid = {
false};
176 bool mSpeedValid = {
false};
177 bool mHeadingValid = {
false};
178 double mSelectionScore = {0.0};
180 bool mMalformedPerception = {
182 WsfSimulation* mSimulationPtr = {
nullptr};
193 void Destroy(
void* aObjectPtr)
override;
194 std::string
ToString(
void* aObjectPtr)
const override;
Definition WsfLocalTrack.hpp:32
Definition WsfProcessor.hpp:39
The WsfSA_PerceivedItem class is used as a base class for WsfSA_EntityPerception and WsfSA_Group,...
Definition WsfSA_PerceivedItem.hpp:38
virtual void SetPerceivedName(const std::string &aIdString)=0
void OwningPlatform(const WsfPlatform *aPlatform)
Definition WsfSA_PerceivedItem.hpp:94
virtual void SetSpeed_kts(double aSpeed_kts)=0
virtual void SetImportance(Importance aImportance)=0
virtual bool GetAngleOnly() const =0
static void SetAssumedRangeForAngleOnlyTargets(double aRange)
Definition WsfSA_PerceivedItem.hpp:64
virtual void SetIdentification(Identification aIdent)=0
const char * GetScriptClassName() const override
Definition WsfSA_PerceivedItem.hpp:85
static double GetAssumedRangeForAngleOnlyTargets()
Definition WsfSA_PerceivedItem.hpp:63
bool PerceptionIsMalformed() const
Definition WsfSA_PerceivedItem.hpp:96
Importance
Definition WsfSA_PerceivedItem.hpp:56
@ NOMINAL
Definition WsfSA_PerceivedItem.hpp:58
@ IGNORED
Definition WsfSA_PerceivedItem.hpp:57
@ IMPORTANT
Definition WsfSA_PerceivedItem.hpp:59
virtual void SetHeadingValid(bool aSetting)
Definition WsfSA_PerceivedItem.hpp:150
virtual void SetLat_deg(double aLat_deg)=0
virtual void SetAngleOnly(bool aSetting)=0
static double mAssumedRangeForAngleOnlyTargets
Definition WsfSA_PerceivedItem.hpp:166
bool operator!=(const WsfSA_PerceivedItem &aRhs)=delete
virtual double GetAltitude_ft() const =0
void SetMalformedCondition()
Definition WsfSA_PerceivedItem.hpp:97
virtual void SetLon_deg(double aLon_deg)=0
virtual bool GetSpeedValid() const
Definition WsfSA_PerceivedItem.hpp:146
virtual ItemType GetItemType() const =0
virtual double GetLon_deg() const =0
virtual Importance GetImportance() const =0
Identification
Definition WsfSA_PerceivedItem.hpp:41
@ BOGIE
Definition WsfSA_PerceivedItem.hpp:45
@ NEUTRAL
Definition WsfSA_PerceivedItem.hpp:44
@ UNKNOWN
Definition WsfSA_PerceivedItem.hpp:42
@ FRIENDLY
Definition WsfSA_PerceivedItem.hpp:43
@ BANDIT
Definition WsfSA_PerceivedItem.hpp:46
virtual void SetSpeedValid(bool aSetting)
Definition WsfSA_PerceivedItem.hpp:147
bool operator==(const WsfSA_PerceivedItem &aRhs)=delete
virtual double GetSelectionScore() const
Definition WsfSA_PerceivedItem.hpp:152
virtual double GetHeading_deg() const =0
virtual void SetBearing_deg(double aBearing_deg)
Definition WsfSA_PerceivedItem.hpp:117
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.
virtual void SetTargetValue(double aTargetValue)
Definition WsfSA_PerceivedItem.hpp:129
virtual double GetLat_deg() const =0
WsfSA_PerceivedItem()
Definition WsfSA_PerceivedItem.hpp:66
virtual void SetAltitude_ft(double aAltitude_ft)=0
virtual bool IsSame(const WsfSA_PerceivedItem *aOther) const =0
virtual bool GetAltitudeValid() const
Definition WsfSA_PerceivedItem.hpp:143
virtual double GetBearing_deg() const
Definition WsfSA_PerceivedItem.hpp:116
WsfSA_PerceivedItem(const WsfPlatform *aOwningPlatform)
Definition WsfSA_PerceivedItem.hpp:69
ItemType
Definition WsfSA_PerceivedItem.hpp:50
@ GROUP
Definition WsfSA_PerceivedItem.hpp:52
@ ENTITY
Definition WsfSA_PerceivedItem.hpp:51
virtual void SetHeading_deg(double aHeading_deg)=0
virtual void SetThreatLevel(double aThreatLevel)
Definition WsfSA_PerceivedItem.hpp:126
virtual void SetAltitudeValid(bool aSetting)
Definition WsfSA_PerceivedItem.hpp:144
virtual double GetTargetValue() const
Definition WsfSA_PerceivedItem.hpp:128
const WsfPlatform * OwningPlatform() const
Definition WsfSA_PerceivedItem.hpp:93
virtual double GetThreatLevel() const
Definition WsfSA_PerceivedItem.hpp:125
virtual double GetSpeed_kts() const =0
virtual std::string GetPerceivedName() const =0
virtual bool GetHeadingValid() const
Definition WsfSA_PerceivedItem.hpp:149
virtual void SetSelectionScore(double aSelectionScore)
Definition WsfSA_PerceivedItem.hpp:153
WsfScriptObjectClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfScriptObjectClass.cpp:24
UT_DECLARE_SCRIPT_METHOD(Bearing)
~WsfScriptSA_PerceivedItemClass() override=default
UT_DECLARE_SCRIPT_METHOD(HeadingValid)
UT_DECLARE_SCRIPT_METHOD(EstimatedTimeToIntercept)
UT_DECLARE_SCRIPT_METHOD(Speed)
UT_DECLARE_SCRIPT_METHOD(Identification)
void OnNewScriptRef(UtScriptRef &aReference) override
Definition WsfSA_PerceivedItem.cpp:221
UT_DECLARE_SCRIPT_METHOD(Lat)
UT_DECLARE_SCRIPT_METHOD(Altitude)
UT_DECLARE_SCRIPT_METHOD(AltitudeValid)
WsfScriptSA_PerceivedItemClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfSA_PerceivedItem.cpp:171
std::string ToString(void *aObjectPtr) const override
Definition WsfSA_PerceivedItem.cpp:204
UT_DECLARE_SCRIPT_METHOD(PerceivedName)
UT_DECLARE_SCRIPT_METHOD(AngleOnly)
UT_DECLARE_SCRIPT_METHOD(ItemType)
UT_DECLARE_SCRIPT_METHOD(SpeedValid)
void Destroy(void *aObjectPtr) override
Definition WsfSA_PerceivedItem.cpp:199
UT_DECLARE_SCRIPT_METHOD(Lon)
UT_DECLARE_SCRIPT_METHOD(SelectionScore)
UT_DECLARE_SCRIPT_METHOD(Heading)
UT_DECLARE_SCRIPT_METHOD(ThreatLevel)
UT_DECLARE_SCRIPT_METHOD(TargetValue)
Definition WsfSensor.hpp:92
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfWeapon.hpp:63