2016-06-15 23:48:41 +02:00
|
|
|
#ifndef COORDINATETRANSFORMATIONS_H_
|
|
|
|
#define COORDINATETRANSFORMATIONS_H_
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
#include <cstring>
|
|
|
|
|
2021-07-19 18:26:54 +02:00
|
|
|
#include "coordinatesConf.h"
|
2021-07-13 20:22:54 +02:00
|
|
|
#include "fsfw/timemanager/Clock.h"
|
2016-06-15 23:48:41 +02:00
|
|
|
|
|
|
|
class CoordinateTransformations {
|
2022-02-02 10:29:30 +01:00
|
|
|
public:
|
|
|
|
static void positionEcfToEci(const double* ecfCoordinates, double* eciCoordinates,
|
|
|
|
timeval* timeUTC = NULL);
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
static void velocityEcfToEci(const double* ecfVelocity, const double* ecfPosition,
|
|
|
|
double* eciVelocity, timeval* timeUTC = NULL);
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
static void positionEciToEcf(const double* eciCoordinates, double* ecfCoordinates,
|
|
|
|
timeval* timeUTC = NULL);
|
|
|
|
static void velocityEciToEcf(const double* eciVelocity, const double* eciPosition,
|
|
|
|
double* ecfVelocity, timeval* timeUTC = NULL);
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
static double getEarthRotationAngle(timeval timeUTC);
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
static void getEarthRotationMatrix(timeval timeUTC, double matrix[][3]);
|
2018-07-12 16:29:32 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
private:
|
|
|
|
CoordinateTransformations();
|
|
|
|
static void ecfToEci(const double* ecfCoordinates, double* eciCoordinates,
|
|
|
|
const double* ecfPositionIfCoordinatesAreVelocity, timeval* timeUTCin);
|
|
|
|
static void eciToEcf(const double* eciCoordinates, double* ecfCoordinates,
|
|
|
|
const double* eciPositionIfCoordinatesAreVelocity, timeval* timeUTCin);
|
2016-06-15 23:48:41 +02:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
static double getJuleanCenturiesTT(timeval timeUTC);
|
|
|
|
static void getTransMatrixECITOECF(timeval time, double Tfi[3][3]);
|
2016-06-15 23:48:41 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* COORDINATETRANSFORMATIONS_H_ */
|