mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-23 04:45:37 +08:00
[math] geodetic: RMat instead of Mat33 for ltp_of_ecef
This commit is contained in:
@@ -93,7 +93,7 @@ struct UtmCoor_d {
|
||||
struct LtpDef_d {
|
||||
struct EcefCoor_d ecef; ///< origin of local frame in ECEF
|
||||
struct LlaCoor_d lla; ///< origin of local frame in LLA
|
||||
struct DoubleMat33 ltp_of_ecef; ///< rotation from ECEF to local frame
|
||||
struct DoubleRMat ltp_of_ecef; ///< rotation from ECEF to local frame
|
||||
double hmsl; ///< height in meters above mean sea level
|
||||
};
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ void ned_of_lla_point_f(struct NedCoor_f* ned, struct LtpDef_f* def, struct LlaC
|
||||
*/
|
||||
void ecef_of_enu_point_f(struct EcefCoor_f* ecef, struct LtpDef_f* def, struct EnuCoor_f* enu) {
|
||||
/* convert used floats to double */
|
||||
struct DoubleMat33 ltp_of_ecef_d;
|
||||
struct DoubleRMat ltp_of_ecef_d;
|
||||
ltp_of_ecef_d.m[0] = (double) def->ltp_of_ecef.m[0];
|
||||
ltp_of_ecef_d.m[1] = (double) def->ltp_of_ecef.m[1];
|
||||
ltp_of_ecef_d.m[2] = (double) def->ltp_of_ecef.m[2];
|
||||
@@ -152,7 +152,7 @@ void ecef_of_ned_point_f(struct EcefCoor_f* ecef, struct LtpDef_f* def, struct N
|
||||
|
||||
void ecef_of_enu_vect_f(struct EcefCoor_f* ecef, struct LtpDef_f* def, struct EnuCoor_f* enu) {
|
||||
/* convert used floats to double */
|
||||
struct DoubleMat33 ltp_of_ecef_d;
|
||||
struct DoubleRMat ltp_of_ecef_d;
|
||||
ltp_of_ecef_d.m[0] = (double) def->ltp_of_ecef.m[0];
|
||||
ltp_of_ecef_d.m[1] = (double) def->ltp_of_ecef.m[1];
|
||||
ltp_of_ecef_d.m[2] = (double) def->ltp_of_ecef.m[2];
|
||||
|
||||
@@ -93,7 +93,7 @@ struct UtmCoor_f {
|
||||
struct LtpDef_f {
|
||||
struct EcefCoor_f ecef; ///< origin of local frame in ECEF
|
||||
struct LlaCoor_f lla; ///< origin of local frame in LLA
|
||||
struct FloatMat33 ltp_of_ecef; ///< rotation from ECEF to local frame
|
||||
struct FloatRMat ltp_of_ecef; ///< rotation from ECEF to local frame
|
||||
float hmsl; ///< Height above mean sea level in meters
|
||||
};
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "pprz_algebra_int.h"
|
||||
|
||||
|
||||
void ltp_of_ecef_rmat_from_lla_i(struct Int32Mat33* ltp_of_ecef, struct LlaCoor_i* lla) {
|
||||
void ltp_of_ecef_rmat_from_lla_i(struct Int32RMat* ltp_of_ecef, struct LlaCoor_i* lla) {
|
||||
|
||||
#if USE_DOUBLE_PRECISION_TRIG
|
||||
int32_t sin_lat = rint(BFP_OF_REAL(sin(RAD_OF_EM7DEG((double)lla->lat)), HIGH_RES_TRIG_FRAC));
|
||||
|
||||
@@ -95,11 +95,11 @@ struct UtmCoor_i {
|
||||
struct LtpDef_i {
|
||||
struct EcefCoor_i ecef; ///< Reference point in ecef
|
||||
struct LlaCoor_i lla; ///< Reference point in lla
|
||||
struct Int32Mat33 ltp_of_ecef; ///< Rotation matrix
|
||||
struct Int32RMat ltp_of_ecef; ///< Rotation matrix
|
||||
int32_t hmsl; ///< Height above mean sea level in mm
|
||||
};
|
||||
|
||||
extern void ltp_of_ecef_rmat_from_lla_i(struct Int32Mat33* ltp_of_ecef, struct LlaCoor_i* lla);
|
||||
extern void ltp_of_ecef_rmat_from_lla_i(struct Int32RMat* ltp_of_ecef, struct LlaCoor_i* lla);
|
||||
extern void ltp_def_from_ecef_i(struct LtpDef_i* def, struct EcefCoor_i* ecef);
|
||||
extern void ltp_def_from_lla_i(struct LtpDef_i* def, struct LlaCoor_i* lla);
|
||||
extern void lla_of_ecef_i(struct LlaCoor_i* out, struct EcefCoor_i* in);
|
||||
|
||||
Reference in New Issue
Block a user