37 #if USE_SINGLE_PRECISION_TRIG
42 #else // use double precision by default
49 ltp_of_ecef->
m[0] = -sin_lon;
50 ltp_of_ecef->
m[1] = cos_lon;
51 ltp_of_ecef->
m[2] = 0;
54 ltp_of_ecef->
m[5] = cos_lat;
57 ltp_of_ecef->
m[8] = sin_lat;
366 #if USE_SINGLE_PRECISION_LLA_ECEF
375 #else // use double precision by default
395 #if USE_SINGLE_PRECISION_LLA_ECEF
404 #else // use double precision by default
425 #if USE_SINGLE_PRECISION_LLA_UTM
435 #else // use double precision by default
454 #if USE_SINGLE_PRECISION_LLA_UTM
463 #else // use double precision by default
void ecef_of_enu_pos_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
Convert a local ENU position to ECEF.
#define INT32_VECT3_LSHIFT(_o, _i, _l)
#define ECEF_BFP_OF_REAL(_o, _i)
#define VECT3_ADD(_a, _b)
#define ECEF_DOUBLE_OF_BFP(_o, _i)
void ecef_of_ned_point_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct NedCoor_i *ned)
Convert a point in local NED to ECEF.
definition of the local (flat earth) coordinate system
#define HIGH_RES_TRIG_FRAC
void ecef_of_enu_point_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
Convert a point in local ENU to ECEF.
void enu_of_ecef_pos_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct EcefCoor_i *ecef)
Convert a ECEF position to local ENU.
vector in EarthCenteredEarthFixed coordinates
vector in EarthCenteredEarthFixed coordinates
struct Int32RMat ltp_of_ecef
Rotation matrix.
position in UTM coordinates Units: meters
#define UTM_DOUBLE_OF_BFP(_o, _i)
#define VECT3_COPY(_a, _b)
#define VECT3_DIFF(_c, _a, _b)
#define INT32_VECT3_RSHIFT(_o, _i, _r)
vector in Latitude, Longitude and Altitude
#define UTM_FLOAT_OF_BFP(_o, _i)
position in UTM coordinates Units: meters
#define RAD_OF_EM7DEG(_r)
vector in Latitude, Longitude and Altitude
void ltp_def_from_lla_i(struct LtpDef_i *def, struct LlaCoor_i *lla)
void ned_of_ecef_vect_i(struct NedCoor_i *ned, struct LtpDef_i *def, struct EcefCoor_i *ecef)
Rotate a vector from ECEF to NED.
struct EcefCoor_i ecef
Reference point in ecef.
#define ENU_OF_TO_NED(_po, _pi)
Paparazzi double-precision floating point math for geodetic calculations.
uint8_t zone
UTM zone number.
Paparazzi floating point math for geodetic calculations.
#define UTM_BFP_OF_REAL(_o, _i)
#define BFP_OF_REAL(_vr, _frac)
vector in Latitude, Longitude and Altitude
void ned_of_ecef_pos_i(struct NedCoor_i *ned, struct LtpDef_i *def, struct EcefCoor_i *ecef)
Convert a ECEF position to local NED.
void lla_of_utm_i(struct LlaCoor_i *lla, struct UtmCoor_i *utm)
Convert a UTM to LLA.
void lla_of_utm_f(struct LlaCoor_f *lla, struct UtmCoor_f *utm)
#define VECT3_SDIV(_vo, _vi, _s)
void enu_of_ecef_point_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct EcefCoor_i *ecef)
Convert a point from ECEF to local ENU.
struct LlaCoor_i lla
Reference point in lla.
int32_t lon
in degrees*1e7
#define LLA_DOUBLE_OF_BFP(_o, _i)
void ecef_of_lla_f(struct EcefCoor_f *out, struct LlaCoor_f *in)
Paparazzi fixed point math for geodetic calculations.
void utm_of_lla_i(struct UtmCoor_i *utm, struct LlaCoor_i *lla)
Convert a LLA to UTM.
uint8_t zone
UTM zone number.
vector in EarthCenteredEarthFixed coordinates
void lla_of_ecef_d(struct LlaCoor_d *lla, struct EcefCoor_d *ecef)
void lla_of_utm_d(struct LlaCoor_d *lla, struct UtmCoor_d *utm)
void ned_of_lla_pos_i(struct NedCoor_i *ned, struct LtpDef_i *def, struct LlaCoor_i *lla)
Convert a point from LLA to local NED.
#define LLA_COPY(_pos1, _pos2)
Constants UTM (Mercator) projections.
uint8_t zone
UTM zone number.
void ecef_of_ned_pos_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct NedCoor_i *ned)
Convert a local NED position to ECEF.
#define VECT3_SMUL(_vo, _vi, _s)
void ned_of_lla_point_i(struct NedCoor_i *ned, struct LtpDef_i *def, struct LlaCoor_i *lla)
Convert a point from LLA to local NED.
vector in East North Up coordinates
vector in North East Down coordinates
void ned_of_ecef_point_i(struct NedCoor_i *ned, struct LtpDef_i *def, struct EcefCoor_i *ecef)
Convert a point from ECEF to local NED.
void enu_of_lla_pos_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct LlaCoor_i *lla)
Convert a point from LLA to local ENU.
void enu_of_ecef_vect_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct EcefCoor_i *ecef)
Rotate a vector from ECEF to ENU.
#define LLA_BFP_OF_REAL(_o, _i)
void ecef_of_lla_i(struct EcefCoor_i *out, struct LlaCoor_i *in)
Convert a LLA to ECEF.
void utm_of_lla_d(struct UtmCoor_d *utm, struct LlaCoor_d *lla)
void ltp_of_ecef_rmat_from_lla_i(struct Int32RMat *ltp_of_ecef, struct LlaCoor_i *lla)
void lla_of_ecef_i(struct LlaCoor_i *out, struct EcefCoor_i *in)
Convert a ECEF to LLA.
#define ECEF_FLOAT_OF_BFP(_o, _i)
void enu_of_lla_point_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct LlaCoor_i *lla)
Convert a point from LLA to local ENU.
int32_t lat
in degrees*1e7
void ecef_of_lla_d(struct EcefCoor_d *ecef, struct LlaCoor_d *lla)
void lla_of_ecef_f(struct LlaCoor_f *out, struct EcefCoor_f *in)
void ned_of_lla_vect_i(struct NedCoor_i *ned, struct LtpDef_i *def, struct LlaCoor_i *lla)
void enu_of_lla_vect_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct LlaCoor_i *lla)
void ecef_of_enu_vect_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
Rotate a vector from ENU to ECEF.
#define LLA_FLOAT_OF_BFP(_o, _i)
void ltp_def_from_ecef_i(struct LtpDef_i *def, struct EcefCoor_i *ecef)
void utm_of_lla_f(struct UtmCoor_f *utm, struct LlaCoor_f *lla)
Paparazzi fixed point algebra.
position in UTM coordinates
void ecef_of_ned_vect_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct NedCoor_i *ned)
Rotate a vector from NED to ECEF.