WSF
WsfARGO8_Mover.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9
10#ifndef WSFARGO_MOVER_HPP
11#define WSFARGO_MOVER_HPP
12
13class UtInput;
14#include "UtEntity.hpp"
15#include "UtPlugin.hpp"
16
17#include "WsfMover.hpp"
19
20#include "Argo8Missile.hpp"
21#include "Argo8Structs.h"
22
24{
25 public:
26 WsfARGO8_Mover(WsfScenario& aScenario);
27 virtual ~WsfARGO8_Mover();
28 WsfARGO8_Mover(const WsfARGO8_Mover& aSrc);
29
30 virtual WsfMover* Clone() const;
31 virtual bool Initialize(double aSimTime);
32 virtual bool Initialize2(double aSimTime);
33 virtual bool ProcessInput(UtInput& aInput);
34 virtual void Update(double aSimTime);
35
37 virtual bool UseDeferredLaunching() const { return true; }
38 private:
39 void ContinueFlight(double aSimTime);
40 void CoastFlight(double aSimTime);
41 void UpdateMissile(double aSimTime);
42 void UpdateARGO8(double aSimTime);
43 void UpdateARGO8Coast(double aSimTime,
44 EngagementState aEngagementState);
45 void SetRailData(bool aGuidanceMethod, double aSimTime);
46 WsfPlatform * GetTargetPlatform();
47 WsfPlatform * GetFiringPlatform();
48 const WsfTrack * GetTargetTrack();
49 void GetLocationESD(double aLocESD[3], WsfPlatform *aPlatformPtr);
50 void GetLocationESD(double aLocESD[3], const WsfTrack *aTrackPtr, double aSimTime);
51 void GetVelocityESD(double aVelESD[3], WsfPlatform *aPlatformPtr);
52 void GetVelocityESD(double aLocESD[3], const WsfTrack *aTrackPtr);
53 double GetEngagementDistance(double aSimTime,
54 EngagementState aEngagementState);
55 bool HasTrackUpdated(const WsfTrack* aTrackPtr);
56 void TerminateMissile(double aSimTime,
57 int aFuzeStateMask,
58 double aMissDistance);
59
60 std::string mMissileType;
61 std::string mMissileLibrary;
62 bool mGuidanceMethodTruth;
63 bool mSeekerMethodTruth;
64 bool mLoggingEnabled;
65 std::string mLogFilePath;
66 Argo8Missile mMissile;
67 UtEntity mReference;
68 EngagementState mEngagementState;
69 double mLastTrackLocation[3];
70 double mLaunchTime;
71 double mLastTrackUpdateTime;
72 double mEndgameGees;
73
74 MissileState mMissileState;
75
76 bool mTerminationCompleted;
77 bool mSeekerOn;
78 bool mFuzeOutput;
79 double mMissileTimeStep;
80 double mGuidanceTime;
81 double mGuidanceStep;
82 int mMissileStep;
83 double mLastMissileUpdateTime;
84 double mLastGuidLoc[3];
85 double mLastGuidVel[3];
86};
87
88#endif
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
@ WSF_SPATIAL_DOMAIN_AIR
Cars, trucks, buildings, etc.
Definition WsfTypes.hpp:35
virtual bool Initialize2(double aSimTime)
Definition WsfARGO8_Mover.cpp:169
virtual ~WsfARGO8_Mover()
Definition WsfARGO8_Mover.cpp:101
virtual WsfMover * Clone() const
Definition WsfARGO8_Mover.cpp:105
WsfARGO8_Mover(WsfScenario &aScenario)
Definition WsfARGO8_Mover.cpp:34
virtual bool Initialize(double aSimTime)
Definition WsfARGO8_Mover.cpp:110
virtual WsfSpatialDomain GetSpatialDomain() const
Definition WsfARGO8_Mover.hpp:36
virtual bool UseDeferredLaunching() const
Definition WsfARGO8_Mover.hpp:37
virtual void Update(double aSimTime)
Definition WsfARGO8_Mover.cpp:250
virtual bool ProcessInput(UtInput &aInput)
Definition WsfARGO8_Mover.cpp:185
WsfMover()=delete
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
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Copyrights Multiple, All Rights Reserved