12#ifndef WEAPONOBSERVER_HPP
13#define WEAPONOBSERVER_HPP
18#include "UtCallbackHolder.hpp"
59 virtual void MoverBurnedOut(
double aSimTime,
WsfMover* aMoverPtr);
61 virtual void GuidanceComputerPhaseChanged(
double aSimTime,
WsfGuidanceComputer* aComputerPtr);
63 virtual void PlatformAdded(
double aSimTime,
WsfPlatform* aPlatformPtr);
65 virtual void PlatformDeleted(
double aSimTime,
WsfPlatform* aPlatformPtr);
73 void LaunchAborted(
double aSimTime);
82 void SetInFlight(
double aSimTime,
WsfPlatform* aPlatformPtr);
94 double HorizontalRange()
const;
97 void GetImpactRelToLaunch(
double aOffset[3])
const;
100 void GetLaunchLocLLA(
double& aLaunchLat,
double& aLaunchLon,
double& aLaunchAlt)
const
102 aLaunchLat = mLaunchLat;
103 aLaunchLon = mLaunchLon;
104 aLaunchAlt = mLaunchAlt;
108 void GetImpactLocLLA(
double& aImpactLat,
double& aImpactLon,
double& aImpactAlt)
const
110 aImpactLat = mImpactLat;
111 aImpactLon = mImpactLon;
112 aImpactAlt = mImpactAlt;
126 void SetToolPtr(
Tool* aToolPtr);
128 void GetBurnOutInfo(
double& aTimeOfFlight,
double& aRange,
double& aAltitude,
double& aSpeed,
double& aFlightPathAngle);
132 UtCallbackHolder mCallbacks;
134 bool mDisableGroundFusing;
135 EngagementState mState;
136 bool mWeaponTimedOut;
137 size_t mWeaponPlatformIndex;
140 double mTimeOfFlight;
151 double mBO_TimeOfFlight;
152 double mBO_GreatCircleRange;
155 double mBO_FlightPathAngle;
158 double mFinalFlightPathAngle;
double TimeOfFlight() const
Returns the time of flight of the weapon, in seconds.
Definition WeaponObserver.hpp:54
void GetLaunchLocLLA(double &aLaunchLat, double &aLaunchLon, double &aLaunchAlt) const
Returns the latitude, longitude and altitude of the launch platform at time of launch.
Definition WeaponObserver.hpp:100
void GetImpactLocLLA(double &aImpactLat, double &aImpactLon, double &aImpactAlt) const
Returns the latitude, longitude and altitude of the weapon at termination.
Definition WeaponObserver.hpp:108
void SetAllDone()
Externally sets the "All Done" status.
Definition WeaponObserver.hpp:88
void DisableGroundFusing()
Disable Ground Fusing (ignore MSL and AGL collisions).
Definition WeaponObserver.hpp:91
EngagementState
Definition WeaponObserver.hpp:40
@ cIDLE
A weapon is not currently in flight.
Definition WeaponObserver.hpp:41
@ cTERMINATED
Definition WeaponObserver.hpp:43
@ cIN_FLIGHT
A weapon is in flight.
Definition WeaponObserver.hpp:42
WeaponObserver()
Definition WeaponObserver.cpp:36
bool WeaponTimedOut() const
Returns a flag to indicate that the weapon timed out with no lethal terminal effect.
Definition WeaponObserver.hpp:51
double GetFinalSpeed() const
Returns the final of the weapon at termination.
Definition WeaponObserver.hpp:116
EngagementState GetState() const
Returns the state of the most recent engagement, which still may be in progress.
Definition WeaponObserver.hpp:76
bool AllDone() const
Returns a flag to indicate an externally-provided "All Done" status.
Definition WeaponObserver.hpp:85
double GetFinalFlightPathAngle() const
Returns the final flight path angle of the weapon at termination.
Definition WeaponObserver.hpp:119
double GetLaunchTime() const
Return the time of launch.
Definition WeaponObserver.hpp:122
bool EngagementLethal() const
Returns a flag to indicate that the intended target was killed by the weapon.
Definition WeaponObserver.hpp:48
void Initialize(WsfSimulation &aSimulation)
Definition WeaponObserver.cpp:68
Definition WsfGuidanceComputer.hpp:52
Definition WsfMover.hpp:37
The main controller for a simulation.
Definition WsfSimulation.hpp:109
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Result
Definition WsfWeaponEffects.hpp:63
@ cKILLED
Did result in total damage (kill) to the intended platform (a 'hit').
Definition WsfWeaponEffects.hpp:67
Definition WsfWeaponEngagement.hpp:43