WSF
WsfBallisticLaunchComputer.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 WSFBALLISTICLAUNCHCOMPUTER_HPP
13#define WSFBALLISTICLAUNCHCOMPUTER_HPP
14
15#include "wsf_mil_export.h"
16
17#include "TblLookup.hpp"
18#include "WsfLaunchComputer.hpp"
19
28
29class WSF_MIL_EXPORT WsfBallisticLaunchComputer : public WsfLaunchComputer
30{
31public:
33 static std::string BaseTypeName() { return "WSF_BALLISTIC_LAUNCH_COMPUTER"; }
34
38 ~WsfBallisticLaunchComputer() override = default;
39
40 WsfLaunchComputer* Clone() const override;
41
42 bool Initialize(double aSimTime, WsfWeapon* aWeaponPtr) override;
43
44 bool ProcessInput(UtInput& aInput) override;
45
46 double EstimatedTimeToIntercept(double aSimTime, const WsfTrack& aTrack, double aLaunchDelayTime) override;
47
48 void GetBombFlight(double aLnchAlt, double aLnchSpeed, double aTgtAlt, double& aTOF, double& aDownRange);
49
50protected:
51 bool NewSizeSpecified() const { return mAltsSet || mSpdsSet || mTgtsSet; }
52 bool SizeFullySpecified() const { return mAltsSet && mSpdsSet && mTgtsSet; }
53 bool SizedProperly() const { return !NewSizeSpecified() && mSized; }
54 void LoadIndepValues();
55
56 bool InitializeTTIData() override;
57
58 bool WithinConstraintsAt(double aSimTime, double aFutureInterceptTime, const WsfTrack& aTrack) override;
59
60private:
61 bool mAltsSet;
62 bool mSpdsSet;
63 bool mTgtsSet;
64 bool mSized;
65 int mNumLaunchAlts;
66 int mNumLaunchSpds;
67 int mNumTargetAlts;
68 double mMinLaunchAlt;
69 double mDeltaLaunchAlt;
70 double mMinLaunchSpd;
71 double mDeltaLaunchSpd;
72 double mMinTargetAlt;
73 double mDeltaTargetAlt;
74
75 TblIndVarE<double> mLaunchAlts;
76 TblIndVarE<double> mLaunchSpds;
77 TblIndVarE<double> mTargetAlts;
78
79 TblDepVar3<double> mTOFs;
80 TblDepVar3<double> mRanges;
81
82 TblLookupLE<double> mLaunchAltLE;
83 TblLookupLE<double> mLaunchSpdLE;
84 TblLookupLE<double> mTargetAltLE;
85};
86
87#endif
Definition WsfBallisticLaunchComputer.hpp:30
bool SizeFullySpecified() const
Definition WsfBallisticLaunchComputer.hpp:52
bool SizedProperly() const
Definition WsfBallisticLaunchComputer.hpp:53
void GetBombFlight(double aLnchAlt, double aLnchSpeed, double aTgtAlt, double &aTOF, double &aDownRange)
Definition WsfBallisticLaunchComputer.cpp:191
WsfBallisticLaunchComputer()
Definition WsfBallisticLaunchComputer.cpp:19
~WsfBallisticLaunchComputer() override=default
static std::string BaseTypeName()
The basic type name (needed by weapon_tools and launch computer processor).
Definition WsfBallisticLaunchComputer.hpp:33
bool NewSizeSpecified() const
Definition WsfBallisticLaunchComputer.hpp:51
WsfBallisticLaunchComputer & operator=(const WsfBallisticLaunchComputer &)=delete
WsfBallisticLaunchComputer(const WsfBallisticLaunchComputer &aSrc)=default
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 WithinConstraintsAt(double aSimTime, double aFutureInterceptTime, const WsfTrack &aTrack)
Definition WsfLaunchComputer.cpp:654
virtual bool Initialize(double aSimTime, WsfWeapon *aWeaponPtr)
Definition WsfLaunchComputer.cpp:393
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeapon.hpp:63
Copyrights Multiple, All Rights Reserved