12#ifndef WSFSPACEORBITSIZE_HPP
13#define WSFSPACEORBITSIZE_HPP
15#include "wsf_space_export.h"
18#include "UtUnitTypes.hpp"
34 OrbitSize(UtLengthValue aSemiMajorAxis = UtLengthValue{1.0e-12, UtUnitLength::cKILOMETERS},
35 double aGravitationalParameter = UtEarth::cGRAVITATIONAL_PARAMETER);
49 void SetSemiMajorAxis(
const UtLengthValue& aSemiMajorAxis);
50 void SetCircularAltitude(
const UtLengthValue& aAltitude);
51 void SetOrbitalPeriod(
const UtTimeValue& aPeriod);
52 void SetRevolutionsPerDay(
double aRevolutionsPerDay);
66 static OrbitSize FromSemiMajorAxis(UtLengthValue aSemiMajorAxis,
67 double aGravitationalParameter = UtEarth::cGRAVITATIONAL_PARAMETER);
68 static OrbitSize FromCircularAltitude(UtLengthValue aAltitude,
69 double aGravitationalParameter = UtEarth::cGRAVITATIONAL_PARAMETER);
70 static OrbitSize FromOrbitalPeriod(UtTimeValue aPeriod,
71 double aGravitationalParameter = UtEarth::cGRAVITATIONAL_PARAMETER);
72 static OrbitSize FromRevolutionsPerDay(
double aRevolutionsPerDay,
73 double aGravitationalParameter = UtEarth::cGRAVITATIONAL_PARAMETER);
76 void AltitudeFromSMA();
77 void SMA_FromAltitude();
79 void SMA_FromPeriod();
80 void RevsFromPeriod();
81 void PeriodFromRevs();
91 UtLengthValue mSemiMajorAxis{0.0, UtUnitLength::cKILOMETERS};
92 UtLengthValue mCircularAlititude{0.0, UtUnitLength::cKILOMETERS};
93 UtTimeValue mOrbitalPeriod{0.0, UtUnitTime::cMINUTES};
94 double mRevolutionsPerDay{};
95 double mGravitationalParameter;
96 InputType mInputType{InputType::cSEMI_MAJOR_AXIS};
Definition WsfSpaceOrbitSize.hpp:32
OrbitSize(UtLengthValue aSemiMajorAxis=UtLengthValue{1.0e-12, UtUnitLength::cKILOMETERS}, double aGravitationalParameter=UtEarth::cGRAVITATIONAL_PARAMETER)
Definition WsfSpaceOrbitSize.cpp:25
const UtTimeValue & GetOrbitalPeriod() const
Return the orbital period.
Definition WsfSpaceOrbitSize.hpp:44
double GetRevolutionsPerDay() const
Return the number of revolutions per day of the orbit.
Definition WsfSpaceOrbitSize.hpp:47
bool SpecifiedAsOrbitalPeriod() const
Return if the orbit size was specified using the orbital period.
Definition WsfSpaceOrbitSize.hpp:61
bool SpecifiedAsCircularAltitude() const
Return if the orbit size was specified using the circular altitude.
Definition WsfSpaceOrbitSize.hpp:58
bool SpecifiedAsRevsPerDay() const
Return if the orbit size was specified using the number of revolutions per day.
Definition WsfSpaceOrbitSize.hpp:64
const UtLengthValue & GetCircularAltitude() const
Return the circular altitude of the orbit.
Definition WsfSpaceOrbitSize.hpp:41
const UtLengthValue & GetSemiMajorAxis() const
Return the semi-major axis of the orbit.
Definition WsfSpaceOrbitSize.hpp:38
bool SpecifiedAsSemiMajorAxis() const
Return if the orbit size was specified using the semi-major axis.
Definition WsfSpaceOrbitSize.hpp:55
Definition WsfAtmosphere.cpp:23
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32