diff options
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 |