.. _program_listing_file_agents_gnss_attitude.h: Program Listing for File gnss_attitude.h ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``agents/gnss_attitude.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "lupnt/core/definitions.h" namespace lupnt { class GnssAttitude { public: GnssAttitude() = default; GnssAttitude(const Vec3& r_sat_eci, const Vec3& r_sun_eci); static void Compute(const Vec3& r_sat_eci, const Vec3& r_sun_eci, Vec3& ex, Vec3& ey, Vec3& ez); static void Compute(const Vec3& r_sat_eci, const Vec3& v_sat_eci, const Vec3& r_sun_eci, Vec3& ex, Vec3& ey, Vec3& ez); static void ComputeFromYawAngle(const Vec3& r_sat_eci, const Vec3& v_sat_eci, Real yaw_angle, Vec3& ex, Vec3& ey, Vec3& ez); void Update(const Vec3& r_sat_eci, const Vec3& r_sun_eci); void Update(const Vec3& r_sat_eci, const Vec3& v_sat_eci, const Vec3& r_sun_eci); const Vec3& GetEx() const { return ex_; } const Vec3& GetEy() const { return ey_; } const Vec3& GetEz() const { return ez_; } Mat3 GetRotationMatrix() const; void GetAngles(const Vec3& u, Real& theta, Real& phi) const; private: Vec3 ex_ = Vec3::UnitX(); Vec3 ey_ = Vec3::UnitY(); Vec3 ez_ = Vec3::UnitZ(); }; } // namespace lupnt