4 #ifndef AETHER_INCLUDE_PLANETS_H_
5 #define AETHER_INCLUDE_PLANETS_H_
38 precision_t get_star_to_planet_dist(
Times time);
44 precision_t get_orbit_angle(
Times time);
51 precision_t get_declination(
Times time);
65 precision_t get_radius(precision_t latitude);
75 precision_t get_longitude_offset(
Times time);
81 precision_t get_sin_dec(
Times time);
87 precision_t get_cos_dec(
Times time);
92 std::vector<float> get_dipole_center();
97 precision_t get_dipole_rotation();
102 precision_t get_dipole_tilt();
107 precision_t get_dipole_strength();
118 struct planet_chars {
127 precision_t semimajoraxis;
129 precision_t eccentricity;
131 precision_t inclination;
133 precision_t meanlongitude;
135 precision_t perihelionlongitude;
137 precision_t nodelongitude;
140 precision_t rates_semimajoraxis;
142 precision_t rates_eccentricity;
144 precision_t rates_inclination;
146 precision_t rates_meanlongitude;
148 precision_t rates_perihelionlongitude;
150 precision_t rates_nodelongitude;
153 precision_t planet_tilt;
157 precision_t rotation_period;
161 precision_t length_of_day;
164 double length_of_year;
166 precision_t longitude_jb2000;
173 precision_t equator_radius;
175 precision_t polar_radius;
180 precision_t dipole_strength;
182 precision_t dipole_rotation;
184 precision_t dipole_tilt;
186 std::vector<float> dipole_center{ 0.0, 0.0, 0.0 };
192 precision_t declination, sin_dec, cos_dec;
194 precision_t longitude_offset;
197 precision_t star_planet_distance;
199 precision_t orbit_angle;
209 std::vector<planet_chars> planets;
236 int update(
Times time);
246 #endif // INCLUDE_PLANETS_H_