00001 00002 00008 /* \todo Finish documentation 00009 * 00010 */ 00012 00013 #ifndef __SSF_ATTITUDE_NUMERIC_PROPAGATOR_H__ 00014 #define __SSF_ATTITUDE_NUMERIC_PROPAGATOR_H__ 00015 00016 #include "Matrix.h" 00017 #include "Rotation.h" 00018 #include "Integrator.h" 00019 #include "Propagator.h" 00020 00021 namespace O_SESSAME { 00022 00029 class AttitudeNumericPropagator : public NumericPropagator 00030 { 00031 public: 00033 AttitudeNumericPropagator(); 00035 virtual ~AttitudeNumericPropagator(); 00036 00042 virtual void Propagate(const vector<ssfTime> &_propTime, const Vector &_orbitInitConditions, const Vector &_attInitConditions); 00043 00044 void SetAttitudeIntegrator(Integrator* _pAttitudeIntegrator); 00045 00046 Integrator* GetOrbitIntegrator() const; 00047 Integrator* GetAttitudeIntegrator() const; 00048 00049 protected: 00050 void SetOrbitIntegrator(Integrator* _pOrbitIntegrator); 00051 00057 virtual Matrix PropagateAttitude(const vector<ssfTime> &_propTime, const Vector &_initConditions); 00058 00059 private: 00061 OrbitHistory m_OrbitStateMeshPoints; 00063 Matrix m_AttitudeStateMeshPoints; 00064 00066 Integrator* m_pAttitudeIntegrator; 00067 }; 00068 } // close namespace O_SESSAME 00069 00070 #endif 00071 /***************************************************************************** 00072 * $Log: NumericPropagator.h,v $ 00073 * Revision 1.5 2003/05/13 18:54:04 nilspace 00074 * Fixed comments & various propagate functions. 00075 * 00076 * Revision 1.4 2003/04/27 22:04:33 nilspace 00077 * Created the namespace O_SESSAME. 00078 * 00079 * Revision 1.3 2003/04/25 13:43:52 nilspace 00080 * Updated to actually work. Still needs verification. 00081 * 00082 * Revision 1.2 2003/04/23 16:30:58 nilspace 00083 * Various bugfixes & uploading of all changed code for new programmers. 00084 * 00085 * Revision 1.1 2003/04/08 22:49:56 nilspace 00086 * Initial Submission. 00087 * 00088 ******************************************************************************/