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.h
Go to the documentation of this file.
1 #ifndef PPRZ_GEODETIC_H
2 #define PPRZ_GEODETIC_H
3 
4 
5 #define ENU_OF_TO_NED(_po, _pi) { \
6  (_po).x = (_pi).y; \
7  (_po).y = (_pi).x; \
8  (_po).z = -(_pi).z; \
9  }
10 
11 #define LLA_ASSIGN(_pos,_lat,_lon,_alt){ \
12  (_pos).lat = (_lat); \
13  (_pos).lon = (_lon); \
14  (_pos).alt = (_alt); \
15  }
16 
17 #define LLA_COPY(_pos1,_pos2){ \
18  (_pos1).lat = (_pos2).lat; \
19  (_pos1).lon = (_pos2).lon; \
20  (_pos1).alt = (_pos2).alt; \
21 }
22 
23 #define LTP_DEF_COPY(_def1,_def2){ \
24  LLA_COPY((_def1).lla, (_def2).lla); \
25  VECT3_COPY((_def1).ecef, (_def2).ecef); \
26  RMAT_COPY((_def1).ltp_of_ecef, (_def2).ltp_of_ecef); \
27  (_def1).hmsl = (_def2).hmsl; \
28  }
29 
30 #define UTM_COPY(_u1, _u2) { \
31  (_u1).north = (_u2).north; \
32  (_u1).east = (_u2).east; \
33  (_u1).alt = (_u2).alt; \
34  (_u1).zone = (_u2).zone; \
35  }
36 
37 
38 #define ENU_OF_UTM_DIFF(_pos, _utm1, _utm2) { \
39  (_pos).x = (_utm1).east - (_utm2).east; \
40  (_pos).y = (_utm1).north - (_utm2).north; \
41  (_pos).z = (_utm1).alt - (_utm2).alt; \
42 }
43 
44 #define NED_OF_UTM_DIFF(_pos, _utm1, _utm2) { \
45  (_pos).x = (_utm1).north - (_utm2).north; \
46  (_pos).y = (_utm1).east - (_utm2).east; \
47  (_pos).z = -(_utm1).alt + (_utm2).alt; \
48 }
49 
50 
51 #endif /* PPRZ_GEODETIC_H */