Skip to content

File FrameReference.hpp

File List > astrea > astro > astro > frames > FrameReference.hpp

Go to the documentation of this file

#pragma once

#include <string>

#include <units/units.hpp>

#include <astro/astro.fwd.hpp>
#include <astro/frames/instances/body_centered_inertial_frames.hpp>
#include <astro/types/typedefs.hpp>

namespace astrea {
namespace astro {

class FrameReference {
  public:
    FrameReference() = default;

    virtual ~FrameReference() = default;

    virtual std::string get_name() const = 0; 

    virtual CartesianVector<Distance, frames::earth::icrf> get_inertial_position(const Date& date) const = 0;

    virtual CartesianVector<Velocity, frames::earth::icrf> get_inertial_velocity(const Date& date) const = 0;

    virtual CartesianVector<Acceleration, frames::earth::icrf> get_inertial_acceleration(const Date& date) const;
};

} // namespace astro
} // namespace astrea