Skip to content
Snippets Groups Projects
Commit 57f0ea8f authored by Florian Burgener's avatar Florian Burgener
Browse files

Refactoring

parent 2149b27a
No related branches found
No related tags found
No related merge requests found
......@@ -41,7 +41,10 @@ void celestial_object_draw(CelestialObject *object, Vector2 reference_frame, dou
draw_disc(scaled_position, object->drawing_disc_radius);
if (strcmp(object->name, "Moon") != 0) {
glLineWidth(4.0);
if (zoom_factor < 1)
glLineWidth(4.0 * zoom_factor);
else
glLineWidth(4.0);
for (int32_t j = 0; j < object->points_length - 1; j += 1) {
Vector2 p1 = scale_position(zoom_factor, object->points[j], reference_frame);
......@@ -50,9 +53,15 @@ void celestial_object_draw(CelestialObject *object, Vector2 reference_frame, dou
}
}
// celestial_object_draw_name(object, reference_frame,zoom_factor);
}
void celestial_object_draw_name(CelestialObject *object, Vector2 reference_frame, double zoom_factor) {
Vector2 scaled_position = scale_position(zoom_factor, object->current_position, reference_frame);
if (strcmp(object->name, "Moon") == 0 && zoom_factor < 36) {
return;
}
draw_text(object->name, vector2_add(scaled_position, vector2_create(8, 32)));
draw_text(object->name, vector2_add(scaled_position, vector2_create(object->drawing_disc_radius + 8, 7)));
}
......@@ -18,5 +18,6 @@ typedef struct CelestialObject {
CelestialObject *celestial_object_create(char *name, double mass, double semi_major_axis, double eccentricity, uint32_t drawing_disc_radius, uint32_t drawing_color);
void celestial_object_draw(CelestialObject *object, Vector2 reference_frame, double zoom_factor);
void celestial_object_draw_name(CelestialObject *object, Vector2 reference_frame, double zoom_factor);
#endif
......@@ -134,6 +134,11 @@ void planetary_system_draw(PlanetarySystem *ps) {
celestial_object_draw(object, reference_frame, ps->zoom_factor);
}
for (int32_t i = 0; i < ps->objects_length; i += 1) {
CelestialObject *object = ps->objects[i];
celestial_object_draw_name(object, reference_frame, ps->zoom_factor);
}
char text[200];
sprintf(text, "Focused Object : %s", object_reference_frame->name);
draw_text(text, vector2_create(8, 64));
......
#include <GL/freeglut.h>
#include <GL/glut.h>
#include <stdint.h>
#include <stdio.h>
......@@ -52,7 +53,7 @@ void draw() {
if (elapsed_time % REFRESH_RATE == 0 && elapsed_time != 0) {
char title[100];
sprintf(title, "Solar System (%d : %lld)", elapsed_time / REFRESH_RATE, (time(NULL) - true_time_shift) % 1000);
sprintf(title, "Solar System (%d : %ld)", elapsed_time / REFRESH_RATE, (time(NULL) - true_time_shift) % 1000);
glutSetWindowTitle(title);
}
......@@ -135,7 +136,6 @@ int main(int argc, char *argv[]) {
glutTimerFunc(1000 / REFRESH_RATE, update_timer, 0);
glutTimerFunc(1000 / REFRESH_RATE, draw_timer, 0);
glutMainLoop();
return EXIT_SUCCESS;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment