Skip to content

File Frame.hpp

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

Go to the documentation of this file

#pragma once

#include <string>

#include <units/units.hpp>

#include <astro/astro.fwd.hpp>
#include <astro/frames/frame_concepts.hpp>

namespace astrea {
namespace astro {

template <CelestialBodyId origin, FrameAxis axis>
struct Frame {

  protected:
    virtual ~Frame() = default;

  public:
    static constexpr CelestialBodyId get_origin() { return _origin; }

    static constexpr FrameAxis get_axis() { return _axis; }

  protected:
    static constexpr CelestialBodyId _origin = origin; 
    static constexpr FrameAxis _axis         = axis;   
};


} // namespace astro
} // namespace astrea