Skip to content

File InertialFrame.hpp

File List > astrea > astro > astro > frames > types > InertialFrame.hpp

Go to the documentation of this file

#pragma once

#include <string>

#include <astro/astro.fwd.hpp>
#include <astro/frames/Frame.hpp>
#include <astro/types/enums.hpp>

namespace astrea {
namespace astro {

template <CelestialBodyId origin, FrameAxis axis = FrameAxis::ICRF>
    requires(origin != CelestialBodyId::UNSET && origin != CelestialBodyId::CUSTOM)
struct InertialFrame : Frame<origin, axis> {
    virtual ~InertialFrame() = default;

    static constexpr CelestialBodyId get_origin() { return Frame<origin, axis>::get_origin(); }

    static constexpr FrameAxis get_axis() { return Frame<origin, axis>::get_axis(); }
};

} // namespace astro
} // namespace astrea