Changeset 7e38970d in mainline for uspace/lib/gfx/src/coord.c
- Timestamp:
- 2020-12-07T00:08:37Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 25f26600
- Parents:
- 7a873f0 (diff), 8596474 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/gfx/src/coord.c
r7a873f0 r7e38970d 39 39 #include <stddef.h> 40 40 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 41 62 /** Add two vectors. 42 63 * … … 217 238 } 218 239 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 219 264 /** Sort points of a rectangle. 220 265 *
Note:
See TracChangeset
for help on using the changeset viewer.