File GroundStation.hpp¶
File List > astrea > trace > trace > platforms > ground > GroundStation.hpp
Go to the documentation of this file
#pragma once
#include <string>
#include <vector>
#include <astro/astro.fwd.hpp>
#include <astro/systems/CelestialBody.hpp>
#include <astro/time/Date.hpp>
#include <units/units.hpp>
#include <trace/platforms/ground/GroundPoint.hpp>
#include <trace/platforms/sensors/Sensor.hpp>
namespace astrea {
namespace trace {
class GroundStation : public GroundPoint, public SensorPlatform {
public:
GroundStation(
const astro::CelestialBody* parent,
const Angle& latitude,
const Angle& longitude,
const Distance& altitude = 0.0 * mp_units::si::unit_symbols::km,
const std::string name = "Unnammed",
const std::vector<SensorParameters>& sensors = {}
);
~GroundStation() = default;
std::size_t get_id() const;
std::string get_name() const;
astro::CartesianVector<Distance, astro::frames::earth::icrf> get_inertial_position(const astro::Date& date) const;
astro::CartesianVector<Velocity, astro::frames::earth::icrf> get_inertial_velocity(const astro::Date& date) const;
private:
std::string _name;
};
} // namespace trace
} // namespace astrea