WSF
WsfConjunctionInput.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 2017 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#ifndef WSFCONJUNCTIONINPUT_HPP
13#define WSFCONJUNCTIONINPUT_HPP
14
15#include <string>
16
17#include "UtCalendar.hpp"
18class UtInput;
19class UtOrbitalPropagatorBase;
20namespace ut
21{
22class OrbitalState;
23}
24#include "UtVec3.hpp"
25
26class WsfSimulation;
27
30{
31public:
34
36
37 bool ProcessInput(UtInput& aInput);
38
40
42 bool SolutionFound() const { return mSolutionFound; }
43
45 const UtVec3d& InitialLocationECI() const { return mInitialLocationECI; }
46
50 const UtVec3d& InitialVelocityECI() const { return mInitialVelocityECI; }
51
55 const UtVec3d& SolutionVelocityECI() const { return mSolutionVelocityECI; }
56
57 bool Initialize(const UtCalendar& aTime, const ut::OrbitalState& aState);
58
59 void ComputeSolution(const WsfSimulation& aSimulation,
60 const UtCalendar& aTime,
61 const UtOrbitalPropagatorBase& aInterceptorProp);
62
63private:
65 enum class PositionInputType
66 {
67 cUNSPECIFIED,
68 cLAT_LONG_ALT,
69 cECI,
70 cFROM_INITIAL
71 };
72
73 const UtOrbitalPropagatorBase* GetTargetPropagator(const WsfSimulation& aSimulation) const;
74
75 std::string mTarget;
76 UtVec3d mInitialLocationECI;
77 UtVec3d mInitialVelocityECI;
78 UtVec3d mSolutionVelocityECI;
79 double mTolerance{1.0e-9};
80 double mConjunctionTime;
81 double mLLA[3];
82 PositionInputType mPosType;
83 bool mValidInput;
84 bool mSolutionFound;
85};
86
87#endif // WSFCONJUNCTIONINPUT_HPP
bool Initialize(const UtCalendar &aTime, const ut::OrbitalState &aState)
Definition WsfConjunctionInput.cpp:129
void ComputeSolution(const WsfSimulation &aSimulation, const UtCalendar &aTime, const UtOrbitalPropagatorBase &aInterceptorProp)
Definition WsfConjunctionInput.cpp:176
const UtVec3d & SolutionVelocityECI() const
Definition WsfConjunctionInput.hpp:55
WsfConjunctionInput & operator=(const WsfConjunctionInput &aOther)=default
const UtVec3d & InitialLocationECI() const
Return the initial location of the satellite.
Definition WsfConjunctionInput.hpp:45
WsfConjunctionInput()
Definition WsfConjunctionInput.cpp:35
const UtVec3d & InitialVelocityECI() const
Definition WsfConjunctionInput.hpp:50
bool ProcessInput(UtInput &aInput)
Process the input file to setup the conjunction.
Definition WsfConjunctionInput.cpp:63
WsfConjunctionInput * Clone() const
Clone this object.
Definition WsfConjunctionInput.cpp:119
bool SolutionFound() const
Indicate if a solution to generate the conjunction was found.
Definition WsfConjunctionInput.hpp:42
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSensorErrorModel.hpp:21
Copyrights Multiple, All Rights Reserved