37 #if USE_SINGLE_PRECISION_TRIG
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;
95 const int64_t tmpx = (int64_t)def->
ltp_of_ecef.
m[0] * delta.
x +
99 const int64_t tmpy = (int64_t)def->
ltp_of_ecef.
m[3] * delta.
x +
103 const int64_t tmpz = (int64_t)def->
ltp_of_ecef.
m[6] * delta.
x +
165 const int64_t tmpx = (int64_t)def->
ltp_of_ecef.
m[0] * ecef->
x +
169 const int64_t tmpy = (int64_t)def->
ltp_of_ecef.
m[3] * ecef->
x +
173 const int64_t tmpz = (int64_t)def->
ltp_of_ecef.
m[6] * ecef->
x +
202 const int64_t tmpx = (int64_t)def->
ltp_of_ecef.
m[0] * enu->
x +
207 const int64_t tmpy = (int64_t)def->
ltp_of_ecef.
m[1] * enu->
x +
213 const int64_t tmpz = (int64_t)def->
ltp_of_ecef.
m[5] * enu->
y +
366 #if USE_SINGLE_PRECISION_LLA_ECEF
395 #if USE_SINGLE_PRECISION_LLA_ECEF
425 #if USE_SINGLE_PRECISION_LLA_UTM
454 #if USE_SINGLE_PRECISION_LLA_UTM
#define VECT3_SDIV(_vo, _vi, _s)
#define VECT3_SMUL(_vo, _vi, _s)
#define VECT3_COPY(_a, _b)
#define VECT3_DIFF(_c, _a, _b)
#define VECT3_ADD(_a, _b)
#define INT32_VECT3_RSHIFT(_o, _i, _r)
#define INT32_VECT3_LSHIFT(_o, _i, _l)
#define BFP_OF_REAL(_vr, _frac)
uint8_t zone
UTM zone number.
void lla_of_utm_d(struct LlaCoor_d *lla, struct UtmCoor_d *utm)
void lla_of_ecef_d(struct LlaCoor_d *lla, struct EcefCoor_d *ecef)
void utm_of_lla_d(struct UtmCoor_d *utm, struct LlaCoor_d *lla)
void ecef_of_lla_d(struct EcefCoor_d *ecef, struct LlaCoor_d *lla)
vector in EarthCenteredEarthFixed coordinates
vector in Latitude, Longitude and Altitude
position in UTM coordinates Units: meters
#define LLA_COPY(_pos1, _pos2)
#define ENU_OF_TO_NED(_po, _pi)
int32_t lat
in degrees*1e7
struct Int32RMat ltp_of_ecef
Rotation matrix.
uint8_t zone
UTM zone number.
struct LlaCoor_i lla
Reference point in lla.
struct EcefCoor_i ecef
Reference point in ecef.
int32_t lon
in degrees*1e7
#define UTM_DOUBLE_OF_BFP(_o, _i)
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 RAD_OF_EM7DEG(_r)
#define ECEF_FLOAT_OF_BFP(_o, _i)
void ecef_of_lla_i(struct EcefCoor_i *out, struct LlaCoor_i *in)
Convert a LLA to ECEF.
void lla_of_utm_i(struct LlaCoor_i *lla, struct UtmCoor_i *utm)
Convert a UTM to LLA.
#define ECEF_BFP_OF_REAL(_o, _i)
#define LLA_DOUBLE_OF_BFP(_o, _i)
#define LLA_BFP_OF_REAL(_o, _i)
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 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 ltp_def_from_ecef_i(struct LtpDef_i *def, struct EcefCoor_i *ecef)
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.
void ltp_of_ecef_rmat_from_lla_i(struct Int32RMat *ltp_of_ecef, struct LlaCoor_i *lla)
#define HIGH_RES_TRIG_FRAC
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.
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.
#define UTM_BFP_OF_REAL(_o, _i)
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 ecef_of_enu_vect_i(struct EcefCoor_i *ecef, struct LtpDef_i *def, struct EnuCoor_i *enu)
Rotate a vector from ENU to ECEF.
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.
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.
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.
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.
#define ECEF_DOUBLE_OF_BFP(_o, _i)
#define LLA_FLOAT_OF_BFP(_o, _i)
void utm_of_lla_i(struct UtmCoor_i *utm, struct LlaCoor_i *lla)
Convert a LLA to UTM.
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_lla_pos_i(struct EnuCoor_i *enu, struct LtpDef_i *def, struct LlaCoor_i *lla)
Convert a point from LLA to local ENU.
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.
void lla_of_ecef_i(struct LlaCoor_i *out, struct EcefCoor_i *in)
Convert a ECEF to LLA.
void ltp_def_from_lla_i(struct LtpDef_i *def, struct LlaCoor_i *lla)
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 UTM_FLOAT_OF_BFP(_o, _i)
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.
vector in EarthCenteredEarthFixed coordinates
vector in East North Up coordinates
vector in Latitude, Longitude and Altitude
definition of the local (flat earth) coordinate system
vector in North East Down coordinates
position in UTM coordinates
Paparazzi fixed point algebra.
Paparazzi double-precision floating point math for geodetic calculations.
void lla_of_utm_f(struct LlaCoor_f *lla, struct UtmCoor_f *utm)
void ecef_of_lla_f(struct EcefCoor_f *out, struct LlaCoor_f *in)
void lla_of_ecef_f(struct LlaCoor_f *out, struct EcefCoor_f *in)
void utm_of_lla_f(struct UtmCoor_f *utm, struct LlaCoor_f *lla)
Paparazzi floating point math for geodetic calculations.
uint8_t zone
UTM zone number.
vector in EarthCenteredEarthFixed coordinates
vector in Latitude, Longitude and Altitude
position in UTM coordinates Units: meters
Paparazzi fixed point math for geodetic calculations.
Constants UTM (Mercator) projections.
int int32_t
Typedef defining 32 bit int type.