00001 00002 00008 /* \todo Finish documentation 00009 * 00010 */ 00012 00013 #ifndef __OSESSAME_PROPAGATOR_H__ 00014 #define __OSESSAME_PROPAGATOR_H__ 00015 00016 #include "Rotation.h" 00017 #include "Integrator.h" 00018 #include "Orbit.h" 00019 #include "Attitude.h" 00020 #include "AttitudeHistory.h" 00021 #include "OrbitHistory.h" 00022 00023 00024 namespace O_SESSAME { 00026 00065 class Attitude; 00066 class Orbit; 00067 00068 00076 class Propagator 00077 { 00078 public: 00080 virtual ~Propagator(); 00081 00085 virtual void Propagate(const vector<ssfTime> &_propTime); 00086 00090 virtual void SetAttitudeObject(Attitude *_pAttitudeObject); 00091 00095 virtual void SetOrbitObject(Orbit *_pOrbitObject); 00096 00097 protected: 00103 virtual Matrix PropagateOrbit(const vector<ssfTime> &_propTime, const Vector &_initConditions); 00104 00110 virtual Matrix PropagateAttitude(const vector<ssfTime> &_propTime, const Vector &_initConditions); 00111 00112 protected: 00114 Propagator(); 00115 00117 Orbit *m_pOrbitObject; 00119 Attitude *m_pAttitudeObject; 00120 00122 OrbitHistory m_OrbitStateMeshPoints; 00124 AttitudeHistory m_AttitudeStateMeshPoints; 00125 00126 }; 00127 // end of Propagator 00128 } 00129 #endif 00130 /***************************************************************************** 00131 * $Log: Propagator.h,v $ 00132 * Revision 1.10 2003/06/10 02:24:04 nilspace 00133 * Updated moving of StateConversion functions to Attitude and Orbit. 00134 * 00135 * Revision 1.9 2003/05/22 15:09:46 nilspace 00136 * Updated documentation. 00137 * 00138 * Revision 1.8 2003/05/20 17:55:35 nilspace 00139 * Updated comments, also now use derived CombinedNumericProp. 00140 * 00141 * Revision 1.7 2003/05/13 18:52:45 nilspace 00142 * Fixed comments. Passed in initial conditions to propagate functions. 00143 * 00144 * Revision 1.6 2003/04/27 22:04:33 nilspace 00145 * Created the namespace O_SESSAME. 00146 * 00147 * Revision 1.5 2003/04/25 18:23:43 nilspace 00148 * Added implementation of ~Propagator() 00149 * 00150 * Revision 1.4 2003/04/25 13:43:52 nilspace 00151 * Updated to actually work. Still needs verification. 00152 * 00153 * Revision 1.3 2003/04/23 16:30:58 nilspace 00154 * Various bugfixes & uploading of all changed code for new programmers. 00155 * 00156 * Revision 1.2 2003/04/08 22:50:28 nilspace 00157 * Updated to derive classes based on numeric or analytical nature. 00158 * 00159 * Revision 1.1 2003/03/27 02:49:20 nilspace 00160 * Initial submission 00161 * 00162 ******************************************************************************/