Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.26 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 <CfiClass.h> 00014 #include <CfiError.h> 00015 #include <OrbitData.h> 00016 #include <OrbitId.h> 00017 00018 //--NAMESPACES-------------------------------------------------------- 00019 00020 namespace EECFI 00021 { 00025 class XO_DECL ANXTime : public CfiClass 00026 { 00027 friend class RelANXTime; 00028 friend class OrbitExtra; 00029 friend class Swath; 00030 00031 public: 00032 long orbit; 00033 long seconds; 00034 long microseconds; 00035 00037 ANXTime(); 00038 00040 ANXTime(long orbitIn, long secondsIn, long microsecIn); 00041 00043 ANXTime(const OrbitId& orbitId, long orbitIn, long secondsIn, long microsecIn); 00044 00047 ANXTime(const ANXTime& other); 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 00111 ANXTime& operator=(const ANXTime& other); 00112 00113 protected: 00114 private: 00115 OrbitId orbitId; 00116 int isBOM_EOM; 00117 }; 00118 00119 } // namespace EECFI 00120 00121 #endif