Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.6 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: ANXTime.h,v 1.10 2013-09-18 07:43:59 expcfi Exp $ 00007 //-------------------------------------------------------------------- 00008 00009 #ifndef _ANXTIME_H 00010 #define _ANXTIME_H 00011 00012 //--INCLUDE----------------------------------------------------------- 00013 #include "OrbitData.h" 00014 #include "CfiError.h" 00015 #include "CfiClass.h" 00016 #include "OrbitId.h" 00017 00018 //--NAMESPACES-------------------------------------------------------- 00019 using namespace std; 00020 00021 namespace EECFI 00022 { 00023 00027 class ANXTime: public CfiClass 00028 { 00029 friend class RelANXTime; 00030 friend class OrbitExtra; 00031 friend class Swath; 00032 00033 public: 00034 long orbit; 00035 long seconds; 00036 long microseconds; 00037 00039 ANXTime(); 00040 00042 ANXTime( long orbitIn, long secondsIn, long microsecIn ); 00043 00045 ANXTime( const OrbitId &orbitId, long orbitIn, long secondsIn, long microsecIn ) throw (CfiError); 00046 00048 ANXTime( const ANXTime &at ); 00049 00051 ~ANXTime(); 00052 00054 double orbitToTime( long timeRef ) const throw (CfiError); 00055 00059 void timeToOrbit( long timeRef, double time ) throw (CfiError); 00060 00062 void setBOM(); 00063 00065 void setEOM(); 00066 00068 OrbitalInfo getOrbitInfo() const throw (CfiError); 00069 00071 void adjustWithNodalPeriod() throw (CfiError); 00072 00073 // ANXTime arithmetic operators. 00074 00076 ANXTime operator+ ( double time ); 00078 ANXTime operator- ( double time ); 00080 double operator- ( const ANXTime &t ) const throw (CfiError); 00081 00082 // ANXTime comparisons. 00084 bool operator> ( const ANXTime &t ) const throw (CfiError); 00086 bool operator< ( const ANXTime &t ) const throw (CfiError); 00088 bool operator>= ( const ANXTime &t ) const throw (CfiError); 00090 bool operator<= ( const ANXTime &t ) const throw (CfiError); 00092 bool operator== ( const ANXTime &t ) const throw (CfiError); 00094 bool operator!= ( const ANXTime &t ) const throw (CfiError); 00095 00097 void operator= ( const ANXTime &t ); 00098 00099 protected: 00100 00101 00102 private: 00103 OrbitId orbitId; 00104 int isBOM_EOM; 00105 }; 00106 00107 } // closing namespace 00108 00109 #endif