\hypertarget{group__Eina__Rectangle__Group}{}\doxysection{Rectangle}
\label{group__Eina__Rectangle__Group}\index{Rectangle@{Rectangle}}


These functions provide rectangle management.  


\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Position2D}{\+\_\+\+Eina\+\_\+\+Position2D}}
\begin{DoxyCompactList}\small\item\em A 2D position in pixel coordinates. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Eina__Size2D}{\+\_\+\+Eina\+\_\+\+Size2D}}
\begin{DoxyCompactList}\small\item\em A 2D size in pixel coordinates. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Eina__Rectangle}{\+\_\+\+Eina\+\_\+\+Rectangle}}
\item 
union \mbox{\hyperlink{union__Eina__Rect}{\+\_\+\+Eina\+\_\+\+Rect}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gab43541e02b6f424833e4c80a1f8e95b2}\label{group__Eina__Rectangle__Group_gab43541e02b6f424833e4c80a1f8e95b2}} 
\#define {\bfseries EINA\+\_\+\+RECTANGLE\+\_\+\+INIT}~\{ 0, 0, 0, 0\}
\begin{DoxyCompactList}\small\item\em A zero-\/size rectangle. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga19aa6849720f79d346c870a9171a7eb5}\label{group__Eina__Rectangle__Group_ga19aa6849720f79d346c870a9171a7eb5}} 
\#define {\bfseries EINA\+\_\+\+RECTANGLE\+\_\+\+FORMAT}~\char`\"{}dx\%d -\/ \%dx\%d\char`\"{}
\begin{DoxyCompactList}\small\item\em A format string useful for printf-\/like functions. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga36d062c01320537481343cfe0335301b}\label{group__Eina__Rectangle__Group_ga36d062c01320537481343cfe0335301b}} 
\#define {\bfseries EINA\+\_\+\+RECTANGLE\+\_\+\+ARGS}(r)~(r)-\/$>$x, (r)-\/$>$y, (r)-\/$>$w, (r)-\/$>$h
\begin{DoxyCompactList}\small\item\em Separates the components of the rectangle structure into a comma-\/separated list, so they can be used as parameters. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gad57f0812a5c05eb7786524e4d5470dce}\label{group__Eina__Rectangle__Group_gad57f0812a5c05eb7786524e4d5470dce}} 
\#define {\bfseries EINA\+\_\+\+RECT}(x,  y,  w,  h)~((\mbox{\hyperlink{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}{Eina\+\_\+\+Rect}}) \{ \{ (x), (y), (w), (h) \} \})
\begin{DoxyCompactList}\small\item\em Creates an instance of an \mbox{\hyperlink{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}{Eina\+\_\+\+Rect}}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga6bce708b613c59aa4e1c0784c483472b}\label{group__Eina__Rectangle__Group_ga6bce708b613c59aa4e1c0784c483472b}} 
\#define {\bfseries EINA\+\_\+\+RECT\+\_\+\+ZERO}()~\{ \mbox{\hyperlink{group__Eina__Rectangle__Group_gab43541e02b6f424833e4c80a1f8e95b2}{EINA\+\_\+\+RECTANGLE\+\_\+\+INIT}} \}
\begin{DoxyCompactList}\small\item\em A zero-\/size rectangle that can be used to initialize \mbox{\hyperlink{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}{Eina\+\_\+\+Rect}} structures. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga8d0c4790f5b6bd16f809c5606ff0f805}\label{group__Eina__Rectangle__Group_ga8d0c4790f5b6bd16f809c5606ff0f805}} 
\#define {\bfseries EINA\+\_\+\+RECT\+\_\+\+EMPTY}()~((\mbox{\hyperlink{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}{Eina\+\_\+\+Rect}}) \mbox{\hyperlink{group__Eina__Rectangle__Group_ga6bce708b613c59aa4e1c0784c483472b}{EINA\+\_\+\+RECT\+\_\+\+ZERO}}())
\begin{DoxyCompactList}\small\item\em A zero-\/size rectangle that can be used to initialize \mbox{\hyperlink{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}{Eina\+\_\+\+Rect}} structures. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga4fd5e5268b67001d301afc7c37401cfe}\label{group__Eina__Rectangle__Group_ga4fd5e5268b67001d301afc7c37401cfe}} 
\#define {\bfseries EINA\+\_\+\+POSITION2D}(x,  y)~((\mbox{\hyperlink{group__Eina__Rectangle__Group_gaf21d8be3d5f6bb99fcf87d8946871d9e}{Eina\+\_\+\+Position2D}}) \{ (x), (y) \})
\begin{DoxyCompactList}\small\item\em Creates an instance of an \mbox{\hyperlink{group__Eina__Rectangle__Group_gaf21d8be3d5f6bb99fcf87d8946871d9e}{Eina\+\_\+\+Position2D}}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga0cab4e55c4133b7d476af1de66545617}\label{group__Eina__Rectangle__Group_ga0cab4e55c4133b7d476af1de66545617}} 
\#define {\bfseries EINA\+\_\+\+SIZE2D}(x,  y)~((\mbox{\hyperlink{group__Eina__Rectangle__Group_ga22dfe5baa3a9961d55f2066ac7cf9a54}{Eina\+\_\+\+Size2D}}) \{ (x), (y) \})
\begin{DoxyCompactList}\small\item\em Creates an instance of an \mbox{\hyperlink{group__Eina__Rectangle__Group_ga22dfe5baa3a9961d55f2066ac7cf9a54}{Eina\+\_\+\+Size2D}}. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Rectangle__Group_gaab68032ceb1a1688f46fc019170d9443}{EINA\+\_\+\+SIZE2\+D\+\_\+\+EQ}}(a,  b)~  (((a).w == (b).w) \&\& ((a).h == (b).h))
\begin{DoxyCompactList}\small\item\em convenience macro for comparing two Eina\+\_\+\+Size2D structs \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Rectangle__Group_ga1bb31f76776758659fd5739581c21c35}{EINA\+\_\+\+POSITION2\+D\+\_\+\+EQ}}(a,  b)~  (((a).x == (b).x) \&\& ((a).y == (b).y))
\begin{DoxyCompactList}\small\item\em convenience macro for comparing two Eina\+\_\+\+Position2D structs \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Rectangle__Group_ga4989be43558647f21e4fcfb458d39caa}{EINA\+\_\+\+POSITION2\+D\+\_\+\+DISTANCE}}(a,  b)~  sqrt((a.\+x -\/ b.\+x)$\ast$(a.\+x -\/ b.\+x) + (a.\+y -\/ b.\+y)$\ast$(a.\+y -\/ b.\+y))
\begin{DoxyCompactList}\small\item\em Convenience macro for getting the distance from one point to another. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}{EINA\+\_\+\+RECTANGLE\+\_\+\+SET}}(Rectangle,  X,  Y,  W,  H)
\begin{DoxyCompactList}\small\item\em Definition for the macro to set the values of a \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga887a9d756d23f1bcba818ebeefbb007d}\label{group__Eina__Rectangle__Group_ga887a9d756d23f1bcba818ebeefbb007d}} 
\#define {\bfseries EINA\+\_\+\+RECT\+\_\+\+SET}(rect,  x,  y,  w,  h)~do \{ \mbox{\hyperlink{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}{EINA\+\_\+\+RECTANGLE\+\_\+\+SET}}((\&rect), x, y, w, h) \} while (0)
\begin{DoxyCompactList}\small\item\em Functionally equivalent to \mbox{\hyperlink{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}{EINA\+\_\+\+RECTANGLE\+\_\+\+SET}}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gaf21d8be3d5f6bb99fcf87d8946871d9e}\label{group__Eina__Rectangle__Group_gaf21d8be3d5f6bb99fcf87d8946871d9e}} 
typedef struct \mbox{\hyperlink{struct__Eina__Position2D}{\+\_\+\+Eina\+\_\+\+Position2D}} {\bfseries Eina\+\_\+\+Position2D}
\begin{DoxyCompactList}\small\item\em A 2D position in pixel coordinates. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga22dfe5baa3a9961d55f2066ac7cf9a54}\label{group__Eina__Rectangle__Group_ga22dfe5baa3a9961d55f2066ac7cf9a54}} 
typedef struct \mbox{\hyperlink{struct__Eina__Size2D}{\+\_\+\+Eina\+\_\+\+Size2D}} {\bfseries Eina\+\_\+\+Size2D}
\begin{DoxyCompactList}\small\item\em A 2D size in pixel coordinates. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}\label{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}} 
typedef struct \mbox{\hyperlink{struct__Eina__Rectangle}{\+\_\+\+Eina\+\_\+\+Rectangle}} {\bfseries Eina\+\_\+\+Rectangle}
\begin{DoxyCompactList}\small\item\em Simple rectangle structure. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}\label{group__Eina__Rectangle__Group_ga54eb5415ac2d06bebae66e984565a57a}} 
typedef union \mbox{\hyperlink{union__Eina__Rect}{\+\_\+\+Eina\+\_\+\+Rect}} {\bfseries Eina\+\_\+\+Rect}
\begin{DoxyCompactList}\small\item\em A convenient rectangle structure which can be accessed in different ways. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}\label{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}} 
typedef struct \+\_\+\+Eina\+\_\+\+Rectangle\+\_\+\+Pool {\bfseries Eina\+\_\+\+Rectangle\+\_\+\+Pool}
\begin{DoxyCompactList}\small\item\em Type for an opaque pool of rectangles. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing}} \{ \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}{Eina\+\_\+\+Packing\+\_\+\+Descending}}
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}{Eina\+\_\+\+Packing\+\_\+\+Ascending}}
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a7a9143713a6034cde30101862f33b87b}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left}}
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2aa72ba69b93b6c5909417cf9a63491b83}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline}}
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved}}
 \}
\begin{DoxyCompactList}\small\item\em Type for an Eina Pool based on a packing algorithm. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__Eina__Rectangle__Group_ga7806a1ab562c5461eeddb4d0fec4a09f}{Eina\+\_\+\+Rectangle\+\_\+\+Outside}} \{ \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa9b2597198b2b9d1eb5bc0445e6c394c7}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+TOP}} = 1
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa2633fb296b3ebc34145b60cbac0ce5f1}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+LEFT}} = 2
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fad413fe789317e33a839ef96e4dbeb52a}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+BOTTOM}} = 4
, \newline
\mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa3ee4e888f29803a909d2b0ac79d43915}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+RIGHT}} = 8
 \}
\begin{DoxyCompactList}\small\item\em Enumeration of the positions around a rectangle. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static int \mbox{\hyperlink{group__Eina__Rectangle__Group_ga5ff97140fd94411786c96052800a9d7f}{eina\+\_\+spans\+\_\+intersect}} (int c1, int l1, int c2, int l2)
\begin{DoxyCompactList}\small\item\em Checks if the given spans intersect. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga51ddc48c1c40831457ad59797d8a7b91}{eina\+\_\+rectangle\+\_\+is\+\_\+empty}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Checks if the given rectangle is empty. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga6ddc8af1572d8a4f5aa2e4cc2e0b552f}{eina\+\_\+rectangle\+\_\+coords\+\_\+from}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, int x, int y, int w, int h)
\begin{DoxyCompactList}\small\item\em Sets the coordinates and size of a rectangle. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga2d2e8fce5cb8a06b55bf2a12e6520bf4}{eina\+\_\+rectangles\+\_\+intersect}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect1, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect2)
\begin{DoxyCompactList}\small\item\em Checks if two rectangles intersect. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga8e07520e4f0639e61809f56873441c57}{eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, int x)
\begin{DoxyCompactList}\small\item\em Checks if the given X-\/coordinate is in the rectangle. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga3af22b4d07e56a9804eb44e8a4fd5e32}{eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, int y)
\begin{DoxyCompactList}\small\item\em Checks if the given Y-\/coordinate is in the rectangle. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga5ae5aed724be0762008a7e7474ecc648}{eina\+\_\+rectangle\+\_\+coords\+\_\+inside}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, int x, int y)
\begin{DoxyCompactList}\small\item\em Checks if the given point is inside the rectangle. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga1a42c32d36c2350f3786923de67b07a8}{eina\+\_\+rectangle\+\_\+union}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$dst, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Gets the union of two rectangles. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga563ffb826d1e5002d01a72a3b5187bb8}{eina\+\_\+rectangle\+\_\+intersection}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$dst, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$src)
\begin{DoxyCompactList}\small\item\em Gets the intersection of two rectangles. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga107111b395a246367f75e94184651fed}{eina\+\_\+rectangle\+\_\+rescale\+\_\+in}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$out, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$in, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$res)
\begin{DoxyCompactList}\small\item\em FIXME I am useless and used by no one. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga8bfbad1750fff92db1aabeda68f513e7}{eina\+\_\+rectangle\+\_\+rescale\+\_\+out}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$out, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$in, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$res)
\begin{DoxyCompactList}\small\item\em FIXME I am useless and used by no one. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga7aa58016db2c42bab75641297197afe2}{eina\+\_\+rectangle\+\_\+is\+\_\+valid}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Tells whether a rectangle is valid. \end{DoxyCompactList}\item 
static int \mbox{\hyperlink{group__Eina__Rectangle__Group_ga1243bd4422b876270eaf756e1896d4f3}{eina\+\_\+rectangle\+\_\+max\+\_\+x}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Gets the rectangle\textquotesingle{}s maximum X coordinate. \end{DoxyCompactList}\item 
static int \mbox{\hyperlink{group__Eina__Rectangle__Group_ga6be79d0a7c73bda48cf0a988193d6703}{eina\+\_\+rectangle\+\_\+max\+\_\+y}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Gets the rectangle maximum Y coordinate. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gaa03c4a5b00ac22d10ea8cf0e65ad1dce}{eina\+\_\+rectangle\+\_\+x\+\_\+cut}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$slice, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$remainder, int amount)
\begin{DoxyCompactList}\small\item\em Slices a rectangle vertically into two subrectangles. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gacecc18c8d0558bef529096055bb62abb}{eina\+\_\+rectangle\+\_\+y\+\_\+cut}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$slice, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$remainder, int amount)
\begin{DoxyCompactList}\small\item\em Slices a rectangle horizontally into two subrectangles. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga5d9362aa25947dba6fc19caa645b5768}{eina\+\_\+rectangle\+\_\+width\+\_\+cut}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$slice, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$remainder, int amount)
\begin{DoxyCompactList}\small\item\em Slices a rectangle vertically starting from right edge. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga0a5cfac7544395d82ffe593d81693836}{eina\+\_\+rectangle\+\_\+height\+\_\+cut}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$slice, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$remainder, int amount)
\begin{DoxyCompactList}\small\item\em Slices a rectangle horizontally starting from top edge. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga45ca35f68eb74427c420003cdec5ece9}{eina\+\_\+rectangle\+\_\+subtract}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$other, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} out\mbox{[}4\mbox{]})
\begin{DoxyCompactList}\small\item\em Subtracts two rectangles and returns the differences. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$ \mbox{\hyperlink{group__Eina__Rectangle__Group_gaf334edef10f5a4192d1ec2860f6c423b}{eina\+\_\+rectangle\+\_\+pool\+\_\+new}} (int w, int h)
\begin{DoxyCompactList}\small\item\em Adds a rectangle in a new pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$ \mbox{\hyperlink{group__Eina__Rectangle__Group_gaec3cda2afd48676732ae332286b20808}{eina\+\_\+rectangle\+\_\+pool\+\_\+get}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Returns the pool of the given rectangle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gaf7ff6623794c6fb5bf7a978c113f3a92}{eina\+\_\+rectangle\+\_\+pool\+\_\+geometry\+\_\+get}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool, int $\ast$w, int $\ast$h)
\begin{DoxyCompactList}\small\item\em Returns the width and height of the given pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void $\ast$ \mbox{\hyperlink{group__Eina__Rectangle__Group_ga09091ec0a1bec85d0ef45a4bb040d7c4}{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+get}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool)
\begin{DoxyCompactList}\small\item\em Gets the data from the given pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga0e13979e7e618d80a538ec3c2c549b36}{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets the data to the given pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga267d3848cb5ed2d3d0ea8f9e17cc8fac}{eina\+\_\+rectangle\+\_\+pool\+\_\+free}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool)
\begin{DoxyCompactList}\small\item\em Frees the given pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} int \mbox{\hyperlink{group__Eina__Rectangle__Group_ga57b2f569c5064a8525829d0bb1e3a0ea}{eina\+\_\+rectangle\+\_\+pool\+\_\+count}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool)
\begin{DoxyCompactList}\small\item\em Returns the number of rectangles in the given pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$ \mbox{\hyperlink{group__Eina__Rectangle__Group_ga6b76645d9c7b97d7de540792bae9d776}{eina\+\_\+rectangle\+\_\+pool\+\_\+request}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool, int w, int h)
\begin{DoxyCompactList}\small\item\em Requests a rectangle of given size in the given pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Rectangle__Group_gab9428bee6f53a3f8c91b7f92a7c503aa}{eina\+\_\+rectangle\+\_\+pool\+\_\+release}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Removes the given rectangle from the pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$ \mbox{\hyperlink{group__Eina__Rectangle__Group_gafeceda201f5cdd5fc979c74f070463eb}{eina\+\_\+rectangle\+\_\+new}} (int x, int y, int w, int h)
\begin{DoxyCompactList}\small\item\em Creates a new rectangle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Rectangle__Group_ga0475020c36dd3dce56d1843c5aa02258}{eina\+\_\+rectangle\+\_\+free}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect)
\begin{DoxyCompactList}\small\item\em Frees the given rectangle. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void \mbox{\hyperlink{group__Eina__Rectangle__Group_gab922142c5c5b0e5ead81cb39252a0dbc}{eina\+\_\+rectangle\+\_\+pool\+\_\+packing\+\_\+set}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$pool, \mbox{\hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing}} type)
\begin{DoxyCompactList}\small\item\em Sets the type of given rectangle pool. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga7806a1ab562c5461eeddb4d0fec4a09f}{Eina\+\_\+\+Rectangle\+\_\+\+Outside}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gaef00a1ee9732240d367c83e47eb6be5d}{eina\+\_\+rectangle\+\_\+outside\+\_\+position}} (\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect1, \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect2)
\begin{DoxyCompactList}\small\item\em calculates where rect2 is outside of rect1. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gae16926037c054a0a9f4b5cc402a20942}{eina\+\_\+rectangle\+\_\+equal}} (const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect1, const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$rect2)
\begin{DoxyCompactList}\small\item\em Compares two rectangles for equality. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
These functions provide rectangle management. 



\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gaab68032ceb1a1688f46fc019170d9443}\label{group__Eina__Rectangle__Group_gaab68032ceb1a1688f46fc019170d9443}} 
\index{Rectangle@{Rectangle}!EINA\_SIZE2D\_EQ@{EINA\_SIZE2D\_EQ}}
\index{EINA\_SIZE2D\_EQ@{EINA\_SIZE2D\_EQ}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{EINA\_SIZE2D\_EQ}{EINA\_SIZE2D\_EQ}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+SIZE2\+D\+\_\+\+EQ(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{b }\end{DoxyParamCaption})~  (((a).w == (b).w) \&\& ((a).h == (b).h))}



convenience macro for comparing two Eina\+\_\+\+Size2D structs 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & An Eina\+\_\+\+Size2D \\
\hline
\mbox{\texttt{ in}}  & {\em b} & An Eina\+\_\+\+Size2D \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if the structs are equal, 0 if they are not 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga1bb31f76776758659fd5739581c21c35}\label{group__Eina__Rectangle__Group_ga1bb31f76776758659fd5739581c21c35}} 
\index{Rectangle@{Rectangle}!EINA\_POSITION2D\_EQ@{EINA\_POSITION2D\_EQ}}
\index{EINA\_POSITION2D\_EQ@{EINA\_POSITION2D\_EQ}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{EINA\_POSITION2D\_EQ}{EINA\_POSITION2D\_EQ}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+POSITION2\+D\+\_\+\+EQ(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{b }\end{DoxyParamCaption})~  (((a).x == (b).x) \&\& ((a).y == (b).y))}



convenience macro for comparing two Eina\+\_\+\+Position2D structs 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & An Eina\+\_\+\+Position2D \\
\hline
\mbox{\texttt{ in}}  & {\em b} & An Eina\+\_\+\+Position2D \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 if the structs are equal, 0 if they are not 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga4989be43558647f21e4fcfb458d39caa}\label{group__Eina__Rectangle__Group_ga4989be43558647f21e4fcfb458d39caa}} 
\index{Rectangle@{Rectangle}!EINA\_POSITION2D\_DISTANCE@{EINA\_POSITION2D\_DISTANCE}}
\index{EINA\_POSITION2D\_DISTANCE@{EINA\_POSITION2D\_DISTANCE}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{EINA\_POSITION2D\_DISTANCE}{EINA\_POSITION2D\_DISTANCE}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+POSITION2\+D\+\_\+\+DISTANCE(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{b }\end{DoxyParamCaption})~  sqrt((a.\+x -\/ b.\+x)$\ast$(a.\+x -\/ b.\+x) + (a.\+y -\/ b.\+y)$\ast$(a.\+y -\/ b.\+y))}



Convenience macro for getting the distance from one point to another. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & An Eina\+\_\+\+Position2D \\
\hline
\mbox{\texttt{ in}}  & {\em b} & An Eina\+\_\+\+Position2D \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The distance between the two points. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+24 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}\label{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}} 
\index{Rectangle@{Rectangle}!EINA\_RECTANGLE\_SET@{EINA\_RECTANGLE\_SET}}
\index{EINA\_RECTANGLE\_SET@{EINA\_RECTANGLE\_SET}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{EINA\_RECTANGLE\_SET}{EINA\_RECTANGLE\_SET}}
{\footnotesize\ttfamily \#define EINA\+\_\+\+RECTANGLE\+\_\+\+SET(\begin{DoxyParamCaption}\item[{}]{Rectangle,  }\item[{}]{X,  }\item[{}]{Y,  }\item[{}]{W,  }\item[{}]{H }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \{                                             \(\backslash\)}
\DoxyCodeLine{      (Rectangle)-\/>x = X;                         \(\backslash\)}
\DoxyCodeLine{      (Rectangle)-\/>y = Y;                         \(\backslash\)}
\DoxyCodeLine{      (Rectangle)-\/>w = W;                         \(\backslash\)}
\DoxyCodeLine{      (Rectangle)-\/>h = H;                         \(\backslash\)}
\DoxyCodeLine{    \}}

\end{DoxyCode}


Definition for the macro to set the values of a \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em Rectangle} & The rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em X} & The X coordinate of the top left corner of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em Y} & The Y coordinate of the top left corner of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em W} & The width of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em H} & The height of the rectangle.\\
\hline
\end{DoxyParams}
This macro set the values of {\ttfamily Rectangle}. {\ttfamily X} and {\ttfamily Y} are the coordinates of the top left corner of {\ttfamily Rectangle}, {\ttfamily W} is its width and {\ttfamily H} is its height. 

\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}\label{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}} 
\index{Rectangle@{Rectangle}!Eina\_Rectangle\_Packing@{Eina\_Rectangle\_Packing}}
\index{Eina\_Rectangle\_Packing@{Eina\_Rectangle\_Packing}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{Eina\_Rectangle\_Packing}{Eina\_Rectangle\_Packing}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing}}}



Type for an Eina Pool based on a packing algorithm. 

\begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{Eina\_Packing\_Descending@{Eina\_Packing\_Descending}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\_Packing\_Descending@{Eina\_Packing\_Descending}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}} 
Eina\+\_\+\+Packing\+\_\+\+Descending&Current. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Eina\_Packing\_Ascending@{Eina\_Packing\_Ascending}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\_Packing\_Ascending@{Eina\_Packing\_Ascending}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}} 
Eina\+\_\+\+Packing\+\_\+\+Ascending&sorting in ascending order \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Eina\_Packing\_Bottom\_Left@{Eina\_Packing\_Bottom\_Left}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\_Packing\_Bottom\_Left@{Eina\_Packing\_Bottom\_Left}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a7a9143713a6034cde30101862f33b87b}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a7a9143713a6034cde30101862f33b87b}} 
Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left&sorting in bottom left fashion \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Eina\_Packing\_Bottom\_Left\_Skyline@{Eina\_Packing\_Bottom\_Left\_Skyline}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\_Packing\_Bottom\_Left\_Skyline@{Eina\_Packing\_Bottom\_Left\_Skyline}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2aa72ba69b93b6c5909417cf9a63491b83}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2aa72ba69b93b6c5909417cf9a63491b83}} 
Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline&bottom left skyline ~\newline
 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{Eina\_Packing\_Bottom\_Left\_Skyline\_Improved@{Eina\_Packing\_Bottom\_Left\_Skyline\_Improved}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\_Packing\_Bottom\_Left\_Skyline\_Improved@{Eina\_Packing\_Bottom\_Left\_Skyline\_Improved}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}} 
Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved&optimized bottom left skyline ~\newline
 \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga7806a1ab562c5461eeddb4d0fec4a09f}\label{group__Eina__Rectangle__Group_ga7806a1ab562c5461eeddb4d0fec4a09f}} 
\index{Rectangle@{Rectangle}!Eina\_Rectangle\_Outside@{Eina\_Rectangle\_Outside}}
\index{Eina\_Rectangle\_Outside@{Eina\_Rectangle\_Outside}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{Eina\_Rectangle\_Outside}{Eina\_Rectangle\_Outside}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Rectangle__Group_ga7806a1ab562c5461eeddb4d0fec4a09f}{Eina\+\_\+\+Rectangle\+\_\+\+Outside}}}



Enumeration of the positions around a rectangle. 

\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_RECTANGLE\_OUTSIDE\_TOP@{EINA\_RECTANGLE\_OUTSIDE\_TOP}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!EINA\_RECTANGLE\_OUTSIDE\_TOP@{EINA\_RECTANGLE\_OUTSIDE\_TOP}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa9b2597198b2b9d1eb5bc0445e6c394c7}\label{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa9b2597198b2b9d1eb5bc0445e6c394c7}} 
EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+TOP&Position is over the rectangle. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_RECTANGLE\_OUTSIDE\_LEFT@{EINA\_RECTANGLE\_OUTSIDE\_LEFT}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!EINA\_RECTANGLE\_OUTSIDE\_LEFT@{EINA\_RECTANGLE\_OUTSIDE\_LEFT}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa2633fb296b3ebc34145b60cbac0ce5f1}\label{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa2633fb296b3ebc34145b60cbac0ce5f1}} 
EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+LEFT&Position is to the left of the rectangle. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_RECTANGLE\_OUTSIDE\_BOTTOM@{EINA\_RECTANGLE\_OUTSIDE\_BOTTOM}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!EINA\_RECTANGLE\_OUTSIDE\_BOTTOM@{EINA\_RECTANGLE\_OUTSIDE\_BOTTOM}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fad413fe789317e33a839ef96e4dbeb52a}\label{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fad413fe789317e33a839ef96e4dbeb52a}} 
EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+BOTTOM&Position is below the rectangle. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_RECTANGLE\_OUTSIDE\_RIGHT@{EINA\_RECTANGLE\_OUTSIDE\_RIGHT}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!EINA\_RECTANGLE\_OUTSIDE\_RIGHT@{EINA\_RECTANGLE\_OUTSIDE\_RIGHT}}}\mbox{\Hypertarget{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa3ee4e888f29803a909d2b0ac79d43915}\label{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa3ee4e888f29803a909d2b0ac79d43915}} 
EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+RIGHT&Position is to the right of the rectangle. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga5ff97140fd94411786c96052800a9d7f}\label{group__Eina__Rectangle__Group_ga5ff97140fd94411786c96052800a9d7f}} 
\index{Rectangle@{Rectangle}!eina\_spans\_intersect@{eina\_spans\_intersect}}
\index{eina\_spans\_intersect@{eina\_spans\_intersect}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_spans\_intersect()}{eina\_spans\_intersect()}}
{\footnotesize\ttfamily static int eina\+\_\+spans\+\_\+intersect (\begin{DoxyParamCaption}\item[{int}]{c1,  }\item[{int}]{l1,  }\item[{int}]{c2,  }\item[{int}]{l2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks if the given spans intersect. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em c1} & The column of the first span. \\
\hline
\mbox{\texttt{ in}}  & {\em l1} & The length of the first span. \\
\hline
\mbox{\texttt{ in}}  & {\em c2} & The column of the second span. \\
\hline
\mbox{\texttt{ in}}  & {\em l2} & The length of the second span. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the given spans intersect, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga51ddc48c1c40831457ad59797d8a7b91}\label{group__Eina__Rectangle__Group_ga51ddc48c1c40831457ad59797d8a7b91}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_is\_empty@{eina\_rectangle\_is\_empty}}
\index{eina\_rectangle\_is\_empty@{eina\_rectangle\_is\_empty}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_is\_empty()}{eina\_rectangle\_is\_empty()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+is\+\_\+empty (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks if the given rectangle is empty. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the rectangle {\ttfamily r} is empty, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
No check is done on {\ttfamily r}, so it must be a valid rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga6ddc8af1572d8a4f5aa2e4cc2e0b552f}\label{group__Eina__Rectangle__Group_ga6ddc8af1572d8a4f5aa2e4cc2e0b552f}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_coords\_from@{eina\_rectangle\_coords\_from}}
\index{eina\_rectangle\_coords\_from@{eina\_rectangle\_coords\_from}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_coords\_from()}{eina\_rectangle\_coords\_from()}}
{\footnotesize\ttfamily static void eina\+\_\+rectangle\+\_\+coords\+\_\+from (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{int}]{x,  }\item[{int}]{y,  }\item[{int}]{w,  }\item[{int}]{h }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sets the coordinates and size of a rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em rect} & The rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em x} & The X coordinate of the rectangle\textquotesingle{}s top-\/left corner. \\
\hline
\mbox{\texttt{ in}}  & {\em y} & The Y coordinate of the rectangle\textquotesingle{}s top-\/left corner. \\
\hline
\mbox{\texttt{ in}}  & {\em w} & The width of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & The height of the rectangle.\\
\hline
\end{DoxyParams}
This function sets its top-\/left X coordinate to {\ttfamily x}, its top-\/left Y coordinate to {\ttfamily y}, its width to {\ttfamily w} and its height to {\ttfamily h}.

No check is done on {\ttfamily r}, so it must be a valid rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga2d2e8fce5cb8a06b55bf2a12e6520bf4}\label{group__Eina__Rectangle__Group_ga2d2e8fce5cb8a06b55bf2a12e6520bf4}} 
\index{Rectangle@{Rectangle}!eina\_rectangles\_intersect@{eina\_rectangles\_intersect}}
\index{eina\_rectangles\_intersect@{eina\_rectangles\_intersect}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangles\_intersect()}{eina\_rectangles\_intersect()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangles\+\_\+intersect (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect1,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks if two rectangles intersect. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect1} & The first rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em rect2} & The second rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the rectangles {\ttfamily rect1} and {\ttfamily rect2} intersect, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
No check is done on {\ttfamily rect1} and {\ttfamily rect2}, so they must be valid rectangles. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga8e07520e4f0639e61809f56873441c57}\label{group__Eina__Rectangle__Group_ga8e07520e4f0639e61809f56873441c57}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_xcoord\_inside@{eina\_rectangle\_xcoord\_inside}}
\index{eina\_rectangle\_xcoord\_inside@{eina\_rectangle\_xcoord\_inside}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_xcoord\_inside()}{eina\_rectangle\_xcoord\_inside()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{int}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks if the given X-\/coordinate is in the rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em x} & The X coordinate. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if {\ttfamily x} is between the rectangle\textquotesingle{}s left and right edges, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
No check is done on {\ttfamily r}, so it must be a valid rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga3af22b4d07e56a9804eb44e8a4fd5e32}\label{group__Eina__Rectangle__Group_ga3af22b4d07e56a9804eb44e8a4fd5e32}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_ycoord\_inside@{eina\_rectangle\_ycoord\_inside}}
\index{eina\_rectangle\_ycoord\_inside@{eina\_rectangle\_ycoord\_inside}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_ycoord\_inside()}{eina\_rectangle\_ycoord\_inside()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{int}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks if the given Y-\/coordinate is in the rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em y} & The Y coordinate. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if {\ttfamily y} is between the rectangle\textquotesingle{}s top and bottom edges, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
No check is done on {\ttfamily r}, so it must be a valid rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga5ae5aed724be0762008a7e7474ecc648}\label{group__Eina__Rectangle__Group_ga5ae5aed724be0762008a7e7474ecc648}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_coords\_inside@{eina\_rectangle\_coords\_inside}}
\index{eina\_rectangle\_coords\_inside@{eina\_rectangle\_coords\_inside}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_coords\_inside()}{eina\_rectangle\_coords\_inside()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+coords\+\_\+inside (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{int}]{x,  }\item[{int}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Checks if the given point is inside the rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em x} & The x coordinate of the point. \\
\hline
\mbox{\texttt{ in}}  & {\em y} & The y coordinate of the point. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the point ({\ttfamily x}, {\ttfamily y}) is within the edges of {\ttfamily r}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
No check is done on {\ttfamily r}, so it must be a valid rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga1a42c32d36c2350f3786923de67b07a8}\label{group__Eina__Rectangle__Group_ga1a42c32d36c2350f3786923de67b07a8}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_union@{eina\_rectangle\_union}}
\index{eina\_rectangle\_union@{eina\_rectangle\_union}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_union()}{eina\_rectangle\_union()}}
{\footnotesize\ttfamily static void eina\+\_\+rectangle\+\_\+union (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{dst,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the union of two rectangles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em dst} & The first rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em src} & The second rectangle.\\
\hline
\end{DoxyParams}
Changes {\ttfamily dst} to be the bounding box of both rectangles {\ttfamily dst} and {\ttfamily src}.

No check is done on {\ttfamily dst} or {\ttfamily src}, so they must be valid rectangles. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga563ffb826d1e5002d01a72a3b5187bb8}\label{group__Eina__Rectangle__Group_ga563ffb826d1e5002d01a72a3b5187bb8}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_intersection@{eina\_rectangle\_intersection}}
\index{eina\_rectangle\_intersection@{eina\_rectangle\_intersection}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_intersection()}{eina\_rectangle\_intersection()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+intersection (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{dst,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the intersection of two rectangles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em dst} & The first rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em src} & The second rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the rectangles intersect, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
Changes {\ttfamily dst} to be the rectangle represented by the intersection of {\ttfamily dst} and {\ttfamily src}. {\ttfamily dst} is unchanged if the two rectangles do not intersect.

No check is done on {\ttfamily dst} or {\ttfamily src}, so they must be valid rectangles. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga107111b395a246367f75e94184651fed}\label{group__Eina__Rectangle__Group_ga107111b395a246367f75e94184651fed}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_rescale\_in@{eina\_rectangle\_rescale\_in}}
\index{eina\_rectangle\_rescale\_in@{eina\_rectangle\_rescale\_in}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_rescale\_in()}{eina\_rectangle\_rescale\_in()}}
{\footnotesize\ttfamily static void eina\+\_\+rectangle\+\_\+rescale\+\_\+in (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{in,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{res }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



FIXME I am useless and used by no one. 


\begin{DoxyParams}{Parameters}
{\em in} & The inner rectangle. \\
\hline
{\em out} & The outer rectangle. \\
\hline
{\em res} & The resulting rectangle. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga8bfbad1750fff92db1aabeda68f513e7}\label{group__Eina__Rectangle__Group_ga8bfbad1750fff92db1aabeda68f513e7}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_rescale\_out@{eina\_rectangle\_rescale\_out}}
\index{eina\_rectangle\_rescale\_out@{eina\_rectangle\_rescale\_out}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_rescale\_out()}{eina\_rectangle\_rescale\_out()}}
{\footnotesize\ttfamily static void eina\+\_\+rectangle\+\_\+rescale\+\_\+out (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{out,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{in,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{res }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



FIXME I am useless and used by no one. 


\begin{DoxyParams}{Parameters}
{\em in} & The inner rectangle. \\
\hline
{\em out} & The outer rectangle. \\
\hline
{\em res} & The resulting rectangle. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga7aa58016db2c42bab75641297197afe2}\label{group__Eina__Rectangle__Group_ga7aa58016db2c42bab75641297197afe2}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_is\_valid@{eina\_rectangle\_is\_valid}}
\index{eina\_rectangle\_is\_valid@{eina\_rectangle\_is\_valid}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_is\_valid()}{eina\_rectangle\_is\_valid()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+is\+\_\+valid (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Tells whether a rectangle is valid. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the rectangle is valid, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
This function checks if both width and height attributes of the rectangle are positive integers. If so, the rectangle is considered valid, else the rectangle is invalid. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga1243bd4422b876270eaf756e1896d4f3}\label{group__Eina__Rectangle__Group_ga1243bd4422b876270eaf756e1896d4f3}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_max\_x@{eina\_rectangle\_max\_x}}
\index{eina\_rectangle\_max\_x@{eina\_rectangle\_max\_x}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_max\_x()}{eina\_rectangle\_max\_x()}}
{\footnotesize\ttfamily static int eina\+\_\+rectangle\+\_\+max\+\_\+x (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the rectangle\textquotesingle{}s maximum X coordinate. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The maximum X coordinate.
\end{DoxyReturn}
This function calculates the maximum X coordinate of the rectangle by summing the {\ttfamily width} with the current {\ttfamily x} coordinate of the rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga6be79d0a7c73bda48cf0a988193d6703}\label{group__Eina__Rectangle__Group_ga6be79d0a7c73bda48cf0a988193d6703}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_max\_y@{eina\_rectangle\_max\_y}}
\index{eina\_rectangle\_max\_y@{eina\_rectangle\_max\_y}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_max\_y()}{eina\_rectangle\_max\_y()}}
{\footnotesize\ttfamily static int eina\+\_\+rectangle\+\_\+max\+\_\+y (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Gets the rectangle maximum Y coordinate. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The maximum Y coordinate.
\end{DoxyReturn}
This function calculates the maximum Y coordinate of the rectangle by summing the {\ttfamily height} with the current {\ttfamily y} coordinate of the rectangle. \mbox{\Hypertarget{group__Eina__Rectangle__Group_gaa03c4a5b00ac22d10ea8cf0e65ad1dce}\label{group__Eina__Rectangle__Group_gaa03c4a5b00ac22d10ea8cf0e65ad1dce}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_x\_cut@{eina\_rectangle\_x\_cut}}
\index{eina\_rectangle\_x\_cut@{eina\_rectangle\_x\_cut}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_x\_cut()}{eina\_rectangle\_x\_cut()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+x\+\_\+cut (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{slice,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{remainder,  }\item[{int}]{amount }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Slices a rectangle vertically into two subrectangles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle to slice. \\
\hline
\mbox{\texttt{ out}}  & {\em slice} & The sliced part of the rectangle. \\
\hline
\mbox{\texttt{ out}}  & {\em remainder} & The left over part of the rectangle after slicing. \\
\hline
\mbox{\texttt{ in}}  & {\em amount} & The slice location\textquotesingle{}s horizontal distance from the left. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the cut succeeds, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
Cut a rectangle vertically at a distance {\ttfamily amount} from the rectangle\textquotesingle{}s left edge. If the {\ttfamily amount} value is greater than the rectangle\textquotesingle{}s width, no cut is performed and \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} is returned. \mbox{\Hypertarget{group__Eina__Rectangle__Group_gacecc18c8d0558bef529096055bb62abb}\label{group__Eina__Rectangle__Group_gacecc18c8d0558bef529096055bb62abb}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_y\_cut@{eina\_rectangle\_y\_cut}}
\index{eina\_rectangle\_y\_cut@{eina\_rectangle\_y\_cut}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_y\_cut()}{eina\_rectangle\_y\_cut()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+y\+\_\+cut (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{slice,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{remainder,  }\item[{int}]{amount }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Slices a rectangle horizontally into two subrectangles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle to slice. \\
\hline
\mbox{\texttt{ out}}  & {\em slice} & The sliced part of the rectangle. \\
\hline
\mbox{\texttt{ out}}  & {\em remainder} & The left over part of the rectangle after slicing. \\
\hline
\mbox{\texttt{ in}}  & {\em amount} & The slice location\textquotesingle{}s vertical distance from the bottom. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the cut succeeds, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise
\end{DoxyReturn}
Cut a rectangle horizontally at a distance {\ttfamily amount} from the rectangle\textquotesingle{}s bottom edge. If the {\ttfamily amount} value is greater than the rectangle\textquotesingle{}s height, no cut is performed and \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} is returned. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga5d9362aa25947dba6fc19caa645b5768}\label{group__Eina__Rectangle__Group_ga5d9362aa25947dba6fc19caa645b5768}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_width\_cut@{eina\_rectangle\_width\_cut}}
\index{eina\_rectangle\_width\_cut@{eina\_rectangle\_width\_cut}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_width\_cut()}{eina\_rectangle\_width\_cut()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+width\+\_\+cut (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{slice,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{remainder,  }\item[{int}]{amount }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Slices a rectangle vertically starting from right edge. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle to slice. \\
\hline
\mbox{\texttt{ out}}  & {\em slice} & The sliced part of the rectangle. \\
\hline
\mbox{\texttt{ out}}  & {\em remainder} & The left over part of the rectangle after slicing. \\
\hline
\mbox{\texttt{ in}}  & {\em amount} & The slice location\textquotesingle{}s horizontal distance from the right. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the cut succeeds, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise
\end{DoxyReturn}
Cut a rectangle vertically at a distance {\ttfamily amount} from the rectangle\textquotesingle{}s right edge. If the {\ttfamily amount} value is greater than the rectangle\textquotesingle{}s width, no cut is performed and \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} is returned. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga0a5cfac7544395d82ffe593d81693836}\label{group__Eina__Rectangle__Group_ga0a5cfac7544395d82ffe593d81693836}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_height\_cut@{eina\_rectangle\_height\_cut}}
\index{eina\_rectangle\_height\_cut@{eina\_rectangle\_height\_cut}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_height\_cut()}{eina\_rectangle\_height\_cut()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+height\+\_\+cut (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{slice,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{remainder,  }\item[{int}]{amount }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Slices a rectangle horizontally starting from top edge. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle to slice. \\
\hline
\mbox{\texttt{ out}}  & {\em slice} & The sliced part of the rectangle. \\
\hline
\mbox{\texttt{ out}}  & {\em remainder} & The left over part of the rectangle after slicing. \\
\hline
\mbox{\texttt{ in}}  & {\em amount} & The slice location\textquotesingle{}s vertical distance from the top. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} if the cut succeeds, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
Cut a rectangle horizontally at a distance {\ttfamily amount} from the rectangle\textquotesingle{}s top edge. If the {\ttfamily amount} value is greater than the rectangle width, no cut is performed and \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} is returned. \mbox{\Hypertarget{group__Eina__Rectangle__Group_ga45ca35f68eb74427c420003cdec5ece9}\label{group__Eina__Rectangle__Group_ga45ca35f68eb74427c420003cdec5ece9}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_subtract@{eina\_rectangle\_subtract}}
\index{eina\_rectangle\_subtract@{eina\_rectangle\_subtract}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_subtract()}{eina\_rectangle\_subtract()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+subtract (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{other,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}}}]{out\mbox{[}4\mbox{]} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Subtracts two rectangles and returns the differences. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The minuend rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em other} & The subtrahend rectangle. \\
\hline
\mbox{\texttt{ out}}  & {\em out} & An array of differences between the two rectangles. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
This function subtracts two rectangles and stores the resulting differences into the {\ttfamily out} array. There will be at most four differences; use eina\+\_\+rectangle\+\_\+is\+\_\+valid to confirm the exact number. \mbox{\Hypertarget{group__Eina__Rectangle__Group_gaf334edef10f5a4192d1ec2860f6c423b}\label{group__Eina__Rectangle__Group_gaf334edef10f5a4192d1ec2860f6c423b}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_new@{eina\_rectangle\_pool\_new}}
\index{eina\_rectangle\_pool\_new@{eina\_rectangle\_pool\_new}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_new()}{eina\_rectangle\_pool\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+new (\begin{DoxyParamCaption}\item[{int}]{w,  }\item[{int}]{h }\end{DoxyParamCaption})}



Adds a rectangle in a new pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em w} & The width of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & The height of the rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A newly allocated pool on success, {\ttfamily NULL} otherwise.
\end{DoxyReturn}
This function adds the rectangle of size ({\ttfamily width}, {\ttfamily height}) to a new pool. If the pool can not be created, {\ttfamily NULL} is returned. Otherwise the newly allocated pool is returned. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__List__Group_ga625698a383dda8fc0db245a1c7608c49}{eina\+\_\+list\+\_\+append()}}, \mbox{\hyperlink{group__Eina__Magic__Group_ga470f5ce28eaaf59ce80523be8471c5e0}{EINA\+\_\+\+MAGIC\+\_\+\+SET}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}{Eina\+\_\+\+Packing\+\_\+\+Ascending}}, and \mbox{\hyperlink{group__Eina__Rectangle__Group_gafeceda201f5cdd5fc979c74f070463eb}{eina\+\_\+rectangle\+\_\+new()}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gaec3cda2afd48676732ae332286b20808}\label{group__Eina__Rectangle__Group_gaec3cda2afd48676732ae332286b20808}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_get@{eina\_rectangle\_pool\_get}}
\index{eina\_rectangle\_pool\_get@{eina\_rectangle\_pool\_get}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_get()}{eina\_rectangle\_pool\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})}



Returns the pool of the given rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The pool of the given rectangle.
\end{DoxyReturn}
This function returns the pool in which {\ttfamily rect} is. If {\ttfamily rect} is {\ttfamily NULL}, {\ttfamily NULL} is returned. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gaf7ff6623794c6fb5bf7a978c113f3a92}\label{group__Eina__Rectangle__Group_gaf7ff6623794c6fb5bf7a978c113f3a92}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_geometry\_get@{eina\_rectangle\_pool\_geometry\_get}}
\index{eina\_rectangle\_pool\_geometry\_get@{eina\_rectangle\_pool\_geometry\_get}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_geometry\_get()}{eina\_rectangle\_pool\_geometry\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+pool\+\_\+geometry\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool,  }\item[{int $\ast$}]{w,  }\item[{int $\ast$}]{h }\end{DoxyParamCaption})}



Returns the width and height of the given pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em pool} & The pool. \\
\hline
\mbox{\texttt{ out}}  & {\em w} & The returned width. \\
\hline
\mbox{\texttt{ out}}  & {\em h} & The returned height. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} otherwise.
\end{DoxyReturn}
This function returns the width and height of {\ttfamily pool} and store them in respectively {\ttfamily w} and {\ttfamily h} if they are not {\ttfamily NULL}. If {\ttfamily pool} is {\ttfamily NULL}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}} is returned. Otherwise \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}} is returned. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga09091ec0a1bec85d0ef45a4bb040d7c4}\label{group__Eina__Rectangle__Group_ga09091ec0a1bec85d0ef45a4bb040d7c4}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_data\_get@{eina\_rectangle\_pool\_data\_get}}
\index{eina\_rectangle\_pool\_data\_get@{eina\_rectangle\_pool\_data\_get}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_data\_get()}{eina\_rectangle\_pool\_data\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void $\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool }\end{DoxyParamCaption})}



Gets the data from the given pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em pool} & The pool. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The returned data.
\end{DoxyReturn}
This function gets the data from {\ttfamily pool} set by \mbox{\hyperlink{group__Eina__Rectangle__Group_ga0e13979e7e618d80a538ec3c2c549b36}{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set()}}. If {\ttfamily pool} is {\ttfamily NULL}, this function returns {\ttfamily NULL}. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga0e13979e7e618d80a538ec3c2c549b36}\label{group__Eina__Rectangle__Group_ga0e13979e7e618d80a538ec3c2c549b36}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_data\_set@{eina\_rectangle\_pool\_data\_set}}
\index{eina\_rectangle\_pool\_data\_set@{eina\_rectangle\_pool\_data\_set}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_data\_set()}{eina\_rectangle\_pool\_data\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Sets the data to the given pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em pool} & The pool. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & The data to set.\\
\hline
\end{DoxyParams}
This function sets {\ttfamily data} to {\ttfamily pool}. If {\ttfamily pool} is {\ttfamily NULL}, this function does nothing. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga267d3848cb5ed2d3d0ea8f9e17cc8fac}\label{group__Eina__Rectangle__Group_ga267d3848cb5ed2d3d0ea8f9e17cc8fac}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_free@{eina\_rectangle\_pool\_free}}
\index{eina\_rectangle\_pool\_free@{eina\_rectangle\_pool\_free}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_free()}{eina\_rectangle\_pool\_free()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+rectangle\+\_\+pool\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool }\end{DoxyParamCaption})}



Frees the given pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em pool} & The pool to free.\\
\hline
\end{DoxyParams}
This function frees the allocated data of {\ttfamily pool}. If {\ttfamily pool} is {\ttfamily NULL}, this function returned immediately. 

References \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\+\_\+\+INLIST\+\_\+\+GET}}, \mbox{\hyperlink{group__Eina__List__Group_gae27a2c686a0a11693f9b06957c9bba83}{EINA\+\_\+\+LIST\+\_\+\+FREE}}, \mbox{\hyperlink{group__Eina__Magic__Group_ga087a0d5a1e482da550b33fe4fcb0435f}{EINA\+\_\+\+MAGIC\+\_\+\+NONE}}, \mbox{\hyperlink{group__Eina__Magic__Group_ga470f5ce28eaaf59ce80523be8471c5e0}{EINA\+\_\+\+MAGIC\+\_\+\+SET}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_ga0475020c36dd3dce56d1843c5aa02258}{eina\+\_\+rectangle\+\_\+free()}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga57b2f569c5064a8525829d0bb1e3a0ea}\label{group__Eina__Rectangle__Group_ga57b2f569c5064a8525829d0bb1e3a0ea}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_count@{eina\_rectangle\_pool\_count}}
\index{eina\_rectangle\_pool\_count@{eina\_rectangle\_pool\_count}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_count()}{eina\_rectangle\_pool\_count()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} int eina\+\_\+rectangle\+\_\+pool\+\_\+count (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool }\end{DoxyParamCaption})}



Returns the number of rectangles in the given pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em pool} & The pool. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number of rectangles in the pool.
\end{DoxyReturn}
This function returns the number of rectangles in {\ttfamily pool}. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga6b76645d9c7b97d7de540792bae9d776}\label{group__Eina__Rectangle__Group_ga6b76645d9c7b97d7de540792bae9d776}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_request@{eina\_rectangle\_pool\_request}}
\index{eina\_rectangle\_pool\_request@{eina\_rectangle\_pool\_request}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_request()}{eina\_rectangle\_pool\_request()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+request (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool,  }\item[{int}]{w,  }\item[{int}]{h }\end{DoxyParamCaption})}



Requests a rectangle of given size in the given pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em pool} & The pool. \\
\hline
\mbox{\texttt{ in}}  & {\em w} & The width of the rectangle to request. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & The height of the rectangle to request. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The requested rectangle on success, {\ttfamily NULL} otherwise.
\end{DoxyReturn}
This function retrieves from {\ttfamily pool} the rectangle of width {\ttfamily w} and height {\ttfamily h}. If {\ttfamily pool} is {\ttfamily NULL}, or {\ttfamily w} or {\ttfamily h} are non-\/positive, the function returns {\ttfamily NULL}. If {\ttfamily w} or {\ttfamily h} are greater than the pool size, the function returns {\ttfamily NULL}. On success, the function returns the rectangle which matches the size ({\ttfamily w}, {\ttfamily h}). Otherwise it returns {\ttfamily NULL}. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\+\_\+\+INLIST\+\_\+\+GET}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga2cbaa546cd6224dde756d43a603ef463}{eina\+\_\+inlist\+\_\+prepend()}}, \mbox{\hyperlink{group__Eina__List__Group_ga568115ea8231ca6baed243032570e15c}{eina\+\_\+list\+\_\+sort()}}, \mbox{\hyperlink{group__Eina__Magic__Group_ga470f5ce28eaaf59ce80523be8471c5e0}{EINA\+\_\+\+MAGIC\+\_\+\+SET}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}, and \mbox{\hyperlink{struct__Eina__Rectangle_af6a92d51ec25ee3464c81297ffc3a330}{\+\_\+\+Eina\+\_\+\+Rectangle\+::w}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gab9428bee6f53a3f8c91b7f92a7c503aa}\label{group__Eina__Rectangle__Group_gab9428bee6f53a3f8c91b7f92a7c503aa}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_release@{eina\_rectangle\_pool\_release}}
\index{eina\_rectangle\_pool\_release@{eina\_rectangle\_pool\_release}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_release()}{eina\_rectangle\_pool\_release()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+rectangle\+\_\+pool\+\_\+release (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})}



Removes the given rectangle from the pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em rect} & The rectangle to remove from the pool.\\
\hline
\end{DoxyParams}
This function removes {\ttfamily rect} from the pool. If {\ttfamily rect} is {\ttfamily NULL}, the function returns immediately. Otherwise it removes {\ttfamily rect} from the pool. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga65e496b9b16d527d23c1d735652b4e62}{EINA\+\_\+\+INLIST\+\_\+\+FOREACH}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_ga5bc991428e75557c6195f6b9e38321fb}{EINA\+\_\+\+INLIST\+\_\+\+GET}}, \mbox{\hyperlink{group__Eina__Inline__List__Group_gaf885b08d5b5a750a901f3780d3c65338}{eina\+\_\+inlist\+\_\+remove()}}, \mbox{\hyperlink{group__Eina__Magic__Group_ga087a0d5a1e482da550b33fe4fcb0435f}{EINA\+\_\+\+MAGIC\+\_\+\+NONE}}, \mbox{\hyperlink{group__Eina__Magic__Group_ga470f5ce28eaaf59ce80523be8471c5e0}{EINA\+\_\+\+MAGIC\+\_\+\+SET}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_gafeceda201f5cdd5fc979c74f070463eb}{eina\+\_\+rectangle\+\_\+new()}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}, \mbox{\hyperlink{struct__Eina__Rectangle_a7570ed17f58fc94be997414a86130074}{\+\_\+\+Eina\+\_\+\+Rectangle\+::h}}, \mbox{\hyperlink{struct__Eina__Rectangle_af6a92d51ec25ee3464c81297ffc3a330}{\+\_\+\+Eina\+\_\+\+Rectangle\+::w}}, \mbox{\hyperlink{struct__Eina__Rectangle_a8358c0791dcf476432687510ca4e5d5c}{\+\_\+\+Eina\+\_\+\+Rectangle\+::x}}, and \mbox{\hyperlink{struct__Eina__Rectangle_ae74dc834fb71a1f4cd9e3fe11dec3940}{\+\_\+\+Eina\+\_\+\+Rectangle\+::y}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gafeceda201f5cdd5fc979c74f070463eb}\label{group__Eina__Rectangle__Group_gafeceda201f5cdd5fc979c74f070463eb}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_new@{eina\_rectangle\_new}}
\index{eina\_rectangle\_new@{eina\_rectangle\_new}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_new()}{eina\_rectangle\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$ eina\+\_\+rectangle\+\_\+new (\begin{DoxyParamCaption}\item[{int}]{x,  }\item[{int}]{y,  }\item[{int}]{w,  }\item[{int}]{h }\end{DoxyParamCaption})}



Creates a new rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em x} & The X coordinate of the top left corner of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em y} & The Y coordinate of the top left corner of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em w} & The width of the rectangle. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & The height of the rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new rectangle on success, @ NULL otherwise.
\end{DoxyReturn}
This function creates a rectangle whose top left corner has the coordinates ({\ttfamily x}, {\ttfamily y}), with height {\ttfamily w} and height {\ttfamily h} and adds it to the rectangles pool.

No check is done on {\ttfamily w} and {\ttfamily h}. 

References \mbox{\hyperlink{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}{EINA\+\_\+\+RECTANGLE\+\_\+\+SET}}.



Referenced by \mbox{\hyperlink{group__Eina__Rectangle__Group_gaf334edef10f5a4192d1ec2860f6c423b}{eina\+\_\+rectangle\+\_\+pool\+\_\+new()}}, and \mbox{\hyperlink{group__Eina__Rectangle__Group_gab9428bee6f53a3f8c91b7f92a7c503aa}{eina\+\_\+rectangle\+\_\+pool\+\_\+release()}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_ga0475020c36dd3dce56d1843c5aa02258}\label{group__Eina__Rectangle__Group_ga0475020c36dd3dce56d1843c5aa02258}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_free@{eina\_rectangle\_free}}
\index{eina\_rectangle\_free@{eina\_rectangle\_free}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_free()}{eina\_rectangle\_free()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+rectangle\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect }\end{DoxyParamCaption})}



Frees the given rectangle. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect} & The rectangle to free.\\
\hline
\end{DoxyParams}
This function removes {\ttfamily rect} from the rectangles pool. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.



Referenced by \mbox{\hyperlink{group__Eina__Rectangle__Group_ga267d3848cb5ed2d3d0ea8f9e17cc8fac}{eina\+\_\+rectangle\+\_\+pool\+\_\+free()}}, \mbox{\hyperlink{group__Evas__Canvas_gaddf50ef500625fb9d836d32a41c1017e}{evas\+\_\+norender\+\_\+with\+\_\+updates()}}, and \mbox{\hyperlink{group__Evas__Canvas_ga538ed406dfa68641867cbde42dade5f7}{evas\+\_\+render\+\_\+updates\+\_\+free()}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gab922142c5c5b0e5ead81cb39252a0dbc}\label{group__Eina__Rectangle__Group_gab922142c5c5b0e5ead81cb39252a0dbc}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_pool\_packing\_set@{eina\_rectangle\_pool\_packing\_set}}
\index{eina\_rectangle\_pool\_packing\_set@{eina\_rectangle\_pool\_packing\_set}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_pool\_packing\_set()}{eina\_rectangle\_pool\_packing\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} void eina\+\_\+rectangle\+\_\+pool\+\_\+packing\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}} $\ast$}]{pool,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing}}}]{type }\end{DoxyParamCaption})}



Sets the type of given rectangle pool. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em pool} & The rectangle pool for which type is to be set. \\
\hline
\mbox{\texttt{ in}}  & {\em type} & Type of Eina Pool based on packing algorithm.\\
\hline
\end{DoxyParams}
This function sets {\ttfamily type} of {\ttfamily pool}. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}{Eina\+\_\+\+Packing\+\_\+\+Ascending}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}{Eina\+\_\+\+Packing\+\_\+\+Descending}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gaef00a1ee9732240d367c83e47eb6be5d}\label{group__Eina__Rectangle__Group_gaef00a1ee9732240d367c83e47eb6be5d}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_outside\_position@{eina\_rectangle\_outside\_position}}
\index{eina\_rectangle\_outside\_position@{eina\_rectangle\_outside\_position}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_outside\_position()}{eina\_rectangle\_outside\_position()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga6ac08753ba12bc9c7a0390cf67868f4f}{EINA\+\_\+\+API}} \mbox{\hyperlink{group__Eina__Rectangle__Group_ga7806a1ab562c5461eeddb4d0fec4a09f}{Eina\+\_\+\+Rectangle\+\_\+\+Outside}} eina\+\_\+rectangle\+\_\+outside\+\_\+position (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect1,  }\item[{\mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect2 }\end{DoxyParamCaption})}



calculates where rect2 is outside of rect1. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect1} & The rect to use as anchor \\
\hline
\mbox{\texttt{ in}}  & {\em rect2} & The rect to look for outside positions\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An OR\textquotesingle{}d map of Eina\+\_\+\+Rectangle\+\_\+\+Outside values 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fad413fe789317e33a839ef96e4dbeb52a}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+BOTTOM}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa2633fb296b3ebc34145b60cbac0ce5f1}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+LEFT}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa3ee4e888f29803a909d2b0ac79d43915}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+RIGHT}}, \mbox{\hyperlink{group__Eina__Rectangle__Group_gga7806a1ab562c5461eeddb4d0fec4a09fa9b2597198b2b9d1eb5bc0445e6c394c7}{EINA\+\_\+\+RECTANGLE\+\_\+\+OUTSIDE\+\_\+\+TOP}}, \mbox{\hyperlink{struct__Eina__Rectangle_a7570ed17f58fc94be997414a86130074}{\+\_\+\+Eina\+\_\+\+Rectangle\+::h}}, \mbox{\hyperlink{struct__Eina__Rectangle_af6a92d51ec25ee3464c81297ffc3a330}{\+\_\+\+Eina\+\_\+\+Rectangle\+::w}}, \mbox{\hyperlink{struct__Eina__Rectangle_a8358c0791dcf476432687510ca4e5d5c}{\+\_\+\+Eina\+\_\+\+Rectangle\+::x}}, and \mbox{\hyperlink{struct__Eina__Rectangle_ae74dc834fb71a1f4cd9e3fe11dec3940}{\+\_\+\+Eina\+\_\+\+Rectangle\+::y}}.

\mbox{\Hypertarget{group__Eina__Rectangle__Group_gae16926037c054a0a9f4b5cc402a20942}\label{group__Eina__Rectangle__Group_gae16926037c054a0a9f4b5cc402a20942}} 
\index{Rectangle@{Rectangle}!eina\_rectangle\_equal@{eina\_rectangle\_equal}}
\index{eina\_rectangle\_equal@{eina\_rectangle\_equal}!Rectangle@{Rectangle}}
\doxysubsubsection{\texorpdfstring{eina\_rectangle\_equal()}{eina\_rectangle\_equal()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+rectangle\+\_\+equal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect1,  }\item[{const \mbox{\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}} $\ast$}]{rect2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Compares two rectangles for equality. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rect1} & First rectangle. Must not be NULL. \\
\hline
\mbox{\texttt{ in}}  & {\em rect2} & Second rectangle. Must not be NULL. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
EINA\+\_\+\+TRUE if the rectangles are equal (x, y, w and h are all equal).
\end{DoxyReturn}
No check is made on the rectangles, so they should be valid and non NULL for this function to be meaningful.

\begin{DoxySince}{Since}
1.\+21 
\end{DoxySince}
