WSF
WsfJupiterMonopoleTerm.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 2020 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 WSFJUPITERMONOPOLETERM_HPP
13#define WSFJUPITERMONOPOLETERM_HPP
14
15#include "UtCloneablePtr.hpp"
17class UtInput;
18#include "UtJupiter.hpp"
19#include "WsfDE_FileHandle.hpp"
20
22{
23public:
26 ~WsfJupiterMonopoleTerm() override = default;
27
28 WsfJupiterMonopoleTerm* Clone() const override { return new WsfJupiterMonopoleTerm{*this}; }
29
30 const char* GetScriptClassName() const override { return "WsfJupiterMonopoleTerm"; }
31
32 bool ProcessInput(UtInput& aInput) override;
33 bool Initialize(const WsfOrbitalDynamics& aDynamics) override;
34
35 UtVec3d ComputeAcceleration(double aMass,
36 const UtCalendar& aTime,
37 const UtVec3d& aPosition,
38 const UtVec3d& aVelocity) const override;
39
40 std::string GetTermType() const override { return cTYPE; }
41
42 double GetGravitationalParameter() const { return mGravitationalParameter; }
43 void SetGravitationalParameter(double aMu) { mGravitationalParameter = aMu; }
44
45 constexpr static const char* cTYPE{"jupiter_monopole"};
46
47 UtVec3d GetJupiterLocationECI(const UtCalendar& aEpoch) const;
48
49private:
50 enum DataSource
51 {
52 cDEFAULT,
53 cDE_FILE
54 };
55
56 ut::Jupiter mJupiter{};
57 double mGravitationalParameter;
58 DataSource mDataSource{cDEFAULT};
59 std::string mDataFileName{};
60 ut::CloneablePtr<WsfDE_FileHandle> mDataFile{nullptr};
61};
62
63#endif // WSFJUPITERMONOPOLETERM_HPP
void SetGravitationalParameter(double aMu)
Definition WsfJupiterMonopoleTerm.hpp:43
const char * GetScriptClassName() const override
Definition WsfJupiterMonopoleTerm.hpp:30
bool ProcessInput(UtInput &aInput) override
Definition WsfJupiterMonopoleTerm.cpp:27
~WsfJupiterMonopoleTerm() override=default
WsfJupiterMonopoleTerm()
Definition WsfJupiterMonopoleTerm.cpp:21
WsfJupiterMonopoleTerm * Clone() const override
Definition WsfJupiterMonopoleTerm.hpp:28
double GetGravitationalParameter() const
Definition WsfJupiterMonopoleTerm.hpp:42
bool Initialize(const WsfOrbitalDynamics &aDynamics) override
Definition WsfJupiterMonopoleTerm.cpp:63
static constexpr const char * cTYPE
Definition WsfJupiterMonopoleTerm.hpp:45
std::string GetTermType() const override
Return a string indicating the type of term.
Definition WsfJupiterMonopoleTerm.hpp:40
WsfJupiterMonopoleTerm(const WsfJupiterMonopoleTerm &aOther)=default
UtVec3d ComputeAcceleration(double aMass, const UtCalendar &aTime, const UtVec3d &aPosition, const UtVec3d &aVelocity) const override
Definition WsfJupiterMonopoleTerm.cpp:72
UtVec3d GetJupiterLocationECI(const UtCalendar &aEpoch) const
Definition WsfJupiterMonopoleTerm.cpp:96
WsfOrbitalDynamicsTerm()
Definition WsfOrbitalDynamicsTerm.hpp:34
Definition WsfOrbitalDynamics.hpp:32
Copyrights Multiple, All Rights Reserved