12#ifndef WSFBEAMDIRECTOR_HPP
13#define WSFBEAMDIRECTOR_HPP
15#include "wsf_mil_export.h"
78 void Update(
double aSimTime)
override;
80 void TurnOff(
double aSimTime)
override;
81 void TurnOn(
double aSimTime)
override;
104 void GetAzFOV(
double& aMinAzFOV,
double& aMaxAzFOV)
const
109 void GetElFOV(
double& aMinElFOV,
double& aMaxElFOV)
const
117 void PointAtWCS(
double aSimTime,
double aPointAtWCS[3]);
167 void PointAtTargetUpdate(
double aSimTime);
176 void Deselect(
double aSimTime)
override;
177 void Select(
double aSimTime)
override;
184 if (!mImagePtr->GetObjects().empty())
186 objectPtr = &mImagePtr->GetObjects()[0];
193 void Update(
double aSimTime);
205 void PointAtWCS(
double aSimTime,
double aPointAtWCS[3]);
207 void CreateTrackFromResult(
double aSimTime,
211 void CreateImageFromResult(
double aSimTime,
221 double mLastUpdateTime = 0.0;
222 double mAngularResolution = 3.0e-5;
223 double mScanFOV_Az[2] = {-UtMath::cPI, UtMath::cPI};
224 double mScanFOV_El[2] = {-UtMath::cPI_OVER_2, UtMath::cPI_OVER_2};
225 double mTargetRadialExtent = 10.0;
228 int mMinPixelsForCue = 0;
229 bool mPerfectCorrelation =
false;
230 std::set<WsfStringId> mTargetsInFOV = std::set<WsfStringId>();
235 void AcquireTarget(
double aSimTime,
const WsfTrack& aTrack);
239 return mWsfBeamDirectorModeList[mModeListPtr->GetCurrentMode()];
245 bool mCommentsEnabled;
246 WsfBeamDirectorMode::Type mLastModeType;
249 std::vector<WsfBeamDirectorMode*> mWsfBeamDirectorModeList;
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfBeamDirectorMode & operator=(const WsfBeamDirectorMode &)=delete
Type
Definition WsfBeamDirector.hpp:139
@ cLOCKED_WAITING_FOR_CUE
Definition WsfBeamDirector.hpp:142
@ cNUM_STATES
Definition WsfBeamDirector.hpp:145
@ cCUED
Definition WsfBeamDirector.hpp:143
@ cBREAKLOCK
Definition WsfBeamDirector.hpp:144
@ cLOCKED
Definition WsfBeamDirector.hpp:141
@ cUNDEFINED
Definition WsfBeamDirector.hpp:146
@ cSCANNING
Definition WsfBeamDirector.hpp:140
const WsfTrack & GetTrack() const
Definition WsfBeamDirector.hpp:191
bool IsTracking() const
Definition WsfBeamDirector.hpp:161
WsfEM_Rcvr mReceiver
Definition WsfBeamDirector.hpp:217
double GetMaxRange() const
Get the maximum range for this sensor.
Definition WsfBeamDirector.hpp:196
const std::set< WsfStringId > & GetTargetsInFOV() const
Definition WsfBeamDirector.hpp:169
WsfTrack & GetTrack()
Definition WsfBeamDirector.hpp:163
int GetType() const
Definition WsfBeamDirector.hpp:165
bool IsImaging() const
Definition WsfBeamDirector.hpp:160
WsfEM_Xmtr & GetEM_Xmtr()
Definition WsfBeamDirector.hpp:198
WsfBeamDirectorMode()=default
WsfEM_Xmtr & GetEM_Xmtr(unsigned int aIndex)
Definition WsfBeamDirector.hpp:199
WsfEM_Antenna mXcvrAntenna
Definition WsfBeamDirector.hpp:216
WsfEM_Rcvr & GetEM_Rcvr(unsigned int aIndex)
Definition WsfBeamDirector.hpp:202
WsfEM_Xmtr mTransmitter
Definition WsfBeamDirector.hpp:215
WsfEM_Rcvr & GetEM_Rcvr()
Definition WsfBeamDirector.hpp:201
const WsfImage::Object * GetImageObject() const
Definition WsfBeamDirector.hpp:181
WsfSensorMode * Clone() const override
Create an exact duplicate of this mode.
Definition WsfBeamDirector.hpp:154
void SetTrack(const WsfTrack &aTrack)
Definition WsfBeamDirector.hpp:158
void SetCue(const WsfTrack &aTrack)
Set the cue; this is a method of passing the track from one mode to the next.
Definition WsfBeamDirector.hpp:92
bool Initialize(double aSimTime) override
Definition WsfBeamDirector.cpp:67
WsfEM_Xmtr & GetEM_Xmtr() const
Definition WsfBeamDirector.hpp:95
WsfBeamDirector(WsfScenario &aScenario)
Definition WsfBeamDirector.cpp:40
bool IsImaging() const
Definition WsfBeamDirector.hpp:125
~WsfBeamDirector() override=default
size_t GetEM_RcvrCount() const override
Definition WsfBeamDirector.hpp:98
const std::set< WsfStringId > & GetTargetsInFOV() const
Definition WsfBeamDirector.hpp:129
double GetMaxRange() const
Definition WsfBeamDirector.hpp:102
bool ProcessInput(UtInput &aInput) override
Definition WsfBeamDirector.cpp:80
WsfBeamDirector & operator=(const WsfBeamDirector &)=delete
const WsfTrack & GetCue() const
Get the current cue.
Definition WsfBeamDirector.hpp:86
bool IsTracking() const
Definition WsfBeamDirector.hpp:123
WsfEM_Rcvr & GetEM_Rcvr(size_t aIndex) const override
Definition WsfBeamDirector.hpp:100
void GetElFOV(double &aMinElFOV, double &aMaxElFOV) const
Definition WsfBeamDirector.hpp:109
size_t GetEM_XmtrCount() const override
Definition WsfBeamDirector.hpp:94
WsfEM_Rcvr & GetEM_Rcvr() const
Definition WsfBeamDirector.hpp:99
void PointAtTarget(double aSimTime, const WsfWeapon::FireTarget &aTarget)
Definition WsfBeamDirector.cpp:169
void PointAtWCS(double aSimTime, double aPointAtWCS[3])
Definition WsfBeamDirector.cpp:136
WsfBeamDirector(const WsfBeamDirector &aSrc)=default
WsfEM_Xmtr & GetEM_Xmtr(size_t aIndex) const override
Definition WsfBeamDirector.hpp:96
void GetAzFOV(double &aMinAzFOV, double &aMaxAzFOV) const
Definition WsfBeamDirector.hpp:104
WsfStringId GetTargetOffset() const
Get the current target offset.
Definition WsfBeamDirector.hpp:89
int GetTrackingState() const
Definition WsfBeamDirector.hpp:121
Definition WsfEM_Antenna.hpp:49
void GetAzimuthFieldOfView(double &aMinAzFOV, double &aMaxAzFOV) const
Return the azimuth field of view.
Definition WsfEM_Antenna.cpp:481
void GetElevationFieldOfView(double &aMinElFOV, double &aMaxElFOV) const
Return the elevation field of view.
Definition WsfEM_Antenna.cpp:495
Definition WsfEM_Rcvr.hpp:68
@ cRF_SENSOR
Active or Semi-Active Sensing (narrowband or matched frequency sensing, e.g. radar).
Definition WsfEM_Rcvr.hpp:83
WsfEM_Antenna * GetAntenna() const
Get the pointer associated geometry object.
Definition WsfEM_XmtrRcvr.hpp:93
Definition WsfEM_Xmtr.hpp:55
@ cXF_SENSOR
Sensing.
Definition WsfEM_Xmtr.hpp:72
A nested class that represents the appearance of a single object (platform) in the image.
Definition WsfImage.hpp:40
Definition WsfImage.hpp:36
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSensorMode()
Definition WsfSensorMode.cpp:47
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:133
bool ProcessInput(UtInput &aInput) override
Definition WsfSensor.cpp:380
void Update(double aSimTime) override
Definition WsfSensor.cpp:497
virtual WsfSensorMode * GetCurrentMode() const
Definition WsfSensor.cpp:844
WsfSensor(const WsfScenario &aScenario)
Definition WsfSensor.cpp:52
WsfSensor * Clone() const override=0
virtual WsfEM_Xmtr & GetEM_Xmtr(size_t aIndex) const
Definition WsfSensor.cpp:714
bool Initialize(double aSimTime) override
Definition WsfSensor.cpp:255
void TurnOff(double aSimTime) override
Definition WsfSensor.cpp:523
virtual bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult)
Definition WsfSensor.cpp:224
void TurnOn(double aSimTime) override
Definition WsfSensor.cpp:563
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
A target for a weapon to fire upon.
Definition WsfWeapon.hpp:243