feat(orbit-animation): cycle animation

This commit is contained in:
ktyl 2023-10-08 00:13:32 +01:00
parent 3a71a4899d
commit ad281f5b68
1 changed files with 17 additions and 4 deletions

View File

@ -73,12 +73,25 @@ int main()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float time = glfwGetTime();
const float orbitalPeriod = 6.284;
float e = .25 + .2 * sin(time);
keplerianElements[astro::eccentricityIndex] = e;
orbit.setElements(keplerianElements);
const int ANIM_ORBITING = 0;
const int ANIM_ECCENTRICITY = 1;
int animation = (int)(time / orbitalPeriod) % 2 == 1;
glm::vec3 pos = orbit.getPosition(time);
glm::vec3 pos;
if (animation == ANIM_ORBITING)
{
pos = orbit.getPosition(time);
}
else if (animation == ANIM_ECCENTRICITY)
{
float e = .25 + .2 * sin(time);
keplerianElements[astro::eccentricityIndex] = e;
orbit.setElements(keplerianElements);
pos = orbit.getPosition(0);
}
orbiter.setPosition(pos);
// Render lit objects