#ifndef CIRCLE_H #define CIRCLE_H #include #include typedef struct circle { object_t obj; coord_t center; uint16_t radius; } circle_t; circle_t * circle_new( void ); void circle_free( circle_t *circle ); char * circle_str( circle_t *circle ); void __circle_draw( circle_t *circle, surface_t *surface ); void circle_draw( circle_t *circle, surface_t *surface ); /* * You may want to experiment with circle drawing algorithms changing this * function pointers. */ extern void (*circle_draw_aliased)( uint16_t, uint16_t, uint16_t, surface_t *, color_t, float, int); extern void (*circle_draw_antialiased)( uint16_t, uint16_t, uint16_t, surface_t *, color_t, float, int ); void circle_draw_trivial( uint16_t x, uint16_t y, uint16_t radius, surface_t *surface, color_t color, float transp, int fill ); void circle_draw_bresenham( uint16_t x, uint16_t y, uint16_t radius, surface_t *surface, color_t color, float transp, int fill ); void circle_draw_trivial_antialias( uint16_t x, uint16_t y, uint16_t radius, surface_t *surface, color_t color, float transp, int fill ); #endif /* CIRCLE_H */