12#ifndef WSFFUSIONSTRATEGY_HPP
13#define WSFFUSIONSTRATEGY_HPP
15#include "wsf_export.h"
20#include "UtMatrix.hpp"
65 mTrackManagerPtr = aTrackManagerPtr;
72 mProcessorPtr = aProcessorPtr;
77 virtual bool DebugEnabled()
const;
187 static void FuseEstimates(
const UtMatrixd& aEstimate1,
188 const UtMatrixd& aEstimate2,
189 const UtMatrixd& aCovar1,
190 const UtMatrixd& aCovar2,
191 UtMatrixd& aEstimateOut,
192 UtMatrixd& aCovarOut);
194 static void NormalizeAzRangeEstimate(
const UtMatrixd& aEstimate,
195 const UtMatrixd& aCovar,
196 const double& aElevation,
197 UtMatrixd& aNormEstimate,
198 UtMatrixd& aNormCovar);
200 static void NormalizeElRangeEstimate(
const UtMatrixd& aEstimate,
201 const UtMatrixd& aCovar,
202 const double& aAzimuth,
203 UtMatrixd& aNormEstimate,
204 UtMatrixd& aNormCovar);
207 static FusionStrategyTypes* mTypesPtr;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfFusionStrategy.hpp:52
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
const WsfTrackManager & GetTrackManager() const
Definition WsfFusionStrategy.hpp:130
void SetTrackManager(WsfTrackManager &aTrackManager)
Set the track manager reference.
Definition WsfFusionStrategy.hpp:141
WsfFusionStrategy & operator=(const WsfFusionStrategy &)=delete
virtual bool InitializeLocalResultFromNonLocalResult(double aSimTime, WsfLocalSensorResult &aLocalResult, const WsfSensorResult &aNonLocalResult)
Definition WsfFusionStrategy.hpp:103
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 * Clone() const override=0
Create a clone of "this" object.
WsfSimulation * GetSimulation() const
Definition WsfFusionStrategy.cpp:69
WsfTrackManager & GetTrackManager()
Return a reference to the track manager being accessed internally by this object.
Definition WsfFusionStrategy.hpp:129
WsfFusionStrategy()
Definition WsfFusionStrategy.cpp:111
WsfPlatform * GetPlatform() const
Definition WsfFusionStrategy.cpp:97
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
~WsfFusionStrategy() override=default
virtual bool UpdateAuxData(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:181
void SetProcessor(WsfProcessor &aProcessor)
Set the processor reference.
Definition WsfFusionStrategy.hpp:144
virtual bool UpdateSpatialDomain(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:161
double GetSimTime()
Definition WsfFusionStrategy.cpp:83
virtual bool UpdateSide(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:151
virtual bool InitializeLocalTrackFromNonLocalTrack(double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Definition WsfFusionStrategy.hpp:95
WsfObjectTypeList< WsfFusionStrategy > FusionStrategyTypes
Definition WsfFusionStrategy.hpp:122
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
WsfProcessor & GetProcessor()
Return a reference to the processor being accessed internally by this object.
Definition WsfFusionStrategy.hpp:133
virtual bool Initialize(WsfProcessor *aProcessorPtr)
Perform any necessary initialization.
Definition WsfFusionStrategy.hpp:70
Definition WsfSensorResult.hpp:129
Definition WsfLocalTrack.hpp:32
Definition WsfObjectTypeList.hpp:42
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Definition WsfProcessor.hpp:39
Definition WsfSensorResult.hpp:27
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackManager.hpp:62
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120