satdump/src-core/common/tracking/tracking.h

31 lines
No EOL
924 B
C++

#pragma once
#include "tle.h"
#include "libs/predict/predict.h"
#include "common/geodetic/geodetic_coordinates.h"
#include "interpolator.h"
namespace satdump
{
class SatelliteTracker
{
private:
predict_orbital_elements_t *satellite_object = nullptr;
predict_position satellite_orbit;
LinearInterpolator *interp_x = nullptr;
LinearInterpolator *interp_y = nullptr;
LinearInterpolator *interp_z = nullptr;
LinearInterpolator *interp_vx = nullptr;
LinearInterpolator *interp_vy = nullptr;
LinearInterpolator *interp_vz = nullptr;
public:
SatelliteTracker(TLE tle); // From TLE
SatelliteTracker(nlohmann::json ephem); // From Ephemeris
~SatelliteTracker();
geodetic::geodetic_coords_t get_sat_position_at(double utc_time);
predict_position get_sat_position_at_raw(double utc_time);
};
}