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


These functions provide rectangle management.  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct__Eina__Rectangle}{\+\_\+\+Eina\+\_\+\+Rectangle}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Rectangle__Group_gab43541e02b6f424833e4c80a1f8e95b2}{\#define {\bfseries E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+I\+N\+I\+T}~\{ 0, 0, 0, 0\}}\label{group__Eina__Rectangle__Group_gab43541e02b6f424833e4c80a1f8e95b2}

\item 
\hypertarget{group__Eina__Rectangle__Group_ga19aa6849720f79d346c870a9171a7eb5}{\#define {\bfseries E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+F\+O\+R\+M\+A\+T}~\char`\"{}dx\%d -\/ \%dx\%d\char`\"{}}\label{group__Eina__Rectangle__Group_ga19aa6849720f79d346c870a9171a7eb5}

\item 
\hypertarget{group__Eina__Rectangle__Group_ga36d062c01320537481343cfe0335301b}{\#define {\bfseries E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+A\+R\+G\+S}(r)~(r)-\/$>$x, (r)-\/$>$y, (r)-\/$>$w, (r)-\/$>$h}\label{group__Eina__Rectangle__Group_ga36d062c01320537481343cfe0335301b}

\item 
\#define \hyperlink{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}{E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T}(Rectangle, X, Y, W, H)
\begin{DoxyCompactList}\small\item\em Macro to set the values of a \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{typedef struct \hyperlink{struct__Eina__Rectangle}{\+\_\+\+Eina\+\_\+\+Rectangle} \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}}\label{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}

\begin{DoxyCompactList}\small\item\em Simple rectangle structure. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{typedef struct \+\_\+\+Eina\+\_\+\+Rectangle\+\_\+\+Pool \hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool}}\label{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}

\begin{DoxyCompactList}\small\item\em Type for an opaque pool of rectangle. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing} \{ \\*
\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}{Eina\+\_\+\+Packing\+\_\+\+Descending}, 
\\*
\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}{Eina\+\_\+\+Packing\+\_\+\+Ascending}, 
\\*
\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a7a9143713a6034cde30101862f33b87b}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left}, 
\\*
\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2aa72ba69b93b6c5909417cf9a63491b83}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline}, 
\\*
\hyperlink{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved}
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static int \hyperlink{group__Eina__Rectangle__Group_ga93bb858772092d58644eabb321bceb18}{eina\+\_\+spans\+\_\+intersect} (int c1, int l1, int c2, int l2) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Check if the given spans intersect. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga0497f0c56370fbb09b9356747536aea4}{eina\+\_\+rectangle\+\_\+is\+\_\+empty} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Check if the given rectangle is empty. \end{DoxyCompactList}\item 
static void \hyperlink{group__Eina__Rectangle__Group_gab36dcd757b4acf09bcee85d80f9089f1}{eina\+\_\+rectangle\+\_\+coords\+\_\+from} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r, int x, int y, int w, int h) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Set the coordinates and size of the given rectangle. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_gada869dd971b2ee3ab713f080aa0f53c6}{eina\+\_\+rectangles\+\_\+intersect} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r1, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r2) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1
\begin{DoxyCompactList}\small\item\em Check if the given rectangles intersect. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga46b3b94a70dd0c99b285fec8f3c1c9ac}{eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r, int x) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Check if the given x-\/coordinate is in the rectangle . \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga639dd52be32e307a4f07df0d3ad86dd4}{eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r, int y) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Check if the given y-\/coordinate is in the rectangle . \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga0aabc1b09753b3c0a76f4c82df692ef9}{eina\+\_\+rectangle\+\_\+coords\+\_\+inside} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r, int x, int y) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Check if the given point is in the rectangle . \end{DoxyCompactList}\item 
static void \hyperlink{group__Eina__Rectangle__Group_gaf03196aa8b1b393b8d7369e8c25cafd0}{eina\+\_\+rectangle\+\_\+union} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$dst, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$src) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1
\begin{DoxyCompactList}\small\item\em Get the union of two rectangles. \end{DoxyCompactList}\item 
static void static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_gaec3828d2954e5067e3ec569dcec3646e}{eina\+\_\+rectangle\+\_\+intersection} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$dst, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$src) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1
\begin{DoxyCompactList}\small\item\em Get the intersection of two rectangles. \end{DoxyCompactList}\item 
static void \hyperlink{group__Eina__Rectangle__Group_gaf0d1f1869452f43840dc324a58d82271}{eina\+\_\+rectangle\+\_\+rescale\+\_\+in} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$out, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$in, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$res) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1
\begin{DoxyCompactList}\small\item\em F\+I\+X\+M\+E I am useless and used by no one. \end{DoxyCompactList}\item 
static void static void \hyperlink{group__Eina__Rectangle__Group_gae20f4db67c61ed1967424e2ceb6965f9}{eina\+\_\+rectangle\+\_\+rescale\+\_\+out} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$out, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$in, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$res) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1
\begin{DoxyCompactList}\small\item\em F\+I\+X\+M\+E I am useless and used by no one. \end{DoxyCompactList}\item 
static void static void static \\*
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga441834ae2e7d7a953e2e1bf05185368d}{eina\+\_\+rectangle\+\_\+is\+\_\+valid} (const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$r) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Tells whether a rectangle is valid or not. \end{DoxyCompactList}\item 
static int \hyperlink{group__Eina__Rectangle__Group_gad30c26590a59c69bd4cf0743bfad7a63}{eina\+\_\+rectangle\+\_\+max\+\_\+x} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Gives the rectangle maximum x coordinate. \end{DoxyCompactList}\item 
static int \hyperlink{group__Eina__Rectangle__Group_ga72c7a42dfa80d9715a16c85bbd324484}{eina\+\_\+rectangle\+\_\+max\+\_\+y} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Gives the rectangle maximum y coordinate. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_gadbb99c786e01273b7d88cc49e6f2b010}{eina\+\_\+rectangle\+\_\+x\+\_\+cut} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$slice, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$remainder, int amount) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Slices a rectangle vertically into two subrectangles starting from left edge. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga8512b9c1b1f7b0ca9bbaa58617645140}{eina\+\_\+rectangle\+\_\+y\+\_\+cut} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$slice, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$remainder, int amount) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Slices a rectangle horizontally into two subrectangles starting from bottom edge. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_gaa6e6658c1bfa02d5d26e963b031e3fea}{eina\+\_\+rectangle\+\_\+width\+\_\+cut} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$slice, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$remainder, int amount) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Slices a rectangle vertically starting from right edge. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga69759f95ad83bbb4b05137f2a53ada44}{eina\+\_\+rectangle\+\_\+height\+\_\+cut} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$slice, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$remainder, int amount) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Slices a rectangle horizontally starting from top edge. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_ga31076de03268e038c4cf7b03fba5b2f0}{eina\+\_\+rectangle\+\_\+subtract} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$thiz, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$other, \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} out\mbox{[}4\mbox{]}) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Subtract two rectangles. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$ \hyperlink{group__Eina__Rectangle__Group_gaa41916af6d8a14b8f6035bd72702d1d9}{eina\+\_\+rectangle\+\_\+pool\+\_\+new} (int w, int h) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\+I\+N\+A\+\_\+\+M\+A\+L\+L\+O\+C} \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Add a rectangle in a new pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$ \hyperlink{group__Eina__Rectangle__Group_ga3a46e1548409456cb4af311e54db31e8}{eina\+\_\+rectangle\+\_\+pool\+\_\+get} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$rect) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Return the pool of the given rectangle. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eina__Rectangle__Group_gac44127a5c03b3f0e13d753f380b5dfb3}{eina\+\_\+rectangle\+\_\+pool\+\_\+geometry\+\_\+get} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool, int $\ast$w, int $\ast$h) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Return the width and height of the given pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void $\ast$ \hyperlink{group__Eina__Rectangle__Group_gadbae5f0ad1f7be71d0d95e7b67331d2b}{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+get} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Get the data from the given pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Eina__Rectangle__Group_ga0e9e1304e9d8ecf488f8810313318380}{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool, const void $\ast$data) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Set the data to the given pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Eina__Rectangle__Group_ga390d4acd0cdd6dd0ff05a2d0be01bee9}{eina\+\_\+rectangle\+\_\+pool\+\_\+free} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Free the given pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} int \hyperlink{group__Eina__Rectangle__Group_ga010d0b19c8747765a512676e3140deee}{eina\+\_\+rectangle\+\_\+pool\+\_\+count} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Return the number of rectangles in the given pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$ \hyperlink{group__Eina__Rectangle__Group_gac8261ac109cd530514dd4e9c8b8dcbca}{eina\+\_\+rectangle\+\_\+pool\+\_\+request} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool, int w, int h) \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T} \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Request a rectangle of given size in the given pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Eina__Rectangle__Group_ga98f5a390a95123ba90e95677d7ea754b}{eina\+\_\+rectangle\+\_\+pool\+\_\+release} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$rect) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Remove the given rectangle from the pool. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$ \hyperlink{group__Eina__Rectangle__Group_ga82f5db08ef3c816896c67d44462aa572}{eina\+\_\+rectangle\+\_\+new} (int x, int y, int w, int h) \hyperlink{group__Eina__Types__Group_gaabeaa41dd47f4b4d3991b10ba00bc59c}{E\+I\+N\+A\+\_\+\+M\+A\+L\+L\+O\+C} \hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}
\begin{DoxyCompactList}\small\item\em Create a new rectangle. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Eina__Rectangle__Group_ga01edb0fdde2b9534febb3124126c4b1e}{eina\+\_\+rectangle\+\_\+free} (\hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle} $\ast$rect) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Free the given rectangle. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Eina__Rectangle__Group_ga65453a92a50e5017db46b8c1d12336a2}{eina\+\_\+rectangle\+\_\+pool\+\_\+packing\+\_\+set} (\hyperlink{group__Eina__Rectangle__Group_ga2b3b9a89a129503c7378827498353955}{Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$pool, \hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing} type) \hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+L\+L}(1)
\begin{DoxyCompactList}\small\item\em Sets the type of given rectangle pool. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Rectangle__Group_gabb6d997e6f2f5ad75762b9d1f9efe617}{static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+L\+T}}\label{group__Eina__Rectangle__Group_gabb6d997e6f2f5ad75762b9d1f9efe617}

\end{DoxyCompactItemize}


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



\subsection{Macro Definition Documentation}
\hypertarget{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}{\index{Rectangle@{Rectangle}!E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T@{E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T}}
\index{E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T@{E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T}!Rectangle@{Rectangle}}
\subsubsection[{E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T(
\begin{DoxyParamCaption}
\item[{}]{Rectangle, }
\item[{}]{X, }
\item[{}]{Y, }
\item[{}]{W, }
\item[{}]{H}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_gaaceb5b08727a052cc814a92569fcf8da}
{\bfseries Value\+:}
\begin{DoxyCode}
\{                                                 \(\backslash\)
      (Rectangle)->x = X;                         \(\backslash\)
      (Rectangle)->y = Y;                         \(\backslash\)
      (Rectangle)->w = W;                         \(\backslash\)
      (Rectangle)->h = H;                         \(\backslash\)
    \}
\end{DoxyCode}


Macro to set the values of a \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\+\_\+\+Rectangle}. 


\begin{DoxyParams}{Parameters}
{\em Rectangle} & The rectangle to set the values. \\
\hline
{\em X} & The X coordinate of the top left corner of the rectangle. \\
\hline
{\em Y} & The Y coordinate of the top left corner of the rectangle. \\
\hline
{\em W} & The width of the rectangle. \\
\hline
{\em H} & The height of the rectangle.\\
\hline
\end{DoxyParams}
This macro set the values of {\ttfamily Rectangle}. ({\ttfamily X}, {\ttfamily Y}) is the coordinates of the top left corner of {\ttfamily Rectangle}, {\ttfamily W} is its width and {\ttfamily H} is its height. 

Referenced by eina\+\_\+rectangle\+\_\+new().



\subsection{Enumeration Type Documentation}
\hypertarget{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{\index{Rectangle@{Rectangle}!Eina\+\_\+\+Rectangle\+\_\+\+Packing@{Eina\+\_\+\+Rectangle\+\_\+\+Packing}}
\index{Eina\+\_\+\+Rectangle\+\_\+\+Packing@{Eina\+\_\+\+Rectangle\+\_\+\+Packing}!Rectangle@{Rectangle}}
\subsubsection[{Eina\+\_\+\+Rectangle\+\_\+\+Packing}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Eina\+\_\+\+Rectangle\+\_\+\+Packing}}}\label{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}
\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{Eina\+\_\+\+Packing\+\_\+\+Descending@{Eina\+\_\+\+Packing\+\_\+\+Descending}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\+\_\+\+Packing\+\_\+\+Descending@{Eina\+\_\+\+Packing\+\_\+\+Descending}}\item[{\em 
\hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}{Eina\+\_\+\+Packing\+\_\+\+Descending}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a0b17ba7ca45e6acdbd9677969064fd67}
}]Current. \index{Eina\+\_\+\+Packing\+\_\+\+Ascending@{Eina\+\_\+\+Packing\+\_\+\+Ascending}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\+\_\+\+Packing\+\_\+\+Ascending@{Eina\+\_\+\+Packing\+\_\+\+Ascending}}\item[{\em 
\hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}{Eina\+\_\+\+Packing\+\_\+\+Ascending}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a55f4a8beab1e161968e8d2ed3be77e37}
}]sorting in assending order \index{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left@{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left}!Rectangle@{Rectangle}}\index{Rectangle@{Rectangle}!Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left@{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left}}\item[{\em 
\hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a7a9143713a6034cde30101862f33b87b}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2a7a9143713a6034cde30101862f33b87b}
}]sorting in bottemleft fasion \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}}\item[{\em 
\hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2aa72ba69b93b6c5909417cf9a63491b83}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2aa72ba69b93b6c5909417cf9a63491b83}
}]bottemleft skyline \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}}\item[{\em 
\hypertarget{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}{Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved}\label{group__Eina__Rectangle__Group_ggac4685e311f54db1086756a94e76e1fb2ae998e9141685d36cfce4f035d62a1226}
}]optimized bottemleft skyline \end{description}
\end{Desc}


\subsection{Function Documentation}
\hypertarget{group__Eina__Rectangle__Group_ga93bb858772092d58644eabb321bceb18}{\index{Rectangle@{Rectangle}!eina\+\_\+spans\+\_\+intersect@{eina\+\_\+spans\+\_\+intersect}}
\index{eina\+\_\+spans\+\_\+intersect@{eina\+\_\+spans\+\_\+intersect}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+spans\+\_\+intersect}]{\setlength{\rightskip}{0pt plus 5cm}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]}}}\label{group__Eina__Rectangle__Group_ga93bb858772092d58644eabb321bceb18}


Check if the given spans intersect. 


\begin{DoxyParams}{Parameters}
{\em c1} & The column of the first span. \\
\hline
{\em l1} & The length of the first span. \\
\hline
{\em c2} & The column of the second span. \\
\hline
{\em l2} & The length of the second span. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the given spans intersect, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. \hypertarget{group__Eina__Rectangle__Group_ga0497f0c56370fbb09b9356747536aea4}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+is\+\_\+empty@{eina\+\_\+rectangle\+\_\+is\+\_\+empty}}
\index{eina\+\_\+rectangle\+\_\+is\+\_\+empty@{eina\+\_\+rectangle\+\_\+is\+\_\+empty}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+is\+\_\+empty}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+is\+\_\+empty (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga0497f0c56370fbb09b9356747536aea4}


Check if the given rectangle is empty. 


\begin{DoxyParams}{Parameters}
{\em r} & The rectangle to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the rectangle is empty, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily r} is empty, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. No check is done on {\ttfamily r}, so it must be a valid rectangle. \hypertarget{group__Eina__Rectangle__Group_gab36dcd757b4acf09bcee85d80f9089f1}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+coords\+\_\+from@{eina\+\_\+rectangle\+\_\+coords\+\_\+from}}
\index{eina\+\_\+rectangle\+\_\+coords\+\_\+from@{eina\+\_\+rectangle\+\_\+coords\+\_\+from}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+coords\+\_\+from}]{\setlength{\rightskip}{0pt plus 5cm}static void eina\+\_\+rectangle\+\_\+coords\+\_\+from (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{r, }
\item[{int}]{x, }
\item[{int}]{y, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gab36dcd757b4acf09bcee85d80f9089f1}


Set the coordinates and size of the given rectangle. 


\begin{DoxyParams}{Parameters}
{\em r} & The rectangle. \\
\hline
{\em x} & The top-\/left x coordinate of the rectangle. \\
\hline
{\em y} & The top-\/left y coordinate of the rectangle. \\
\hline
{\em w} & The width of the rectangle. \\
\hline
{\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. 

Referenced by eina\+\_\+rectangle\+\_\+pool\+\_\+request().

\hypertarget{group__Eina__Rectangle__Group_gada869dd971b2ee3ab713f080aa0f53c6}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangles\+\_\+intersect@{eina\+\_\+rectangles\+\_\+intersect}}
\index{eina\+\_\+rectangles\+\_\+intersect@{eina\+\_\+rectangles\+\_\+intersect}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangles\+\_\+intersect}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangles\+\_\+intersect (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r1, }
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gada869dd971b2ee3ab713f080aa0f53c6}


Check if the given rectangles intersect. 


\begin{DoxyParams}{Parameters}
{\em r1} & The first rectangle. \\
\hline
{\em r2} & The second rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the rectangles intersect, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily r1} and {\ttfamily r2} intersect, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. No check is done on {\ttfamily r1} and {\ttfamily r2}, so they must be valid rectangles. 

Referenced by eina\+\_\+tiler\+\_\+equal(), and eina\+\_\+tiler\+\_\+intersection().

\hypertarget{group__Eina__Rectangle__Group_ga46b3b94a70dd0c99b285fec8f3c1c9ac}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside@{eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside}}
\index{eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside@{eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+xcoord\+\_\+inside (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r, }
\item[{int}]{x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga46b3b94a70dd0c99b285fec8f3c1c9ac}


Check if the given x-\/coordinate is in the rectangle . 


\begin{DoxyParams}{Parameters}
{\em r} & The rectangle. \\
\hline
{\em x} & The x coordinate. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily x} is in {\ttfamily r} with respect to the horizontal direction, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. No check is done on {\ttfamily r}, so it must be a valid rectangle. \hypertarget{group__Eina__Rectangle__Group_ga639dd52be32e307a4f07df0d3ad86dd4}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside@{eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside}}
\index{eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside@{eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+ycoord\+\_\+inside (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga639dd52be32e307a4f07df0d3ad86dd4}


Check if the given y-\/coordinate is in the rectangle . 


\begin{DoxyParams}{Parameters}
{\em r} & The rectangle. \\
\hline
{\em y} & The y coordinate. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if {\ttfamily y} is in {\ttfamily r} with respect to the vertical direction, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. No check is done on {\ttfamily r}, so it must be a valid rectangle. \hypertarget{group__Eina__Rectangle__Group_ga0aabc1b09753b3c0a76f4c82df692ef9}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+coords\+\_\+inside@{eina\+\_\+rectangle\+\_\+coords\+\_\+inside}}
\index{eina\+\_\+rectangle\+\_\+coords\+\_\+inside@{eina\+\_\+rectangle\+\_\+coords\+\_\+inside}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+coords\+\_\+inside}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+coords\+\_\+inside (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga0aabc1b09753b3c0a76f4c82df692ef9}


Check if the given point is in the rectangle . 


\begin{DoxyParams}{Parameters}
{\em r} & The rectangle. \\
\hline
{\em x} & The x coordinate of the point. \\
\hline
{\em y} & The y coordinate of the point. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the point of coordinate ({\ttfamily x}, {\ttfamily y}) is in {\ttfamily r}, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. No check is done on {\ttfamily r}, so it must be a valid rectangle. \hypertarget{group__Eina__Rectangle__Group_gaf03196aa8b1b393b8d7369e8c25cafd0}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+union@{eina\+\_\+rectangle\+\_\+union}}
\index{eina\+\_\+rectangle\+\_\+union@{eina\+\_\+rectangle\+\_\+union}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+union}]{\setlength{\rightskip}{0pt plus 5cm}static void eina\+\_\+rectangle\+\_\+union (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{dst, }
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{src}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gaf03196aa8b1b393b8d7369e8c25cafd0}


Get the union of two rectangles. 


\begin{DoxyParams}{Parameters}
{\em dst} & The first rectangle. \\
\hline
{\em src} & The second rectangle.\\
\hline
\end{DoxyParams}
This function get the union of the rectangles {\ttfamily dst} and {\ttfamily src}. The result is stored in {\ttfamily dst}. No check is done on {\ttfamily dst} or {\ttfamily src}, so they must be valid rectangles. \hypertarget{group__Eina__Rectangle__Group_gaec3828d2954e5067e3ec569dcec3646e}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+intersection@{eina\+\_\+rectangle\+\_\+intersection}}
\index{eina\+\_\+rectangle\+\_\+intersection@{eina\+\_\+rectangle\+\_\+intersection}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+intersection}]{\setlength{\rightskip}{0pt plus 5cm}static void static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+intersection (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{dst, }
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{src}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gaec3828d2954e5067e3ec569dcec3646e}


Get the intersection of two rectangles. 


\begin{DoxyParams}{Parameters}
{\em dst} & The first rectangle. \\
\hline
{\em src} & The second rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the rectangles intersect, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}
This function get the intersection of the rectangles {\ttfamily dst} and {\ttfamily src}. The result is stored in {\ttfamily dst}. No check is done on {\ttfamily dst} or {\ttfamily src}, so they must be valid rectangles. 

Referenced by eina\+\_\+tiler\+\_\+rect\+\_\+add(), and eina\+\_\+tiler\+\_\+rect\+\_\+del().

\hypertarget{group__Eina__Rectangle__Group_gaf0d1f1869452f43840dc324a58d82271}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+rescale\+\_\+in@{eina\+\_\+rectangle\+\_\+rescale\+\_\+in}}
\index{eina\+\_\+rectangle\+\_\+rescale\+\_\+in@{eina\+\_\+rectangle\+\_\+rescale\+\_\+in}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+rescale\+\_\+in}]{\setlength{\rightskip}{0pt plus 5cm}static void eina\+\_\+rectangle\+\_\+rescale\+\_\+in (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{out, }
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{in, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{res}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gaf0d1f1869452f43840dc324a58d82271}


F\+I\+X\+M\+E 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}
\hypertarget{group__Eina__Rectangle__Group_gae20f4db67c61ed1967424e2ceb6965f9}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+rescale\+\_\+out@{eina\+\_\+rectangle\+\_\+rescale\+\_\+out}}
\index{eina\+\_\+rectangle\+\_\+rescale\+\_\+out@{eina\+\_\+rectangle\+\_\+rescale\+\_\+out}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+rescale\+\_\+out}]{\setlength{\rightskip}{0pt plus 5cm}static void static void eina\+\_\+rectangle\+\_\+rescale\+\_\+out (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{out, }
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{in, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{res}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gae20f4db67c61ed1967424e2ceb6965f9}


F\+I\+X\+M\+E 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}
\hypertarget{group__Eina__Rectangle__Group_ga441834ae2e7d7a953e2e1bf05185368d}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+is\+\_\+valid@{eina\+\_\+rectangle\+\_\+is\+\_\+valid}}
\index{eina\+\_\+rectangle\+\_\+is\+\_\+valid@{eina\+\_\+rectangle\+\_\+is\+\_\+valid}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+is\+\_\+valid}]{\setlength{\rightskip}{0pt plus 5cm}static void static void static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+is\+\_\+valid (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\+\_\+\+Rectangle} $\ast$}]{r}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga441834ae2e7d7a953e2e1bf05185368d}


Tells whether a rectangle is valid or not. 


\begin{DoxyParams}{Parameters}
{\em r} & The rectangle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the rectangle is valid, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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. \hypertarget{group__Eina__Rectangle__Group_gad30c26590a59c69bd4cf0743bfad7a63}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+max\+\_\+x@{eina\+\_\+rectangle\+\_\+max\+\_\+x}}
\index{eina\+\_\+rectangle\+\_\+max\+\_\+x@{eina\+\_\+rectangle\+\_\+max\+\_\+x}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+max\+\_\+x}]{\setlength{\rightskip}{0pt plus 5cm}static int eina\+\_\+rectangle\+\_\+max\+\_\+x (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gad30c26590a59c69bd4cf0743bfad7a63}


Gives the rectangle maximum x coordinate. 


\begin{DoxyParams}{Parameters}
{\em thiz} & 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} coodinate of the rectangle. \hypertarget{group__Eina__Rectangle__Group_ga72c7a42dfa80d9715a16c85bbd324484}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+max\+\_\+y@{eina\+\_\+rectangle\+\_\+max\+\_\+y}}
\index{eina\+\_\+rectangle\+\_\+max\+\_\+y@{eina\+\_\+rectangle\+\_\+max\+\_\+y}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+max\+\_\+y}]{\setlength{\rightskip}{0pt plus 5cm}static int eina\+\_\+rectangle\+\_\+max\+\_\+y (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga72c7a42dfa80d9715a16c85bbd324484}


Gives the rectangle maximum y coordinate. 


\begin{DoxyParams}{Parameters}
{\em thiz} & 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} coodinate of the rectangle. \hypertarget{group__Eina__Rectangle__Group_gadbb99c786e01273b7d88cc49e6f2b010}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+x\+\_\+cut@{eina\+\_\+rectangle\+\_\+x\+\_\+cut}}
\index{eina\+\_\+rectangle\+\_\+x\+\_\+cut@{eina\+\_\+rectangle\+\_\+x\+\_\+cut}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+x\+\_\+cut}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+x\+\_\+cut (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{slice, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{remainder, }
\item[{int}]{amount}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gadbb99c786e01273b7d88cc49e6f2b010}


Slices a rectangle vertically into two subrectangles starting from left edge. 


\begin{DoxyParams}{Parameters}
{\em thiz} & The rectangle to slice \\
\hline
{\em slice} & The sliced part of the rectangle \\
\hline
{\em remainder} & The left over part of the original rectangle after slice \\
\hline
{\em amount} & The x inner coordinate of the rectangle where to perform the slicing. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the cut succeeds, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise
\end{DoxyReturn}
Use this function if we must cut a rectangle vertically. The {\ttfamily amount} parameter defines the x inner coordinate where to do the cut, starting from the left edge of the rectangle. If the {\ttfamily amount} value is greater than the rectangle width, there will be not cut possible and \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} will be returned. \hypertarget{group__Eina__Rectangle__Group_ga8512b9c1b1f7b0ca9bbaa58617645140}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+y\+\_\+cut@{eina\+\_\+rectangle\+\_\+y\+\_\+cut}}
\index{eina\+\_\+rectangle\+\_\+y\+\_\+cut@{eina\+\_\+rectangle\+\_\+y\+\_\+cut}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+y\+\_\+cut}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+y\+\_\+cut (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{slice, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{remainder, }
\item[{int}]{amount}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga8512b9c1b1f7b0ca9bbaa58617645140}


Slices a rectangle horizontally into two subrectangles starting from bottom edge. 


\begin{DoxyParams}{Parameters}
{\em thiz} & The rectangle to slice \\
\hline
{\em slice} & The sliced part of the rectangle \\
\hline
{\em remainder} & The left over part of the original rectangle after slice \\
\hline
{\em amount} & The y inner coordinate of the rectangle where to perform the slicing. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the cut succeeds, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise
\end{DoxyReturn}
Use this function if we must cut a rectangle horizontally. The {\ttfamily amount} parameter defines the y inner coordinate where to do the cut, starting from the bottom edge of the rectangle. If the {\ttfamily amount} value is greater than the rectangle width, there will be not cut possible and \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} will be returned. \hypertarget{group__Eina__Rectangle__Group_gaa6e6658c1bfa02d5d26e963b031e3fea}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+width\+\_\+cut@{eina\+\_\+rectangle\+\_\+width\+\_\+cut}}
\index{eina\+\_\+rectangle\+\_\+width\+\_\+cut@{eina\+\_\+rectangle\+\_\+width\+\_\+cut}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+width\+\_\+cut}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+width\+\_\+cut (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{slice, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{remainder, }
\item[{int}]{amount}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_gaa6e6658c1bfa02d5d26e963b031e3fea}


Slices a rectangle vertically starting from right edge. 


\begin{DoxyParams}{Parameters}
{\em thiz} & The rectangle to slice \\
\hline
{\em slice} & The sliced part of the rectangle \\
\hline
{\em remainder} & The left over part of the original rectangle after slice \\
\hline
{\em amount} & The amount to cut off the rectangle starting from the right edge \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the cut succeeds, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise
\end{DoxyReturn}
Use this function if we must cut a rectangle vertically. The {\ttfamily amount} parameter defines the inner x coordinate where to do the cut, starting from the right edge of the rectangle. If the {\ttfamily amount} value is greater than the rectangle width, there will be not cut possible and \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} will be returned. \hypertarget{group__Eina__Rectangle__Group_ga69759f95ad83bbb4b05137f2a53ada44}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+height\+\_\+cut@{eina\+\_\+rectangle\+\_\+height\+\_\+cut}}
\index{eina\+\_\+rectangle\+\_\+height\+\_\+cut@{eina\+\_\+rectangle\+\_\+height\+\_\+cut}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+height\+\_\+cut}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+height\+\_\+cut (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{slice, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{remainder, }
\item[{int}]{amount}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga69759f95ad83bbb4b05137f2a53ada44}


Slices a rectangle horizontally starting from top edge. 


\begin{DoxyParams}{Parameters}
{\em thiz} & The rectangle to slice \\
\hline
{\em slice} & The sliced part of the rectangle \\
\hline
{\em remainder} & The left over part of the original rectangle after slice \\
\hline
{\em amount} & The amount to cut off the rectangle starting from the top edge \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if the cut succeeds, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise
\end{DoxyReturn}
Use this function if we must cut a rectangle horizontally. The {\ttfamily amount} parameter defines the inner y coordinate where to do the cut, starting from the top edge of the rectangle. If the {\ttfamily amount} value is greater than the rectangle width, there will be not cut possible and \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} will be returned. \hypertarget{group__Eina__Rectangle__Group_ga31076de03268e038c4cf7b03fba5b2f0}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+subtract@{eina\+\_\+rectangle\+\_\+subtract}}
\index{eina\+\_\+rectangle\+\_\+subtract@{eina\+\_\+rectangle\+\_\+subtract}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+subtract}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+subtract (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{thiz, }
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{other, }
\item[{{\bf Eina\+\_\+\+Rectangle}}]{out\mbox{[}4\mbox{]}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Rectangle__Group_ga31076de03268e038c4cf7b03fba5b2f0}


Subtract two rectangles. 


\begin{DoxyParams}{Parameters}
{\em thiz} & The minuend rectangle \\
\hline
{\em other} & The subtrahend rectangle\\
\hline
\end{DoxyParams}
This function subtract two rectangles. The difference is stored on {\ttfamily out} There will be at most four differences, use eina\+\_\+rectangle\+\_\+is\+\_\+valid to confirm the number of differences. \hypertarget{group__Eina__Rectangle__Group_gaa41916af6d8a14b8f6035bd72702d1d9}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+pool\+\_\+new@{eina\+\_\+rectangle\+\_\+pool\+\_\+new}}
\index{eina\+\_\+rectangle\+\_\+pool\+\_\+new@{eina\+\_\+rectangle\+\_\+pool\+\_\+new}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool}$\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+new (
\begin{DoxyParamCaption}
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_gaa41916af6d8a14b8f6035bd72702d1d9}


Add a rectangle in a new pool. 


\begin{DoxyParams}{Parameters}
{\em w} & The width of the rectangle. \\
\hline
{\em h} & The height of the rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A newly allocated pool on success, {\ttfamily N\+U\+L\+L} 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 N\+U\+L\+L} is returned. Otherwise the newly allocated pool is returned. 

References D\+B\+G, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, eina\+\_\+list\+\_\+append(), E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, Eina\+\_\+\+Packing\+\_\+\+Ascending, and eina\+\_\+rectangle\+\_\+new().

\hypertarget{group__Eina__Rectangle__Group_ga3a46e1548409456cb4af311e54db31e8}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+pool\+\_\+get@{eina\+\_\+rectangle\+\_\+pool\+\_\+get}}
\index{eina\+\_\+rectangle\+\_\+pool\+\_\+get@{eina\+\_\+rectangle\+\_\+pool\+\_\+get}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool}$\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{rect}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga3a46e1548409456cb4af311e54db31e8}


Return the pool of the given rectangle. 


\begin{DoxyParams}{Parameters}
{\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 N\+U\+L\+L}, {\ttfamily N\+U\+L\+L} is returned. \hypertarget{group__Eina__Rectangle__Group_gac44127a5c03b3f0e13d753f380b5dfb3}{\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}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+geometry\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} eina\+\_\+rectangle\+\_\+pool\+\_\+geometry\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool, }
\item[{int $\ast$}]{w, }
\item[{int $\ast$}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_gac44127a5c03b3f0e13d753f380b5dfb3}


Return the width and height of the given pool. 


\begin{DoxyParams}{Parameters}
{\em pool} & The pool. \\
\hline
{\em w} & The returned width. \\
\hline
{\em h} & The returned height. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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 N\+U\+L\+L}. If {\ttfamily pool} is {\ttfamily N\+U\+L\+L}, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} is returned. Otherwise \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+U\+E} is returned. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Eina__Rectangle__Group_gadbae5f0ad1f7be71d0d95e7b67331d2b}{\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}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void$\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_gadbae5f0ad1f7be71d0d95e7b67331d2b}


Get the data from the given pool. 


\begin{DoxyParams}{Parameters}
{\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 \hyperlink{group__Eina__Rectangle__Group_ga0e9e1304e9d8ecf488f8810313318380}{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set()}. If {\ttfamily pool} is {\ttfamily N\+U\+L\+L}, this function returns {\ttfamily N\+U\+L\+L}. \hypertarget{group__Eina__Rectangle__Group_ga0e9e1304e9d8ecf488f8810313318380}{\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}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eina\+\_\+rectangle\+\_\+pool\+\_\+data\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga0e9e1304e9d8ecf488f8810313318380}


Set the data to the given pool. 


\begin{DoxyParams}{Parameters}
{\em pool} & The pool. \\
\hline
{\em data} & The data to set.\\
\hline
\end{DoxyParams}
This function sets {\ttfamily data} to {\ttfamily pool}. If {\ttfamily pool} is {\ttfamily N\+U\+L\+L}, this function does nothing. 

References D\+B\+G.

\hypertarget{group__Eina__Rectangle__Group_ga390d4acd0cdd6dd0ff05a2d0be01bee9}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+pool\+\_\+free@{eina\+\_\+rectangle\+\_\+pool\+\_\+free}}
\index{eina\+\_\+rectangle\+\_\+pool\+\_\+free@{eina\+\_\+rectangle\+\_\+pool\+\_\+free}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eina\+\_\+rectangle\+\_\+pool\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga390d4acd0cdd6dd0ff05a2d0be01bee9}


Free the given pool. 


\begin{DoxyParams}{Parameters}
{\em pool} & The pool to free.\\
\hline
\end{DoxyParams}
This function frees the allocated data of {\ttfamily pool}. If {\ttfamily pool} is {\ttfamily N\+U\+L\+L}, this function returned immediately. 

References D\+B\+G, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+N\+O\+N\+E, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+free(), eina\+\_\+rectangle\+\_\+free(), and eina\+\_\+trash\+\_\+pop().

\hypertarget{group__Eina__Rectangle__Group_ga010d0b19c8747765a512676e3140deee}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+pool\+\_\+count@{eina\+\_\+rectangle\+\_\+pool\+\_\+count}}
\index{eina\+\_\+rectangle\+\_\+pool\+\_\+count@{eina\+\_\+rectangle\+\_\+pool\+\_\+count}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+count}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int eina\+\_\+rectangle\+\_\+pool\+\_\+count (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga010d0b19c8747765a512676e3140deee}


Return the number of rectangles in the given pool. 


\begin{DoxyParams}{Parameters}
{\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}. \hypertarget{group__Eina__Rectangle__Group_gac8261ac109cd530514dd4e9c8b8dcbca}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+pool\+\_\+request@{eina\+\_\+rectangle\+\_\+pool\+\_\+request}}
\index{eina\+\_\+rectangle\+\_\+pool\+\_\+request@{eina\+\_\+rectangle\+\_\+pool\+\_\+request}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+request}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Rectangle}$\ast$ eina\+\_\+rectangle\+\_\+pool\+\_\+request (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_gac8261ac109cd530514dd4e9c8b8dcbca}


Request a rectangle of given size in the given pool. 


\begin{DoxyParams}{Parameters}
{\em pool} & The pool. \\
\hline
{\em w} & The width of the rectangle to request. \\
\hline
{\em h} & The height of the rectangle to request. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The requested rectangle on success, {\ttfamily N\+U\+L\+L} otherwise.
\end{DoxyReturn}
This function retrieve from {\ttfamily pool} the rectangle of width {\ttfamily w} and height {\ttfamily h}. If {\ttfamily pool} is {\ttfamily N\+U\+L\+L}, or {\ttfamily w} or {\ttfamily h} are non-\/positive, the function returns {\ttfamily N\+U\+L\+L}. If {\ttfamily w} or {\ttfamily h} are greater than the pool size, the function returns {\ttfamily N\+U\+L\+L}. On success, the function returns the rectangle which matches the size ({\ttfamily w}, {\ttfamily h}). Otherwise it returns {\ttfamily N\+U\+L\+L}. 

References D\+B\+G, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, eina\+\_\+inlist\+\_\+prepend(), eina\+\_\+list\+\_\+sort(), E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+malloc(), Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved, eina\+\_\+rectangle\+\_\+coords\+\_\+from(), eina\+\_\+trash\+\_\+pop(), E\+I\+N\+A\+\_\+\+T\+R\+U\+E, and \+\_\+\+Eina\+\_\+\+Rectangle\+::w.

\hypertarget{group__Eina__Rectangle__Group_ga98f5a390a95123ba90e95677d7ea754b}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+pool\+\_\+release@{eina\+\_\+rectangle\+\_\+pool\+\_\+release}}
\index{eina\+\_\+rectangle\+\_\+pool\+\_\+release@{eina\+\_\+rectangle\+\_\+pool\+\_\+release}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+release}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eina\+\_\+rectangle\+\_\+pool\+\_\+release (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{rect}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga98f5a390a95123ba90e95677d7ea754b}


Remove the given rectangle from the pool. 


\begin{DoxyParams}{Parameters}
{\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 N\+U\+L\+L}, the function returns immediately. Otherwise it removes {\ttfamily rect} from the pool. 

References D\+B\+G, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, eina\+\_\+inlist\+\_\+remove(), E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+N\+O\+N\+E, E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+E\+T, eina\+\_\+mempool\+\_\+free(), Eina\+\_\+\+Packing\+\_\+\+Bottom\+\_\+\+Left\+\_\+\+Skyline\+\_\+\+Improved, eina\+\_\+rectangle\+\_\+new(), eina\+\_\+trash\+\_\+push(), \+\_\+\+Eina\+\_\+\+Rectangle\+::h, \+\_\+\+Eina\+\_\+\+Rectangle\+::w, \+\_\+\+Eina\+\_\+\+Rectangle\+::x, and \+\_\+\+Eina\+\_\+\+Rectangle\+::y.

\hypertarget{group__Eina__Rectangle__Group_ga82f5db08ef3c816896c67d44462aa572}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+new@{eina\+\_\+rectangle\+\_\+new}}
\index{eina\+\_\+rectangle\+\_\+new@{eina\+\_\+rectangle\+\_\+new}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Rectangle}$\ast$ eina\+\_\+rectangle\+\_\+new (
\begin{DoxyParamCaption}
\item[{int}]{x, }
\item[{int}]{y, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga82f5db08ef3c816896c67d44462aa572}


Create a new rectangle. 


\begin{DoxyParams}{Parameters}
{\em x} & The X coordinate of the top left corner of the rectangle. \\
\hline
{\em y} & The Y coordinate of the top left corner of the rectangle. \\
\hline
{\em w} & The width of the rectangle. \\
\hline
{\em h} & The height of the rectangle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The new rectangle on success, @ N\+U\+L\+L otherwise.
\end{DoxyReturn}
This function creates a rectangle which 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}. This function returns a new rectangle on success, {\ttfamily N\+U\+L\+L} otherwhise. 

References eina\+\_\+mempool\+\_\+malloc(), E\+I\+N\+A\+\_\+\+R\+E\+C\+T\+A\+N\+G\+L\+E\+\_\+\+S\+E\+T, and eina\+\_\+trash\+\_\+pop().



Referenced by eina\+\_\+rectangle\+\_\+pool\+\_\+new(), and eina\+\_\+rectangle\+\_\+pool\+\_\+release().

\hypertarget{group__Eina__Rectangle__Group_ga01edb0fdde2b9534febb3124126c4b1e}{\index{Rectangle@{Rectangle}!eina\+\_\+rectangle\+\_\+free@{eina\+\_\+rectangle\+\_\+free}}
\index{eina\+\_\+rectangle\+\_\+free@{eina\+\_\+rectangle\+\_\+free}!Rectangle@{Rectangle}}
\subsubsection[{eina\+\_\+rectangle\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eina\+\_\+rectangle\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle} $\ast$}]{rect}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga01edb0fdde2b9534febb3124126c4b1e}


Free the given rectangle. 


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

References eina\+\_\+mempool\+\_\+free(), and eina\+\_\+trash\+\_\+push().



Referenced by eina\+\_\+rectangle\+\_\+pool\+\_\+free(), and evas\+\_\+render\+\_\+updates\+\_\+free().

\hypertarget{group__Eina__Rectangle__Group_ga65453a92a50e5017db46b8c1d12336a2}{\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}}
\subsubsection[{eina\+\_\+rectangle\+\_\+pool\+\_\+packing\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eina\+\_\+rectangle\+\_\+pool\+\_\+packing\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Pool} $\ast$}]{pool, }
\item[{{\bf Eina\+\_\+\+Rectangle\+\_\+\+Packing}}]{type}
\end{DoxyParamCaption}
)}}\label{group__Eina__Rectangle__Group_ga65453a92a50e5017db46b8c1d12336a2}


Sets the type of given rectangle pool. 


\begin{DoxyParams}{Parameters}
{\em pool} & The rectangle pool for which type is to be set.\\
\hline
\end{DoxyParams}
This function sets {\ttfamily type} of {\ttfamily pool}. \begin{DoxySeeAlso}{See also}
\hyperlink{group__Eina__Rectangle__Group_gac4685e311f54db1086756a94e76e1fb2}{Eina\+\_\+\+Rectangle\+\_\+\+Packing} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}


References D\+B\+G, Eina\+\_\+\+Packing\+\_\+\+Ascending, and Eina\+\_\+\+Packing\+\_\+\+Descending.

