00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "Orbit.h"
00014 #include "Environment.h"
00015 namespace O_SESSAME {
00016
00017 Orbit::Orbit() : m_CurrentOrbitPosition(), m_pPropagator(NULL), m_Integrateable(false), m_Parameters(), m_pEnvironment(NULL), m_ControlForces()
00018 {
00019 }
00020
00021 Orbit::~Orbit()
00022 {
00023
00024
00025
00026
00027
00028
00029 }
00030 void Orbit::SetStateObject(const OrbitState &_currentOrbitPosition)
00031 {
00032 m_CurrentOrbitPosition = _currentOrbitPosition;
00033 }
00034
00035 OrbitState Orbit::GetStateObject() const
00036 {
00037 return m_CurrentOrbitPosition;
00038 }
00039
00040 void Orbit::SetPropagator(Propagator *_pPropagator)
00041 {
00042 m_pPropagator = _pPropagator;
00043 m_pPropagator->SetOrbitObject(this);
00044 }
00045
00046 Propagator* Orbit::GetPropagator()
00047 {
00048 return m_pPropagator;
00049 }
00050
00051 void Orbit::SetDynamicsEq(odeFunctor _orbitDynamicsEq)
00052 {
00053 m_OrbitDynamicsEq = _orbitDynamicsEq;
00054 m_Integrateable = true;
00055 }
00056 odeFunctor Orbit::GetDynamicsEq()
00057 {
00058 return m_OrbitDynamicsEq;
00059 }
00060
00061 void Orbit::SetStateConversion(IntegratedOrbitStateConversionFunction _ConversionFunction)
00062 {
00063 m_OrbitStateConversionFunction = _ConversionFunction;
00064 }
00065
00066 IntegratedOrbitStateConversionFunction Orbit::GetStateConversion() const
00067 {
00068 return m_OrbitStateConversionFunction;
00069 }
00070
00071
00072 bool Orbit::IsIntegrateable()
00073 {
00074 return m_Integrateable;
00075 }
00076
00077 void Orbit::SetParameters(const Matrix &_Parameters)
00078 {
00079 m_Parameters.initialize(_Parameters);
00080 }
00081
00082 Matrix Orbit::GetParameters() const
00083 {
00084 return m_Parameters;
00085 }
00086 void Orbit::SetEnvironment(Environment *_pEnvironment)
00087 {
00088 m_pEnvironment = _pEnvironment;
00089 m_EnvironmentForcesFunctor.Set(m_pEnvironment, &Environment::GetForces);
00090 }
00091
00092 Environment* Orbit::GetEnvironment()
00093 {
00094 return m_pEnvironment;
00095 }
00096 void Orbit::SetControlForces(const Vector &_controlForces)
00097 {
00098 m_ControlForces.initialize(_controlForces);
00099 }
00100
00101 Vector Orbit::GetControlForces()
00102 {
00103 return m_ControlForces;
00104 }
00105
00106 ObjectFunctor<Environment> Orbit::GetEnvironmentForcesFunctor()
00107 {
00108 return m_EnvironmentForcesFunctor;
00109 }
00110
00111 OrbitHistory& Orbit::GetHistoryObject()
00112 {
00113 return m_OrbitHistory;
00114 }
00115 }
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149