Index: trunk/include/FlairCore/GpsData.h
===================================================================
--- trunk/include/FlairCore/GpsData.h	(revision 27)
+++ trunk/include/FlairCore/GpsData.h	(revision 30)
@@ -14,9 +14,10 @@
 
 #include <io_data.h>
-#include <IODataElement.h>
-#include <Vector3D.h>
 
 namespace flair {
 namespace core {
+
+  class IODataElement;
+  class Vector3D;
 
 /*! \class GpsData
@@ -35,5 +36,11 @@
     std::string GetDescription() const { return "gps data"; }
     size_t GetSize() const {
-      return 0;
+      size_t size = 0;
+      size += 2*doubleType.GetSize(); // Latitude, Longitude
+      size += floatType.GetSize(); // Altitude
+      size += UInt8Type.GetSize(); // NumberOfSatellites
+      size += UInt8Type.GetSize(); // FixQuality_t
+      size += 5*floatType.GetSize();//e,n,u,ve,vn
+      return size;
     }
 
@@ -46,6 +53,31 @@
   */
   typedef enum {
-
+    Latitude /*! latitude in degrees */,
+    Longitude /*! longitude in degrees */,
+    Altitude /*! altitude */,
+    NumberOfSatellites /*! number of satellites */,
+    FixQuality /*! fix quality */,
+    East /*! east */,
+    North /*! north */,
+    Up /*! up */,
+    EastVelocity /*! east velocity*/,
+    NorthVelocity /*! north velocity*/,
   } PlotableData_t;
+
+  /*!
+  \enum FixQuality_t
+  \brief Fix qualty indicators
+  */
+  enum class FixQuality_t : uint8_t {
+    Invalid = 0,    /*!< invalid */
+    Gps = 1,        /*!< Gps */
+    DGps = 2,       /*!< Differential Gps */
+    Pps = 3,        /*!< Pps */
+    Rtk = 4,        /*!< RTK */
+    RtkFloat = 5,   /*!< RTK float */
+    Estimated = 6,  /*!< Estimated */
+    Manual = 7,     /*!< Manual */
+    Simulation = 8, /*!< Simulation */
+  };
 
   /*!
@@ -77,4 +109,110 @@
   IODataElement *Element(PlotableData_t data_type) const;
 
+  /*!
+  * \brief Get latitude, longitude and altitude
+  *
+  * This method is mutex protected.
+  *
+  * \param latitude latitude
+  * \param longitude longitude
+  * \param altitude altitude
+  *
+  */
+  void GetLla(double &latitude, double &longitude,
+                          float &altitude) const;
+
+  /*!
+  * \brief Set latitude, longitude and altitude
+  *
+  * This method is mutex protected.
+  *
+  * \param latitude latitude
+  * \param longitude longitude
+  * \param altitude altitude
+  *
+  */
+  void SetLla(double latitude,double longitude,
+                          float altitude);
+
+
+  /*!
+  * \brief Get east, north and up
+  *
+  * This method is mutex protected.
+  *
+  * \param east east
+  * \param north north
+  * \param up up
+  *
+  */
+  void GetEnu(float &east, float &north,
+                          float &up) const;
+
+  /*!
+  * \brief Set east, north and up
+  *
+  * This method is mutex protected.
+  *
+  * \param east east
+  * \param north north
+  * \param up up
+  *
+  */
+  void SetEnu(float east, float north,
+                          float up);
+
+  /*!
+  * \brief Get east and north velocities
+  *
+  * This method is mutex protected.
+  *
+  * \param eastVelocity east velocity
+  * \param northVelocity north velocity
+  *
+  */
+  void GetVelocity(float &eastVelocity, float &northVelocity) const;
+
+  /*!
+  * \brief Set east and north velocities
+  *
+  * This method is mutex protected.
+  *
+  * \param eastVelocity east velocity
+  * \param northVelocity north velocity
+  *
+  */
+  void SetVelocity(float eastVelocity, float northVelocity);
+
+  /*!
+  * \brief Get number of satellites
+  *
+  * \return number of satellites
+  *
+  */
+  uint8_t GetNumberOfSatellites(void) const;
+
+  /*!
+  * \brief Set number of satellites
+  *
+  * \param numberOfSatellites number of satellites
+  *
+  */
+  void SetNumberOfSatellites(uint8_t numberOfSatellites);
+
+  /*!
+  * \brief Get fix quality
+  *
+  * \return fix quality
+  *
+  */
+  FixQuality_t GetFixQuality(void) const;
+
+  /*!
+  * \brief Set fix quality
+  *
+  * \param fixQuality fix quality
+  *
+  */
+  void SetFixQuality(FixQuality_t fixQuality);
 
   Type const &GetDataType() const { return dataType; }
@@ -91,8 +229,11 @@
   void CopyDatas(char *dst) const;
 
-
-
   void Queue(char **dst, const void *src, size_t size) const;
   Type dataType;
+  double latitude,longitude;
+  float altitude;
+  uint8_t numberOfSatellites;
+  FixQuality_t fixQuality;
+  float east,north,up,eastVelocity,northVelocity;
 };
 
