#pragma once

#include <GL/glew.h>
#include <vector>
#include <skein/orbit.h>

class OrbitVisualizer
{
    public:
        OrbitVisualizer(const Orbit& orbit, const GLuint shaderProgram);
        ~OrbitVisualizer();

        void render(const float time);

    private:
        const float _pi = 3.14159265359;

        const int _vertexCount = 100;
        const GLuint _shaderProgram;
        const Orbit& _orbit;

        GLuint _vbo;
        GLuint _vao;
        std::vector<float> _vertices;

        void regenerateVertices();
};