Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.18 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: ANXTime.h,v 1.12 2014-02-25 15:36:32 cavm 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 00020 namespace EECFI 00021 { 00022 00026 class XO_DECL ANXTime: public CfiClass 00027 { 00028 friend class RelANXTime; 00029 friend class OrbitExtra; 00030 friend class Swath; 00031 00032 public: 00033 long orbit; 00034 long seconds; 00035 long microseconds; 00036 00038 ANXTime(); 00039 00041 ANXTime( long orbitIn, long secondsIn, long microsecIn ); 00042 00044 ANXTime( const OrbitId &orbitId, long orbitIn, long secondsIn, long microsecIn ) ; 00045 00047 ANXTime( const ANXTime &at ); 00048 00050 ~ANXTime() NOEXCEPT; 00051 00053 double orbitToTime( long timeRef ) const ; 00054 00062 void timeToOrbit( long timeRef, double time ) ; 00063 00065 void setBOM(); 00066 00068 void setEOM(); 00069 00071 OrbitalInfo getOrbitInfo() const ; 00072 00081 void orbitInfoConfigure( long item, long option ) const ; // AN-523 00082 00084 void adjustWithNodalPeriod() ; 00085 00086 // ANXTime arithmetic operators. 00087 00089 ANXTime operator+ ( double time ); 00091 ANXTime operator- ( double time ); 00093 double operator- ( const ANXTime &t ) const ; 00094 00095 // ANXTime comparisons. 00097 bool operator> ( const ANXTime &t ) const ; 00099 bool operator< ( const ANXTime &t ) const ; 00101 bool operator>= ( const ANXTime &t ) const ; 00103 bool operator<= ( const ANXTime &t ) const ; 00105 bool operator== ( const ANXTime &t ) const ; 00107 bool operator!= ( const ANXTime &t ) const ; 00108 00110 void operator= ( const ANXTime &t ); 00111 00112 protected: 00113 00114 00115 private: 00116 OrbitId orbitId; 00117 int isBOM_EOM; 00118 }; 00119 00120 } // closing namespace 00121 00122 #endif