00001 00002 00008 /* 00009 * 00010 */ 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 { 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 } // end of namespace O_SESSAME 00116 // Do not change the comments below - they will be added automatically by CVS 00117 /***************************************************************************** 00118 * $Log: Orbit.cpp,v $ 00119 * Revision 1.8 2003/06/10 14:52:04 nilspace 00120 * Changed GetHistory to GetHistoryObject 00121 * 00122 * Revision 1.7 2003/05/22 21:03:07 nilspace 00123 * Updated comments. 00124 * 00125 * Revision 1.6 2003/05/20 17:47:59 nilspace 00126 * Updated comments. 00127 * 00128 * Revision 1.5 2003/04/28 20:13:17 nilspace 00129 * GetHistory return by reference. 00130 * 00131 * Revision 1.4 2003/04/27 21:17:42 nilspace 00132 * Finished moving function declarations out of the class interface. 00133 * 00134 * Revision 1.3 2003/04/27 21:14:01 nilspace 00135 * Added to the namespace O_SESSAME. 00136 * Moved function definitions outside of the class interface definition. 00137 * 00138 * Revision 1.2 2003/04/25 13:36:57 nilspace 00139 * Updated to work with current History, Environment, & Propagator objects. 00140 * 00141 * Revision 1.1 2003/04/08 22:48:59 nilspace 00142 * Initial Submission. 00143 * 00144 * 00145 * 00146 ******************************************************************************/