WSF
WsfWeaponsManagerAI.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*
11* File: WsfWeaponsManagerAI.hpp
12*
13* Classification: UNCLASSIFIED
14*
15* Details:
16*
17* Contract Number:
18* Contractor Name: Radiance Technologies
19* Address: 350 Wynn Drive
20* Huntsville, AL 35805
21*
22* Abstract:
23*
24*******************************************************************************/
25
26#ifndef WSF_WEAPONS_MANAGER_AI_HPP
27#define WSF_WEAPONS_MANAGER_AI_HPP
28
29#include <memory>
30#include <iadsLib/weaponsManagerAI.hpp>
33
35{
36 public:
37
38 WsfWeaponsManagerAI(WsfScenario& aScenario, const std::shared_ptr<il::weaponsManagerAI>& wm_component = std::make_shared<il::weaponsManagerAI>());
39 virtual ~WsfWeaponsManagerAI() = default;
40
41 WsfProcessor* Clone() const override;
42
43 // Plugin Interface
44 static WSF_IADS_C2_LIB_EXPORT void RegisterScriptTypes(WsfApplication* aApplicationPtr);
45 static WSF_IADS_C2_LIB_EXPORT WsfProcessor* Create(WsfScenario& aScenario);
46 static WSF_IADS_C2_LIB_EXPORT std::unique_ptr<WsfWeaponsManagerAI> CreateUnique(WsfScenario& aScenario);
47 // End Plugin Interface
48
49 bool ProcessInput(UtInput& aInput) override;
50
51 const char* GetScriptClassName() const override;
52
53 bool Initialize(double aSimTime) override;
54 bool Initialize2(double aSimTime) override;
55 void Update(double aSimTime) override;
56
57 protected:
59
60 virtual bool ProcessWeaponsManagerAIInput(UtInput& aInput);
61
62 private:
63 std::shared_ptr<WsfWMAIEngagementMod> m_engagement_mod;
64
65 bool ProcessEvasionSettingsBlock(UtInputBlock& block);
66 bool ProcessTakeActionBlock(UtInputBlock& block);
67 bool ProcessRWRResponseBlock(UtInputBlock& block);
68};
69
70#endif
Definition WsfApplication.hpp:45
WsfBMWeaponsManager(WsfScenario &aScenario, const std::string &aPartClass=WsfScriptWeaponsManagerClass::SCRIPT_CLASS_NAME, const std::string &aPartVarName="PROCESSOR", const std::shared_ptr< il::WeaponsManagerInterface > &wm_component=std::make_shared< il::WeaponsManagerInterface >())
Definition WsfBMWeaponsManager.cpp:41
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
virtual ~WsfWeaponsManagerAI()=default
bool Initialize2(double aSimTime) override
Definition WsfWeaponsManagerAI.cpp:119
bool ProcessInput(UtInput &aInput) override
Definition WsfWeaponsManagerAI.cpp:91
WsfWeaponsManagerAI(WsfScenario &aScenario, const std::shared_ptr< il::weaponsManagerAI > &wm_component=std::make_shared< il::weaponsManagerAI >())
Definition WsfWeaponsManagerAI.cpp:37
static WSF_IADS_C2_LIB_EXPORT void RegisterScriptTypes(WsfApplication *aApplicationPtr)
Definition WsfWeaponsManagerAI.cpp:62
bool Initialize(double aSimTime) override
Definition WsfWeaponsManagerAI.cpp:110
virtual bool ProcessWeaponsManagerAIInput(UtInput &aInput)
Definition WsfWeaponsManagerAI.cpp:154
static WSF_IADS_C2_LIB_EXPORT WsfProcessor * Create(WsfScenario &aScenario)
Definition WsfWeaponsManagerAI.cpp:74
void Update(double aSimTime) override
Definition WsfWeaponsManagerAI.cpp:149
WsfProcessor * Clone() const override
Definition WsfWeaponsManagerAI.cpp:53
static WSF_IADS_C2_LIB_EXPORT std::unique_ptr< WsfWeaponsManagerAI > CreateUnique(WsfScenario &aScenario)
Definition WsfWeaponsManagerAI.cpp:85
const char * GetScriptClassName() const override
Definition WsfWeaponsManagerAI.cpp:105
Copyrights Multiple, All Rights Reserved