feat(orbit): cycle animation

This commit is contained in:
ktyl 2023-10-08 00:13:32 +01:00
parent 4d4830f82f
commit 68e26c64c9
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); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float time = glfwGetTime(); float time = glfwGetTime();
const float orbitalPeriod = 6.284;
float e = .25 + .2 * sin(time); const int ANIM_ORBITING = 0;
keplerianElements[astro::eccentricityIndex] = e; const int ANIM_ECCENTRICITY = 1;
orbit.setElements(keplerianElements); 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); orbiter.setPosition(pos);
// Render lit objects // Render lit objects