WSF
WsfMeasurement Class Reference

A measurement class that provides WSF-specific interfaces and data extrapolation. More...

#include <WsfMeasurement.hpp>

Inheritance diagram for WsfMeasurement:
Collaboration diagram for WsfMeasurement:

Public Member Functions

 WsfMeasurement ()
 WsfMeasurement (const WsfMeasurement &aSrc)=default
virtual WsfMeasurementClone () const
virtual bool ProcessInput (UtInput &aInput)
virtual void Update (double aSimTime)
virtual bool IsTrack () const

Spatial domain methods.

The spatial domain represents the domain in which that track is thought to exist (land, air, space, etc.) Some systems report tracks differently depending on their domain.

using WsfSpatialDomainInformation = UtInformation<int>
WsfSpatialDomainInformation mSpatialDomain
WsfSimulationmSimulationPtr {nullptr}
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.
static double GetDefaultAltitude (WsfSpatialDomain aDomain)
 Given a spatial domain, return the default altitude of that domain.
const wsf::TrackExtrapolatorsGetTrackExtrapolators () const

Virtual filter methods.

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.

Extrapolation methods.

virtual bool GetExtrapolatedLocationWCS (double aSimTime, double aLocationWCS[3]) const
template<typename T>
bool GetExtrapolatedData (double aSimTime, const std::string &aExtrapolationType, T &aData) const
virtual void KinematicUpdate (double aSimTime)
 Update the measurement/track to the given time using filtering and extrapolation.
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.

Detailed Description

A measurement class that provides WSF-specific interfaces and data extrapolation.

Member Typedef Documentation

◆ WsfSpatialDomainInformation

using WsfMeasurement::WsfSpatialDomainInformation = UtInformation<int>
protected

Constructor & Destructor Documentation

◆ WsfMeasurement() [1/2]

◆ WsfMeasurement() [2/2]

WsfMeasurement::WsfMeasurement ( const WsfMeasurement & aSrc)
default

Member Function Documentation

◆ Clone()

WsfMeasurement * WsfMeasurement::Clone ( ) const
virtual

◆ GetDefaultAltitude() [1/2]

double WsfMeasurement::GetDefaultAltitude ( ) const
inline

Return a default altitude based on the platform's spatial domain.

References GetDefaultAltitude(), and GetSpatialDomain().

Referenced by MTT_PerceivedCluster::CopyFrom(), MTT_ActiveTrack::CopyTo(), and GetDefaultAltitude().

◆ GetDefaultAltitude() [2/2]

double WsfMeasurement::GetDefaultAltitude ( WsfSpatialDomain aDomain)
staticprotected

Given a spatial domain, return the default altitude of that domain.

References WSF_SPATIAL_DOMAIN_AIR, WSF_SPATIAL_DOMAIN_LAND, WSF_SPATIAL_DOMAIN_SPACE, and WSF_SPATIAL_DOMAIN_SUBSURFACE.

◆ GetExtrapolatedData()

template<typename T>
bool WsfMeasurement::GetExtrapolatedData ( double aSimTime,
const std::string & aExtrapolationType,
T & aData ) const
inline

Extrapolate measurement data based on stored wsf::TrackExtrapolation objects.

Parameters
aSimTimeThe time to which the data should be extrapolated.
aExtrapolationTypeThe type of extrapolation to be performed, obtained from the track extrapolation object's GetTypeId method.
aDataThe output extrapolated data.
Returns
Whether the data were extrapolated.
Note
Extrapolation is most commonly performed for wsf::KinematicState, to include WCS location (WsfMeasurement::GetExtrapolatedLocationWCS).

References wsf::TrackExtrapolation< T >::Extrapolate(), wsf::TrackExtrapolators::Find(), and GetTrackExtrapolators().

Referenced by GetExtrapolatedLocationWCS().

◆ GetExtrapolatedLocationWCS()

bool WsfMeasurement::GetExtrapolatedLocationWCS ( double aSimTime,
double aLocationWCS[3] ) const
virtual

Get the predicted perceived target WCS location at a time other than the last updated time. Returns true if successful or false if not enough information is present (e.g.: this is a 'range-only' track).

Parameters
aSimTimeThe time at which the location estimate is desired.
aLocationWCS(output) The estimated location at the given time.
Returns
Whether an extrapolated location could be computed based on data in the measurement.

References GetExtrapolatedData(), wsf::KinematicStateExtrapolation::GetTypeId(), and wsf::TrackExtrapolation< KinematicState >::Type().

Referenced by WsfBallisticMissileLaunchComputer::ComputeAirIntercept(), WsfATA_LaunchComputer::EstimatedTimeToIntercept(), WsfBallisticMissileLaunchComputer::EstimatedTimeToIntercept(), WsfSAM_LaunchComputer::EstimatedTimeToIntercept(), WsfQuantumEvaluatorDistance::Evaluate(), WsfQuantumEvaluatorInterceptTime::Evaluate(), WsfWeaponTrackProcessor::GetInterceptData(), WsfWeapon::GetTargetLocationWCS(), WsfDefaultSensorTracker::GetTargetState(), WsfRoadMover::GetTravelTime(), WsfRoadMover::GoToTrack(), WsfTrack::Initialize(), WsfParabolicMover::InitShot(), KinematicUpdate(), WsfTrack::LineOfSightRatesFrom(), WsfHeatMap::LocalTrackDropped(), wsf::event::utils::PrintTrackData(), wsf::event::utilsCSV::PrintTrackData(), WsfSA_Predict::ProjectPositionInTime(), WsfDefaultSensorScheduler::SelectTarget(), WsfLocalTrack::UpdateFilter(), UT_DEFINE_SCRIPT_METHOD(), WsfATG_LaunchComputer::WithinConstraintsAt(), WsfLaunchComputer::WithinConstraintsAt(), WsfRF_Jammer::WithinFieldOfView(), WsfSensor::WithinFieldOfView(), and WsfWeapon::WithinFieldOfView().

◆ GetFilter() [1/2]

virtual WsfFilter * WsfMeasurement::GetFilter ( )
inlinevirtual

Return a pointer to the filter. If no filter is present, the pointer will be zero.

Reimplemented in WsfLocalTrack.

Referenced by wsf::space::KinematicStateExtrapolation::Extrapolate(), and WsfTrack::KinematicUpdate().

◆ GetFilter() [2/2]

virtual const WsfFilter * WsfMeasurement::GetFilter ( ) const
inlinevirtual

Return a pointer to the filter (const version). If no filter is present, the pointer will be zero.

Reimplemented in WsfLocalTrack.

◆ GetSimulation()

WsfSimulation * WsfMeasurement::GetSimulation ( ) const
inline

Return the simulation object this measurement is associated with, or nullptr if WsfMeasurement::Initialize was not called.

References mSimulationPtr.

Referenced by wsf::space::KinematicStateExtrapolation::Extrapolate().

◆ GetSpatialDomain()

◆ GetTrackExtrapolators()

const wsf::TrackExtrapolators * WsfMeasurement::GetTrackExtrapolators ( ) const
protected

If WsfMeasurement::mSimulationPtr is non-null, this method performs a just-in-time initialization of WsfMeasurement::mExtrapolators. This is necessary because the desired extrapolation objects are unknown until the measurement data are populated (i.e., post-construction/initialization).

Note
This method must be called to access WsfMeasurement::mExtrapolators from within this class implementation for correct extrapolation.

References wsf::TrackExtrapolationStrategyTypes::Get(), wsf::TrackExtrapolationStrategyTypes::GetDefaultStrategy(), wsf::DefaultTrackExtrapolationStrategy::InitializeExtrapolation(), and mSimulationPtr.

Referenced by GetExtrapolatedData().

◆ IsTrack()

virtual bool WsfMeasurement::IsTrack ( ) const
inlinevirtual

Reimplemented in WsfTrack.

◆ KinematicUpdate()

void WsfMeasurement::KinematicUpdate ( double aSimTime)
virtual

Update the measurement/track to the given time using filtering and extrapolation.

Reimplemented in WsfTrack.

References GetExtrapolatedLocationWCS(), and SetLocationWCS().

Referenced by WsfTrack::KinematicUpdate(), and WsfDefaultFusion::UpdateLocalResultFromNonLocalResult().

◆ ProcessInput()

bool WsfMeasurement::ProcessInput ( UtInput & aInput)
virtual

Reimplemented in WsfTrack.

References mSpatialDomain, and WsfTypes::StringToEnum().

Referenced by WsfTrack::ProcessInput(), and WsfMeasurement().

◆ SetSimulation()

void WsfMeasurement::SetSimulation ( WsfSimulation & aSimulation)
inline

Set the simulation object associated with this measurement.

Note
A simulation does not need to be set unless data extrapolation (GetExtrapolatedData) is desired.

References mSimulationPtr.

Referenced by WsfTrack::Initialize().

◆ SetSpatialDomain()

◆ SetSphericalMeasurement()

void WsfMeasurement::SetSphericalMeasurement ( double aSimTime,
double aAzimuth,
double aElevation,
double aRange,
double aRangeRate )

Convenience method to set a 3D spherical measurement result.

Parameters
aSimTimeThe time at which the measurement is valid.
aAzimuthThe measurement azimuth.
aElevationThe measurement elevation.
aRangeThe range of the measurement.
aRangeRateThe measurement range rate.

Referenced by wsf::AbsoluteSensorErrorModel::ApplyMeasurementErrors(), and wsf::StandardSensorErrorModel::ApplyMeasurementErrors().

◆ Update()

virtual void WsfMeasurement::Update ( double aSimTime)
inlinevirtual

Member Data Documentation

◆ mSimulationPtr

◆ mSpatialDomain


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