File Viewer.hpp¶
File List > astrea > trace > trace > platforms > vehicles > Viewer.hpp
Go to the documentation of this file
#pragma once
#include <string>
#include <astro/astro.fwd.hpp>
#include <astro/platforms/vehicles/Spacecraft.hpp>
#include <astro/state/State.hpp>
#include <astro/state/orbital_data_formats/instances/GeneralPerturbations.hpp>
#include <astro/time/Date.hpp>
#include <astro/types/typedefs.hpp>
#include <trace/platforms/AccessObject.hpp>
#include <trace/platforms/sensors/Sensor.hpp>
namespace astrea {
namespace trace {
class Viewer : public astro::Spacecraft, public AccessObject, public SensorPlatform {
public:
Viewer() = default;
Viewer(const astro::GeneralPerturbations& gp, const astro::AstrodynamicsSystem& system) :
Spacecraft(gp, system),
AccessObject()
{
}
~Viewer() = default;
std::size_t get_id() const { return Spacecraft::get_id(); }
std::string get_name() const { return Spacecraft::get_name(); }
Mass get_mass() const override { return Spacecraft::get_mass(); }
astro::RadiusVector<astro::frames::earth::icrf> get_inertial_position(const astro::Date& date) const
{
return Spacecraft::get_inertial_position(date);
}
astro::VelocityVector<astro::frames::earth::icrf> get_inertial_velocity(const astro::Date& date) const
{
return Spacecraft::get_inertial_velocity(date);
}
// This is so stupid. Why C++ standards committee
using SensorPlatform::attach_payload;
using SensorPlatform::get_payloads;
using Spacecraft::attach_payload;
using Spacecraft::get_payloads;
};
} // namespace trace
} // namespace astrea