template<typename Real>
hub::orbit::KeplerOrbit struct

Template parameters
Real

Public types

using Scalar = Real
Floating point like type.

Constructors, destructors, conversion operators

KeplerOrbit() defaulted
KeplerOrbit(KeplerOrbit const&) defaulted
KeplerOrbit(KeplerOrbit&&) defaulted
template<typename T1, typename T2, typename T3, typename T4>
KeplerOrbit(Scalar m_1, Scalar m_2, Scalar semi_latus_rectum, Scalar eccentricity, T1 inclination, T2 longitude_of_ascending_node, T3 argument_of_periapsis, T4 true_anomaly)
Construct a new Orbit Args object from orbital parameters.

Public functions

auto operator=(KeplerOrbit const&) -> KeplerOrbit& defaulted
auto operator=(KeplerOrbit&&) -> KeplerOrbit& defaulted
void shuffle_i()
Suffle the inclination.
void shuffle_Omega()
Suffle the Longitude of the ascending node.
void shuffle_omega()
Suffle the Argument of periapsis.
void shuffle_nu()
Suffle the true anomaly.

Public variables

Scalar m1
Mass of the primary object.
Scalar m2
Mass of the secondary object.
Scalar p
Semi-latus rectum of the orbit a(1-e^2) .
Scalar e
Eccentricity of the orbit.
Scalar i
Orbit inclination.
Scalar Omega
Longitude of the ascending node.
Scalar omega
Argument of periapsis.
Scalar nu
True anomaly.
OrbitType orbit_type
Orbit type.

Friends

auto operator<<(std::ostream& os, KeplerOrbit const& obt) -> std::ostream&
Write the orbit to an output stream.

Function documentation

template<typename Real>
hub::orbit::KeplerOrbit<Real>::KeplerOrbit() defaulted

Default constructor.

template<typename Real>
hub::orbit::KeplerOrbit<Real>::KeplerOrbit(KeplerOrbit const&) defaulted

Default copy constructor.

template<typename Real>
hub::orbit::KeplerOrbit<Real>::KeplerOrbit(KeplerOrbit&&) defaulted

Default move constructor

template<typename Real> template<typename T1, typename T2, typename T3, typename T4>
hub::orbit::KeplerOrbit<Real>::KeplerOrbit(Scalar m_1, Scalar m_2, Scalar semi_latus_rectum, Scalar eccentricity, T1 inclination, T2 longitude_of_ascending_node, T3 argument_of_periapsis, T4 true_anomaly)

Construct a new Orbit Args object from orbital parameters.

Parameters
m_1 in Mass of the primary object.
m_2 in Mass of the secondary object.
semi_latus_rectum in Semi-latus rectum.
eccentricity in Eccentricity.
inclination in Inclination.
longitude_of_ascending_node in Longitude of the ascending node.
argument_of_periapsis in Argument of the periapsis.
true_anomaly in True anomaly.

template<typename Real>
KeplerOrbit& hub::orbit::KeplerOrbit<Real>::operator=(KeplerOrbit const&) defaulted

Default copy assignment operator

template<typename Real>
KeplerOrbit& hub::orbit::KeplerOrbit<Real>::operator=(KeplerOrbit&&) defaulted

Default move assignment operator

template<typename Real>
std::ostream& operator<<(std::ostream& os, KeplerOrbit const& obt)

Write the orbit to an output stream.

Parameters
os out Output stream
obt in Orbit parameters.
Returns std::ostream& Output stream.

Variable documentation

template<typename Real>
Scalar hub::orbit::KeplerOrbit<Real>::p

Semi-latus rectum of the orbit a(1-e^2) .

We don't use semi-major axis for this general orbital type because the semi-major axis for parabolic orbit is undefined.