00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __MEAN_OSCULATING_ORBIT_ELEMENTS_H__
00015 #define __MEAN_OSCULATING_ORBIT_ELEMENTS_H__
00016
00017 #include <iostream>
00018 #include "rotation/Rotation.h"
00019 #include "Keplerian.h"
00020
00021 using namespace std;
00022
00023 namespace O_SESSAME
00024 {
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 class OsculatingOrbitalElements : public Keplerian
00036 {
00037 public:
00038 virtual ~OsculatingOrbitalElements();
00039
00040 virtual OsculatingOrbitalElements* NewPointer();
00041
00042 virtual OsculatingOrbitalElements* Clone();
00043
00044 OsculatingOrbitalElements();
00045
00046 void SetOsculatingOrbitalElements( Keplerian& _OsculatingOrbitalElements );
00047
00048 void SetOsculatingOrbitalElements( CAMdoubleVector _ECIVector );
00049
00050 void SetMeanOrbitalElements( Keplerian& _MeanOrbitalElements );
00051
00052 void SetMeanOrbitalElements( CAMdoubleVector _ECIVector );
00053
00054 Keplerian GetMeanOrbitalElements( );
00055
00056 Keplerian GetOsculatingOrbitalElements( );
00057
00058 void OsculatingToMean( );
00059
00060 void MeanToOsculating( );
00061
00062 Keplerian Mapping( Keplerian& _keplerian );
00063
00064
00065
00066 private:
00067 Keplerian m_OsculatingOrbitalElements;
00068
00069 Keplerian m_MeanOrbitalElements;
00070
00071 double m_Gamma2;
00072
00073 };
00074
00075
00076 }
00077
00078
00079 #endif
00080