12#ifndef WSFDIRECTIONFINDERPROCESSOR_HPP
13#define WSFDIRECTIONFINDERPROCESSOR_HPP
15#include "wsf_export.h"
23#ifdef DEBUG_DIR_FIND_VERBOSE
28#include "UtEntity.hpp"
30#include "UtRandom.hpp"
64#ifdef DEBUG_DIR_FIND_VERBOSE
65 inline static std::string ToString(FuseResult result)
71 inline friend std::ostream&
operator<<(std::ostream& aOut,
const FuseResult& aType)
73 if (aType == FUSE_SUCCESS)
75 aOut <<
"FUSE_SUCCESS";
77 else if (aType == NO_FUSE_ANGLE_THERSHOLD)
79 aOut <<
"NO_FUSE_ANGLE_THERSHOLD";
81 else if (aType == NO_FUSE_BASELINE_DIST)
83 aOut <<
"NO_FUSE_BASELINE_DIST";
85 else if (aType == NO_FUSE_DIVERGENT_BEARINGS)
87 aOut <<
"NO_FUSE_DIVERGENT_BEARINGS";
89 else if (aType == NO_FUSE_NO_INTERSECTION)
91 aOut <<
"NO_FUSE_NO_INTERSECTION";
93 else if (aType == NO_FUSE_EXCEED_RANGE_ERROR)
95 aOut <<
"NO_FUSE_EXCEED_RANGE_ERROR";
97 else if (aType == NO_FUSE_NON_SYNC)
99 aOut <<
"NO_FUSE_NON_SYNC";
106 WsfDirectionFinderProcessor(WsfScenario& aScenario);
107 WsfDirectionFinderProcessor(
const WsfDirectionFinderProcessor& aSrc);
117 bool FuseSideType(
WsfTrack& aFusedTrack,
const WsfTrack& aBearingElevationTrack);
133 double CorrectForAltitude(
double aTargetLocWCS[3],
135 bool aComputeElevation,
136 double aDefaultElevation);
154 bool GetIntersectionPoint(
const UtLineSegment& aTargetVec1,
155 const UtLineSegment& aTargetVec2,
156 double aIntersectionPoint[3],
160 void GetNED_Vector(
double aBearing,
double aElevation,
double aVecNED[3]);
163 double aLocationWCS[3]);
165 UtEntity mReferencePoint;
169 bool mFuseAllCollects;
170 bool mUseTruthAltitude;
171 double mPurgeInterval;
172 double mMaxExpectedError;
173 double mMinBaselineDistance;
178 double mMaxTimeDifference;
188 bool mUseStatisticalLocation;
std::ostream & operator<<(std::ostream &aStream, const WsfTSPI &aTSPI)
Stream out operator (typically, to a file); units are converted on output.
Definition WsfTSPI.cpp:92
WsfTrackListT< WsfLocalTrack > WsfLocalTrackList
Definition WsfTrackList.hpp:89
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfProcessor * Clone() const override
Definition WsfDirectionFinderProcessor.hpp:113
wsf::Terrain * mTerrainPtr
Definition WsfDirectionFinderProcessor.hpp:147
double CorrectForAltitude(double aTargetLocWCS[3], WsfPlatform *aTargetPtr, bool aComputeElevation, double aDefaultElevation)
Definition WsfDirectionFinderProcessor.cpp:899
WsfLocalTrackList mFusedTrackList
Definition WsfDirectionFinderProcessor.hpp:139
WsfDirectionFinderProcessor(WsfScenario &aScenario)
Definition WsfDirectionFinderProcessor.cpp:42
FuseResult
Definition WsfDirectionFinderProcessor.hpp:54
@ NO_FUSE_NO_INTERSECTION
Definition WsfDirectionFinderProcessor.hpp:59
@ NO_FUSE_EXCEED_RANGE_ERROR
Definition WsfDirectionFinderProcessor.hpp:60
@ NO_FUSE_DIVERGENT_BEARINGS
Definition WsfDirectionFinderProcessor.hpp:58
@ NO_FUSE_NON_SYNC
Definition WsfDirectionFinderProcessor.hpp:61
@ NO_FUSE_ANGLE_THRESHOLD
Definition WsfDirectionFinderProcessor.hpp:56
@ NO_FUSE_BASELINE_DIST
Definition WsfDirectionFinderProcessor.hpp:57
@ FUSE_SUCCESS
Definition WsfDirectionFinderProcessor.hpp:55
std::list< std::unique_ptr< WsfTrack > > mTrackList
Definition WsfDirectionFinderProcessor.hpp:138
double GetPurgeInterval() const
Definition WsfDirectionFinderProcessor.hpp:123
wsf::Terrain & GetTerrain() const
Definition WsfDirectionFinderProcessor.hpp:131
bool BypassFilter() const
Definition WsfDirectionFinderProcessor.hpp:127
WsfFilter * mPrototypeFilterPtr
Definition WsfDirectionFinderProcessor.hpp:145
double GetMaxExpectedError() const
Definition WsfDirectionFinderProcessor.hpp:125
WsfDirectionFinderProcessor & operator=(const WsfDirectionFinderProcessor &)=delete
WsfPerfectCorrelation mCorrelation
Definition WsfDirectionFinderProcessor.hpp:140
bool UseTruthAltitude() const
Definition WsfDirectionFinderProcessor.hpp:129
Implement a filter as an adapter.
Definition WsfFilter.hpp:24
bool ProcessInput(UtInput &aInput) override
Definition WsfLinkedProcessor.cpp:54
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfLinkedProcessor.cpp:70
bool Initialize(double aSimTime) override
Definition WsfLinkedProcessor.cpp:43
WsfLinkedProcessor(WsfScenario &aScenario)
Definition WsfLinkedProcessor.cpp:19
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Definition WsfPerfectCorrelation.hpp:22
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfTerrain.hpp:336
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32