[math] geodetic: RMat instead of Mat33 for ltp_of_ecef

This commit is contained in:
Felix Ruess
2014-09-10 21:37:26 +02:00
parent 8d52fef350
commit 43d563f9e2
5 changed files with 7 additions and 7 deletions
+1 -1
View File
@@ -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
};
+2 -2
View File
@@ -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];
+1 -1
View File
@@ -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
};
+1 -1
View File
@@ -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));
+2 -2
View File
@@ -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);