diff options
author | justanothercatgirl <sotov@twistea.su> | 2024-12-06 15:08:31 +0300 |
---|---|---|
committer | justanothercatgirl <sotov@twistea.su> | 2024-12-06 15:08:31 +0300 |
commit | a470c304199866aa1f3d39ff22ec30734f03d617 (patch) | |
tree | b08858e91b39fc108f2ab9b83c03ef7f881711ba /7_2/include/figure.h | |
parent | 24b8430fa7a9a81b88c5c172c99bbc9a520ff4ba (diff) |
сделал 8 задание))))task8
Diffstat (limited to '7_2/include/figure.h')
-rw-r--r-- | 7_2/include/figure.h | 56 |
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 |