WSF
WsfLaserTracker.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFLASERTRACKER_HPP
13#define WSFLASERTRACKER_HPP
14
15#include "wsf_mil_export.h"
16
17#include <vector>
18
19#include "WsfEM_Antenna.hpp"
20#include "WsfEM_Rcvr.hpp"
21#include "WsfSensor.hpp"
22#include "WsfSensorMode.hpp"
23#include "WsfSensorResult.hpp"
24#include "WsfTerrain.hpp"
25#include "WsfTrackId.hpp"
27
50
51class WSF_MIL_EXPORT WsfLaserTracker : public WsfSensor
52{
53public:
54 WsfLaserTracker(WsfScenario& aScenario);
57 ~WsfLaserTracker() override;
58
59 WsfSensor* Clone() const override;
60 bool Initialize(double aSimTime) override;
61 bool ProcessInput(UtInput& aInput) override;
62 void Update(double aSimTime) override;
63 void TurnOn(double aSimTime) override;
64 void TurnOff(double aSimTime) override;
65
66 int GetLaserCode() const { return mLaserCode; }
67 void SetLaserCode(int aLaserCode) { mLaserCode = aLaserCode; }
68
79
82 {
83 public:
85 LaserTrackMode(const LaserTrackMode& aSrc);
87
88 WsfMode* Clone() const override;
89 bool Initialize(double aSimTime) override;
90 bool ProcessInput(UtInput& aInput) override;
91
92 bool AttemptToDetect(double aSimTime, WsfPlatform* aTargetPtr, Settings& aSettings, WsfSensorResult& aResult) override;
93
94 double GetMaximumRange() const { return mMaximumRange; }
95
96 void Deselect(double aSimTime) override;
97 void Select(double aSimTime) override;
98
102 };
103
104 size_t GetEM_RcvrCount() const override;
105 WsfEM_Rcvr& GetEM_Rcvr(size_t aIndex) const override;
106
107 void SetCurrentLT_Mode(LaserTrackMode* aModePtr);
108 bool IsTracking() const { return mIsTracking; }
109 // const WsfLaserDesignations::Spot& TrackedSpot() { return mTrackedSpot; }
111
112protected:
113 std::string GetReason();
114
117 std::vector<LaserTrackMode*> mTrackModeList;
120 unsigned int mTrackModeIndex;
121 unsigned int mUpdateCount;
123 unsigned int mLastSpotCount;
133};
134
135#endif
Definition WsfEM_Antenna.hpp:49
Definition WsfEM_Rcvr.hpp:68
Definition WsfLaserDesignations.hpp:83
A mode of the sensor.
Definition WsfLaserTracker.hpp:82
bool Initialize(double aSimTime) override
Definition WsfLaserTracker.cpp:531
bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult) override
Definition WsfLaserTracker.cpp:587
WsfLaserTracker * mLT_Ptr
Definition WsfLaserTracker.hpp:101
LaserTrackMode()
Definition WsfLaserTracker.cpp:494
WsfEM_Rcvr mRcvr
Definition WsfLaserTracker.hpp:100
WsfMode * Clone() const override
Create an exact duplicate of this mode.
Definition WsfLaserTracker.cpp:513
double GetMaximumRange() const
Definition WsfLaserTracker.hpp:94
WsfEM_Antenna mAntenna
Definition WsfLaserTracker.hpp:99
bool ProcessInput(UtInput &aInput) override
Definition WsfLaserTracker.cpp:549
LaserTrackMode & operator=(const LaserTrackMode &)=delete
LaserTrackMode * mCurrentLT_ModePtr
Definition WsfLaserTracker.hpp:119
WsfLaserDesignations * mLaserDesignationsPtr
Definition WsfLaserTracker.hpp:115
wsf::Terrain * mTerrain
Definition WsfLaserTracker.hpp:130
WsfLaserTracker(WsfScenario &aScenario)
Definition WsfLaserTracker.cpp:39
WsfTrackId mLocalTrackId
Definition WsfLaserTracker.hpp:128
LossReason mLossReason
Definition WsfLaserTracker.hpp:132
bool IsTracking() const
Definition WsfLaserTracker.hpp:108
bool mPrivateDebug
Definition WsfLaserTracker.hpp:126
LossReason
Definition WsfLaserTracker.hpp:70
@ cOUT_OF_RANGE
Definition WsfLaserTracker.hpp:74
@ cZERO_POWER
Definition WsfLaserTracker.hpp:73
@ cNO_SPOTS
Definition WsfLaserTracker.hpp:72
@ cTERRAIN_OCCULTED
Definition WsfLaserTracker.hpp:77
@ cDETECTED
Definition WsfLaserTracker.hpp:71
@ cOUT_OF_FOV
Definition WsfLaserTracker.hpp:76
@ cCLOUD_OCCULTED
Definition WsfLaserTracker.hpp:75
bool mIsTracking
Definition WsfLaserTracker.hpp:127
WsfSensorResult & GetLocalResult()
Definition WsfLaserTracker.hpp:110
double mMaximumDetectionRangeSquared
Definition WsfLaserTracker.hpp:125
double mWavelength
Definition WsfLaserTracker.hpp:124
std::vector< LaserTrackMode * > mTrackModeList
The sensor-specific list of modes (not valid until Initialize is called).
Definition WsfLaserTracker.hpp:117
unsigned int mLastSpotCount
Definition WsfLaserTracker.hpp:123
void SetCurrentLT_Mode(LaserTrackMode *aModePtr)
Definition WsfLaserTracker.cpp:519
void SetLaserCode(int aLaserCode)
Definition WsfLaserTracker.hpp:67
int GetLaserCode() const
Definition WsfLaserTracker.hpp:66
LossReason mLastLossReason
Definition WsfLaserTracker.hpp:131
unsigned int mTrackModeIndex
Definition WsfLaserTracker.hpp:120
WsfLaserTracker & operator=(const WsfLaserTracker &)=delete
unsigned int mUpdateCount
Definition WsfLaserTracker.hpp:121
size_t mCorrelatedToTgtIndex
Definition WsfLaserTracker.hpp:122
int mLaserCode
Definition WsfLaserTracker.hpp:118
WsfSensorResult mLocalResult
Definition WsfLaserTracker.hpp:129
WsfMode()
Definition WsfMode.cpp:15
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
double mMaximumRange
Definition WsfSensorMode.hpp:268
WsfSensorMode()
Definition WsfSensorMode.cpp:47
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:133
bool ProcessInput(UtInput &aInput) override
Definition WsfSensor.cpp:380
void Update(double aSimTime) override
Definition WsfSensor.cpp:497
virtual WsfEM_Rcvr & GetEM_Rcvr(size_t aIndex) const
Definition WsfSensor.cpp:660
WsfSensor(const WsfScenario &aScenario)
Definition WsfSensor.cpp:52
virtual size_t GetEM_RcvrCount() const
Definition WsfSensor.cpp:646
WsfSensor * Clone() const override=0
bool Initialize(double aSimTime) override
Definition WsfSensor.cpp:255
void TurnOff(double aSimTime) override
Definition WsfSensor.cpp:523
void TurnOn(double aSimTime) override
Definition WsfSensor.cpp:563
Definition WsfTrackId.hpp:33
Definition WsfTerrain.hpp:336
Copyrights Multiple, All Rights Reserved