Paparazzi UAS  v5.0.5_stable-7-g4b8bbb7
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
pprz_geodetic_double.c File Reference
#include "pprz_geodetic_double.h"
#include <math.h>
#include "std.h"
#include "math/pprz_geodetic_utm.h"
+ Include dependency graph for pprz_geodetic_double.c:

Go to the source code of this file.

Macros

#define CI(v)
 
#define CExp(v)
 
#define CSin(v)
 

Functions

void ltp_def_from_ecef_d (struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void lla_of_ecef_d (struct LlaCoor_d *lla, struct EcefCoor_d *ecef)
 
void ecef_of_lla_d (struct EcefCoor_d *ecef, struct LlaCoor_d *lla)
 
void enu_of_ecef_point_d (struct EnuCoor_d *enu, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ned_of_ecef_point_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void enu_of_ecef_vect_d (struct EnuCoor_d *enu, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ned_of_ecef_vect_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ecef_of_enu_point_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct EnuCoor_d *enu)
 
void ecef_of_ned_point_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct NedCoor_d *ned)
 
void ecef_of_enu_vect_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct EnuCoor_d *enu)
 
void ecef_of_ned_vect_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct NedCoor_d *ned)
 
double gc_of_gd_lat_d (double gd_lat, double hmsl)
 
static double isometric_latitude_d (double phi, double e)
 
static double isometric_latitude_fast_d (double phi)
 
static double inverse_isometric_latitude_d (double lat, double e, double epsilon)
 
void lla_of_utm_d (struct LlaCoor_d *lla, struct UtmCoor_d *utm)
 

Macro Definition Documentation

#define CExp (   v)
Value:
{ \
double e = exp(v.x); \
v.x = e*cosf(v.y); \
v.y = e*sinf(v.y); \
}

Definition at line 174 of file pprz_geodetic_double.c.

#define CI (   v)
Value:
{ \
double tmp = v.x; \
v.x = -v.y; \
v.y = tmp; \
}

Definition at line 168 of file pprz_geodetic_double.c.

#define CSin (   v)
Value:
{ \
CI(v); \
struct DoubleVect2 vstar = {-v.x, -v.y}; \
CExp(v); \
CExp(vstar); \
VECT2_SUB(v, vstar); \
VECT2_SMUL(v, v, -0.5); \
CI(v); \
}
#define VECT2_SUB(_a, _b)
Definition: pprz_algebra.h:55
#define CI(v)
#define CExp(v)
#define VECT2_SMUL(_vo, _vi, _s)
Definition: pprz_algebra.h:73

Definition at line 180 of file pprz_geodetic_double.c.

Referenced by lla_of_utm_d().

Function Documentation

void ecef_of_enu_point_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct EnuCoor_d enu 
)

Definition at line 109 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, LtpDef_d::ltp_of_ecef, MAT33_VECT3_TRANSP_MUL, and VECT3_ADD.

Referenced by ecef_of_ned_point_d().

+ Here is the caller graph for this function:

void ecef_of_enu_vect_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct EnuCoor_d enu 
)

Definition at line 120 of file pprz_geodetic_double.c.

References LtpDef_d::ltp_of_ecef, and MAT33_VECT3_TRANSP_MUL.

Referenced by ecef_of_ned_vect_d().

+ Here is the caller graph for this function:

void ecef_of_lla_d ( struct EcefCoor_d ecef,
struct LlaCoor_d lla 
)

Definition at line 66 of file pprz_geodetic_double.c.

References LlaCoor_d::alt, LlaCoor_d::lat, LlaCoor_d::lon, EcefCoor_d::x, EcefCoor_d::y, and EcefCoor_d::z.

Referenced by ecef_of_lla_i(), and gps_ardrone2_parse().

+ Here is the caller graph for this function:

void ecef_of_ned_point_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct NedCoor_d ned 
)

Definition at line 114 of file pprz_geodetic_double.c.

References ecef_of_enu_point_d(), and ENU_OF_TO_NED.

+ Here is the call graph for this function:

void ecef_of_ned_vect_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct NedCoor_d ned 
)

Definition at line 124 of file pprz_geodetic_double.c.

References ecef_of_enu_vect_d(), and ENU_OF_TO_NED.

+ Here is the call graph for this function:

void enu_of_ecef_point_d ( struct EnuCoor_d enu,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 85 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, LtpDef_d::ltp_of_ecef, MAT33_VECT3_MUL, and VECT3_DIFF.

Referenced by ned_of_ecef_point_d().

+ Here is the caller graph for this function:

void enu_of_ecef_vect_d ( struct EnuCoor_d enu,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 97 of file pprz_geodetic_double.c.

References LtpDef_d::ltp_of_ecef, and MAT33_VECT3_MUL.

Referenced by ned_of_ecef_vect_d().

+ Here is the caller graph for this function:

double gc_of_gd_lat_d ( double  gd_lat,
double  hmsl 
)

Definition at line 131 of file pprz_geodetic_double.c.

References c2.

static double inverse_isometric_latitude_d ( double  lat,
double  e,
double  epsilon 
)
inlinestatic

Definition at line 151 of file pprz_geodetic_double.c.

Referenced by lla_of_utm_d().

+ Here is the caller graph for this function:

static double isometric_latitude_d ( double  phi,
double  e 
)
inlinestatic

Definition at line 143 of file pprz_geodetic_double.c.

static double isometric_latitude_fast_d ( double  phi)
inlinestatic

Definition at line 147 of file pprz_geodetic_double.c.

Referenced by lla_of_utm_d().

+ Here is the caller graph for this function:

void lla_of_ecef_d ( struct LlaCoor_d lla,
struct EcefCoor_d ecef 
)

Definition at line 31 of file pprz_geodetic_double.c.

References LlaCoor_d::alt, c, G, LlaCoor_d::lat, LlaCoor_d::lon, Q, EcefCoor_d::x, EcefCoor_d::y, and EcefCoor_d::z.

Referenced by lla_of_ecef_i(), and ltp_def_from_ecef_d().

+ Here is the caller graph for this function:

void ltp_def_from_ecef_d ( struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 7 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, LlaCoor_d::lat, LtpDef_d::lla, lla_of_ecef_d(), LlaCoor_d::lon, LtpDef_d::ltp_of_ecef, DoubleMat33::m, and VECT3_COPY.

+ Here is the call graph for this function:

void ned_of_ecef_point_d ( struct NedCoor_d ned,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 91 of file pprz_geodetic_double.c.

References enu_of_ecef_point_d(), and ENU_OF_TO_NED.

+ Here is the call graph for this function:

void ned_of_ecef_vect_d ( struct NedCoor_d ned,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 101 of file pprz_geodetic_double.c.

References enu_of_ecef_vect_d(), and ENU_OF_TO_NED.

+ Here is the call graph for this function: