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