Browse Source

Add sun and moon positions and directions to solar system

master
C. J. Howard 4 years ago
parent
commit
8a13e2c18e
1 changed files with 24 additions and 0 deletions
  1. +24
    -0
      src/game/systems/solar-system.hpp

+ 24
- 0
src/game/systems/solar-system.hpp View File

@ -29,12 +29,32 @@ class solar_system:
public: public:
solar_system(entt::registry& registry); solar_system(entt::registry& registry);
/**
* Scales then adds the timestep `dt` to the current Julian date, then recalculates the positions of celestial bodies.
*/
virtual void update(double t, double dt); virtual void update(double t, double dt);
/**
* Sets the current Julian date.
*
* @param jd Julian date.
*/
void set_julian_date(double jd); void set_julian_date(double jd);
/**
* Sets the factor by which the timestep `dt` will be scaled before being added to the current Julian date.
*
* @param scale Factor by which to scale the timestep.
*/
void set_time_scale(double scale); void set_time_scale(double scale);
/**
* Sets the latitude, longitude, and altitude of the observer.
*
* @param latitude Observer latitude, in radians.
* @param longitude Observer longitude, in radians.
* @param altitude Observer altitude, in meters.
*/
void set_observer_location(double latitude, double longitude, double altitude); void set_observer_location(double latitude, double longitude, double altitude);
private: private:
@ -49,6 +69,10 @@ private:
double3x3 ecliptic_to_horizontal; double3x3 ecliptic_to_horizontal;
double3 sun_position; double3 sun_position;
double3 sunlight_direction;
double3 moon_position;
double3 moonlight_direction;
}; };
#endif // ANTKEEPER_SOLAR_SYSTEM_HPP #endif // ANTKEEPER_SOLAR_SYSTEM_HPP

Loading…
Cancel
Save