12#ifndef ATG_LAR_AND_LC_GENERATOR_HPP
13#define ATG_LAR_AND_LC_GENERATOR_HPP
46 void Update(
double aSimTime)
override;
58 double Range(
int aRangeIndex)
const;
59 double Offset(
int aOffsetIndex)
const;
61 double CurrentRange()
const;
62 double CurrentOffset()
const;
64 void SetCurrentResult(
bool aValue);
66 void SetHitResult(
int aRangeIndex,
int aOffsetIndex,
bool aValue);
67 bool HitResult(
int aRangeIndex,
int aOffsetIndex)
const;
69 void CreateZoneFromBools();
86 AltAndSpeed(
double aAlt,
double aSpd,
const std::string& aInputAltUnits,
const std::string& aInputSpdUnits)
89 , mInputAltUnits(aInputAltUnits)
90 , mInputSpdUnits(aInputSpdUnits)
96 std::string mInputAltUnits;
97 std::string mInputSpdUnits;
103 LocationPoint(
double aX,
double aY)
115 std::string mLarName;
116 std::string mZoneName;
119 double mBaselineRange;
120 double mPlusAltRange;
121 double mPlusSpeedRange;
122 double mPlusLoftRange;
125 using LaunchConditions = std::vector<AltAndSpeed>;
126 using LocationPoints = std::vector<LocationPoint>;
127 using LAR_Conditions = std::vector<LAR_Condition>;
130 bool PlaceNewTarget(
double aSimTime, WsfTrack& aTrack);
135 using ClockwisePath = std::array<std::pair<int, int>, 8>;
137 bool CreateLARBoundary();
138 ClockwisePath GetClockwisePath(
const std::pair<int, int>& aBacktrack)
const;
139 bool AddPoint(
int aRange,
int aOffset);
142 int mNumTgtLateralOffsets;
143 double mTgtLateralOffset;
147 double mTgtFwdOffset;
149 LaunchConditions mLaunchCond;
150 int mLaunchCondIndex;
153 int mQuantityLaunched;
158 bool mWeaponTimedOut;
159 bool mHitAtShortestRange;
160 bool mHitAtLongestRange;
161 bool mHitAtLargestOffset;
170 std::vector<bool> mResults;
173 double mShrinkFactor;
176 double mBaselineRange;
177 double mPlusAltRange;
178 double mPlusSpeedRange;
179 double mPlusLoftRange;
181 std::ofstream mOutFile;
183 LAR_Conditions mConditions;
184 LocationPoints mPoints;
185 std::string mGenTime;
ATG_LAR_And_LC_Generator(WsfScenario &aScenario)
Definition ATG_LAR_And_LC_Generator.cpp:42
void SensitivityUpdate(double aSimTime)
Definition ATG_LAR_And_LC_Generator.cpp:276
void WriteOutputFile()
Definition ATG_LAR_And_LC_Generator.cpp:628
~ATG_LAR_And_LC_Generator() override=default
ATG_LAR_And_LC_Generator & operator=(const ATG_LAR_And_LC_Generator &)=delete
void LARGenUpdate(double aSimTime)
Definition ATG_LAR_And_LC_Generator.cpp:367
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