00001 00002 00008 /* \todo Finish documentation 00009 * 00010 */ 00012 00013 #ifndef __OSESSAME_COMBINED_NUMERIC_PROPAGATOR_H__ 00014 #define __OSESSAME_COMBINED_NUMERIC_PROPAGATOR_H__ 00015 00016 #include "Matrix.h" 00017 #include "Rotation.h" 00018 #include "Integrator.h" 00019 #include "NumericPropagator.h" 00020 00021 namespace O_SESSAME { 00022 00030 class CombinedNumericPropagator : public NumericPropagator 00031 { 00032 public: 00034 CombinedNumericPropagator(); 00036 virtual ~CombinedNumericPropagator(); 00037 00043 virtual void Propagate(const vector<ssfTime> &_propTime, const Vector &_orbitInitConditions, const Vector &_attInitConditions); 00044 00045 void SetOrbitIntegrator(Integrator* _pOrbitIntegrator); 00046 void SetAttitudeIntegrator(Integrator* _pAttitudeIntegrator); 00047 00048 Integrator* GetOrbitIntegrator() const; 00049 Integrator* GetAttitudeIntegrator() const; 00050 00051 protected: 00057 virtual Matrix PropagateOrbit(const vector<ssfTime> &_propTime, const Vector &_initConditions); 00058 00064 virtual Matrix PropagateAttitude(const vector<ssfTime> &_propTime, const Vector &_initConditions); 00065 00066 private: 00068 Matrix m_OrbitStateMeshPoints; 00070 Matrix m_AttitudeStateMeshPoints; 00071 00073 Integrator* m_pOrbitIntegrator; 00075 Integrator* m_pAttitudeIntegrator; 00076 }; 00077 } // close namespace O_SESSAME 00078 00079 #endif 00080 /***************************************************************************** 00081 * $Log: CombinedNumericPropagator.h,v $ 00082 * Revision 1.3 2003/06/10 02:24:04 nilspace 00083 * Updated moving of StateConversion functions to Attitude and Orbit. 00084 * 00085 * Revision 1.2 2003/05/22 21:02:28 nilspace 00086 * Updated comments. 00087 * 00088 * Revision 1.1 2003/05/20 17:56:24 nilspace 00089 * Initial submission. 00090 * 00091 * 00092 ******************************************************************************/