diff --git a/src/graph.c b/src/graph.c index dbd5b10b..2f52b093 100644 --- a/src/graph.c +++ b/src/graph.c @@ -59,6 +59,48 @@ // Generic pixel-drawing function. Func_pixel Pixel_figure; +// Calcule les valeurs suivantes en fonction des deux paramètres: +// +// Ellipse_vertical_radius_squared +// Ellipse_horizontal_radius_squared +// Ellipse_Limit_High +// Ellipse_Limit_Low +static void Ellipse_compute_limites(short horizontal_radius,short vertical_radius) +{ + Ellipse_horizontal_radius_squared = + (long)horizontal_radius * horizontal_radius; + Ellipse_vertical_radius_squared = + (long)vertical_radius * vertical_radius; + Ellipse_limit = (qword)Ellipse_horizontal_radius_squared * Ellipse_vertical_radius_squared; +} + +// Indique si le pixel se trouvant à Ellipse_cursor_X pixels +// (Ellipse_cursor_X>0 = à droite, Ellipse_cursor_X<0 = à gauche) et à +// Ellipse_cursor_Y pixels (Ellipse_cursor_Y>0 = en bas, +// Ellipse_cursor_Y<0 = en haut) du centre se trouve dans l'ellipse en +// cours. +static byte Pixel_in_ellipse(void) +{ + qword ediesi = (qword)Ellipse_cursor_X * Ellipse_cursor_X * Ellipse_vertical_radius_squared + + (qword)Ellipse_cursor_Y * Ellipse_cursor_Y * Ellipse_horizontal_radius_squared; + if((ediesi) <= Ellipse_limit) return 255; + + return 0; +} + +// Indique si le pixel se trouvant à Circle_cursor_X pixels +// (Circle_cursor_X>0 = à droite, Circle_cursor_X<0 = à gauche) et à +// Circle_cursor_Y pixels (Circle_cursor_Y>0 = en bas, +// Circle_cursor_Y<0 = en haut) du centre se trouve dans le cercle en +// cours. +static byte Pixel_in_circle(void) +{ + if(Circle_cursor_X * Circle_cursor_X + + Circle_cursor_Y * Circle_cursor_Y <= Circle_limit) + return 255; + return 0; +} + /** Update the picture on screen, for the area passed in parameters. * * Takes into account the X/Y scrolling and zoom, and performs all safety checks so no updates will diff --git a/src/misc.c b/src/misc.c index 3a97c2c1..e09fbe27 100644 --- a/src/misc.c +++ b/src/misc.c @@ -247,34 +247,6 @@ byte Read_pixel_from_brush (word x, word y) return *(Brush + y * Brush_width + x); } -void Ellipse_compute_limites(short horizontal_radius,short vertical_radius) -{ - Ellipse_horizontal_radius_squared = - (long)horizontal_radius * horizontal_radius; - Ellipse_vertical_radius_squared = - (long)vertical_radius * vertical_radius; - Ellipse_limit = (qword)Ellipse_horizontal_radius_squared * Ellipse_vertical_radius_squared; -} - -// FIXME: move to graph.c, it's the only caller -byte Pixel_in_ellipse(void) -{ - qword ediesi = (qword)Ellipse_cursor_X * Ellipse_cursor_X * Ellipse_vertical_radius_squared + - (qword)Ellipse_cursor_Y * Ellipse_cursor_Y * Ellipse_horizontal_radius_squared; - if((ediesi) <= Ellipse_limit) return 255; - - return 0; -} - -// FIXME: move to graph.c, it's the only caller -byte Pixel_in_circle(void) -{ - if(Circle_cursor_X * Circle_cursor_X + - Circle_cursor_Y * Circle_cursor_Y <= Circle_limit) - return 255; - return 0; -} - void Copy_part_of_image_to_another(byte * source,word source_x,word source_y,word width,word height,word source_width,byte * dest,word dest_x,word dest_y,word destination_width) { // ESI = adresse de la source en (S_Pox_X,source_y) @@ -294,8 +266,6 @@ void Copy_part_of_image_to_another(byte * source,word source_x,word source_y,wor esi+=source_width; edi+=destination_width; } - - } byte Read_pixel_from_spare_screen(word x,word y) diff --git a/src/misc.h b/src/misc.h index 13af69d4..14297921 100644 --- a/src/misc.h +++ b/src/misc.h @@ -54,29 +54,6 @@ byte Read_pixel_from_backup_screen (word x,word y); byte Read_pixel_from_feedback_screen (word x,word y); byte Read_pixel_from_brush (word x,word y); -void Ellipse_compute_limites(short horizontal_radius,short vertical_radius); -// Calcule les valeurs suivantes en fonction des deux paramètres: -// -// Ellipse_vertical_radius_squared -// Ellipse_horizontal_radius_squared -// Ellipse_Limit_High -// Ellipse_Limit_Low - - -byte Pixel_in_ellipse(void); -// Indique si le pixel se trouvant à Ellipse_cursor_X pixels -// (Ellipse_cursor_X>0 = à droite, Ellipse_cursor_X<0 = à gauche) et à -// Ellipse_cursor_Y pixels (Ellipse_cursor_Y>0 = en bas, -// Ellipse_cursor_Y<0 = en haut) du centre se trouve dans l'ellipse en -// cours. - -byte Pixel_in_circle(void); -// Indique si le pixel se trouvant à Circle_cursor_X pixels -// (Circle_cursor_X>0 = à droite, Circle_cursor_X<0 = à gauche) et à -// Circle_cursor_Y pixels (Circle_cursor_Y>0 = en bas, -// Circle_cursor_Y<0 = en haut) du centre se trouve dans le cercle en -// cours. - // Gestion du chrono dans les fileselects void Init_chrono(dword delay); void Check_timer(void);