WSF
OrbitalLaunchComputerGenerator.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 2016 Infoscitex, a DCS 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// Updated by Infoscitex, a DCS Company
13// ****************************************************************************
14
15#ifndef ORBITALLAUNCHCOMPUTERGENERATOR_HPP
16#define ORBITALLAUNCHCOMPUTERGENERATOR_HPP
17
18#include <list>
19#include <string>
20#include <vector>
21
22#include "Tool.hpp"
23#include "WeaponToolsExport.hpp"
25
27{
28public:
30
34 ~OrbitalLaunchComputerGenerator() override = default;
35
37
38 Tool* Clone() const override;
39 bool Initialize(WsfSimulation& aSimulation) override;
40 bool ProcessInput(UtInput& aInput) override;
41 void Update(double aSimTime) override;
43
45
46 void MoverBurnout(double aSimTime, WsfMover* aMoverPtr) override;
47 void GuidanceComputerPhaseChanged(double aSimTime, WsfGuidanceComputer* aComputerPtr) override;
48 void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr) override;
50private:
51 void CaptureInsertionData(double aSimTime, WsfPlatform* aPlatformPtr);
52
53 double ComputeFlightPathAngle(WsfPlatform* aPlatformPtr);
54
55 double ComputeOrbitalSpeed(WsfPlatform* aPlatformPtr);
56
57 double ComputeTimeOfFlight(double aTime) const;
58
59 bool FireNewWeapon(double aSimTime) override;
60
61 bool FireNextWeapon(double aSimTime);
62
63 void SummarizePitchRateResults();
64
65 std::string mLEO_DataFileName;
66
67 double mSpeed;
68 double mPitch;
69
70 std::vector<double> mLaunchHeadings;
71 double mLaunchHeading;
72 size_t mLaunchHeadingIndex;
73
74 std::vector<double> mLoftAngles;
75 double mLoftAngle;
76 size_t mLoftAngleIndex;
77
78 std::vector<double> mPitchRates;
79 double mPitchRate;
80 size_t mPitchRateIndex;
81
82 Orbit mLEO_Data;
83 Orbit mBO_Data;
84
85 std::list<Orbit> mLEO_Orbits;
86 std::list<Orbit> mBO_Orbits;
87
88 std::string mPlatformName;
89};
90
91#endif
#define WT_EXPORT
Definition WeaponToolsExport.hpp:26
OrbitalLaunchComputerGenerator(WsfScenario &aScenario)
Definition OrbitalLaunchComputerGenerator.cpp:45
WsfOrbitalLaunchComputer::Orbit Orbit
Definition OrbitalLaunchComputerGenerator.hpp:29
OrbitalLaunchComputerGenerator & operator=(const OrbitalLaunchComputerGenerator &)=delete
~OrbitalLaunchComputerGenerator() override=default
virtual bool Initialize(WsfSimulation &aSimulation)
Definition Tool.cpp:206
bool ProcessInput(UtInput &aInput) override
Definition Tool.cpp:103
Tool(const Tool &aSrc)
Definition Tool.cpp:65
virtual void MoverBurnout(double aSimTime, WsfMover *aMoverPtr)
name Callbacks from WeaponObserver (lets the tool have access to simulation callbacks)
Definition Tool.cpp:348
virtual void GuidanceComputerPhaseChanged(double aSimTime, WsfGuidanceComputer *aComputerPtr)
Optional tool method called by WeaponObserver to pass on the GuidanceComputerPhaseChanged simulation ...
Definition Tool.cpp:352
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
virtual void Update(double aSimTime)
Definition Tool.cpp:336
Tool * Clone() const override=0
virtual bool FireNewWeapon(double aSimTime)=0
Definition WsfGuidanceComputer.hpp:52
Definition WsfMover.hpp:37
Define the data for a particular orbit.
Definition WsfOrbitalLaunchComputer.hpp:81
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
Definition WsfSinglePlatformObserver.hpp:30
Copyrights Multiple, All Rights Reserved