26#ifndef WSF_WM_SAM_ENGAGEMENT_MOD_HPP
27#define WSF_WM_SAM_ENGAGEMENT_MOD_HPP
41#include <iadsLib/weaponsManagerEngageInterface.hpp>
42#include <iadsLib/assignmentContainers.hpp>
43#include <iadsLib/assessmentRecord.hpp>
58 virtual void Run(
const double sim_time_s);
67 std::shared_ptr<WsfInterceptCalculator>
GetScriptCalculator(
const il::evaluationAssignment& assignment);
71 virtual il::assessmentRecord
AssessEngagement(
const double sim_time_s, il::evaluationAssignment& assignment,
WsfPlatform* owning_plat,
WsfWeapon* weapon,
WsfLocalTrack* track,
const double assignment_delay_time_s = 0,
const double expected_execution_delay_s = 0,
const bool project =
false);
75 virtual bool IsEngagementComplete(
const il::evaluationAssignment& assignment,
bool& was_successful)
const;
79 virtual bool EngagementExpired(
const double sim_time_s,
const il::evaluationAssignment& assignment)
const;
85 class PendingEngagement
88 PendingEngagement(
const double& sim_time, il::evaluationAssignment& assignment,
WsfSimulation* sim,
const il::assessmentRecord& assessment);
90 int GetShotsFiredForAssignment()
const;
91 int GetWeaponsDetonatedForAssignment()
const;
92 double GetLastFireTimeForAssignment()
const;
93 double GetLastDetonationTimeForAssignment()
const;
95 int GetActiveWeaponsForAssignment()
const;
96 double GetCommandedTime()
const;
97 il::evaluationAssignment& GetAssignment();
99 bool IsNextFireTimeSet()
const;
100 double GetNextFireTime()
const;
101 void SetNextFireTime(
const double time_s);
102 void ResetNextFireTime();
108 double m_command_time;
110 bool m_next_fire_time_set;
111 double m_next_fire_time;
113 il::evaluationAssignment m_assignment;
116 il::assessmentRecord m_assessment;
121 int m_wpn_initial_rounds_fired_at;
122 int m_wpn_initial_rounds_completed_for;
123 int m_wpn_initial_weapons_active_and_pending_for;
126 typedef il::idRecord tEngagementTrackId;
127 std::map<tEngagementTrackId, PendingEngagement> m_engagements;
Definition WsfBMWeaponsManager.hpp:50
Definition WsfBehaviorTree.hpp:31
Definition WsfLocalTrack.hpp:32
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
virtual il::assessmentRecord AssessEngagement(const double sim_time_s, il::evaluationAssignment &assignment, WsfPlatform *owning_plat, WsfWeapon *weapon, WsfLocalTrack *track, const double assignment_delay_time_s=0, const double expected_execution_delay_s=0, const bool project=false)
Definition WsfWMSAMEngagementMod.cpp:421
virtual bool EngagementExpired(const double sim_time_s, const il::evaluationAssignment &assignment) const
Definition WsfWMSAMEngagementMod.cpp:693
bool m_has_behavior_tree
Definition WsfWMSAMEngagementMod.hpp:64
bool ProcessInput(UtInput &aInput)
Definition WsfWMSAMEngagementMod.cpp:253
WsfBehaviorTree m_behavior_tree
Definition WsfWMSAMEngagementMod.hpp:63
std::shared_ptr< WsfInterceptCalculator > GetScriptCalculator(const il::evaluationAssignment &assignment)
Definition WsfWMSAMEngagementMod.cpp:457
virtual bool TimeForSecondSalvo(const il::evaluationAssignment &assignment, WsfWeapon *weapon) const
Definition WsfWMSAMEngagementMod.cpp:729
virtual bool IsEngagementComplete(const il::evaluationAssignment &assignment, bool &was_successful) const
Definition WsfWMSAMEngagementMod.cpp:597
virtual void RunDefaultEngagement(const double sim_time_s)
Definition WsfWMSAMEngagementMod.cpp:276
virtual int ShotsFiredForEngagement(const il::evaluationAssignment &assignment) const
Definition WsfWMSAMEngagementMod.cpp:644
bool Initialize(const double sim_time)
Definition WsfWMSAMEngagementMod.cpp:229
virtual bool AssignmentHasValidTrack(const il::evaluationAssignment &eval_assignment) const
Definition WsfWMSAMEngagementMod.cpp:708
virtual double GetLastFireTimeForEngagement(const il::evaluationAssignment &assignment) const
Definition WsfWMSAMEngagementMod.cpp:681
virtual bool AttemptAssignmentEngagement(const double sim_time_s, il::evaluationAssignment &assignment, WsfPlatform *owning_plat, WsfWeapon *weapon, WsfLocalTrack *track)
Definition WsfWMSAMEngagementMod.cpp:375
virtual void Run(const double sim_time_s)
Definition WsfWMSAMEngagementMod.cpp:264
virtual void MonitorEngagements(const double sim_time_s)
Definition WsfWMSAMEngagementMod.cpp:526
virtual bool IsEngagedAgainstAssignment(const il::evaluationAssignment &assignment) const
Definition WsfWMSAMEngagementMod.cpp:591
WsfBMWeaponsManager * m_wm_component
Definition WsfWMSAMEngagementMod.hpp:62
tScriptInterceptCache m_script_calculators
Definition WsfWMSAMEngagementMod.hpp:66
virtual void ExecuteEngagements(const double sim_time_s)
Definition WsfWMSAMEngagementMod.cpp:477
WsfWMSAMEngagementMod(const WsfScenario &aScenario, WsfBMWeaponsManager *wm_component)
Definition WsfWMSAMEngagementMod.cpp:216
bool Initialize2(const double sim_time)
Definition WsfWMSAMEngagementMod.cpp:238
std::map< il::idRecord, std::shared_ptr< WsfInterceptCalculator > > tScriptInterceptCache
Definition WsfWMSAMEngagementMod.hpp:65
virtual double GetLastEngagementTime(const il::evaluationAssignment &assignment) const
Definition WsfWMSAMEngagementMod.cpp:655
Definition WsfWeapon.hpp:63