aboutsummaryrefslogtreecommitdiffstats
path: root/7_2/include/figure.h
diff options
context:
space:
mode:
authorjustanothercatgirl <sotov@twistea.su>2024-12-06 15:08:31 +0300
committerjustanothercatgirl <sotov@twistea.su>2024-12-06 15:08:31 +0300
commita470c304199866aa1f3d39ff22ec30734f03d617 (patch)
treeb08858e91b39fc108f2ab9b83c03ef7f881711ba /7_2/include/figure.h
parent24b8430fa7a9a81b88c5c172c99bbc9a520ff4ba (diff)
сделал 8 задание))))task8
Diffstat (limited to '7_2/include/figure.h')
-rw-r--r--7_2/include/figure.h56
1 files changed, 0 insertions, 56 deletions
diff --git a/7_2/include/figure.h b/7_2/include/figure.h
deleted file mode 100644
index 393ca00..0000000
--- a/7_2/include/figure.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef JCG_FIGURE_H
-#define JCG_FIGURE_H
-
-#include "drawable.h"
-#include "common.h"
-
-// любая фигура
-// создаётся функциями figure_point, figure_line и т.д.
-// у каждой фигуры должен быть способ "нарисоваться" на
-// любое "рисовальное" поле, используя функцию drawable.put
-struct figure {
- enum {
- F_NONE, F_POINT, F_RECT, F_LINE, F_CIRCLE
- } type;
- union {
- struct {
- vector2 coords;
- } point;
- struct {
- vector2 upleft, downright;
- } rect;
- struct {
- vector2 start, end;
- } line;
- struct {
- vector2 center;
- long rad;
- } circle;
- };
- void (*draw)(const struct figure *self, struct drawable *d);
-};
-
-// массив функций по типам (lookup table)
-extern void (*const draw_lookup[])(const struct figure *, struct drawable *);
-
-// конструктор 1
-struct figure figure_point(vector2 p);
-// конструктор 2
-struct figure figure_rect(vector2 upleft, vector2 downright);
-// конструктор 3
-struct figure figure_line(vector2 start, vector2 end);
-// конструктор 4
-struct figure figure_circle(vector2 center, long radius);
-
-// draw для F_POINT
-void draw_point(const struct figure *self, struct drawable *d);
-// draw для F_RECT
-void draw_rect(const struct figure *self, struct drawable *d);
-// draw для F_LINE
-void draw_line(const struct figure *self, struct drawable *d);
-// draw для F_CIRCLE
-void draw_circle(const struct figure *self, struct drawable *f);
-
-void print_figure(const struct figure *self);
-
-#endif // JCG_FIGURE_H