WSF
WsfTrack Class Reference

An object that represents an 'track' (perception) of something. More...

#include <WsfTrack.hpp>

Inheritance diagram for WsfTrack:
Collaboration diagram for WsfTrack:

Classes

class  EmitterTypeData
 A representation of a detected emitter type. More...
struct  EmitterTypeIdList
 A nested class to maintain a list of emitter type IDs. More...

Public Types

enum  TrackType {
  cUNFILTERED_SENSOR , cFILTERED_SENSOR , cPREDEFINED , cPROCESSED ,
  cSTATIC_IMAGE , cPSEUDO_SENSOR
}
 The source type of the track data. More...
enum  IFF_Status {
  cIFF_UNKNOWN , cIFF_AMBIGUOUS , cIFF_FOE , cIFF_FRIEND ,
  cIFF_NEUTRAL
}
 An enumeration for IFF. More...
enum  CopyCaller { cCC_COPY_CONSTRUCTOR , cCC_ASSIGNMENT , cCC_REPLACEMENT_UPDATE }
 An enumeration that is used to determine how 'CopyMemberData' operates. More...
using Signal = WsfTrack_Signal

Public Member Functions

 WsfTrack ()
 Use this constructor if the track is a 'predefined track'.
 WsfTrack (WsfStringId aOriginatorNameId, WsfStringId aOriginatorTypeId)
 Use this constructor if the track is a 'predefined track'.
 WsfTrack (TrackType aTrackType, WsfObject *aOriginatingProcessorOrSensor, WsfPlatform *aOriginatingPlatform)
 Use this constructor for tracks generated by a platform part.
 WsfTrack (const WsfTrack &aSrc)
 ~WsfTrack () override
WsfTrackClone () const override
virtual void Initialize (double aSimTime, const WsfTrackId &aTrackId, WsfSimulation &aSimulation)
void SetSimulation (WsfSimulation *aSimulationPtr)
void Update (double aSimTime) override
void KinematicUpdate (double aSimTime) override
virtual void ReplacementUpdate (const WsfTrack &aSource)
virtual void UpdateFromMeasurement (double aSimTime, const WsfTrack &aMeasurement)
const char * GetScriptClassName () const override
bool IsTrack () const override
 Return that this is a track.
void SetPlatformOriginator (WsfPlatform *aPlatformPtr)
 Identify the specified platform as the originator.
void SetProcessorOriginator (WsfObject *aProcessorPtr, WsfPlatform *aPlatformPtr)
 Identify the specified processor as the originator.
void SetSensorOriginator (WsfObject *aSensorPtr, WsfPlatform *aPlatformPtr)
 Identify the specified sensor as the originator.
void SetSensorOriginator (WsfStringId aSensorNameId, WsfStringId aSensorTypeId)
const WsfTrackIdGetTrackId () const
 Get the track ID.
void SetTrackId (const WsfTrackId &aTrackId)
 Set the track ID.
TrackType GetTrackType () const
 Get the 'track type'.
void SetTrackType (TrackType aTrackType)
bool IsPredefinedTrack () const
double GetStartTime () const
void SetStartTime (double aStartTime)
 Set the time when this track was started.
double GetUpdateTime () const
 Get the time when this track was last updated.
double GetLastUpdateInterval () const
 Get the last time interval between updates.
int GetUpdateCount () const
 Define the time when this track was last updated.
void SetUpdateCount (int aUpdateCount)
 Set the number of updates to this track.
double GetMessageDataTag () const
 The 'data Id' to be used when the track is attached to a message.
void SetMessageDataTag (double aMessageDataTag)
 Set the 'data Id' to be used when the track is attached to a message.
WsfStringId GetOriginatorNameId () const
 Get the platform name ID of the originator.
size_t GetOriginatorIndex () const
 Get the platform index of the originator.
WsfStringId GetOriginatorTypeId () const
 The platform type ID of the originator.
WsfStringId GetProcessorNameId () const
WsfStringId GetProcessorTypeId () const
WsfStringId GetSensorNameId () const
WsfStringId GetSensorTypeId () const
WsfStringId GetSensorModeId () const
void SetSensorModeId (WsfStringId aSensorModeId)
bool IsFusible () const
 Is the track a fusible track.
void SetFusible (bool aIsFusible)
 Define whether the track is a fusible track.
virtual void SetPurgeable (bool aIsPurgeable)
 Set whether this track can be purged.
bool IsPurgeable () const
bool IsStale () const
void SetStale (bool aIsStale)
 Define whether the track data are to be considered 'stale.'.
Public Member Functions inherited from WsfMeasurement
 WsfMeasurement ()
 WsfMeasurement (const WsfMeasurement &aSrc)=default
WsfSpatialDomain GetSpatialDomain () const
 Get the spatial domain of the platform.
void SetSpatialDomain (const WsfSpatialDomain &aSpatialDomain)
 Set the spatial domain of the platform.
double GetDefaultAltitude () const
 Return a default altitude based on the platform's spatial domain.
virtual WsfFilterGetFilter ()
 Return a pointer to the filter. If no filter is present, the pointer will be zero.
virtual const WsfFilterGetFilter () const
 Return a pointer to the filter (const version). If no filter is present, the pointer will be zero.
virtual bool GetExtrapolatedLocationWCS (double aSimTime, double aLocationWCS[3]) const
template<typename T>
bool GetExtrapolatedData (double aSimTime, const std::string &aExtrapolationType, T &aData) const
WsfSimulationGetSimulation () const
 Return the simulation object this measurement is associated with, or nullptr if WsfMeasurement::Initialize was not called.
void SetSimulation (WsfSimulation &aSimulation)
void SetSphericalMeasurement (double aSimTime, double aAzimuth, double aElevation, double aRange, double aRangeRate)
 Convenience method to set a 3D spherical measurement result.
Public Member Functions inherited from WsfAuxDataEnabled
 WsfAuxDataEnabled ()=default
 WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default
WsfAuxDataEnabledoperator= (const WsfAuxDataEnabled &aRhs)
 WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default
WsfAuxDataEnabledoperator= (WsfAuxDataEnabled &&)=default
virtual ~WsfAuxDataEnabled () noexcept
void SetAuxData (const WsfAttributeContainer &aAuxData)
void DeleteAuxData ()
 Delete the aux data container from the object.
void MergeAuxData (const WsfAuxDataEnabled &aSrc)
 Merge the object's aux data with aux data from an existing object.
void UpdateAuxData (const WsfAuxDataEnabled &aSrc)
 Update the object's aux data with aux data from an existing object.
bool HasAuxData () const
 Returns true if this object has aux data.
bool ProcessInput (UtInput &aInput)
template<typename T>
void Serialize (T &aBuff)
 (De)serialization for XIO
WsfAttributeContainerGetAuxData ()
const WsfAttributeContainerGetAuxData () const noexcept
const WsfAttributeContainerGetAuxDataConst () const noexcept

Reporting responsibility methods.

This is used to declare if the local track manager has reporting responsibility for this track.

using History = std::vector<std::unique_ptr<WsfMeasurement>>
bool IsReportable () const
void IsReportable (bool aIsReportable)
 Set the track reportable flag used by the local track manager to support reporting decision.
bool Is3D () const
void Set3D (bool aIs3D)
 Set whether to consider this track as having a full 3D solution (see WsfTrack::Is3D).
void SetReportable (bool aIsReportable)
bool HasHistory () const
virtual HistoryGetHistory () const

Detected signal data

Get/Set the detected signal and validity flags

using SignalList = WsfTrack_SignalList
const SignalListGetSignalList () const
void AddSignal (const Signal &aSignal)
unsigned int GetSignalCount () const
void GetSignalEntry (unsigned int aIndex, Signal &aSignal) const
void MergeSignalLists (const WsfTrack &aOtherTrack)
void SetSignalList (const std::vector< Signal > &aSignalList)
double GetFrequency () const
void SetFrequency (double aFrequency)
bool FrequencyValid () const
 Is detected frequency attribute valid?
void SetFrequencyValid (bool aFrequencyValid)

Global Track Allocation Number (GTAN) methods

A track, if required, may be given a global track identification number to associate to a specific track instance.

using IFF_StatusInformation = UtInformation<int>
using SignalListPtrInformation = UtInformation<SignalList*>
using EmitterTypeIdPtrInformation = UtInformation<EmitterTypeIdList*>
WsfTrackId mTrackId
TrackType mTrackType
WsfStringId mOriginatorNameId
size_t mOriginatorPlatformIndex
WsfStringId mOriginatorTypeId
WsfStringId mProcessorNameId
WsfStringId mProcessorTypeId
WsfStringId mSensorNameId
WsfStringId mSensorTypeId
WsfStringId mSensorModeId
int mUpdateCount
double mStartTime
UtDoubleInformation mLastUpdateTime
int mGlobalTrackNumber
double mMessageDataTag
UtDoubleInformation mTrackQuality
UtDoubleInformation mSignalToNoise
UtDoubleInformation mPixelCount
IFF_StatusInformation mIFF_Status
SignalListPtrInformation mSignalListPtr
EmitterTypeIdPtrInformation mEmitterTypeIdListPtr
UtCovariancePtrInformation mResidualCovariancePtr
union { 
   struct { 
      bool   mIsFusible: 1 
      bool   mIsPurgeable: 1 
      bool   mIsStale: 1 
      bool   mIs3D: 1 
      bool   mIsReportable: 1 
      bool   mIsCandidate: 1 
      bool   mIsStrobe: 1 
      bool   mIsFalseTarget: 1 
   } 
   unsigned int   mFlags 
}; 
int mFalseTargetId
WsfStringId mLastSourceName
 The name of the platform that last provided data that updated this track.
History mHistory
void SetGlobalTrackNumber (int aNumber)
int GetGlobalTrackNumber () const
WsfSimulationGetSimulation () const
bool LineOfSightRatesFrom (double aSimTime, WsfPlatform *aObserver, double &aLOSR_Az, double &aLOSR_El)
template<typename T>
void SerializeP (T &aBuff)
 For XIO (de)serialization.
bool UseQuantitativeTrackQuality () const

Identify Friend or Foe (IFF).

Get/Set the IFF status. A value of cIFF_UNKNOWN indicates there is no report of IFF status; This is the same as IFF_StatusValid() == false.

bool IFF_StatusValid () const
IFF_Status GetIFF_Status () const
void SetIFF_Status (IFF_Status aIFF_Status)
 Set the IFF status of the target.

Track quality.

Get/Set the track quality.

Track quality is expressed as a real value in the range [0..1] with 0 being the least quality and 1 being the highest quality. A quality of 1 should be reserved for high quality tracks that actions can be taken on.

There is no validity flag for this field. All tracks have 'quality'. It is the responsibility of the producer to assign track quality.

double GetTrackQuality () const
 Get the track quality.
double GetTrackQuality (double aSimTime) const
 Get the track quality at a future time.
void SetTrackQuality (double aTrackQuality)
 Set the track quality.

Quality and Expected Error

Get the track quality and associated expected error.

Track quality is expressed as a real value in the range [0..1] with 0 being the least quality and 1 being the highest quality. A quality of 1 should be reserved for highest quality tracks.

There is no validity flag for this field. All tracks have 'quality'. This field always returns quantitative track quality when available from covariances. Otherwise, it returns the default (0.5) or value provided using the "quality" keyword. The expected error calculation returns the expected RMS error in meters based on the track quality. See UtMeasurementUtil for a description of the track quality / error algorithms.

The expected error

double GetQuality () const
 Get the track quality.
double GetQuality (double aSimTime) const
 Get the track quality at a future time.
double GetExpectedLocationError () const
 Get the expected RMS location error associated with the track.
double GetExpectedLocationError (double aSimTime) const
 Get the expected RMS error associated with the track at a given time.

Emitter Type ID data

Get/Set the emitter type and validity flags

void AddEmitterTypeId (const EmitterTypeData &aEmitterTypeData)
void AddEmitterTypeId (WsfStringId aTruthEmitterTypeId, WsfStringId aEmitterTypeId)
unsigned int GetEmitterTypeIdCount () const
void GetEmitterTypeIdEntry (unsigned int aIndex, EmitterTypeData &aEmitterTypeData) const
void MergeEmitterTypeIdLists (const WsfTrack &aOtherTrack)
void SetEmitterTypeIdList (const std::vector< EmitterTypeData > &aEmitterTypeIdList)
bool EmitterTypeIdValid () const
 Is the emitter type ID attribute valid?
void SetEmitterTypeIdValid (bool aEmitterTypeIdValid)
 Define whether or not the emitter type ID attribute is valid.

Signal to noise.

Get/Set the signal-to-noise ratio (in dB) and validity flags

double GetSignalToNoise () const
 Get the signal to noise from the sensor.
void SetSignalToNoise (double aSignalToNoise)
 Set the signal to noise from the sensor.
bool SignalToNoiseValid () const
 Is the signal-to-noise attribute valid?
void SetSignalToNoiseValid (bool aSignalToNoiseValid)
 Define whether or not the signal-to-noise attribute is valid.
double GetPixelCount () const
 Pixel count methods (for tracks produced from images).
void SetPixelCount (double aPixelCount)
 Set the number of pixels occupied by the object.

Residual Covariance matrix.

Get/Set the track residual covariance

const UtMatrixd * GetResidualCovarianceMatrix () const
 Get the residual covariance matrix.
const UtCovariance * GetResidualCovariance () const
void SetResidualCovariance (const UtCovariance &aResidualCovarianceMatrix)
 Set the residual state covariance matrix.
void SetResidualCovariance (UtCovariance *aResidualCovarianceMatrixPtr)
bool ResidualCovarianceValid () const
 Is the residual covariance matrix attribute valid?
void SetResidualCovarianceValid (bool aStateCovarianceValid)
 Define whether the state covariance matrix attribute is valid.
bool ProcessNoiseVariancesValid () const
void GetProcessNoiseVariancesECS (double aProcessNoiseVariancesECS[3]) const
void SetProcessNoiseVariancesECS (double aProcessNoiseVariancesECS[3])
int GetProcessNoiseModel () const

Candidate methods

Get/Set the "candidate" status of the track.

void SetIsCandidate (bool aIsCandidate)
 Set the "candidate" status of a track.
bool IsCandidate () const

False target methods.

A track may represent a false target.

void SetIsFalseTarget (bool aIsFalseTarget)
bool IsFalseTarget () const

Strobe methods.

A track may represent a strobe track, possibly from interference.

void SetIsStrobe (bool aIsStrobe)
bool IsStrobe () const

Truth methods.

The 'Target Platform' is not really part of the 'track' in that it represents truth data. In general this should not be used for simulation decisions, unless it is absolutely necessary to 'cheat'.

void SetTarget (const WsfPlatform &aTarget)
void SetTargetIndex (size_t aTargetIndex)
size_t GetTargetIndex () const
 Return the platform index of the target.
void SetTargetName (WsfStringId aTargetName)
WsfStringId GetTargetName () const
 Return the string id that corresponds to the target platform or false-target blip name.
void SetTargetType (WsfStringId aTargetType)
WsfStringId GetTargetType () const
 Return the string id corresponding with the target platform's type.

Methods to support WsfTrackProcessor circular report detection.

void SetLastSourceName (WsfStringId aSourceName) const
WsfStringId GetLastSourceName () const

Input methods.

bool ProcessInput (UtInput &aInput) override
void ProcessInputBlock (const WsfScenario &aScenario, UtInputBlock &aInputBlock)
WsfTrackoperator= (const WsfTrack &aRhs)
 Assignment operator.
static bool LoadTrackInstance (const WsfScenario &aScenario, UtInput &aInput, WsfPlatform *aPlatformPtr, WsfTrack *&aTrackPtr)

Additional Inherited Members

Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed
using WsfSpatialDomainInformation = UtInformation<int>
const wsf::TrackExtrapolatorsGetTrackExtrapolators () const
static double GetDefaultAltitude (WsfSpatialDomain aDomain)
 Given a spatial domain, return the default altitude of that domain.
WsfSpatialDomainInformation mSpatialDomain
WsfSimulationmSimulationPtr {nullptr}

Detailed Description

An object that represents an 'track' (perception) of something.

A track can be:

  • the product of a sensor
  • the product of a processor.
  • 'pre-briefed' (an 'initial' track)

Tracks are passed from sensors to processors internally within a platform and are passed between platforms via communications links. A processor can pass a sensor track through unmodified or it can perform fusion, etc. and create new tracks that then become a product of the processor.

The creator/maintainer of a track should create an instance of the track using the proper constructor to identify its source (sensor or processor) The instance is then associated ONLY with that sensor or processor.

When a track is started Initialize() should be called to set the start time and track ID and then proceed with the normal track update process described below (including calling Update()!).

When a track is updated, Update() should be called and then the necessary fields should be updated.

A reporter must declare which fields in the track are 'valid'. The validity of a field is set with the 'Set<field>Valid()' methods and queried with the '<field>Valid()'. The validity of all fields is initially set to 'false' (invalid) by the constructor. The field validity and value are modified ONLY by the 'Set' methods and are NOT modified by Initialize() or Update().

An "auxiliary data" service is available with WsfTrack for storing arbitrary data of interest (see WsfAttributeContainer for more information). The auxiliary data are accessed through the WsfTrack::GetAuxData method. The aux data can be added through user input (see the "aux_data" keyword in the WSF User Input Guide). (see WsfAttributeContainer and UtAttributeContainer).

Member Typedef Documentation

◆ EmitterTypeIdPtrInformation

using WsfTrack::EmitterTypeIdPtrInformation = UtInformation<EmitterTypeIdList*>
protected

◆ History

using WsfTrack::History = std::vector<std::unique_ptr<WsfMeasurement>>

◆ IFF_StatusInformation

using WsfTrack::IFF_StatusInformation = UtInformation<int>
protected

◆ Signal

◆ SignalList

◆ SignalListPtrInformation

using WsfTrack::SignalListPtrInformation = UtInformation<SignalList*>
protected

Member Enumeration Documentation

◆ CopyCaller

An enumeration that is used to determine how 'CopyMemberData' operates.

Enumerator
cCC_COPY_CONSTRUCTOR 

Called from a copy constructor.

cCC_ASSIGNMENT 

Called from an assignment operator.

cCC_REPLACEMENT_UPDATE 

Called from the replacement update function. This track retains its ID.

◆ IFF_Status

An enumeration for IFF.

Enumerator
cIFF_UNKNOWN 

No IFF status is being reported.

cIFF_AMBIGUOUS 

The reporter cannot determine if the object is a friend or a foe.

cIFF_FOE 

The object has been determined to be a foe,.

cIFF_FRIEND 

The object has been determined to be a friend.

cIFF_NEUTRAL 

The object has been determined to be neutral.

◆ TrackType

The source type of the track data.

Enumerator
cUNFILTERED_SENSOR 

The track is the result of a direct sensor measurement.

cFILTERED_SENSOR 

The track is the result of filtered or processed sensor measurements.

cPREDEFINED 

The track is 'pre-defined' or 'pre-briefed' (typically read from an input file).

cPROCESSED 

The track is the product of some 'process' (filtering, fusion, intel reports, etc.).

cSTATIC_IMAGE 

The track is an extract from a static image (e.g.: spot SAR or photograph). This is similar to a 'FILTERED_SENSOR' track, but a different type must be used because the mechanisms for using it in fusion processes may be different.

cPSEUDO_SENSOR 

The track is a 'pseudo-sensor' track. These exist only for visualization purposes and are produced by WsfEOIR_Sensor and WsfSAR_Sensor during the formation of an image. These tracks are only presented via the observer interface (never sent over internal/external links). In general, an observer will typically ignore these tracks.

Constructor & Destructor Documentation

◆ WsfTrack() [1/4]

◆ WsfTrack() [2/4]

WsfTrack::WsfTrack ( WsfStringId aOriginatorNameId,
WsfStringId aOriginatorTypeId )

Use this constructor if the track is a 'predefined track'.

References cPREDEFINED, mGlobalTrackNumber, mIsFusible, mIsPurgeable, mOriginatorNameId, mOriginatorPlatformIndex, mOriginatorTypeId, and mTrackType.

◆ WsfTrack() [3/4]

WsfTrack::WsfTrack ( TrackType aTrackType,
WsfObject * aOriginatingProcessorOrSensor,
WsfPlatform * aOriginatingPlatform )

◆ WsfTrack() [4/4]

◆ ~WsfTrack()

WsfTrack::~WsfTrack ( )
override

Member Function Documentation

◆ AddEmitterTypeId() [1/2]

void WsfTrack::AddEmitterTypeId ( const EmitterTypeData & aEmitterTypeData)

Adds a emitter type data to the list of emitter type data. The emitter data will not be added if it is already in the list.

Parameters
aEmitterTypeDataThe emitter type data to be added

References WsfTrack::EmitterTypeData::mEmitterTruthId, mEmitterTypeIdListPtr, and mSignalListPtr.

Referenced by AddEmitterTypeId(), MergeEmitterTypeIdLists(), and SetEmitterTypeIdList().

◆ AddEmitterTypeId() [2/2]

void WsfTrack::AddEmitterTypeId ( WsfStringId aTruthEmitterTypeId,
WsfStringId aEmitterTypeId )

Adds a emitter type to the list of emitter types. The emitter will not be added if it is already in the list.

Parameters
aTruthEmitterTypeIdThe truth emitter type to be added
aEmitterTypeIdThe derived emitter type to be added

References AddEmitterTypeId().

◆ AddSignal()

void WsfTrack::AddSignal ( const Signal & aSignal)

Adds a signal to the list of detected signals. The signal will not be added if it is already in the list.

Parameters
aSignalThe signal to be added

References WsfTrack_Signal::mLowerFrequency, mSignalListPtr, and WsfTrack_Signal::mUpperFrequency.

Referenced by MergeSignalLists(), SetSignalList(), and WsfBayesClassifier::Test().

◆ Clone()

◆ EmitterTypeIdValid()

bool WsfTrack::EmitterTypeIdValid ( ) const
inline

Is the emitter type ID attribute valid?

References mEmitterTypeIdListPtr.

◆ FrequencyValid()

bool WsfTrack::FrequencyValid ( ) const

Is detected frequency attribute valid?

References mSignalListPtr.

Referenced by wsf::event::utils::PrintTrackData(), and wsf::event::utilsCSV::PrintTrackData().

◆ GetEmitterTypeIdCount()

unsigned int WsfTrack::GetEmitterTypeIdCount ( ) const

Get the number of entries in the detected signal list.

Returns
The number of entries in the detected signal list.

References mEmitterTypeIdListPtr.

Referenced by WsfTargetTypeReporting::UpdateReportedTargetType().

◆ GetEmitterTypeIdEntry()

void WsfTrack::GetEmitterTypeIdEntry ( unsigned int aIndex,
EmitterTypeData & aEmitterTypeData ) const

Get the i'th emitter type from the list of emitter types.

Parameters
aIndex[input] The index of the desired entry. This must be in the range [0..GetEmitterTypeCount()-1].
aEmitterTypeData[output] The desired entry. This is not modified if the aIndex is not in range.

References mEmitterTypeIdListPtr.

Referenced by WsfTargetTypeReporting::UpdateReportedTargetType().

◆ GetExpectedLocationError() [1/2]

double WsfTrack::GetExpectedLocationError ( ) const

Get the expected RMS location error associated with the track.

References GetQuality().

◆ GetExpectedLocationError() [2/2]

double WsfTrack::GetExpectedLocationError ( double aSimTime) const

Get the expected RMS error associated with the track at a given time.

References GetQuality().

◆ GetFrequency()

double WsfTrack::GetFrequency ( ) const

Get the frequency of the detected emitter.

Returns
The detected frequency (Hertz).
Note
This is for compatibility with code that existed prior to the implementation of frequency lists. lists. It will return the first frequency from the frequency list.

References GetSignalEntry(), WsfTrack_Signal::mLowerFrequency, and WsfTrack_Signal::mUpperFrequency.

◆ GetGlobalTrackNumber()

int WsfTrack::GetGlobalTrackNumber ( ) const
inline

References mGlobalTrackNumber.

◆ GetHistory()

◆ GetIFF_Status()

◆ GetLastSourceName()

WsfStringId WsfTrack::GetLastSourceName ( ) const
inline

Set the platform name (ID) of the platform that last provided data to update this track. This should be the value from WsfTrackMessage::GetSenderId.

References mLastSourceName.

Referenced by WsfTrackProcessor::SendTrackP().

◆ GetLastUpdateInterval()

double WsfTrack::GetLastUpdateInterval ( ) const
inline

Get the last time interval between updates.

References mLastUpdateTime.

◆ GetMessageDataTag()

double WsfTrack::GetMessageDataTag ( ) const
inline

The 'data Id' to be used when the track is attached to a message.

References mMessageDataTag.

◆ GetOriginatorIndex()

size_t WsfTrack::GetOriginatorIndex ( ) const
inline

◆ GetOriginatorNameId()

◆ GetOriginatorTypeId()

WsfStringId WsfTrack::GetOriginatorTypeId ( ) const
inline

The platform type ID of the originator.

References mOriginatorTypeId.

Referenced by MTT_PerceivedCluster::CopyFrom().

◆ GetPixelCount()

double WsfTrack::GetPixelCount ( ) const
inline

Pixel count methods (for tracks produced from images).

Get the number of pixels occupied by the object. This value will be zero if not from an image.

References mPixelCount.

Referenced by WsfEventPipeInterface::PackTrack(), wsf::event::utils::PrintTrackData(), and wsf::event::utilsCSV::PrintTrackData().

◆ GetProcessNoiseModel()

int WsfTrack::GetProcessNoiseModel ( ) const

◆ GetProcessNoiseVariancesECS()

void WsfTrack::GetProcessNoiseVariancesECS ( double aProcessNoiseVariancesECS[3]) const

◆ GetProcessorNameId()

WsfStringId WsfTrack::GetProcessorNameId ( ) const
inline

Get the processor name Id of the reporting processor.

Note
this will be 0 if the track type is either a 'cFILTERED_SENSOR' or 'cUNFILTER_SENSOR'.

References mProcessorNameId.

◆ GetProcessorTypeId()

WsfStringId WsfTrack::GetProcessorTypeId ( ) const
inline

Get the processor Type Id of the reporting processor.

Note
this will be 0 if the track type is either a 'cFILTERED_SENSOR' or 'cUNFILTER_SENSOR'.

References mProcessorTypeId.

◆ GetQuality() [1/2]

double WsfTrack::GetQuality ( ) const

◆ GetQuality() [2/2]

double WsfTrack::GetQuality ( double aSimTime) const

Get the track quality at a future time.

References mTrackQuality.

◆ GetResidualCovariance()

const UtCovariance * WsfTrack::GetResidualCovariance ( ) const
inline

◆ GetResidualCovarianceMatrix()

const UtMatrixd * WsfTrack::GetResidualCovarianceMatrix ( ) const

Get the residual covariance matrix.

References mResidualCovariancePtr.

◆ GetScriptClassName()

const char * WsfTrack::GetScriptClassName ( ) const
override

◆ GetSensorModeId()

WsfStringId WsfTrack::GetSensorModeId ( ) const
inline

Get the sensor mode ID in use at the time of the sensor report.

Note
this will be 0 if the track type is not either a 'cFILTERED_SENSOR' or 'cUNFILTER_SENSOR'.

References mSensorModeId.

Referenced by WsfEventPipeInterface::PackTrack(), WsfWeaponTrackProcessor::ProcessTrackUpdate(), WsfSensor::SendTrackUpdateMessage(), WsfEW_TrackEffect::SensorTrackDropped(), and WsfWeaponTrackProcessor::SetCurrentTarget().

◆ GetSensorNameId()

◆ GetSensorTypeId()

WsfStringId WsfTrack::GetSensorTypeId ( ) const
inline

Get the sensor Type Id of the reporting sensor.

Note
this will be 0 if the track type is not either a 'cFILTERED_SENSOR' or 'cUNFILTER_SENSOR'.

References mSensorTypeId.

Referenced by UT_DEFINE_SCRIPT_METHOD(), and UT_DEFINE_SCRIPT_METHOD().

◆ GetSignalCount()

unsigned int WsfTrack::GetSignalCount ( ) const

Get the number of entries in the detected signal list.

Returns
The number of entries in the detected signal list.

References mSignalListPtr.

Referenced by wsf::event::utils::PrintTrackData(), wsf::event::utilsCSV::PrintTrackData(), WsfRF_Repeater::SensorTrackUpdated(), WsfSignalAccessor::SetTrack(), and WsfRF_Jammer::StartJammingTrack().

◆ GetSignalEntry()

void WsfTrack::GetSignalEntry ( unsigned int aIndex,
Signal & aSignal ) const

Get the i'th signal from the list of detected signal.

Parameters
aIndex[input] The index of the desired entry. This must be in the range [0..GetSignalCount()-1].
aSignal[output] The desired entry. This is not modified if the aIndex is not in range.

References mSignalListPtr.

Referenced by GetFrequency(), wsf::event::utils::PrintTrackData(), wsf::event::utilsCSV::PrintTrackData(), WsfRF_Repeater::SensorTrackUpdated(), WsfSignalAccessor::SetTrack(), and WsfRF_Jammer::StartJammingTrack().

◆ GetSignalList()

const SignalList * WsfTrack::GetSignalList ( ) const
inline

◆ GetSignalToNoise()

◆ GetSimulation()

◆ GetStartTime()

double WsfTrack::GetStartTime ( ) const
inline

◆ GetTargetIndex()

size_t WsfTrack::GetTargetIndex ( ) const

Return the platform index of the target.

Get the platform index of the target. This index can be 0 if the track is not associated with a target.

References WsfSimulation::GetPlatformByName(), GetSimulation(), and platformPtr.

Referenced by WsfWeaponTaskManager::AcquireResource(), WsfBMUtils::BelievedAlive(), WsfSA_Assess::CalculatePrioritizedThreats(), WsfBallisticMissileLaunchComputer::ComputeAirIntercept(), WsfBallisticMissileLaunchComputer::ComputeLateralTargetOffset(), Contains(), MTT_PerceivedCluster::CopyFrom(), WsfTruthCorrelation::CorrelateImpl(), WsfSA_Perceive::CreateBanditsList(), WsfBallisticMissileLaunchComputer::EstimatedTimeToIntercept(), WsfTabularLaunchComputer::EstimatedTimeToIntercept(), WsfSA_Assess::GetPerceivedTrackedPlatformWithTarget(), WsfBMUtils::GetTarget(), WsfOrbitalManeuver::GetTargetPropagatorPerception(), GetTargetType(), WsfPerceptionProcessor::Important(), WsfSA_Perceive::Important(), WsfL16::Interface_J11::InFlightTargetUpdate(), Initialize(), WsfThreatProcessor::IsThreatening(), WsfPerceptionProcessor::MarkThreatAsImportant(), WsfSA_Perceive::MarkThreatAsImportant(), WsfPerceptionProcessor::MarkThreatAsUnimportant(), WsfSA_Perceive::MarkThreatAsUnimportant(), WsfEventPipeInterface::PackTrack(), WsfSA_Processor::PlatformInTrackListMWS(), wsf::event::utils::PrintTrackData(), wsf::event::utilsCSV::PrintTrackData(), wsf::event::utils::PrintTrackTargetName(), wsf::event::utilsCSV::PrintTrackTargetName(), WsfCuedLaserWeapon::ProcessMessage(), WsfWeaponTrackProcessor::ProcessTrackUpdate(), WsfRF_Repeater::RegisterTrack(), WsfDefaultSensorScheduler::SelectTargetForRequest(), WsfL16::SurveillancePart::SendSpaceTrack(), WsfSensor::SendTrackDropMessage(), WsfCompositeSensor::SensorDetectionChanged(), WsfDisPlatform::SensorTrackDropped(), WsfDisPlatform::SensorTrackInitiated(), WsfRF_Repeater::SensorTrackUpdated(), WsfRIPRProcessor::SetTargetByTrack(), WsfRF_Jammer::StartJammingTrack(), WsfRIPRProcessor::StartUplinking(), WsfUplinkProcessor::StartUplinking(), WsfRIPRProcessor::Targeting(), WsfRIPRProcessor::TargetTrack(), WsfMilEventPipe::TaskAssigned(), WsfImageProcessor::TrackDropped(), WsfXIO_AutoDisMapping::TranslateTrack(), WsfPerceptionProcessor::Unimportant(), WsfSA_Perceive::Unimportant(), Fires::BallisticPath::Update(), WsfSA_Assess::UpdateEngagementsData(), WsfWeaponEngagement::UpdateIntendedTarget(), WsfOrbitDeterminationFusion::UpdateLocalTrackFromNonLocalTrack(), WsfSA_Perceive::UpdatePerceivedItemsCalculation(), WsfLocalTrackStatus::UpdateTargetName(), WsfEW_SensorComponent::UpdateTrack(), WsfImageProcessor::UpdateTrack(), WsfSA_Processor::UpdateTrackData(), WsfBallisticMissileLaunchComputer::WeaponFireAborted(), WsfRIPRProcessor::WeaponsActive(), WsfRIPRProcessor::WeaponsIncoming(), and WsfSA_EntityPerception::WsfSA_EntityPerception().

◆ GetTargetName()

WsfStringId WsfTrack::GetTargetName ( ) const
inline

◆ GetTargetType()

◆ GetTrackId()

const WsfTrackId & WsfTrack::GetTrackId ( ) const
inline

Get the track ID.

References mTrackId.

Referenced by WsfExplicitWeapon::AbortSalvo(), WsfTaskManager::AcquireResource(), WsfWeaponTaskManager::AcquireResource(), WsfTrackManager::AddMeasurement(), WsfTrackManager::AddRawTrackReport(), WsfThreatProcessor::AddThreat(), WsfTrackManager::AddTrackReport(), WsfExplicitWeapon::AddWeaponToSimulation(), WsfFusionCenter::AdjustTrackQuantities(), WsfFalseTargetScreener::AllowTrackReporting(), WsfQuantumTaskerProcessor::AssignTask(), WsfTaskManager::AssignTask(), WsfWeaponTaskManager::AssignTask(), WsfTrackMessage::CanBeReplacedBy(), WsfL16::ComputerProcessor::ClearTrackNumber(), Contains(), WsfBMUtils::ConvertTrack(), MTT_PerceivedCluster::CopyFrom(), WsfLaunchComputer::CopyResultsToTrack(), WsfCorrelationStrategy::Correlate(), WsfClusterCorrelation::CorrelateImpl(), WsfMTT_Correlation::CorrelateImpl(), WsfNearestNeighborCorrelation::CorrelateImpl(), WsfPerfectCorrelation::CorrelateImpl(), WsfTruthCorrelation::CorrelateImpl(), WsfTrackManager::CorrelateTrack(), WsfBayesClassification::CreateClassifier(), WsfTaskManager::CreateDelayTask(), WsfDirectionFinderProcessor::CreateLocalTrack(), WsfMTT_Correlation::DecorrelateNonlocalTrack(), WsfTrackStateController::DiscoverTrack(), WsfCompositeSensor::DropContributorTrack(), WsfCuedLaserWeapon::Fire(), WsfTrackManager::FuseTrack(), WsfWeaponServer::GenerateCommand(), WsfBMUtils::GetOriginalTracks(), WsfDefaultSensorTracker::GetRequestDataForTarget(), WsfL16::ComputerProcessor::GetTrackNumber(), WsfBMUtils::GetTrackSensorType(), WsfRoadMover::GoToTrack(), WsfXIO_WeaponComponent::HandleTaskCommand(), WsfTrackManager::Initialize2(), WsfLaunchComputer::InitializeResults(), WsfTrackManager::InitiateTrack(), WsfTrackManager::InitiateTrackP(), WsfTrackManager::InitiateTrackSilent(), WsfLocalTrack::IsMirrorTrack(), WsfUplinkProcessor::LocalTrackCorrelation(), WsfPerceptionProcessor::LocalTrackDropped(), WsfSA_Perceive::LocalTrackDropped(), WsfTrackStateController::LocalTrackDropped(), WsfClusterCorrelation::MakeCorrelated(), WsfCorrelationStrategy::NewTrackCorrelation(), WsfTrackManager::NotifyOfLocalTrackCorrelation(), WsfTrackManager::NotifyOfLocalTrackDecorrelation(), WsfTrackProcessor::NotifyPlatform(), WsfL16::SurveillancePart::OwningPlatformWantsTrackRefNumber(), WsfEventPipeInterface::PackTrack(), WsfBeamDirector::PointAtTarget(), wsf::event::utils::PrintTrackTargetName(), wsf::event::utilsCSV::PrintTrackTargetName(), WsfTaskManager::ProcessTaskAssignMessage(), WsfWeaponTrackProcessor::ProcessTrackUpdate(), WsfL16::SurveillancePart::RawTrackReceived(), WsfRF_Repeater::RegisterTrack(), WsfThreatProcessor::RemoveThreat(), WsfLocalTrack::ReplacementUpdate(), WsfXIO_SensorService::RequestCanceled(), WsfXIO_SensorService::RequestUpdated(), WsfDefaultFusion::ReviewTrackQuality(), wsf::UCI_SensorComponent::SendEntityMessage(), WsfSensor::SendTrackDropMessage(), WsfTrackProcessor::SendTrackP(), WsfRF_Repeater::SensorTrackInitiated(), WsfRF_Repeater::SensorTrackUpdated(), WsfCompositeSensor::SensorTurnedOff(), WsfTrackManager::SetCurrentTarget(), WsfWeaponTrackProcessor::SetCurrentTarget(), WsfLocalTrack::SetMirrorTrack(), WsfL16::ComputerProcessor::SetTrackNumber(), WsfRF_Jammer::StartJammingTrack(), WsfDefaultSensorScheduler::StartTracking(), WsfRIPRProcessor::StartUplinking(), WsfUplinkProcessor::StartUplinking(), WsfDefaultSensorTracker::TargetDetected(), WsfAssetManager::TimeLastReceivedTrackUpdate(), WsfL16::SurveillancePart::TrackCreated(), WsfL16::SurveillancePart::TrackDropped(), WsfEW_SensorComponent::TrackerInitializeTrack(), WsfL16::SurveillancePart::TrackUpdated(), WsfTrackManager::UnlockTrack(), WsfCompositeSensor::UpdateCompositeTrack(), WsfFusionCenter::UpdateFalseTargetTracks(), WsfMTT_Fusion::UpdateLocalTrackFromNonLocalTrack(), WsfOrbitDeterminationFusion::UpdateLocalTrackFromNonLocalTrack(), WsfSA_Perceive::UpdatePerceivedItemsCalculation(), WsfFusionCenter::UpdateRealTargetTracks(), WsfFalseTargetScreener::UpdateTargetTrack(), WsfDefaultFusion::UpdateTrackQuality(), WsfUplinkProcessor::UplinkTrack(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), UT_DEFINE_SCRIPT_METHOD(), WsfWeapon::WeaponFireAborted(), WsfWeaponTaskManager::WeaponFireAborted(), WsfMilEventPipe::WeaponFired(), WsfWeaponTaskManager::WeaponFired(), and WsfQuantumTask::WsfQuantumTask().

◆ GetTrackQuality() [1/2]

◆ GetTrackQuality() [2/2]

double WsfTrack::GetTrackQuality ( double aSimTime) const

Get the track quality at a future time.

References GetQuality(), mTrackQuality, and UseQuantitativeTrackQuality().

◆ GetTrackType()

◆ GetUpdateCount()

◆ GetUpdateTime()

◆ HasHistory()

bool WsfTrack::HasHistory ( ) const

◆ IFF_StatusValid()

◆ Initialize()

void WsfTrack::Initialize ( double aSimTime,
const WsfTrackId & aTrackId,
WsfSimulation & aSimulation )
virtual

Initialize a new track.

This ONLY sets the track ID, track start and update times and update count. All other fields remain at their previous values.

Parameters
aSimTimeThe current simulation time. The start time and last update time of the track will be set to this value.
aTrackIdThe track ID to be associated with the new track.
aSimulationThe Simulation

References WsfMeasurement::GetExtrapolatedLocationWCS(), WsfPlatform::GetIndex(), WsfSimulation::GetPlatformByName(), GetTargetIndex(), IsPredefinedTrack(), mOriginatorNameId, mOriginatorPlatformIndex, WsfMeasurement::mSimulationPtr, mStartTime, mTrackId, mUpdateCount, platformPtr, SetLocationWCS(), WsfMeasurement::SetSimulation(), and targetIndex().

Referenced by WsfWeaponServer::CreateATargetPoint(), WsfWeaponServer::CreateATargetPoint(), WsfJamStrobeDetector::InitializeTrack(), WsfSensorMode::InitializeTrack(), WsfUtil::MakeTrack(), SAM_LaunchComputerGenerator::PlaceNewTarget(), WsfWeaponServer::ProcessCommand(), and WsfCompositeSensor::UpdateCompositeTrack().

◆ Is3D()

bool WsfTrack::Is3D ( ) const

Does the track have sufficient data to be considered a "3D" track. For a fused track this flag is set if there were sufficient data to create a 3D location estimate (for example, if range, bearing, and elevation are all available from the same sensor). This flag should be set false if some part of the solution is guessed (for example, altitude guessed in conjunction with a range-bearing report). This method may return a different result from WsfTrack::LocationValid, as the location may be valid without a true "3D" solution available.

References mIs3D.

Referenced by WsfBMUtils::ConvertTrack(), MTT_PerceivedCluster::CopyFrom(), WsfEventPipeInterface::PackTrack(), WsfDefaultFusion::PerformStandardTrackUpdate(), wsf::event::utils::PrintTrackData(), wsf::event::utilsCSV::PrintTrackData(), WsfL16::SurveillancePart::SendSpaceTrack(), and WsfSensorMode::UpdateTrackPosition().

◆ IsCandidate()

bool WsfTrack::IsCandidate ( ) const
inline

◆ IsFalseTarget()

bool WsfTrack::IsFalseTarget ( ) const
inline

◆ IsFusible()

◆ IsPredefinedTrack()

bool WsfTrack::IsPredefinedTrack ( ) const
inline

Is the track a predefined (pre-briefed) track? This method is retained for compatibility.

References cPREDEFINED, and mTrackType.

Referenced by Initialize(), and IsReportable().

◆ IsPurgeable()

bool WsfTrack::IsPurgeable ( ) const
inline

Return the current state of whether this track is purgeable.

Note
A result of true indicates that the track can be purged eventually. In the case of a WsfLocalTrack, it may have a nonzero use count and will not be purged until the use count goes to zero.

References mIsPurgeable.

Referenced by WsfLocalTrack::SetPurgeable().

◆ IsReportable() [1/2]

bool WsfTrack::IsReportable ( ) const
inline

Is the track reportable by the local track manager?

Returns
'true' if the local track manager has reporting responsibility for the track or 'false' if not.

References mIsReportable.

Referenced by WsfTrackProcessor::SendTrackP(), and WsfEW_SensorComponent::UpdateTrack().

◆ IsReportable() [2/2]

void WsfTrack::IsReportable ( bool aIsReportable)

Set the track reportable flag used by the local track manager to support reporting decision.

References IsPredefinedTrack(), and mIsReportable.

◆ IsStale()

bool WsfTrack::IsStale ( ) const
inline

Are the data in the track 'stale.'

Note
Track data are considered stale if it should have been purged, but was retained instead due to an existing lock on it.

References mIsStale.

Referenced by WsfTrackManager::FuseTrack(), and WsfTrackProcessor::SendTrackP().

◆ IsStrobe()

bool WsfTrack::IsStrobe ( ) const
inline

Get the flag indicating this is a strobe detection track.

Returns
'True' = Is a strobe track.

References mIsStrobe.

◆ IsTrack()

bool WsfTrack::IsTrack ( ) const
inlineoverridevirtual

Return that this is a track.

Reimplemented from WsfMeasurement.

◆ KinematicUpdate()

void WsfTrack::KinematicUpdate ( double aSimTime)
overridevirtual

Update the track to the given time based on the current kinematic state estimate. This state estimate will be based on the associated filter, if present, or a simple velocity-based approximation, if no filter is present. The track's location, velocity, and covariance matrix may all be updated.

Reimplemented from WsfMeasurement.

References WsfMeasurement::GetFilter(), GetUpdateTime(), WsfMeasurement::KinematicUpdate(), mTrackQuality, SetLocationWCS(), Update(), UseQuantitativeTrackQuality(), and WsfMeasurement::WsfMeasurement().

Referenced by WsfClusterCorrelation::ClusterRawTracksIntoLocalTracks(), WsfDefaultFusion::PerformStandardTrackUpdate(), WsfTrackProcessor::SendTrackP(), and WsfOrbitDeterminationFusion::UpdateLocalTrackFromNonLocalTrack().

◆ LineOfSightRatesFrom()

bool WsfTrack::LineOfSightRatesFrom ( double aSimTime,
WsfPlatform * aObserver,
double & aLOSR_Az,
double & aLOSR_El )

Fetch relative line of sight rates, from the Observer's perspective, (the Observer does not have to be the originator of the track) for Intercept guidance. Will return true if the results are valid.

References WsfMeasurement::GetExtrapolatedLocationWCS(), GetVelocityWCS(), and WsfPlatform::Update().

◆ LoadTrackInstance()

bool WsfTrack::LoadTrackInstance ( const WsfScenario & aScenario,
UtInput & aInput,
WsfPlatform * aPlatformPtr,
WsfTrack *& aTrackPtr )
static

Load an initial track from an input stream.

Parameters
aScenarioThe Scenario
aInput[input] The input stream.
aPlatformPtr[input] The platform that is the 'owner' of the track (needed for relative geometry calculations and such).
aTrackPtr[output] Pointer to the track if the current command was a a track definition.
Returns
true if the current command was a track definition or false if not.

References WsfObject::GetNameId(), WsfObject::GetTypeId(), trackPtr, and WsfTrack().

Referenced by WsfPlatform::ProcessInput(), and WsfTrackManager::ProcessInput().

◆ MergeEmitterTypeIdLists()

void WsfTrack::MergeEmitterTypeIdLists ( const WsfTrack & aOtherTrack)

Merge a emitter type list from another track into this track. Duplicates will be omitted.

Parameters
aOtherTrackA reference to the other track.

References AddEmitterTypeId(), mEmitterTypeIdListPtr, and WsfTrack().

Referenced by WsfLocalTrack::UpdateSignalList().

◆ MergeSignalLists()

void WsfTrack::MergeSignalLists ( const WsfTrack & aOtherTrack)

Merge a signal list from another track into this track. Duplicates will be omitted.

Parameters
aOtherTrackA reference to the other track.

References AddSignal(), mSignalListPtr, and WsfTrack().

Referenced by WsfDefaultFusion::UpdateSignalList(), and WsfLocalTrack::UpdateSignalList().

◆ operator=()

WsfTrack & WsfTrack::operator= ( const WsfTrack & aRhs)

Assignment operator.

References cCC_ASSIGNMENT, WsfAuxDataEnabled::operator=(), and WsfTrack().

Referenced by WsfLocalTrack::operator=().

◆ ProcessInput()

bool WsfTrack::ProcessInput ( UtInput & aInput)
overridevirtual

Check for and process a track-related command.

Parameters
aInputThe input stream object.
Returns
true if the command was understood and processed or false if the command was not recognized.
Note
The base class method does not check for the 'position', 'altitude', 'speed' or 'heading' commands because they require additional processing after the entire track has been read. These command are processed directly by ProcessInputBlock() and the required additional processing is done after the block terminator is processed.

Reimplemented from WsfMeasurement.

References mIsReportable, mTrackQuality, WsfAuxDataEnabled::ProcessInput(), WsfMeasurement::ProcessInput(), and SetFrequency().

Referenced by ProcessInputBlock().

◆ ProcessInputBlock()

void WsfTrack::ProcessInputBlock ( const WsfScenario & aScenario,
UtInputBlock & aInputBlock )

Read a block of track commands up to 'end_' token defined for the input block. This is the preferred mechanism for reading a block that defines a track. The caller should have read the command that introduced the track block (e.g.: 'track') and then created a UtInputBlock that defines the terminator (e.g.: 'end_track'). This method will then repeatedly invoke ProcessInput() to read and process commands. A derived class can provide additional commands via their implementation of ProcessInput().

Parameters
aScenarioThe scenario
aInputBlockThe input block stream object.
Note
In general this method should not be overridden unless a derived class intends on completely reimplementing whatever functionality is desired.

References cPREDEFINED, wsf::TerrainInterface::Get(), wsf::Terrain::GetElevInterp(), WsfScenario::GetInputPlatformByName(), mIs3D, mTrackType, and ProcessInput().

◆ ProcessNoiseVariancesValid()

bool WsfTrack::ProcessNoiseVariancesValid ( ) const

◆ ReplacementUpdate()

void WsfTrack::ReplacementUpdate ( const WsfTrack & aSource)
virtual

◆ ResidualCovarianceValid()

bool WsfTrack::ResidualCovarianceValid ( ) const

Is the residual covariance matrix attribute valid?

Referenced by wsf::event::utils::PrintTrackData().

◆ SerializeP()

template<typename T>
void WsfTrack::SerializeP ( T & aBuff)

For XIO (de)serialization.

References UseQuantitativeTrackQuality().

◆ Set3D()

◆ SetEmitterTypeIdList()

void WsfTrack::SetEmitterTypeIdList ( const std::vector< EmitterTypeData > & aEmitterTypeIdList)

Set the list of detected emitter types associated with the track.

Parameters
aEmitterTypeIdListThe list of detected emitter IDs.

References AddEmitterTypeId(), and mEmitterTypeIdListPtr.

Referenced by WsfEmitterTypeReporting::UpdateReportedEmitterType().

◆ SetEmitterTypeIdValid()

void WsfTrack::SetEmitterTypeIdValid ( bool aEmitterTypeIdValid)
inline

Define whether or not the emitter type ID attribute is valid.

References mEmitterTypeIdListPtr.

Referenced by WsfEmitterTypeReporting::UpdateReportedEmitterType().

◆ SetFrequency()

void WsfTrack::SetFrequency ( double aFrequency)

Set the frequency of the detected emitter.

Parameters
aFrequencyThe detected frequency (Hertz).
Note
This is for compatibility with code that existed prior to the implementation of frequency lists. lists. It will create a frequency list with a single frequency.

References SetSignalList().

Referenced by ProcessInput().

◆ SetFrequencyValid()

void WsfTrack::SetFrequencyValid ( bool aFrequencyValid)

Define whether or not the detected frequency attribute is valid. Note: This function is deprecated. Frequency is not valid unless there is at least one item in the signal list. Previously, the sensor input "reports_fequency" could be specified, but if the sensor couldn't actually report it, there was a mismatch ("valid" == true when it really is not), leading to undefined behavior in the copy constructor (now fixed).

◆ SetFusible()

void WsfTrack::SetFusible ( bool aIsFusible)
inline

Define whether the track is a fusible track.

References mIsFusible.

◆ SetGlobalTrackNumber()

void WsfTrack::SetGlobalTrackNumber ( int aNumber)
inline

References mGlobalTrackNumber.

◆ SetIFF_Status()

void WsfTrack::SetIFF_Status ( IFF_Status aIFF_Status)
inline

◆ SetIsCandidate()

void WsfTrack::SetIsCandidate ( bool aIsCandidate)
inline

Set the "candidate" status of a track.

References mIsCandidate.

Referenced by WsfTrackManager::AddMeasurement(), and WsfTrackManager::FuseTrack().

◆ SetIsFalseTarget()

void WsfTrack::SetIsFalseTarget ( bool aIsFalseTarget)
inline

Set the flag indicating this is a spurious target not corresponding to a real platform.

Parameters
aIsFalseTarget'True' = Is a false target (default = not a false target).

References mIsFalseTarget.

◆ SetIsStrobe()

void WsfTrack::SetIsStrobe ( bool aIsStrobe)
inline

Set the flag indicating this is a strobe detection track.

Parameters
aIsStrobe'True' = Is a strobe track ('false' (default) = not a strobe track).

References mIsStrobe.

Referenced by WsfJamStrobeDetector::InitializeTrack().

◆ SetLastSourceName()

void WsfTrack::SetLastSourceName ( WsfStringId aSourceName) const
inline

Set the platform name (ID) of the platform that last provided data to update this track. This should be the value from WsfTrackMessage::GetSenderId.

Note
This is 'const' even though it modifies the track. This attribute is 'mutable'.

References mLastSourceName.

◆ SetMessageDataTag()

void WsfTrack::SetMessageDataTag ( double aMessageDataTag)
inline

Set the 'data Id' to be used when the track is attached to a message.

References mMessageDataTag.

Referenced by WsfJamStrobeDetector::InitializeTrack(), WsfSensorMode::InitializeTrack(), WsfJamStrobeDetector::UpdateTrack(), and WsfSensorMode::UpdateTrack().

◆ SetPixelCount()

void WsfTrack::SetPixelCount ( double aPixelCount)
inline

Set the number of pixels occupied by the object.

References mPixelCount.

◆ SetPlatformOriginator()

◆ SetProcessNoiseVariancesECS()

void WsfTrack::SetProcessNoiseVariancesECS ( double aProcessNoiseVariancesECS[3])

◆ SetProcessorOriginator()

void WsfTrack::SetProcessorOriginator ( WsfObject * aProcessorPtr,
WsfPlatform * aPlatformPtr )

◆ SetPurgeable()

virtual void WsfTrack::SetPurgeable ( bool aIsPurgeable)
inlinevirtual

Set whether this track can be purged.

Reimplemented in WsfLocalTrack.

References mIsPurgeable.

Referenced by WsfLocalTrack::SetPurgeable().

◆ SetReportable()

void WsfTrack::SetReportable ( bool aIsReportable)
inline

Declare the local reporting responsibility of the track.

Parameters
aIsReportable'true' if the local track manager is to have reporting responsibility for the track or 'false' if it should not report the track.

References mIsReportable.

◆ SetResidualCovariance() [1/2]

void WsfTrack::SetResidualCovariance ( const UtCovariance & aResidualCovarianceMatrix)

◆ SetResidualCovariance() [2/2]

void WsfTrack::SetResidualCovariance ( UtCovariance * aResidualCovariancePtr)

Set the residual state covariance matrix. The track instance owns the parameter.

References mResidualCovariancePtr.

◆ SetResidualCovarianceValid()

void WsfTrack::SetResidualCovarianceValid ( bool aStateCovarianceValid)

Define whether the state covariance matrix attribute is valid.

References mResidualCovariancePtr.

◆ SetSensorModeId()

void WsfTrack::SetSensorModeId ( WsfStringId aSensorModeId)
inline

Set the sensor mode ID in use at the time of the sensor report. This should not be called for non-sensor tracks.

References mSensorModeId.

Referenced by WsfJamStrobeDetector::InitializeTrack(), WsfSensorMode::InitializeTrack(), WsfCompositeSensor::UpdateCompositeTrack(), WsfJamStrobeDetector::UpdateTrack(), and WsfSensorMode::UpdateTrack().

◆ SetSensorOriginator() [1/2]

void WsfTrack::SetSensorOriginator ( WsfObject * aSensorPtr,
WsfPlatform * aPlatformPtr )

◆ SetSensorOriginator() [2/2]

void WsfTrack::SetSensorOriginator ( WsfStringId aSensorNameId,
WsfStringId aSensorTypeId )

Identify the specified sensor as the originator.

This is a special form typically used by image processors which create tracks from the image. It sets the producing sensor name and type, even though this isn't a direct sensor measurement. (This is a sort of 'hybrid' track in which the characteristics of the sensor are maintained).

References cUNFILTERED_SENSOR, mIsFusible, mIsPurgeable, mSensorNameId, mSensorTypeId, and mTrackType.

◆ SetSignalList()

void WsfTrack::SetSignalList ( const std::vector< Signal > & aSignalList)

Set the list of detected signals associated with the track.

Parameters
aSignalListThe list of detected frequencies.

References AddSignal(), and mSignalListPtr.

Referenced by SetFrequency(), and WsfPassiveSensor::PassiveMode::UpdateTrack().

◆ SetSignalToNoise()

void WsfTrack::SetSignalToNoise ( double aSignalToNoise)
inline

Set the signal to noise from the sensor.

References mSignalToNoise.

Referenced by WsfDefaultFusion::UpdateSignalToNoise(), and WsfSensorMode::UpdateTrack().

◆ SetSignalToNoiseValid()

void WsfTrack::SetSignalToNoiseValid ( bool aSignalToNoiseValid)
inline

Define whether or not the signal-to-noise attribute is valid.

References mSignalToNoise.

Referenced by WsfSensorMode::InitializeTrack(), and WsfSensorMode::UpdateTrackReportingFlags().

◆ SetSimulation()

void WsfTrack::SetSimulation ( WsfSimulation * aSimulationPtr)

◆ SetStale()

void WsfTrack::SetStale ( bool aIsStale)
inline

Define whether the track data are to be considered 'stale.'.

References mIsStale.

Referenced by WsfTrackManager::FuseTrack().

◆ SetStartTime()

void WsfTrack::SetStartTime ( double aStartTime)
inline

Set the time when this track was started.

References mStartTime.

Referenced by WsfXIO_AutoDisMapping::TranslateTrack().

◆ SetTarget()

void WsfTrack::SetTarget ( const WsfPlatform & aTarget)

NOTE: GetTargetIndex() can return zero which means the track is probably not explicitly tied to a specific platform.

Set the platform index, name, and type of the target.

Parameters
aTargetThe target to be associated with this track.

References WsfPlatform::GetIndex(), WsfObject::GetNameId(), and WsfObject::GetTypeId().

◆ SetTargetIndex()

void WsfTrack::SetTargetIndex ( size_t aTargetIndex)
inline

◆ SetTargetName()

void WsfTrack::SetTargetName ( WsfStringId aTargetName)
inline

Set the string id of that corresponds to the target platform or false-target blip name.

Parameters
aTargetNameThe string id corresponds to the target platform name.

Referenced by WsfTruthCorrelation::CorrelateImpl(), WsfTrackStateController::DeleteTrack(), WsfUtil::MakeTrack(), WsfRIPRProcessor::StartUplinking(), WsfUplinkProcessor::StartUplinking(), WsfJamStrobeDetector::UpdateTrack(), and WsfSensorMode::UpdateTrack().

◆ SetTargetType()

void WsfTrack::SetTargetType ( WsfStringId aTargetType)
inline

Set the id corresponding with the target platform's type

Parameters
aTargetTypeThe string id corresponding with the target platform's type.

Referenced by WsfTruthCorrelation::CorrelateImpl(), WsfUtil::MakeTrack(), WsfBayesClassifier::Test(), WsfClassifierTabulated::Test(), WsfJamStrobeDetector::UpdateTrack(), WsfPassiveSensor::PassiveMode::UpdateTrack(), and WsfSensorMode::UpdateTrack().

◆ SetTrackId()

void WsfTrack::SetTrackId ( const WsfTrackId & aTrackId)
inline

Set the track ID.

References mTrackId.

Referenced by WsfTrackStateController::DeleteTrack().

◆ SetTrackQuality()

◆ SetTrackType()

void WsfTrack::SetTrackType ( TrackType aTrackType)

◆ SetUpdateCount()

void WsfTrack::SetUpdateCount ( int aUpdateCount)
inline

Set the number of updates to this track.

References mUpdateCount.

Referenced by WsfDefaultFusion::PerformStandardTrackUpdate().

◆ SignalToNoiseValid()

bool WsfTrack::SignalToNoiseValid ( ) const
inline

◆ Update()

void WsfTrack::Update ( double aSimTime)
overridevirtual

◆ UpdateFromMeasurement()

void WsfTrack::UpdateFromMeasurement ( double aSimTime,
const WsfTrack & aMeasurement )
virtual

Update a track from an existing measurement. Only measurement information are copied (no track fusion occurs). "Invariant" data such as track type and track id are not copied.

Reimplemented in WsfLocalTrack.

References WsfAuxDataEnabled::GetAuxDataConst(), WsfAuxDataEnabled::HasAuxData(), mEmitterTypeIdListPtr, mFalseTargetId, mIFF_Status, mIsFalseTarget, mIsStale, mPixelCount, mResidualCovariancePtr, mSignalListPtr, mSignalToNoise, WsfMeasurement::mSpatialDomain, mTrackQuality, WsfAuxDataEnabled::SetAuxData(), Update(), and WsfTrack().

Referenced by WsfLocalTrack::UpdateFromMeasurement().

◆ UseQuantitativeTrackQuality()

bool WsfTrack::UseQuantitativeTrackQuality ( ) const
protected

Member Data Documentation

◆ [union]

union { ... } WsfTrack

◆ mEmitterTypeIdListPtr

◆ mFalseTargetId

int WsfTrack::mFalseTargetId
protected

Referenced by UpdateFromMeasurement().

◆ mFlags

unsigned int WsfTrack::mFlags

◆ mGlobalTrackNumber

int WsfTrack::mGlobalTrackNumber
protected

◆ mHistory

History WsfTrack::mHistory
mutableprotected

Referenced by GetHistory(), and HasHistory().

◆ mIFF_Status

◆ mIs3D

bool WsfTrack::mIs3D

Referenced by Is3D(), ProcessInputBlock(), and Set3D().

◆ mIsCandidate

bool WsfTrack::mIsCandidate

Referenced by IsCandidate(), and SetIsCandidate().

◆ mIsFalseTarget

bool WsfTrack::mIsFalseTarget

◆ mIsFusible

◆ mIsPurgeable

◆ mIsReportable

bool WsfTrack::mIsReportable

◆ mIsStale

bool WsfTrack::mIsStale

◆ mIsStrobe

bool WsfTrack::mIsStrobe

Referenced by IsStrobe(), and SetIsStrobe().

◆ mLastSourceName

WsfStringId WsfTrack::mLastSourceName
mutableprotected

The name of the platform that last provided data that updated this track.

Referenced by GetLastSourceName(), and SetLastSourceName().

◆ mLastUpdateTime

UtDoubleInformation WsfTrack::mLastUpdateTime
protected

Referenced by GetLastUpdateInterval(), and Update().

◆ mMessageDataTag

double WsfTrack::mMessageDataTag
protected

◆ mOriginatorNameId

WsfStringId WsfTrack::mOriginatorNameId
protected

◆ mOriginatorPlatformIndex

size_t WsfTrack::mOriginatorPlatformIndex
protected

◆ mOriginatorTypeId

WsfStringId WsfTrack::mOriginatorTypeId
protected

◆ mPixelCount

UtDoubleInformation WsfTrack::mPixelCount
protected

◆ mProcessorNameId

WsfStringId WsfTrack::mProcessorNameId
protected

◆ mProcessorTypeId

WsfStringId WsfTrack::mProcessorTypeId
protected

◆ mResidualCovariancePtr

UtCovariancePtrInformation WsfTrack::mResidualCovariancePtr
protected

◆ mSensorModeId

WsfStringId WsfTrack::mSensorModeId
protected

◆ mSensorNameId

WsfStringId WsfTrack::mSensorNameId
protected

◆ mSensorTypeId

WsfStringId WsfTrack::mSensorTypeId
protected

◆ mSignalListPtr

◆ mSignalToNoise

UtDoubleInformation WsfTrack::mSignalToNoise
protected

◆ mStartTime

double WsfTrack::mStartTime
protected

◆ mTrackId

WsfTrackId WsfTrack::mTrackId
protected

◆ mTrackQuality

UtDoubleInformation WsfTrack::mTrackQuality
protected

◆ mTrackType

◆ mUpdateCount

int WsfTrack::mUpdateCount
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved