#ifndef ELLIPSE_H #define ELLIPSE_H #include #include typedef struct ellipse { object_t obj; coord_t center; uint16_t radiusx; uint16_t radiusy; } ellipse_t; ellipse_t * ellipse_new( void ); void ellipse_free( ellipse_t *ellipse ); char * ellipse_str( ellipse_t *ellipse ); void __ellipse_draw( ellipse_t *ellipse, surface_t *surface ); void ellipse_draw( ellipse_t *ellipse, surface_t *surface ); /* * You may want to experiment with ellipse drawing algorithms changing this * function pointers. */ extern void (*ellipse_draw_aliased)( uint16_t, uint16_t, uint16_t, uint16_t, surface_t *, color_t, float, int ); extern void (*ellipse_draw_antialiased)( uint16_t, uint16_t, uint16_t, uint16_t, surface_t *, color_t, float, int ); void ellipse_draw_trivial( uint16_t x, uint16_t y, uint16_t radiusx, uint16_t radiusy, surface_t *surface, color_t color, float transp, int fill ); void ellipse_draw_trivial_antialias( uint16_t x, uint16_t y, uint16_t radiusx, uint16_t radiusy, surface_t *surface, color_t color, float transp, int fill ); void ellipse_draw_bresenham( uint16_t x, uint16_t y, uint16_t radiusx, uint16_t radiusy, surface_t *surface, color_t color, float transp, int fill ); #endif /* ELLIPSE_H */