WSF
Tool.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef TOOL_HPP
13#define TOOL_HPP
14
15#include "WeaponToolsExport.hpp"
16
17class UtInput;
18#include "WsfExplicitWeapon.hpp"
20class WsfPlatform;
21#include "WeaponObserver.hpp"
22#include "WsfObject.hpp"
23#include "WsfStringId.hpp"
24class ToolManager;
25
37
38class WT_EXPORT Tool : public WsfObject
39{
40public:
41 Tool(const Tool& aSrc);
42 Tool& operator=(const Tool&) = delete;
43 ~Tool() override;
44 Tool* Clone() const override = 0;
45 virtual void Update(double aSimTime);
46 virtual bool Initialize(WsfSimulation& aSimulation);
47 bool ProcessInput(UtInput& aInput) override;
48
50
51 virtual void MoverBurnout(double aSimTime, WsfMover* aMoverPtr);
52 virtual void GuidanceComputerPhaseChanged(double aSimTime, WsfGuidanceComputer* aComputerPtr);
53 virtual void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr);
55
57
58 double FrameStep() const { return mFrameStep; }
59 bool IsInitialized() const { return mInitialized; }
62
63protected:
65 WsfScenario& GetScenario() const { return *mScenarioPtr; }
66 ToolManager* GetManager() const;
67 Tool(WsfScenario& aScenario);
68
69 void UnInitialize();
70
72 bool IsDone() const { return mDone; }
73
75 bool DebugEnabled() const { return mDebug; }
76
78 virtual void ResolveNames();
79
82 virtual bool FireNewWeapon(double aSimTime) = 0;
83
84 virtual void ErrorBailout(){};
85
91
92 double mFrameStep;
94 double mLatDeg;
95 double mLonDeg;
96 double mAlt;
98
99 bool mDone;
102 bool mDebug;
104
105 std::string mToolProduces;
106 std::string mFileExtension;
111 std::string mOutputFileName;
112 std::string mOutputObjectName;
113};
114
115#endif
#define WT_EXPORT
Definition WeaponToolsExport.hpp:26
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition ToolManager.hpp:31
Definition Tool.hpp:39
bool mDone
Definition Tool.hpp:99
WsfStringId mTargetPlatformTypeId
Definition Tool.hpp:109
WsfSimulation * mSimulationPtr
Definition Tool.hpp:87
bool mDebug
Definition Tool.hpp:102
Tool & operator=(const Tool &)=delete
WsfScenario & GetScenario() const
Definition Tool.hpp:65
WeaponObserver mObserver
Definition Tool.hpp:88
virtual bool Initialize(WsfSimulation &aSimulation)
Definition Tool.cpp:206
double mAlt
Definition Tool.hpp:96
double FrameStep() const
Definition Tool.hpp:58
double mLonDeg
Definition Tool.hpp:95
WsfStringId WeaponPlatformTypeId() const
Definition Tool.cpp:191
bool IsInitialized() const
Definition Tool.hpp:59
std::string mOutputFileName
Definition Tool.hpp:111
Tool(const Tool &aSrc)
Definition Tool.cpp:65
std::string mFileExtension
Definition Tool.hpp:106
WsfScenario * mScenarioPtr
Definition Tool.hpp:86
double mHeadingRad
Definition Tool.hpp:97
bool IsDone() const
Return a flag to indicate that this Tool has completed its work.
Definition Tool.hpp:72
WsfStringId mWeaponEffectTypeId
Definition Tool.hpp:107
WsfStringId mLaunchPlatformTypeId
Definition Tool.hpp:108
WsfExplicitWeapon * mLaunchWpnPtr
Definition Tool.hpp:90
WsfSimulation * GetSimulation() const
Definition Tool.hpp:64
virtual void MoverBurnout(double aSimTime, WsfMover *aMoverPtr)
name Callbacks from WeaponObserver (lets the tool have access to simulation callbacks)
Definition Tool.cpp:348
std::string mToolProduces
Definition Tool.hpp:105
virtual void GuidanceComputerPhaseChanged(double aSimTime, WsfGuidanceComputer *aComputerPtr)
Optional tool method called by WeaponObserver to pass on the GuidanceComputerPhaseChanged simulation ...
Definition Tool.cpp:352
bool mNotifiedDone
Definition Tool.hpp:100
double mFrameStep
Definition Tool.hpp:92
WsfExplicitWeapon * GetLauncherWeapon() const
Definition Tool.hpp:61
bool mInitialized
Definition Tool.hpp:101
bool DebugEnabled() const
Return a flag to indicate that debugging is enabled.
Definition Tool.hpp:75
double mLatDeg
Definition Tool.hpp:94
virtual void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr)
Optional tool method called by WeaponObserver to pass on the PlatformAdded simulation observer event.
Definition Tool.cpp:356
WsfPlatform * mLaunchPlatPtr
Definition Tool.hpp:89
std::string mOutputObjectName
Definition Tool.hpp:112
double mLastUpdate
Definition Tool.hpp:93
WsfStringId mWeaponNameId
Definition Tool.hpp:110
virtual void ErrorBailout()
Definition Tool.hpp:84
WsfPlatform * GetLauncherPlatform() const
Definition Tool.hpp:60
Tool * Clone() const override=0
virtual bool FireNewWeapon(double aSimTime)=0
bool mTerminateOnLaunchFailure
Definition Tool.hpp:103
Definition WeaponObserver.hpp:30
A specialization of WsfWeapon for weapons modeled as separate platforms.
Definition WsfExplicitWeapon.hpp:30
Definition WsfGuidanceComputer.hpp:52
Definition WsfMover.hpp:37
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
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
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved