Rectangle
[Tools]
These functions provide rectangle management. More...
Data Structures | |
struct | _Eina_Rectangle |
Defines | |
#define | EINA_RECTANGLE_SET(Rectangle, X, Y, W, H) |
Macro to set the values of a Eina_Rectangle. | |
Typedefs | |
typedef struct _Eina_Rectangle | Eina_Rectangle |
Simple rectangle structure. | |
typedef struct _Eina_Rectangle_Pool | Eina_Rectangle_Pool |
Type for an opaque pool of rectangle. | |
Functions | |
static int | eina_spans_intersect (int c1, int l1, int c2, int l2) |
Check if the given spans intersect. | |
static Eina_Bool | eina_rectangle_is_empty (const Eina_Rectangle *r) |
Check if the given rectangle is empty. | |
static void | eina_rectangle_coords_from (Eina_Rectangle *r, int x, int y, int w, int h) |
Set the coordinates and size of the given rectangle. | |
static Eina_Bool | eina_rectangles_intersect (const Eina_Rectangle *r1, const Eina_Rectangle *r2) |
Check if the given rectangles intersect. | |
static Eina_Bool | eina_rectangle_xcoord_inside (const Eina_Rectangle *r, int x) |
Check if the given x-coordinate is in the rectangle . | |
static Eina_Bool | eina_rectangle_ycoord_inside (const Eina_Rectangle *r, int y) |
Check if the given y-coordinate is in the rectangle . | |
static Eina_Bool | eina_rectangle_coords_inside (const Eina_Rectangle *r, int x, int y) |
Check if the given point is in the rectangle . | |
static void | eina_rectangle_union (Eina_Rectangle *dst, const Eina_Rectangle *src) |
Get the union of two rectangles. | |
static Eina_Bool | eina_rectangle_intersection (Eina_Rectangle *dst, const Eina_Rectangle *src) |
Get the intersection of two rectangles. | |
static void | eina_rectangle_rescale_in (const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) |
static void | eina_rectangle_rescale_out (const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) |
Eina_Rectangle_Pool * | eina_rectangle_pool_new (int w, int h) |
Add a rectangle in a new pool. | |
Eina_Rectangle_Pool * | eina_rectangle_pool_get (Eina_Rectangle *rect) |
Return the pool of the given rectangle. | |
Eina_Bool | eina_rectangle_pool_geometry_get (Eina_Rectangle_Pool *pool, int *w, int *h) |
Return the width and height of the given pool. | |
void * | eina_rectangle_pool_data_get (Eina_Rectangle_Pool *pool) |
Get the data from the given pool. | |
void | eina_rectangle_pool_data_set (Eina_Rectangle_Pool *pool, const void *data) |
Set the data to the given pool. | |
void | eina_rectangle_pool_free (Eina_Rectangle_Pool *pool) |
Free the given pool. | |
int | eina_rectangle_pool_count (Eina_Rectangle_Pool *pool) |
Return the number of rectangles in the given pool. | |
Eina_Rectangle * | eina_rectangle_pool_request (Eina_Rectangle_Pool *pool, int w, int h) |
Request a rectangle of given size in the given pool. | |
void | eina_rectangle_pool_release (Eina_Rectangle *rect) |
Remove the given rectangle from the pool. | |
Eina_Rectangle * | eina_rectangle_new (int x, int y, int w, int h) |
Create a new rectangle. | |
void | eina_rectangle_free (Eina_Rectangle *rect) |
Free the given rectangle. |
Detailed Description
These functions provide rectangle management.
Define Documentation
#define EINA_RECTANGLE_SET | ( | Rectangle, | ||
X, | ||||
Y, | ||||
W, | ||||
H | ||||
) |
(Rectangle)->x = X; \ (Rectangle)->y = Y; \ (Rectangle)->w = W; \ (Rectangle)->h = H;
Macro to set the values of a Eina_Rectangle.
- Parameters:
-
Rectangle The rectangle to set the values. X The X coordinate of the top left corner of the rectangle. Y The Y coordinate of the top left corner of the rectangle. W The width of the rectangle. H The height of the rectangle.
This macro set the values of Rectangle
. (X
, Y
) is the coordinates of the top left corner of Rectangle
, W
is its width and H
is its height.
Function Documentation
static int eina_spans_intersect | ( | int | c1, | |
int | l1, | |||
int | c2, | |||
int | l2 | |||
) | [inline, static] |
Check if the given spans intersect.
- Parameters:
-
c1 The column of the first span. l1 The length of the first span. c2 The column of the second span. l2 The length of the second span.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
This function returns EINA_TRUE if the given spans intersect, EINA_FALSE otherwise.
static Eina_Bool eina_rectangle_is_empty | ( | const Eina_Rectangle * | r | ) | [inline, static] |
Check if the given rectangle is empty.
- Parameters:
-
r The rectangle to check.
- Returns:
- EINA_TRUE if the rectangle is empty, EINA_FALSE otherwise.
This function returns EINA_TRUE if r
is empty, EINA_FALSE otherwise. No check is done on r
, so it must be a valid rectangle.
static void eina_rectangle_coords_from | ( | Eina_Rectangle * | r, | |
int | x, | |||
int | y, | |||
int | w, | |||
int | h | |||
) | [inline, static] |
Set the coordinates and size of the given rectangle.
- Parameters:
-
r The rectangle. x The top-left x coordinate of the rectangle. y The top-left y coordinate of the rectangle. w The width of the rectangle. h The height of the rectangle.
This function sets its top-left x coordinate to x
, its top-left y coordinate to y
, its width to w
and its height to h
. No check is done on r
, so it must be a valid rectangle.
static Eina_Bool eina_rectangles_intersect | ( | const Eina_Rectangle * | r1, | |
const Eina_Rectangle * | r2 | |||
) | [inline, static] |
Check if the given rectangles intersect.
- Parameters:
-
r1 The first rectangle. r2 The second rectangle.
- Returns:
- EINA_TRUE if the rectangles intersect, EINA_FALSE otherwise.
This function returns EINA_TRUE if r1
and r2
intersect, EINA_FALSE otherwise. No check is done on r1
and r2
, so they must be valid rectangles.
static Eina_Bool eina_rectangle_xcoord_inside | ( | const Eina_Rectangle * | r, | |
int | x | |||
) | [inline, static] |
Check if the given x-coordinate is in the rectangle .
- Parameters:
-
r The rectangle. x The x coordinate.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
This function returns EINA_TRUE if x
is in r
with respect to the horizontal direction, EINA_FALSE otherwise. No check is done on r
, so it must be a valid rectangle.
static Eina_Bool eina_rectangle_ycoord_inside | ( | const Eina_Rectangle * | r, | |
int | y | |||
) | [inline, static] |
Check if the given y-coordinate is in the rectangle .
- Parameters:
-
r The rectangle. y The y coordinate.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
This function returns EINA_TRUE if y
is in r
with respect to the vertical direction, EINA_FALSE otherwise. No check is done on r
, so it must be a valid rectangle.
static Eina_Bool eina_rectangle_coords_inside | ( | const Eina_Rectangle * | r, | |
int | x, | |||
int | y | |||
) | [inline, static] |
Check if the given point is in the rectangle .
- Parameters:
-
r The rectangle. x The x coordinate of the point. y The y coordinate of the point.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
This function returns EINA_TRUE if the point of coordinate (x
, y
) is in r
, EINA_FALSE otherwise. No check is done on r
, so it must be a valid rectangle.
static void eina_rectangle_union | ( | Eina_Rectangle * | dst, | |
const Eina_Rectangle * | src | |||
) | [inline, static] |
Get the union of two rectangles.
- Parameters:
-
dst The first rectangle. src The second rectangle.
This function get the union of the rectangles dst
and src
. The result is stored in dst
. No check is done on dst
or src
, so they must be valid rectangles.
static Eina_Bool eina_rectangle_intersection | ( | Eina_Rectangle * | dst, | |
const Eina_Rectangle * | src | |||
) | [inline, static] |
Get the intersection of two rectangles.
- Parameters:
-
dst The first rectangle. src The second rectangle.
- Returns:
- EINA_TRUE if the rectangles intersect, EINA_FALSE otherwise.
This function get the intersection of the rectangles dst
and src
. The result is stored in dst
. No check is done on dst
or src
, so they must be valid rectangles.
Eina_Rectangle_Pool * eina_rectangle_pool_new | ( | int | w, | |
int | h | |||
) |
Add a rectangle in a new pool.
- Parameters:
-
w The width of the rectangle. h The height of the rectangle.
- Returns:
- A newly allocated pool on success,
NULL
otherwise.
This function adds the rectangle of size (width
, height
) to a new pool. If the pool can not be created, NULL
is returned. Otherwise the newly allocated pool is returned.
Eina_Rectangle_Pool * eina_rectangle_pool_get | ( | Eina_Rectangle * | rect | ) |
Return the pool of the given rectangle.
- Parameters:
-
rect The rectangle.
- Returns:
- The pool of the given rectangle.
This function returns the pool in which rect
is. If rect
is NULL
, NULL
is returned.
Eina_Bool eina_rectangle_pool_geometry_get | ( | Eina_Rectangle_Pool * | pool, | |
int * | w, | |||
int * | h | |||
) |
Return the width and height of the given pool.
- Parameters:
-
pool The pool. w The returned width. h The returned height.
- Returns:
- EINA_TRUE on success, EINA_FALSE otherwise.
This function returns the width and height of pool
and store them in respectively w
and h
if they are not NULL
. If pool
is NULL
, EINA_FALSE is returned. Otherwise EINA_TRUE is returned.
void * eina_rectangle_pool_data_get | ( | Eina_Rectangle_Pool * | pool | ) |
Get the data from the given pool.
- Parameters:
-
pool The pool.
- Returns:
- The returned data.
This function gets the data from pool
set by eina_rectangle_pool_data_set(). If pool
is NULL
, this function returns NULL
.
void eina_rectangle_pool_data_set | ( | Eina_Rectangle_Pool * | pool, | |
const void * | data | |||
) |
Set the data to the given pool.
- Parameters:
-
pool The pool. data The data to set.
This function sets data
to pool
. If pool
is NULL
, this function does nothing.
void eina_rectangle_pool_free | ( | Eina_Rectangle_Pool * | pool | ) |
Free the given pool.
- Parameters:
-
pool The pool to free.
This function frees the allocated data of pool
. If pool
is NULL
, ths function returned immediately.
int eina_rectangle_pool_count | ( | Eina_Rectangle_Pool * | pool | ) |
Return the number of rectangles in the given pool.
- Parameters:
-
pool The pool.
- Returns:
- The number of rectangles in the pool.
This function returns the number of rectangles in pool
.
Eina_Rectangle * eina_rectangle_pool_request | ( | Eina_Rectangle_Pool * | pool, | |
int | w, | |||
int | h | |||
) |
Request a rectangle of given size in the given pool.
- Parameters:
-
pool The pool. w The width of the rectangle to request. h The height of the rectangle to request.
- Returns:
- The requested rectangle on success,
NULL
otherwise.
This function retrieve from pool
the rectangle of width w
and height h
. If pool
is NULL
, or w
or h
are non-positive, the function returns NULL
. If w
or h
are greater than the pool size, the function returns NULL
. On success, the function returns the rectangle which matches the size (w
, h
). Otherwise it returns NULL
.
void eina_rectangle_pool_release | ( | Eina_Rectangle * | rect | ) |
Remove the given rectangle from the pool.
- Parameters:
-
rect The rectangle to remove from the pool.
This function removes rect
from the pool. If rect
is NULL
, the function returns immediately. Otherwise it remoes rect
from the pool.
Eina_Rectangle * eina_rectangle_new | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) |
Create a new rectangle.
- Parameters:
-
x The X coordinate of the top left corner of the rectangle. y The Y coordinate of the top left corner of the rectangle. w The width of the rectangle. h The height of the rectangle.
- Returns:
- The new rectangle on success, @ NULL otherwise.
This function creates a rectangle which top left corner has the coordinates (x
, y
), with height w
and height h
and adds it to the rectangles pool. No check is done on w
and h
. This function returns a new rectangle on success, NULL
otherwhise.
void eina_rectangle_free | ( | Eina_Rectangle * | rect | ) |
Free the given rectangle.
- Parameters:
-
rect The rectangle to free.
This function removes rect
from the rectangles pool.