From 9f4a0889287186907332c0186b15802297d807f3 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Thu, 22 May 2025 16:24:58 +0200 Subject: Move Circle struct in circle.h --- CMakeLists.txt | 4 +++- src/main/engine/engine.c | 17 ++--------------- src/main/engine/shape/circle.c | 34 ++++++++++++++++++++++++++++++++++ src/main/engine/shape/circle.h | 33 +++++++++++++++++++++++++++++++++ src/main/engine/types.h | 31 ------------------------------- 5 files changed, 72 insertions(+), 47 deletions(-) create mode 100644 src/main/engine/shape/circle.c create mode 100644 src/main/engine/shape/circle.h delete mode 100644 src/main/engine/types.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 1232136..efb94f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,9 @@ add_executable(tris src/main/game/domain/board.c src/main/game/domain/board.h src/main/engine/domain/color.c - src/main/engine/domain/color.h) + src/main/engine/domain/color.h + src/main/engine/shape/circle.c + src/main/engine/shape/circle.h) target_include_directories(tris PRIVATE log/src) diff --git a/src/main/engine/engine.c b/src/main/engine/engine.c index 362d2d8..3abfbcc 100644 --- a/src/main/engine/engine.c +++ b/src/main/engine/engine.c @@ -26,7 +26,7 @@ #include "engine.h" #include "ui/ui.h" #include "../util/list.h" -#include "types.h" +#include "shape/circle.h" #ifdef X11 #include @@ -88,24 +88,11 @@ engine_set_window_title(Engine *engine, const char *title) ui_set_title(engine->ui, title); } -static Circle * -engine_new_circle(float cx, float cy, float r, int num_segments, int outline) -{ - Circle *circle = malloc(sizeof(Circle)); - circle->cx = cx; - circle->cy = cy; - circle->r = r; - circle->num_segments = num_segments; - circle->outline = outline; - - return circle; -} - void engine_draw_circle(float cx, float cy, float r, int num_segments, int outline) { if (engine == NULL || engine->circles == NULL) return; - list_add(engine->circles, engine_new_circle(cx, cy, r, num_segments, outline)); + list_add(engine->circles, engine_circle_new(cx, cy, r, num_segments, outline)); } static Line * diff --git a/src/main/engine/shape/circle.c b/src/main/engine/shape/circle.c new file mode 100644 index 0000000..9cc79c6 --- /dev/null +++ b/src/main/engine/shape/circle.c @@ -0,0 +1,34 @@ +/*- + * Copyright (C) 2025 Alessandro Iezzi + * + * This file is part of Tris Game. + * + * Tris Game is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tris Game is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tris Game. If not, see . + */ + +#include +#include "circle.h" + +Circle * +engine_circle_new(float cx, float cy, float r, int num_segments, int outline) +{ + Circle *circle = malloc(sizeof(Circle)); + circle->cx = cx; + circle->cy = cy; + circle->r = r; + circle->num_segments = num_segments; + circle->outline = outline; + + return circle; +} diff --git a/src/main/engine/shape/circle.h b/src/main/engine/shape/circle.h new file mode 100644 index 0000000..f8bb91d --- /dev/null +++ b/src/main/engine/shape/circle.h @@ -0,0 +1,33 @@ +/*- + * Copyright (C) 2025 Alessandro Iezzi + * + * This file is part of Tris Game. + * + * Tris Game is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tris Game is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tris Game. If not, see . + */ + +#ifndef __CIRCLE_H__ +#define __CIRCLE_H__ + +typedef struct { + int outline; + float cx; + float cy; + float r; + int num_segments; +} Circle; + +Circle *engine_circle_new(float cx, float cy, float r, int num_segments, int outline); + +#endif /* __CIRCLE_H__ */ diff --git a/src/main/engine/types.h b/src/main/engine/types.h deleted file mode 100644 index a87f087..0000000 --- a/src/main/engine/types.h +++ /dev/null @@ -1,31 +0,0 @@ -/*- -* Copyright (C) 2025 Alessandro Iezzi - * - * This file is part of Tris Game. - * - * Tris Game is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Tris Game is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Tris Game. If not, see . - */ - -#ifndef __ENGINE_TYPES_H__ -#define __ENGINE_TYPES_H__ - -typedef struct Circle { - int outline; - float cx; - float cy; - float r; - int num_segments; -} Circle; - -#endif /* __ENGINE_TYPES_H__ */ -- cgit v1.2.3