Earth Observation Mission CFI Software Lib Software User Manual |
00001 //-------------------------------------------------------------------- 00002 // CVS Info: $Id: Coord.h,v 1.6 2009/04/13 13:30:08 expcfi Exp $ 00003 //-------------------------------------------------------------------- 00004 00005 #ifndef _EECFI_COORD_H 00006 #define _EECFI_COORD_H 00007 00008 00009 //--INCLUDE----------------------------------------------------------- 00010 #include "LibData.h" 00011 #include "CfiClass.h" 00012 #include "CfiError.h" 00013 #include "Geodetic.h" 00014 #include "ModelId.h" 00015 #include "Star.h" 00016 00017 //--NAMESPACES-------------------------------------------------------- 00018 using namespace std; 00019 00020 namespace EECFI 00021 { 00022 class StarData; // Dummy declaration to avoid crossed-include problems. 00026 class Coord: public CfiClass 00027 { 00028 friend class StateVector; 00029 friend class StarData; 00030 00031 public: 00032 00033 long cs; 00034 long deriv; 00035 double pos[3]; 00036 double vel[3]; 00037 double acc[3]; 00038 00040 Coord(); 00041 00043 Coord(long csRef, long der, 00044 double pos[3], 00045 double vel[3], 00046 double acc[3]); 00047 00049 ~Coord() {}; 00050 00053 Geodetic getGeodetic( const ModelId &modelId, long deriv) throw (CfiError); 00054 00056 void setGeodetic( const ModelId &modelId, long deriv, const Geodetic &geo ) throw (CfiError); 00057 00059 Kepler getKepler( const ModelId &modelId, long mode ) throw (CfiError); 00060 00062 void setKepler( const ModelId &modelId, const Kepler &kep ) throw (CfiError); 00063 00071 StarData getRaDec( const ModelId &modelId, long deriv ) throw (CfiError); 00072 00074 void topocentricToEf( const ModelId &modelId, long mode, long deriv, 00075 const Coord &topOrigin, 00076 const Topocentric &topo); 00077 00079 void efToTopocentric( const ModelId &modelId, long mode, long der, 00080 const Coord &topOrigin, 00081 Topocentric &topo); 00083 void operator=(Coord c); 00084 00085 protected: 00087 static long getCSEnum(long csIn); 00088 00089 private: 00090 00091 }; 00092 00093 } // closing namespace 00094 00095 #endif