12#ifndef WSFQUANTUMGENERATOR_HPP
13#define WSFQUANTUMGENERATOR_HPP
20#include "UtCloneablePtr.hpp"
24class UtScriptExecutor;
26#include "wsf_mil_export.h"
41 std::vector<WsfLocalTrack*>& aThreats,
42 std::vector<WsfAssetPerception*>& aAssets) = 0;
55 bool Register(std::unique_ptr<WsfQuantumGenerator> aGeneratorPtr);
57 const std::map<std::string, ut::CloneablePtr<WsfQuantumGenerator>>&
Generators()
const {
return mFactoryMap; }
63 std::map<std::string, ut::CloneablePtr<WsfQuantumGenerator>> mFactoryMap;
76 virtual bool Valid() {
return (mScriptPtr !=
nullptr); }
77 std::vector<WsfQuantumTask*> GenerateTasks(
double aSimTime,
78 std::vector<WsfLocalTrack*>& aThreats,
79 std::vector<WsfAssetPerception*>& aAssets)
override;
86 UtScriptContext* mContextPtr;
87 UtScriptExecutor* mExecutorPtr;
89 UtScriptClass* mLocalTrackClassPtr{
nullptr};
90 UtScriptClass* mTracksClassPtr{
nullptr};
91 UtScriptClass* mAssetClassPtr{
nullptr};
92 UtScriptClass* mAssetsClassPtr{
nullptr};
106 std::vector<WsfQuantumTask*> GenerateTasks(
double aSimTime,
107 std::vector<WsfLocalTrack*>& aThreats,
108 std::vector<WsfAssetPerception*>& aAssets)
override;
122 std::vector<WsfQuantumTask*> GenerateTasks(
double aSimTime,
123 std::vector<WsfLocalTrack*>& aThreats,
124 std::vector<WsfAssetPerception*>& aAssets)
override;
138 std::vector<WsfQuantumTask*> GenerateTasks(
double aSimTime,
139 std::vector<WsfLocalTrack*>& aThreats,
140 std::vector<WsfAssetPerception*>& aAssets)
override;
Definition WsfAssetPerception.hpp:32
Definition WsfLocalTrack.hpp:32
Definition WsfQuantumGenerator.hpp:47
WsfQuantumGeneratorFactory(WsfQuantumGeneratorFactory &&aSrc)=delete
~WsfQuantumGeneratorFactory()=default
bool Register(std::unique_ptr< WsfQuantumGenerator > aGeneratorPtr)
Definition WsfQuantumGenerator.cpp:43
WsfQuantumGenerator * CreateGenerator(const std::string &evaluatorName)
Definition WsfQuantumGenerator.cpp:52
WsfQuantumGeneratorFactory & operator=(WsfQuantumGeneratorFactory &&)=delete
static WsfQuantumGeneratorFactory * Instance()
Definition WsfQuantumGenerator.cpp:37
const std::map< std::string, ut::CloneablePtr< WsfQuantumGenerator > > & Generators() const
Definition WsfQuantumGenerator.hpp:57
WsfQuantumGeneratorFactory & operator=(const WsfQuantumGeneratorFactory &)=delete
Definition WsfQuantumGenerator.hpp:68
~WsfQuantumGeneratorScript() override=default
WsfQuantumGeneratorScript & operator=(const WsfQuantumGeneratorScript &)=delete
virtual bool Valid()
Definition WsfQuantumGenerator.hpp:76
void Initialize(double aSimTime, WsfScriptContext *aParentContextPtr=nullptr) override
Definition WsfQuantumGenerator.cpp:90
WsfQuantumGenerator * Clone() const override
Definition WsfQuantumGenerator.cpp:115
WsfQuantumGeneratorScript(WsfScriptContext *aContextPtr, std::string &aScriptMethod)
Definition WsfQuantumGenerator.cpp:62
std::string GeneratorType() override
Definition WsfQuantumGenerator.hpp:75
void Initialize(double aSimTime, WsfScriptContext *aParentContextPtr=nullptr) override
Definition WsfQuantumGenerator.hpp:119
WsfQuantumGenerator * Clone() const override
Definition WsfQuantumGenerator.hpp:120
~WsfQuantumGeneratorSimpleJammer() override=default
WsfQuantumGeneratorSimpleJammer()=default
std::string GeneratorType() override
Definition WsfQuantumGenerator.hpp:117
void Initialize(double aSimTime, WsfScriptContext *aParentContextPtr=nullptr) override
Definition WsfQuantumGenerator.hpp:135
WsfQuantumGeneratorSimpleSensor()=default
WsfQuantumGenerator * Clone() const override
Definition WsfQuantumGenerator.hpp:136
~WsfQuantumGeneratorSimpleSensor() override=default
std::string GeneratorType() override
Definition WsfQuantumGenerator.hpp:133
WsfQuantumGenerator * Clone() const override
Definition WsfQuantumGenerator.hpp:104
std::string GeneratorType() override
Definition WsfQuantumGenerator.hpp:101
~WsfQuantumGeneratorSimpleWeapon() override=default
void Initialize(double aSimTime, WsfScriptContext *aParentContextPtr=nullptr) override
Definition WsfQuantumGenerator.hpp:103
WsfQuantumGeneratorSimpleWeapon()=default
Definition WsfQuantumGenerator.hpp:33
virtual WsfQuantumGenerator * Clone() const =0
virtual std::vector< WsfQuantumTask * > GenerateTasks(double aSimTime, std::vector< WsfLocalTrack * > &aThreats, std::vector< WsfAssetPerception * > &aAssets)=0
virtual std::string GeneratorType()=0
WsfQuantumGenerator()=default
virtual ~WsfQuantumGenerator()=default
virtual void Initialize(double aSimTime, WsfScriptContext *aParentContextPtr=nullptr)=0
Definition WsfQuantumTask.hpp:85
Definition WsfScriptContext.hpp:71