15#include "wsf_export.h"
22#include "UtMatrix.hpp"
23#include "UtReferenceTracked.hpp"
24#include "UtScriptAccessible.hpp"
46 WsfTrack_Signal(
double aLowerFreq,
double aUpperFreq,
double aPRI,
double aPW);
239 void Update(
double aSimTime)
override;
240 void KinematicUpdate(
double aSimTime)
override;
241 virtual void ReplacementUpdate(
const WsfTrack& aSource);
242 virtual void UpdateFromMeasurement(
double aSimTime,
const WsfTrack& aMeasurement);
244 const char* GetScriptClassName()
const override;
247 bool IsTrack()
const override {
return true; }
249 void SetPlatformOriginator(
WsfPlatform* aPlatformPtr);
265 void SetTrackType(TrackType aTrackType);
363 void IsReportable(
bool aIsReportable);
375 using History = std::vector<std::unique_ptr<WsfMeasurement>>;
412 double GetTrackQuality()
const;
415 double GetTrackQuality(
double aSimTime)
const;
417 void SetTrackQuality(
double aTrackQuality);
439 double GetQuality()
const;
442 double GetQuality(
double aSimTime)
const;
445 double GetExpectedLocationError()
const;
448 double GetExpectedLocationError(
double aSimTime)
const;
458 void AddSignal(
const Signal& aSignal);
459 unsigned int GetSignalCount()
const;
460 void GetSignalEntry(
unsigned int aIndex, Signal& aSignal)
const;
461 void MergeSignalLists(
const WsfTrack& aOtherTrack);
462 void SetSignalList(
const std::vector<Signal>& aSignalList);
464 double GetFrequency()
const;
465 void SetFrequency(
double aFrequency);
467 bool FrequencyValid()
const;
468 void SetFrequencyValid(
bool aFrequencyValid);
476 void AddEmitterTypeId(
const EmitterTypeData& aEmitterTypeData);
478 unsigned int GetEmitterTypeIdCount()
const;
479 void GetEmitterTypeIdEntry(
unsigned int aIndex, EmitterTypeData& aEmitterTypeData)
const;
480 void MergeEmitterTypeIdLists(
const WsfTrack& aOtherTrack);
481 void SetEmitterTypeIdList(
const std::vector<EmitterTypeData>& aEmitterTypeIdList);
521 const UtMatrixd* GetResidualCovarianceMatrix()
const;
525 void SetResidualCovariance(
const UtCovariance& aResidualCovarianceMatrix);
526 void SetResidualCovariance(UtCovariance* aResidualCovarianceMatrixPtr);
527 bool ResidualCovarianceValid()
const;
528 void SetResidualCovarianceValid(
bool aStateCovarianceValid);
530 bool ProcessNoiseVariancesValid()
const;
531 void GetProcessNoiseVariancesECS(
double aProcessNoiseVariancesECS[3])
const;
532 void SetProcessNoiseVariancesECS(
double aProcessNoiseVariancesECS[3]);
533 int GetProcessNoiseModel()
const;
593 size_t GetTargetIndex()
const;
625 bool ProcessInput(UtInput& aInput)
override;
626 void ProcessInputBlock(
const WsfScenario& aScenario, UtInputBlock& aInputBlock);
645 bool LineOfSightRatesFrom(
double aSimTime,
WsfPlatform* aObserver,
double& aLOSR_Az,
double& aLOSR_El);
721 void ConstructInformation();
722 void InitializeMemberData();
726 void SetResidualCovarianceMatrix(
const UtMatrixd& aResidualCovarianceMatrix);
729 mutable size_t mTargetIndex;
aObjectPtr Update(simTime)
bool operator==(int aId, const WsfStringInt &aRhs)
Equal relational operator for the case of an integer on the LHS and a StringId on the RHS.
Definition WsfStringId.hpp:69
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfAuxDataEnabled()=default
Definition WsfGeoPoint.hpp:29
WsfMeasurement()
Definition WsfMeasurement.cpp:32
WsfSimulation * mSimulationPtr
Definition WsfMeasurement.hpp:123
Definition WsfObject.hpp:40
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
EmitterTypeData()
Definition WsfTrack.hpp:166
WsfStringId mEmitterDerivedId
Definition WsfTrack.hpp:198
int GetSignalIndexEntry(unsigned int aIndex)
Definition WsfTrack.hpp:180
std::vector< int > mSignalIndices
Definition WsfTrack.hpp:199
EmitterTypeData(WsfStringId aTruthEmitterTypeId, WsfStringId aEmitterTypeId)
Definition WsfTrack.hpp:173
void Serialize(T &aBuff)
For XIO (de)serialization.
Definition WsfTrack.hpp:192
WsfStringId mEmitterTruthId
Definition WsfTrack.hpp:197
A representation of a detected signal.
Definition WsfTrack.hpp:41
WsfStringId mEmitterDerivedId
Definition WsfTrack.hpp:64
double mPulseRepetitionInterval
Definition WsfTrack.hpp:61
WsfTrack_Signal()
Definition WsfTrack.cpp:1513
double mLowerFrequency
Definition WsfTrack.hpp:59
void Serialize(T &aBuff)
For XIO (de)serialization.
Definition WsfTrack.hpp:54
double mPulseWidth
Definition WsfTrack.hpp:62
double mUpperFrequency
Definition WsfTrack.hpp:60
WsfStringId mEmitterTruthId
Definition WsfTrack.hpp:63
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
double GetStartTime() const
Definition WsfTrack.hpp:273
WsfStringId GetOriginatorTypeId() const
The platform type ID of the originator.
Definition WsfTrack.hpp:306
int GetGlobalTrackNumber() const
Definition WsfTrack.hpp:637
WsfStringId GetSensorTypeId() const
Definition WsfTrack.hpp:322
IFF_Status GetIFF_Status() const
Definition WsfTrack.hpp:388
TrackType
The source type of the track data.
Definition WsfTrack.hpp:126
@ cPREDEFINED
The track is 'pre-defined' or 'pre-briefed' (typically read from an input file).
Definition WsfTrack.hpp:132
@ cPSEUDO_SENSOR
Definition WsfTrack.hpp:144
@ cSTATIC_IMAGE
Definition WsfTrack.hpp:138
@ cUNFILTERED_SENSOR
The track is the result of a direct sensor measurement.
Definition WsfTrack.hpp:128
@ cFILTERED_SENSOR
The track is the result of filtered or processed sensor measurements.
Definition WsfTrack.hpp:130
@ cPROCESSED
The track is the product of some 'process' (filtering, fusion, intel reports, etc....
Definition WsfTrack.hpp:134
WsfStringId mOriginatorTypeId
Definition WsfTrack.hpp:666
size_t GetOriginatorIndex() const
Get the platform index of the originator.
Definition WsfTrack.hpp:303
void SetStartTime(double aStartTime)
Set the time when this track was started.
Definition WsfTrack.hpp:276
unsigned int mFlags
Definition WsfTrack.hpp:710
bool IsFalseTarget() const
Definition WsfTrack.hpp:559
IFF_StatusInformation mIFF_Status
Definition WsfTrack.hpp:691
WsfStringId GetOriginatorNameId() const
Get the platform name ID of the originator.
Definition WsfTrack.hpp:300
size_t mOriginatorPlatformIndex
Definition WsfTrack.hpp:665
bool mIsStrobe
Definition WsfTrack.hpp:706
int mUpdateCount
Definition WsfTrack.hpp:672
UtInformation< EmitterTypeIdList * > EmitterTypeIdPtrInformation
Definition WsfTrack.hpp:686
UtDoubleInformation mSignalToNoise
Definition WsfTrack.hpp:689
WsfStringId GetLastSourceName() const
Definition WsfTrack.hpp:619
double mStartTime
Definition WsfTrack.hpp:673
bool HasHistory() const
Definition WsfTrack.cpp:1492
WsfStringId mSensorTypeId
Definition WsfTrack.hpp:670
void SetPixelCount(double aPixelCount)
Set the number of pixels occupied by the object.
Definition WsfTrack.hpp:512
bool mIs3D
Definition WsfTrack.hpp:703
WsfStringId mSensorModeId
Definition WsfTrack.hpp:671
void SetTargetName(WsfStringId aTargetName)
Definition WsfTrack.hpp:597
void SetSensorModeId(WsfStringId aSensorModeId)
Definition WsfTrack.hpp:330
void Set3D(bool aIs3D)
Set whether to consider this track as having a full 3D solution (see WsfTrack::Is3D).
Definition WsfTrack.hpp:368
std::vector< std::unique_ptr< WsfMeasurement > > History
Definition WsfTrack.hpp:375
void SetIsStrobe(bool aIsStrobe)
Definition WsfTrack.hpp:568
void SetGlobalTrackNumber(int aNumber)
Definition WsfTrack.hpp:636
WsfTrack_Signal Signal
Definition WsfTrack.hpp:122
bool mIsFalseTarget
Definition WsfTrack.hpp:707
void SetFusible(bool aIsFusible)
Define whether the track is a fusible track.
Definition WsfTrack.hpp:336
bool IsStrobe() const
Definition WsfTrack.hpp:572
const WsfTrackId & GetTrackId() const
Get the track ID.
Definition WsfTrack.hpp:255
bool UseQuantitativeTrackQuality() const
Definition WsfTrack.cpp:1507
double GetMessageDataTag() const
The 'data Id' to be used when the track is attached to a message.
Definition WsfTrack.hpp:294
bool EmitterTypeIdValid() const
Is the emitter type ID attribute valid?
Definition WsfTrack.hpp:485
void SetReportable(bool aIsReportable)
Definition WsfTrack.hpp:373
virtual void SetPurgeable(bool aIsPurgeable)
Set whether this track can be purged.
Definition WsfTrack.hpp:339
void SetTargetType(WsfStringId aTargetType)
Definition WsfTrack.hpp:604
TrackType mTrackType
Definition WsfTrack.hpp:663
EmitterTypeIdPtrInformation mEmitterTypeIdListPtr
Definition WsfTrack.hpp:693
UtDoubleInformation mLastUpdateTime
Definition WsfTrack.hpp:674
UtInformation< SignalList * > SignalListPtrInformation
Definition WsfTrack.hpp:685
bool IsTrack() const override
Return that this is a track.
Definition WsfTrack.hpp:247
double GetPixelCount() const
Pixel count methods (for tracks produced from images).
Definition WsfTrack.hpp:510
WsfStringId GetTargetName() const
Return the string id that corresponds to the target platform or false-target blip name.
Definition WsfTrack.hpp:600
TrackType GetTrackType() const
Get the 'track type'.
Definition WsfTrack.hpp:261
bool IsReportable() const
Definition WsfTrack.hpp:361
WsfStringId GetSensorNameId() const
Definition WsfTrack.hpp:318
UtInformation< int > IFF_StatusInformation
Definition WsfTrack.hpp:684
WsfTrack()
Use this constructor if the track is a 'predefined track'.
Definition WsfTrack.cpp:42
History mHistory
Definition WsfTrack.hpp:718
int mGlobalTrackNumber
Definition WsfTrack.hpp:675
void SetUpdateCount(int aUpdateCount)
Set the number of updates to this track.
Definition WsfTrack.hpp:291
void SetTargetIndex(size_t aTargetIndex)
Definition WsfTrack.hpp:590
WsfStringId mOriginatorNameId
Definition WsfTrack.hpp:664
WsfSimulation * GetSimulation() const
Definition WsfTrack.hpp:640
void SetEmitterTypeIdValid(bool aEmitterTypeIdValid)
Define whether or not the emitter type ID attribute is valid.
Definition WsfTrack.hpp:487
bool mIsReportable
Definition WsfTrack.hpp:704
void SetSignalToNoiseValid(bool aSignalToNoiseValid)
Define whether or not the signal-to-noise attribute is valid.
Definition WsfTrack.hpp:502
UtDoubleInformation mTrackQuality
Definition WsfTrack.hpp:688
bool IsFusible() const
Is the track a fusible track.
Definition WsfTrack.hpp:333
bool IFF_StatusValid() const
Definition WsfTrack.hpp:386
WsfStringId GetSensorModeId() const
Definition WsfTrack.hpp:326
WsfTrack_SignalList SignalList
Definition WsfTrack.hpp:455
bool SignalToNoiseValid() const
Is the signal-to-noise attribute valid?
Definition WsfTrack.hpp:500
bool IsPurgeable() const
Definition WsfTrack.hpp:345
const UtCovariance * GetResidualCovariance() const
Definition WsfTrack.hpp:524
double GetLastUpdateInterval() const
Get the last time interval between updates.
Definition WsfTrack.hpp:282
double GetUpdateTime() const
Get the time when this track was last updated.
Definition WsfTrack.hpp:279
WsfStringId mProcessorNameId
Definition WsfTrack.hpp:667
void SetMessageDataTag(double aMessageDataTag)
Set the 'data Id' to be used when the track is attached to a message.
Definition WsfTrack.hpp:297
virtual History & GetHistory() const
Definition WsfTrack.cpp:1487
bool mIsPurgeable
Definition WsfTrack.hpp:701
void SetIsFalseTarget(bool aIsFalseTarget)
Definition WsfTrack.hpp:555
UtCovariancePtrInformation mResidualCovariancePtr
Definition WsfTrack.hpp:694
void SetIsCandidate(bool aIsCandidate)
Set the "candidate" status of a track.
Definition WsfTrack.hpp:541
WsfStringId mLastSourceName
The name of the platform that last provided data that updated this track.
Definition WsfTrack.hpp:716
WsfStringId GetProcessorNameId() const
Definition WsfTrack.hpp:310
void SetTrackId(const WsfTrackId &aTrackId)
Set the track ID.
Definition WsfTrack.hpp:258
int GetUpdateCount() const
Define the time when this track was last updated.
Definition WsfTrack.hpp:288
void SetStale(bool aIsStale)
Define whether the track data are to be considered 'stale.'.
Definition WsfTrack.hpp:353
void SetIFF_Status(IFF_Status aIFF_Status)
Set the IFF status of the target.
Definition WsfTrack.hpp:391
double mMessageDataTag
Definition WsfTrack.hpp:678
void SerializeP(T &aBuff)
For XIO (de)serialization.
bool mIsStale
Definition WsfTrack.hpp:702
bool IsCandidate() const
Definition WsfTrack.hpp:545
WsfTrackId mTrackId
Definition WsfTrack.hpp:662
bool IsPredefinedTrack() const
Definition WsfTrack.hpp:269
double GetSignalToNoise() const
Get the signal to noise from the sensor.
Definition WsfTrack.hpp:495
CopyCaller
An enumeration that is used to determine how 'CopyMemberData' operates.
Definition WsfTrack.hpp:217
@ cCC_COPY_CONSTRUCTOR
Called from a copy constructor.
Definition WsfTrack.hpp:219
@ cCC_REPLACEMENT_UPDATE
Definition WsfTrack.hpp:226
@ cCC_ASSIGNMENT
Called from an assignment operator.
Definition WsfTrack.hpp:222
IFF_Status
An enumeration for IFF.
Definition WsfTrack.hpp:149
@ cIFF_FRIEND
The object has been determined to be a friend.
Definition WsfTrack.hpp:157
@ cIFF_NEUTRAL
The object has been determined to be neutral.
Definition WsfTrack.hpp:159
@ cIFF_FOE
The object has been determined to be a foe,.
Definition WsfTrack.hpp:155
@ cIFF_UNKNOWN
No IFF status is being reported.
Definition WsfTrack.hpp:151
@ cIFF_AMBIGUOUS
The reporter cannot determine if the object is a friend or a foe.
Definition WsfTrack.hpp:153
bool mIsFusible
Definition WsfTrack.hpp:700
UtDoubleInformation mPixelCount
Definition WsfTrack.hpp:690
void SetSignalToNoise(double aSignalToNoise)
Set the signal to noise from the sensor.
Definition WsfTrack.hpp:497
bool IsStale() const
Definition WsfTrack.hpp:350
bool mIsCandidate
Definition WsfTrack.hpp:705
void SetLastSourceName(WsfStringId aSourceName) const
Definition WsfTrack.hpp:615
WsfStringId GetProcessorTypeId() const
Definition WsfTrack.hpp:314
WsfStringId mSensorNameId
Definition WsfTrack.hpp:669
int mFalseTargetId
Definition WsfTrack.hpp:713
const SignalList * GetSignalList() const
Definition WsfTrack.hpp:456
SignalListPtrInformation mSignalListPtr
Definition WsfTrack.hpp:692
WsfStringId mProcessorTypeId
Definition WsfTrack.hpp:668
A nested class to maintain a list of emitter type IDs.
Definition WsfTrack.hpp:204
std::vector< EmitterTypeData > mEmitterTypeIdList
Definition WsfTrack.hpp:205
void Serialize(T &aBuff)
For XIO (de)serialization.
Definition WsfTrack.hpp:209
A nested class for maintain a list of detected signals.
Definition WsfTrack.hpp:69
std::vector< WsfTrack_Signal > mSignalList
Definition WsfTrack.hpp:70
void Serialize(T &aBuff)
For XIO (de)serialization.
Definition WsfTrack.hpp:74