WSF
WsfWeaponTrackProcessor.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// Updated by Infoscitex, a DCS Company
13// ****************************************************************************
14
15#ifndef WSFWEAPONTRACKPROCESSOR_HPP
16#define WSFWEAPONTRACKPROCESSOR_HPP
17
18#include "wsf_mil_export.h"
19
20#include <memory>
21#include <vector>
22
23class WsfLocalTrack;
24#include "WsfProcessor.hpp"
27class WsfSensor;
28#include "WsfStringId.hpp"
29class WsfTrack;
30class WsfTrackId;
31
45
46class WSF_MIL_EXPORT WsfWeaponTrackProcessor : public WsfProcessor
47{
48public:
54
56 ~WsfWeaponTrackProcessor() override;
57
58 WsfProcessor* Clone() const override;
59 bool Initialize(double aSimTime) override;
60 bool Initialize2(double aSimTime) override;
61 bool ProcessInput(UtInput& aInput) override;
62 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
63 void Update(double aSimTime) override;
64
65 EngagementPhase GetEngagementPhase() const { return mEngagementPhase; }
66
67 void SetPlatform(WsfPlatform* aPlatformPtr) override;
68
69 void SetCurrentTarget(double aSimTime, WsfTrack* aTrackPtr);
70
81
82protected:
85
86 static bool FindIntercept(const double aWpnLocWCS[3],
87 double aWpnSpeed,
88 const double aTgtLocWCS[3],
89 const double aTgtVelWCS[3],
90 double aIntLocWCS[3]);
91
92 virtual void GetInterceptData(double aSimTime, double& aTimeToGo, double& aRangeToGo, double& aRangeToTgt);
93
94 virtual void ProcessTrackDrop(double aSimTime, const WsfTrackId& aTrackId);
95
96 virtual void ProcessTrackUpdate(double aSimTime, const WsfTrack& aTrack);
97
98 virtual void UpdateTargetTrack(double aSimTime, bool aAdjustUpdateInterval);
99
100private:
101 size_t GetCurrentTargetIndex();
102
103 std::unique_ptr<WsfScriptContext> mContextPtr;
104 std::unique_ptr<WsfScriptMessageHandler> mMessageHandlerPtr;
105
106 std::vector<Sensor> mSensorList;
107 EngagementPhase mEngagementPhase;
108
110 bool mIgnoreUplinkTargetChange;
111
113 bool mUplinkRequired;
114
116 bool mRequireInterceptCalculation;
117
120 double mCoastTime;
121
124 double mSwitchTime;
125
128 double mSwitchRange;
129
130 WsfTrack* mCmdTrackPtr;
131 WsfTrack* mSnrTrackPtr;
132
133 double mTimeToGo;
134 double mRangeToGo;
135
136 double mRangeToTgt;
137
139 double mLastCmdTrackUpdateTime;
140 double mLastSnrTrackUpdateTime;
141};
142
143#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
virtual bool ProcessMessage(double aSimTime, const WsfMessage &aMessage)
Definition WsfPlatformPart.cpp:442
virtual void SetPlatform(WsfPlatform *aPlatformPtr)
Definition WsfPlatformPart.hpp:113
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfProcessor.hpp:39
WsfProcessor * Clone() const override=0
bool Initialize(double aSimTime) override
Definition WsfProcessor.cpp:86
bool Initialize2(double aSimTime) override
Definition WsfProcessor.cpp:104
void Update(double aSimTime) override
Definition WsfProcessor.cpp:121
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
bool ProcessInput(UtInput &aInput) override
Definition WsfProcessor.cpp:132
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfScriptContext.hpp:71
Definition WsfScriptMessageHandler.hpp:42
Definition WsfSensor.hpp:92
Definition WsfTrackId.hpp:33
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponTrackProcessor.hpp:47
EngagementPhase GetEngagementPhase() const
Definition WsfWeaponTrackProcessor.hpp:65
virtual void ProcessTrackDrop(double aSimTime, const WsfTrackId &aTrackId)
Definition WsfWeaponTrackProcessor.cpp:639
virtual void ProcessTrackUpdate(double aSimTime, const WsfTrack &aTrack)
Definition WsfWeaponTrackProcessor.cpp:535
EngagementPhase
Definition WsfWeaponTrackProcessor.hpp:50
@ cMID_COURSE
Definition WsfWeaponTrackProcessor.hpp:51
@ cTERMINAL
Definition WsfWeaponTrackProcessor.hpp:52
virtual void GetInterceptData(double aSimTime, double &aTimeToGo, double &aRangeToGo, double &aRangeToTgt)
Definition WsfWeaponTrackProcessor.cpp:468
virtual void UpdateTargetTrack(double aSimTime, bool aAdjustUpdateInterval)
Definition WsfWeaponTrackProcessor.cpp:693
WsfWeaponTrackProcessor & operator=(const WsfWeaponTrackProcessor &)=delete
WsfWeaponTrackProcessor(WsfScenario &aScenario)
Definition WsfWeaponTrackProcessor.cpp:40
static bool FindIntercept(const double aWpnLocWCS[3], double aWpnSpeed, const double aTgtLocWCS[3], const double aTgtVelWCS[3], double aIntLocWCS[3])
Definition WsfWeaponTrackProcessor.cpp:396
Definition WsfWeaponTrackProcessor.hpp:72
double mTurnOnTime
Definition WsfWeaponTrackProcessor.hpp:77
bool mUseTargetLocation
Definition WsfWeaponTrackProcessor.hpp:79
double mTurnOnRange
Definition WsfWeaponTrackProcessor.hpp:78
WsfSensor * mSensorPtr
Definition WsfWeaponTrackProcessor.hpp:74
WsfStringId mSensorName
Definition WsfWeaponTrackProcessor.hpp:73
Copyrights Multiple, All Rights Reserved