00001 #pragma ident "$Id: PvtStore.hpp 2535 2011-03-25 15:58:06Z ccutlip $"
00002
00008 #ifndef GPSTK_PVTSTORE_HPP
00009 #define GPSTK_PVTSTORE_HPP
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include "EpochDataStore.hpp"
00036 #include "Triple.hpp"
00037
00038 namespace gpstk
00039 {
00042
00047 class PvtStore : public EpochDataStore
00048 {
00049 public:
00050 enum ReferenceFrame
00051 {
00052 Unknown =0,
00053 ITRF,
00054 ICRF
00055 };
00056
00057 typedef struct PvtData
00058 {
00059 Triple position;
00060 Triple velocity;
00061 double dtime;
00062 double ddtime;
00063
00064 PvtData() : dtime(0.0), ddtime(0.0){}
00065
00066 PvtData(Triple pos, Triple vel, double dt = 0.0, double ddt = 0.0)
00067 : position(pos), velocity(vel), dtime(dt), ddtime(ddt)
00068 {}
00069
00070 } Pvt;
00071
00073 PvtStore(std::string desc = "PvtData", ReferenceFrame frame = Unknown)
00074 : dataDesc(desc), dataFrame(frame)
00075 {}
00076
00078 virtual ~PvtStore() {}
00079
00081 void addPvt(const DayTime& time,const Pvt& vd)
00082 throw();
00083
00090 Pvt getPvt(const DayTime& t) const
00091 throw(InvalidRequest);
00092
00094 ReferenceFrame referenceFrame()
00095 { return dataFrame; }
00096
00097 protected:
00098
00100 ReferenceFrame dataFrame;
00101
00103 std::string dataDesc;
00104
00105 };
00106
00107
00108 std::ostream& operator<<(std::ostream& s, const PvtStore::Pvt& d);
00109
00110
00111
00112 }
00113
00114
00115 #endif // GPSTK_PVTSTORE_HPP
00116
00117
00118
00119
00120
00121
00122