1 #ifndef BLOBS_WORLD_ORBIT_HPP_
2 #define BLOBS_WORLD_ORBIT_HPP_
4 #include "../graphics/glm.hpp"
17 double SemiMajorAxis() const noexcept;
18 Orbit &SemiMajorAxis(double) noexcept;
20 double Eccentricity() const noexcept;
21 Orbit &Eccentricity(double) noexcept;
23 double Inclination() const noexcept;
24 Orbit &Inclination(double) noexcept;
26 double LongitudeAscending() const noexcept;
27 Orbit &LongitudeAscending(double) noexcept;
29 double ArgumentPeriapsis() const noexcept;
30 Orbit &ArgumentPeriapsis(double) noexcept;
32 double MeanAnomaly() const noexcept;
33 Orbit &MeanAnomaly(double) noexcept;
35 /// calculate transformation matrix at position t in the
36 /// orbit, measured in degrees from mean anomaly at t=0
37 glm::dmat4 Matrix(double t) const noexcept;
38 glm::dmat4 InverseMatrix(double t) const noexcept;
41 double sma; // semi-major axis
42 double ecc; // eccentricity
43 double inc; // inclination
44 double asc; // longitude of ascending node
45 double arg; // argument of periapsis
46 double mna; // mean anomaly (at t=0)