Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/gfx/src/coord.c

    r266ec54 rafcf704  
    3939#include <stddef.h>
    4040
    41 /** Divide @a a by @a b and round towards negative numbers.
    42  *
    43  * Regular integer division always rounds towards zero. This is not useful
    44  * e.g. for scaling down, where we always need to round towards negative
    45  * numbers.
    46  *
    47  * @param a Dividend
    48  * @param b Divisor
    49  * @return Quotient
    50  */
    51 gfx_coord_t gfx_coord_div_rneg(gfx_coord_t a, gfx_coord_t b)
    52 {
    53         if ((a > 0 && b > 0) || (a < 0 && b < 0)) {
    54                 /* Result is non-negative, round towards zero */
    55                 return a / b;
    56         } else {
    57                 /* Result is negative, round away from zero */
    58                 return (a - b + 1) / b;
    59         }
    60 }
    61 
    6241/** Add two vectors.
    6342 *
     
    238217}
    239218
    240 /** Center rectangle on rectangle.
    241  *
    242  * Translate rectangle @a a so that its center coincides with the
    243  * center of rectangle @a b, saving the result in @a dest.
    244  *
    245  * @param a Rectnagle to translate
    246  * @param b Rectangle on which to center
    247  * @param dest Place to store resulting rectangle
    248  */
    249 void gfx_rect_ctr_on_rect(gfx_rect_t *a, gfx_rect_t *b, gfx_rect_t *dest)
    250 {
    251         gfx_coord2_t adim;
    252         gfx_coord2_t bdim;
    253 
    254         gfx_rect_dims(a, &adim);
    255         gfx_rect_dims(b, &bdim);
    256 
    257         dest->p0.x = b->p0.x + bdim.x / 2 - adim.x / 2;
    258         dest->p0.y = b->p0.y + bdim.y / 2 - adim.y / 2;
    259 
    260         dest->p1.x = dest->p0.x + adim.x;
    261         dest->p1.y = dest->p0.y + adim.y;
    262 }
    263 
    264219/** Sort points of a rectangle.
    265220 *
Note: See TracChangeset for help on using the changeset viewer.