12#ifndef WSFSAM_LAUNCHCOMPUTER_HPP
13#define WSFSAM_LAUNCHCOMPUTER_HPP
15#include "wsf_mil_export.h"
21#include "TblLookup.hpp"
34 static std::string
BaseTypeName() {
return "WSF_SAM_LAUNCH_COMPUTER"; }
66 double TimeOfFlightFor(
double aOffset,
double aAltitude,
double aRange,
double aSpeed);
84 void Resize(
const std::vector<double>& aOffsets,
85 const std::vector<double>& aAltitudes,
86 const std::vector<double>& aRanges,
87 const std::vector<double>& aSpeeds);
92 bool ResolveDeprecatedInput();
93 void ResizeTOFsAndSetDefaults();
94 unsigned int CountValidTOFs();
96 void SetTOF_Value(
unsigned int aOffsetIndex,
97 unsigned int aAltitudeIndex,
98 unsigned int aRangeIndex,
99 unsigned int aSpeedIndex,
110 double Speed(
unsigned int aIndex)
const {
return mSpeeds.Get(aIndex); }
118 bool ReadRngAndTOF(UtInput& aInput,
double& aRange,
double& aTOF);
121 unsigned int aAltitudeIndex,
122 unsigned int aRangeIndex,
123 unsigned int aSpeedIndex)
const
125 return mTOFs.Get(aOffsetIndex, aAltitudeIndex, aRangeIndex, aSpeedIndex);
159 const std::string& aBlockTerminator,
160 UtInput::ValueType aUnitType,
161 std::vector<double>& aValues);
virtual bool InitializeTTIData()
Definition WsfLaunchComputer.cpp:440
WsfLaunchComputer()
Definition WsfLaunchComputer.cpp:44
virtual double EstimatedTimeToIntercept(double aSimTime, const WsfTrack &aTrack, double aLaunchDelayTime)
Definition WsfLaunchComputer.cpp:749
WsfLaunchComputer * Clone() const override
Definition WsfLaunchComputer.cpp:518
bool ProcessInput(UtInput &aInput) override
Definition WsfLaunchComputer.cpp:171
virtual bool Initialize(double aSimTime, WsfWeapon *aWeaponPtr)
Definition WsfLaunchComputer.cpp:393
Definition WsfSAM_LaunchComputer.hpp:81
void ProcessInterceptEnvBlock(UtInputBlock &aInputBlock)
Definition WsfSAM_LaunchComputer.cpp:355
double TimeOfFlight(unsigned int aOffsetIndex, unsigned int aAltitudeIndex, unsigned int aRangeIndex, unsigned int aSpeedIndex) const
Definition WsfSAM_LaunchComputer.hpp:120
double GroundRange(unsigned int aIndex) const
Definition WsfSAM_LaunchComputer.hpp:109
void Resize(const std::vector< double > &aOffsets, const std::vector< double > &aAltitudes, const std::vector< double > &aRanges, const std::vector< double > &aSpeeds)
Definition WsfSAM_LaunchComputer.cpp:499
std::vector< AltSet > mObsoleteInput
Definition WsfSAM_LaunchComputer.hpp:135
bool mLaterallySymmetric
Definition WsfSAM_LaunchComputer.hpp:128
bool AssumeLateralSymmetry() const
Definition WsfSAM_LaunchComputer.hpp:91
TblDepVar4< double > mTOFs
Definition WsfSAM_LaunchComputer.hpp:133
size_t NumAltitudes() const
Definition WsfSAM_LaunchComputer.hpp:103
TblIndVarU< double > mRanges
Definition WsfSAM_LaunchComputer.hpp:131
size_t NumRanges() const
Definition WsfSAM_LaunchComputer.hpp:104
TblIndVarU< double > mOffsets
Definition WsfSAM_LaunchComputer.hpp:129
double Speed(unsigned int aIndex) const
Definition WsfSAM_LaunchComputer.hpp:110
bool ReadRngAndTOF(UtInput &aInput, double &aRange, double &aTOF)
Definition WsfSAM_LaunchComputer.cpp:720
InterceptEnvelope()
Definition WsfSAM_LaunchComputer.cpp:736
TblIndVarU< double > mSpeeds
Definition WsfSAM_LaunchComputer.hpp:132
double Offset(unsigned int aIndex) const
Definition WsfSAM_LaunchComputer.hpp:107
TblIndVarU< double > mAltitudes
Definition WsfSAM_LaunchComputer.hpp:130
size_t NumSpeeds() const
Definition WsfSAM_LaunchComputer.hpp:105
double Altitude(unsigned int aIndex) const
Definition WsfSAM_LaunchComputer.hpp:108
size_t NumOffsets() const
Definition WsfSAM_LaunchComputer.hpp:102
Definition WsfSAM_LaunchComputer.hpp:52
const TblIndVarU< double > * mAltitudesPtr
Definition WsfSAM_LaunchComputer.hpp:74
Interpolator()
Definition WsfSAM_LaunchComputer.hpp:54
const TblIndVarU< double > * mSpeedsPtr
Definition WsfSAM_LaunchComputer.hpp:76
const TblIndVarU< double > * mOffsetsPtr
Definition WsfSAM_LaunchComputer.hpp:73
const TblDepVar4< double > * mTOFsPtr
Definition WsfSAM_LaunchComputer.hpp:77
const TblIndVarU< double > * mRangesPtr
Definition WsfSAM_LaunchComputer.hpp:75
TblLookupLU< double > mAltLU
Definition WsfSAM_LaunchComputer.hpp:68
TblLookupLU< double > mSpeedLU
Definition WsfSAM_LaunchComputer.hpp:70
TblLookupLU< double > mOffsetLU
Definition WsfSAM_LaunchComputer.hpp:67
TblLookupLU< double > mRangeLU
Definition WsfSAM_LaunchComputer.hpp:69
Definition WsfSAM_LaunchComputer.hpp:31
std::vector< double > mInputRanges
Definition WsfSAM_LaunchComputer.hpp:167
WsfSAM_LaunchComputer & operator=(const WsfSAM_LaunchComputer &)=delete
Interpolator mInterpolator
Definition WsfSAM_LaunchComputer.hpp:172
static bool ValidateEnvelope(InterceptEnvelope *aEnvelopePtr, bool aIgnoreTOFs)
Definition WsfSAM_LaunchComputer.cpp:132
std::vector< TestPoint > mTestPoints
Definition WsfSAM_LaunchComputer.hpp:170
std::vector< double > mInputAltitudes
Definition WsfSAM_LaunchComputer.hpp:166
WsfSAM_LaunchComputer()
Definition WsfSAM_LaunchComputer.cpp:90
InterceptEnvelope * GetEnvPtr()
Return a pointer to the intercept envelope.
Definition WsfSAM_LaunchComputer.cpp:116
std::shared_ptr< InterceptEnvelope > mEnvelopePtr
Definition WsfSAM_LaunchComputer.hpp:171
double InterpolatedTimeToIntercept(double aOffset, double aAltitude, double aRange, double aSpeed)
This method is for testing of the internal interpolation routines only.
Definition WsfSAM_LaunchComputer.cpp:883
std::vector< double > mInputSpeeds
Definition WsfSAM_LaunchComputer.hpp:168
std::vector< double > mInputOffsets
Definition WsfSAM_LaunchComputer.hpp:165
~WsfSAM_LaunchComputer() override=default
bool ProcessArray(UtInput &aInput, const std::string &aBlockTerminator, UtInput::ValueType aUnitType, std::vector< double > &aValues)
Definition WsfSAM_LaunchComputer.cpp:809
void TestInterpolationPoints()
Definition WsfSAM_LaunchComputer.cpp:163
static std::string BaseTypeName()
The basic type name (needed by weapon_tools and launch computer processor).
Definition WsfSAM_LaunchComputer.hpp:34
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeapon.hpp:63
Definition WsfSAM_LaunchComputer.hpp:114
double alt
Definition WsfSAM_LaunchComputer.hpp:115
std::vector< std::pair< double, double > > mRangeAndTOFs
Definition WsfSAM_LaunchComputer.hpp:116
double groundRange
Definition WsfSAM_LaunchComputer.hpp:153
TestPoint()
Definition WsfSAM_LaunchComputer.hpp:146
double speed
Definition WsfSAM_LaunchComputer.hpp:154
double altitude
Definition WsfSAM_LaunchComputer.hpp:152
double latOffset
Definition WsfSAM_LaunchComputer.hpp:151