12#ifndef WSFDEFAULTFUSION_HPP
13#define WSFDEFAULTFUSION_HPP
15#include "wsf_export.h"
19#include "UtEntity.hpp"
21#include "UtScriptData.hpp"
82 void PerformMirrorTrackUpdate(
double aSimTime,
WsfLocalTrack& aLocalTrack,
const WsfTrack& aNonLocalTrack);
84 bool PerformStandardTrackUpdate(
double aSimTime,
WsfLocalTrack& aLocalTrack,
const WsfTrack& aNonLocalTrack);
89 const double aLocationWCS[3],
91 unsigned int aFusedCount);
93 void UpdateTrackStateEstimate(
const UtMatrixd& aStateEstimate,
97 static void GetEstimateFromTrack(
double aSimTime,
const WsfMeasurement& aMeasurement, UtMatrixd& aEstimate);
99 static void SetEstimateInTrack(UtMatrixd& aEstimate,
WsfMeasurement& aMeasurement);
101 void FuseRangeBearingWithElevation(
const WsfMeasurement& aRangeBearingMeasurement,
103 bool aCreateMeasurementCovariance,
104 double aLocationWCS[3],
107 void FuseLocationWithRangeBearingElevation(
WsfMeasurement& aFusedLocationMeasurement,
109 bool aCreateMeasurementCovariance,
110 double aLocationWCS[3],
113 void FuseLocationWith2D_Location(
WsfMeasurement& aFusedLocationMeasurement,
115 double aLocationWCS[3]);
119 double aLocationWCS[3]);
121 void WeightedAverageFusion1D(
double aMeasurement1,
122 double aMeasurement2,
125 double& aWeightedMeasurement,
126 double& aWeightedError);
128 static bool UpdateHasSufficientTrackQuality(
const WsfTrack& aTrackUpdate,
WsfLocalTrack& aLocalTrack);
130 bool mIsWeightedAverage;
131 UtEntity mReferencePoint;
132 std::unique_ptr<WsfScriptContext> mContextPtr;
133 UtScript* mUpdateTypePtr;
134 UtScript* mUpdateSidePtr;
135 UtScript* mUpdateIFF_StatusPtr;
UtCovariance WsfCovariance
Definition WsfCovariance.hpp:17
ut::script::Data UtScriptData
Definition WsfScriptContext.hpp:47
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfDefaultFusion.hpp:36
void SetWeightedAverage(bool aIsWeightedAverage)
Definition WsfDefaultFusion.hpp:80
static void ReviewTrackQuality(WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack)
Definition WsfDefaultFusion.cpp:749
static void ReviewIFF(WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack)
Definition WsfDefaultFusion.cpp:714
WsfDefaultFusion(const WsfScenario &aScenario, bool aIsWeightedAverage=false)
Definition WsfDefaultFusion.cpp:43
WsfDefaultFusion & operator=(const WsfDefaultFusion &)=delete
WsfFusionStrategy * Clone() const override
Create a clone of "this" object.
Definition WsfDefaultFusion.hpp:43
~WsfDefaultFusion() override=default
virtual bool UpdateSignalList(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:176
virtual bool UpdateTrackQuality(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:166
virtual void ReviewTrack(WsfLocalTrack &aLocalTrack)=0
bool ProcessInput(UtInput &aInput) override
Process input from a common source.
Definition WsfFusionStrategy.hpp:60
virtual bool UpdateLocalResultFromNonLocalResult(double aSimTime, WsfLocalSensorResult &aLocalResult, const WsfSensorResult &aNonLocalResult)=0
virtual bool UpdateType(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:156
WsfFusionStrategy()
Definition WsfFusionStrategy.cpp:111
virtual bool UpdateLocalTrackFromNonLocalTrack(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)=0
virtual bool UpdateSignalToNoise(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:171
virtual bool Initialize(WsfTrackManager *aTrackManagerPtr)
Perform any necessary initialization.
Definition WsfFusionStrategy.hpp:63
virtual bool UpdateAuxData(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:181
virtual bool UpdateSpatialDomain(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:161
virtual bool UpdateSide(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:151
virtual bool UpdateNonKinematicData(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.cpp:54
virtual bool UpdateIFF_Status(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:146
Definition WsfSensorResult.hpp:129
Definition WsfLocalTrack.hpp:32
A measurement class that provides WSF-specific interfaces and data extrapolation.
Definition WsfMeasurement.hpp:32
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSensorResult.hpp:27
Definition WsfTrackManager.hpp:62
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120