38 lines
644 B
C++
38 lines
644 B
C++
#pragma once
|
|
|
|
#include "orbit.hpp"
|
|
#include <glm/glm.hpp>
|
|
|
|
class Widget
|
|
{
|
|
public:
|
|
// A widget is renderer at a point on the orbit.
|
|
// It consists of 3 orthagonally intersecting lines.
|
|
|
|
Widget(Orbit& orbit, GLuint shaderProgram);
|
|
void render();
|
|
|
|
void setPosition(glm::vec3 position);
|
|
~Widget();
|
|
private:
|
|
Orbit& _orbit;
|
|
glm::vec3 _position;
|
|
|
|
GLuint _vao;
|
|
GLuint _vbo;
|
|
GLuint _shaderProgram;
|
|
|
|
void updateModelMatrix();
|
|
|
|
float _lineLength = 0.2;
|
|
float _vertices[3*6] =
|
|
{
|
|
-1, 0, 0,
|
|
1, 0, 0,
|
|
0, 1, 0,
|
|
0,-1, 0,
|
|
0, 0, 1,
|
|
0, 0,-1
|
|
};
|
|
};
|