constants.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <array>
4 #include <utility>
5 
6 namespace pass
7 {
8 
10 {
11  public:
12  static const celestial_body SUN;
13  static const celestial_body MERCURY;
14  static const celestial_body VENUS;
15  static const celestial_body EARTH;
16  static const celestial_body MARS;
17  static const celestial_body JUPITER;
18  static const celestial_body SATURN;
19  static const celestial_body URANUS;
20  static const celestial_body NEPTUNE;
21 
22  double mu;
23  double penalty;
25 
29  std::pair<std::array<double, 3>, std::array<double, 3>> ephemeris(
30  const double mjd2000) const;
31 
32  private:
33  celestial_body(double mu, double penalty,
34  double penalty_coefficient) noexcept;
35 };
36 
37 struct asteroid
38 {
39  public:
40  asteroid(std::array<double, 6> keplerian, double epoch, double mu) noexcept;
41 
42  std::array<double, 6> keplerian;
43  double epoch;
44  double mu;
45 
49  std::pair<std::array<double, 3>, std::array<double, 3>> ephemeris(
50  const double jd) const;
51 };
52 } // namespace pass
static const celestial_body MARS
Definition: constants.hpp:16
double epoch
Definition: constants.hpp:43
std::array< double, 6 > keplerian
Definition: constants.hpp:42
static const celestial_body VENUS
Definition: constants.hpp:14
static const celestial_body MERCURY
Definition: constants.hpp:13
static const celestial_body SUN
Definition: constants.hpp:12
double mu
Definition: constants.hpp:44
static const celestial_body JUPITER
Definition: constants.hpp:17
std::pair< std::array< double, 3 >, std::array< double, 3 > > ephemeris(const double jd) const
Definition: constants.cpp:178
celestial_body(double mu, double penalty, double penalty_coefficient) noexcept
Definition: constants.cpp:19
double mu
Definition: constants.hpp:22
static const celestial_body SATURN
Definition: constants.hpp:18
std::pair< std::array< double, 3 >, std::array< double, 3 > > ephemeris(const double mjd2000) const
Definition: constants.cpp:24
Definition: constants.hpp:9
Definition: adaptive_parameter_search.hpp:5
double penalty
Definition: constants.hpp:23
static const celestial_body EARTH
Definition: constants.hpp:15
static const celestial_body URANUS
Definition: constants.hpp:19
static const celestial_body NEPTUNE
Definition: constants.hpp:20
asteroid(std::array< double, 6 > keplerian, double epoch, double mu) noexcept
Definition: constants.cpp:174
Definition: constants.hpp:37
double penalty_coefficient
Definition: constants.hpp:24