LRAUV  revA
MagneticVariation.h
Go to the documentation of this file.
1 
9 #ifndef MAGNETICVARIATION_H_
10 #define MAGNETICVARIATION_H_
11 
12 #include "data/Location.h"
13 #include "utils/AuvMath.h"
14 #include "utils/Timestamp.h"
15 
16 #include "../../Lib/libmagdev/include/libmagdev.h"
17 
24 {
25 public:
26  inline static float Degree( const Timestamp& timestamp, const float& latitudeDeg, const float& longitudeDeg, const float altitudeMeter = 0.0f )
27  {
28  return magdev( timestamp.asTimeT(), longitudeDeg, latitudeDeg, altitudeMeter / 1000.0f );
29  }
30  inline static float Radian( const Timestamp& timestamp, const float& latitudeRad, const float& longitudeRad, const float altitudeMeter = 0.0f )
31  {
32  return D2R( magdev( timestamp.asTimeT(), R2D( longitudeRad ), R2D( latitudeRad ), altitudeMeter / 1000.0f ) );
33  }
34 };
35 
36 #endif /*MAGNETICVARIATION_H_*/
time_t asTimeT() const
Definition: Timestamp.h:97
#define R2D(x)
A macro for converting radians to degrees.
Definition: AuvMath.h:44
#define D2R(x)
A macro for converting degrees to radians.
Definition: AuvMath.h:40
Contains the AuvMath class declaration.
static float Degree(const Timestamp &timestamp, const float &latitudeDeg, const float &longitudeDeg, const float altitudeMeter=0.0f)
Definition: MagneticVariation.h:26
Contains the Timestamp and Timespan class declarations.
static float Radian(const Timestamp &timestamp, const float &latitudeRad, const float &longitudeRad, const float altitudeMeter=0.0f)
Definition: MagneticVariation.h:30
Contains the Location class definition.
Represents absolute times.
Definition: Timestamp.h:31
Wraps libmagdev.
Definition: MagneticVariation.h:23