\hypertarget{group__EPhysics__Constraint}{}\doxysection{EPhysics Constraint}
\label{group__EPhysics__Constraint}\index{EPhysics Constraint@{EPhysics Constraint}}


Constraints can be used to limit bodies movements, between bodies or between bodies and the world.  


\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+EPhysics\+\_\+\+Constraint \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}}
\begin{DoxyCompactList}\small\item\em Constraint handle, used to limit bodies movements. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
EAPI \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$ \mbox{\hyperlink{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}{ephysics\+\_\+constraint\+\_\+linked\+\_\+add}} (\mbox{\hyperlink{group__EPhysics__Body_gaf39ad724f8a2f81f9139c63263900bf1}{EPhysics\+\_\+\+Body}} $\ast$body1, \mbox{\hyperlink{group__EPhysics__Body_gaf39ad724f8a2f81f9139c63263900bf1}{EPhysics\+\_\+\+Body}} $\ast$body2)
\begin{DoxyCompactList}\small\item\em Create a new constraint between 2 bodies(\+Point to Point constraint). \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_gac70dbb237de696e0356fc9d7722ba835}{ephysics\+\_\+constraint\+\_\+anchor\+\_\+set}} (\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} anchor\+\_\+b1\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} anchor\+\_\+b1\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} anchor\+\_\+b1\+\_\+z, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} anchor\+\_\+b2\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} anchor\+\_\+b2\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} anchor\+\_\+b2\+\_\+z)
\begin{DoxyCompactList}\small\item\em Change the constraints anchors values on both constrained bodies. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_ga9ebbbae51adaa1f366b09ea8de2411bc}{ephysics\+\_\+constraint\+\_\+anchor\+\_\+get}} (const \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$anchor\+\_\+b1\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$anchor\+\_\+b1\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$anchor\+\_\+b1\+\_\+z, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$anchor\+\_\+b2\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$anchor\+\_\+b2\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$anchor\+\_\+b2\+\_\+z)
\begin{DoxyCompactList}\small\item\em Get the constraints anchors values on both constrained bodies. \end{DoxyCompactList}\item 
EAPI \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$ \mbox{\hyperlink{group__EPhysics__Constraint_ga3b9b7209be6de7b41c000576991c66a8}{ephysics\+\_\+constraint\+\_\+add}} (\mbox{\hyperlink{group__EPhysics__Body_gaf39ad724f8a2f81f9139c63263900bf1}{EPhysics\+\_\+\+Body}} $\ast$body)
\begin{DoxyCompactList}\small\item\em Create a new constraint. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_gae526a49233832ea1fad8437fc9aae82b}{ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+set}} (\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} lower\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} upper\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} lower\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} upper\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} lower\+\_\+z, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} upper\+\_\+z)
\begin{DoxyCompactList}\small\item\em Define the linear moving limits of a {\ttfamily constraint}. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_ga4b052963235ce41ed3d4f3227393ed1b}{ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+get}} (const \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$lower\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$upper\+\_\+x, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$lower\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$upper\+\_\+y, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$lower\+\_\+z, \mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$upper\+\_\+z)
\begin{DoxyCompactList}\small\item\em Get the linear moving limits of a {\ttfamily constraint}. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_ga2e6b2b6ede8bb0ae2199c4f2b9fbc8a1}{ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+set}} (\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint, double counter\+\_\+clock\+\_\+x, double clock\+\_\+wise\+\_\+x, double counter\+\_\+clock\+\_\+y, double clock\+\_\+wise\+\_\+y, double counter\+\_\+clock\+\_\+z, double clock\+\_\+wise\+\_\+z)
\begin{DoxyCompactList}\small\item\em Set the angular moving limits of a {\ttfamily constraint}. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_ga0bb752b6e1c20a094b279be1be1c9a15}{ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+get}} (const \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint, double $\ast$counter\+\_\+clock\+\_\+x, double $\ast$clock\+\_\+wise\+\_\+x, double $\ast$counter\+\_\+clock\+\_\+y, double $\ast$clock\+\_\+wise\+\_\+y, double $\ast$counter\+\_\+clock\+\_\+z, double $\ast$clock\+\_\+wise\+\_\+z)
\begin{DoxyCompactList}\small\item\em Get the angular moving limits of a {\ttfamily constraint}. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}{ephysics\+\_\+constraint\+\_\+del}} (\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$constraint)
\begin{DoxyCompactList}\small\item\em Deletes a physics constraint. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Constraints can be used to limit bodies movements, between bodies or between bodies and the world. 

Constraints can limit movement angle, translation, or work like a motor.

Constraints can be created with \mbox{\hyperlink{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}{ephysics\+\_\+constraint\+\_\+linked\+\_\+add()}} or \mbox{\hyperlink{group__EPhysics__Constraint_ga3b9b7209be6de7b41c000576991c66a8}{ephysics\+\_\+constraint\+\_\+add()}} and removed with \mbox{\hyperlink{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}{ephysics\+\_\+constraint\+\_\+del()}}. Can be applied between two bodies or between a body and the world. 

\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}\label{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}} 
\index{EPhysics Constraint@{EPhysics Constraint}!EPhysics\_Constraint@{EPhysics\_Constraint}}
\index{EPhysics\_Constraint@{EPhysics\_Constraint}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{EPhysics\_Constraint}{EPhysics\_Constraint}}
{\footnotesize\ttfamily typedef struct \+\_\+\+EPhysics\+\_\+\+Constraint \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}}}



Constraint handle, used to limit bodies movements. 

Created with \mbox{\hyperlink{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}{ephysics\+\_\+constraint\+\_\+linked\+\_\+add()}} or \mbox{\hyperlink{group__EPhysics__Constraint_ga3b9b7209be6de7b41c000576991c66a8}{ephysics\+\_\+constraint\+\_\+add()}} and deleted with \mbox{\hyperlink{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}{ephysics\+\_\+constraint\+\_\+del()}}. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}\label{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_linked\_add@{ephysics\_constraint\_linked\_add}}
\index{ephysics\_constraint\_linked\_add@{ephysics\_constraint\_linked\_add}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_linked\_add()}{ephysics\_constraint\_linked\_add()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$ ephysics\+\_\+constraint\+\_\+linked\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__EPhysics__Body_gaf39ad724f8a2f81f9139c63263900bf1}{EPhysics\+\_\+\+Body}} $\ast$}]{body1,  }\item[{\mbox{\hyperlink{group__EPhysics__Body_gaf39ad724f8a2f81f9139c63263900bf1}{EPhysics\+\_\+\+Body}} $\ast$}]{body2 }\end{DoxyParamCaption})}



Create a new constraint between 2 bodies(\+Point to Point constraint). 

The constraint will join two bodies({\ttfamily body1} and {\ttfamily body2}) with angular and linear movements limited by calling \mbox{\hyperlink{group__EPhysics__Constraint_gae526a49233832ea1fad8437fc9aae82b}{ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+set()}} and \mbox{\hyperlink{group__EPhysics__Constraint_ga2e6b2b6ede8bb0ae2199c4f2b9fbc8a1}{ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+set()}}. Anchors values can be defined with \mbox{\hyperlink{group__EPhysics__Constraint_gac70dbb237de696e0356fc9d7722ba835}{ephysics\+\_\+constraint\+\_\+anchor\+\_\+set()}}.


\begin{DoxyParams}{Parameters}
{\em body1} & The first body to apply the constraint. \\
\hline
{\em body2} & The second body to apply the constraint. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A new linked(joining 2 bodies) constraint or {\ttfamily NULL}, on errors.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}{ephysics\+\_\+constraint\+\_\+del()}}. 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{test_constraint_8c-example}{test\+\_\+constraint.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__EPhysics__Constraint_gac70dbb237de696e0356fc9d7722ba835}\label{group__EPhysics__Constraint_gac70dbb237de696e0356fc9d7722ba835}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_anchor\_set@{ephysics\_constraint\_anchor\_set}}
\index{ephysics\_constraint\_anchor\_set@{ephysics\_constraint\_anchor\_set}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_anchor\_set()}{ephysics\_constraint\_anchor\_set()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+anchor\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{anchor\+\_\+b1\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{anchor\+\_\+b1\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{anchor\+\_\+b1\+\_\+z,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{anchor\+\_\+b2\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{anchor\+\_\+b2\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{anchor\+\_\+b2\+\_\+z }\end{DoxyParamCaption})}



Change the constraints anchors values on both constrained bodies. 

\begin{DoxyNote}{Note}
By default the anchors are in the middle of a body, if a body of 20, 20 is positioned at (10, 10) then its anchor is set to (20, 20).

There\`{}s no need to inform {\ttfamily anchor\+\_\+b2\+\_\+x}, {\ttfamily anchor\+\_\+b2\+\_\+y} and {\ttfamily anchor\+\_\+b2\+\_\+z} if the constraint has been created using \mbox{\hyperlink{group__EPhysics__Constraint_ga3b9b7209be6de7b41c000576991c66a8}{ephysics\+\_\+constraint\+\_\+add()}}.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to be set. \\
\hline
{\em anchor\+\_\+b1\+\_\+x} & The first body X anchor. \\
\hline
{\em anchor\+\_\+b1\+\_\+y} & The first body Y anchor. \\
\hline
{\em anchor\+\_\+b1\+\_\+z} & The first body Z anchor. \\
\hline
{\em anchor\+\_\+b2\+\_\+x} & The second body X anchor. \\
\hline
{\em anchor\+\_\+b2\+\_\+y} & The second body Y anchor. \\
\hline
{\em anchor\+\_\+b2\+\_\+z} & The second body Z anchor.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_ga9ebbbae51adaa1f366b09ea8de2411bc}{ephysics\+\_\+constraint\+\_\+anchor\+\_\+get()}}. 

\mbox{\hyperlink{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}{ephysics\+\_\+constraint\+\_\+linked\+\_\+add()}}. 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{test_constraint_8c-example}{test\+\_\+constraint.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga9ebbbae51adaa1f366b09ea8de2411bc}\label{group__EPhysics__Constraint_ga9ebbbae51adaa1f366b09ea8de2411bc}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_anchor\_get@{ephysics\_constraint\_anchor\_get}}
\index{ephysics\_constraint\_anchor\_get@{ephysics\_constraint\_anchor\_get}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_anchor\_get()}{ephysics\_constraint\_anchor\_get()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+anchor\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{anchor\+\_\+b1\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{anchor\+\_\+b1\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{anchor\+\_\+b1\+\_\+z,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{anchor\+\_\+b2\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{anchor\+\_\+b2\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{anchor\+\_\+b2\+\_\+z }\end{DoxyParamCaption})}



Get the constraints anchors values on both constrained bodies. 


\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to get anchor values from. \\
\hline
{\em anchor\+\_\+b1\+\_\+x} & Pointer to an Evas\+\_\+\+Coord in which to store the first body X anchor value. \\
\hline
{\em anchor\+\_\+b1\+\_\+y} & Pointer to an Evas\+\_\+\+Coord in which to store the first body Y anchor value. \\
\hline
{\em anchor\+\_\+b1\+\_\+z} & Pointer to an Evas\+\_\+\+Coord in which to store the first body Z anchor value. \\
\hline
{\em anchor\+\_\+b2\+\_\+x} & Pointer to an Evas\+\_\+\+Coord in which to store the second body X anchor value. \\
\hline
{\em anchor\+\_\+b2\+\_\+y} & Pointer to an Evas\+\_\+\+Coord in which to store the second body Y anchor value. \\
\hline
{\em anchor\+\_\+b2\+\_\+z} & Pointer to an Evas\+\_\+\+Coord in which to store the second body Z anchor value.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_gac70dbb237de696e0356fc9d7722ba835}{ephysics\+\_\+constraint\+\_\+anchor\+\_\+set()}}. 

\mbox{\hyperlink{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}{ephysics\+\_\+constraint\+\_\+linked\+\_\+add()}}. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga3b9b7209be6de7b41c000576991c66a8}\label{group__EPhysics__Constraint_ga3b9b7209be6de7b41c000576991c66a8}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_add@{ephysics\_constraint\_add}}
\index{ephysics\_constraint\_add@{ephysics\_constraint\_add}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_add()}{ephysics\_constraint\_add()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$ ephysics\+\_\+constraint\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__EPhysics__Body_gaf39ad724f8a2f81f9139c63263900bf1}{EPhysics\+\_\+\+Body}} $\ast$}]{body }\end{DoxyParamCaption})}



Create a new constraint. 

The constraint will limit the linear and angular moving of a body. This simple constraint is designated to constraint a single body.


\begin{DoxyParams}{Parameters}
{\em body} & The body to apply the constraint.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_gae526a49233832ea1fad8437fc9aae82b}{ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+set()}} for linear moving limit configuration. 

\mbox{\hyperlink{group__EPhysics__Constraint_ga2e6b2b6ede8bb0ae2199c4f2b9fbc8a1}{ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+set()}} for angular moving limit configuration. 
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
A new constraint or {\ttfamily NULL} on erros.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}{ephysics\+\_\+constraint\+\_\+del()}}. 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{test_slider_8c-example}{test\+\_\+slider.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__EPhysics__Constraint_gae526a49233832ea1fad8437fc9aae82b}\label{group__EPhysics__Constraint_gae526a49233832ea1fad8437fc9aae82b}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_linear\_limit\_set@{ephysics\_constraint\_linear\_limit\_set}}
\index{ephysics\_constraint\_linear\_limit\_set@{ephysics\_constraint\_linear\_limit\_set}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_linear\_limit\_set()}{ephysics\_constraint\_linear\_limit\_set()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{lower\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{upper\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{lower\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{upper\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{lower\+\_\+z,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}}}]{upper\+\_\+z }\end{DoxyParamCaption})}



Define the linear moving limits of a {\ttfamily constraint}. 

The linear limits are defined from the body\textquotesingle{}s position on. The user will want to limit the movements on X, Y and Z axis where lower == upper axis will be locked, lower \texorpdfstring{$>$}{>} upper axis is free, lower \texorpdfstring{$<$}{<} upper axis is limited to the range.

The unit for every limits are defined on Evas coordinates.


\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to be set. \\
\hline
{\em lower\+\_\+x} & The lower linear moving limit on X axis. \\
\hline
{\em upper\+\_\+x} & The upper linear moving limit on X axis. \\
\hline
{\em lower\+\_\+y} & The lower linear moving limit on Y axis. \\
\hline
{\em upper\+\_\+y} & The upper linear moving limit on Y axis. \\
\hline
{\em lower\+\_\+z} & The lower linear moving limit on Z axis. \\
\hline
{\em upper\+\_\+z} & The upper linear moving limit on Z axis.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_ga4b052963235ce41ed3d4f3227393ed1b}{ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+get()}} 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{test_slider_8c-example}{test\+\_\+slider.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga4b052963235ce41ed3d4f3227393ed1b}\label{group__EPhysics__Constraint_ga4b052963235ce41ed3d4f3227393ed1b}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_linear\_limit\_get@{ephysics\_constraint\_linear\_limit\_get}}
\index{ephysics\_constraint\_linear\_limit\_get@{ephysics\_constraint\_linear\_limit\_get}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_linear\_limit\_get()}{ephysics\_constraint\_linear\_limit\_get()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{lower\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{upper\+\_\+x,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{lower\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{upper\+\_\+y,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{lower\+\_\+z,  }\item[{\mbox{\hyperlink{Evas__Common_8h_a2453e92182bad3b0e0d84e5aff433b07}{Evas\+\_\+\+Coord}} $\ast$}]{upper\+\_\+z }\end{DoxyParamCaption})}



Get the linear moving limits of a {\ttfamily constraint}. 


\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to get linear limits from. \\
\hline
{\em lower\+\_\+x} & Pointer to set with the lower limit to the X axis. \\
\hline
{\em upper\+\_\+x} & Pointer to set with the upper limit to the X axis. \\
\hline
{\em lower\+\_\+y} & Pointer to set with the lower limit to the Y axis. \\
\hline
{\em upper\+\_\+y} & Pointer to set with the upper limit to the Y axis. \\
\hline
{\em lower\+\_\+z} & Pointer to set with the lower limit to the Z axis. \\
\hline
{\em upper\+\_\+z} & Pointer to set with the upper limit to the Z axis.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_gae526a49233832ea1fad8437fc9aae82b}{ephysics\+\_\+constraint\+\_\+linear\+\_\+limit\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga2e6b2b6ede8bb0ae2199c4f2b9fbc8a1}\label{group__EPhysics__Constraint_ga2e6b2b6ede8bb0ae2199c4f2b9fbc8a1}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_angular\_limit\_set@{ephysics\_constraint\_angular\_limit\_set}}
\index{ephysics\_constraint\_angular\_limit\_set@{ephysics\_constraint\_angular\_limit\_set}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_angular\_limit\_set()}{ephysics\_constraint\_angular\_limit\_set()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint,  }\item[{double}]{counter\+\_\+clock\+\_\+x,  }\item[{double}]{clock\+\_\+wise\+\_\+x,  }\item[{double}]{counter\+\_\+clock\+\_\+y,  }\item[{double}]{clock\+\_\+wise\+\_\+y,  }\item[{double}]{counter\+\_\+clock\+\_\+z,  }\item[{double}]{clock\+\_\+wise\+\_\+z }\end{DoxyParamCaption})}



Set the angular moving limits of a {\ttfamily constraint}. 

The angular moving limits is defined in degrees and will limit the moving on Z axis -\/ counter clockwise and clockwise directions.


\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to be set. \\
\hline
{\em counter\+\_\+clock\+\_\+x} & Amount of degrees from 0.\+0 to 360.\+0 to limit counter clockwise rotation on X axis. \\
\hline
{\em clock\+\_\+wise\+\_\+x} & Amount of degrees from 0.\+0 to 360.\+0 to limit clockwise rotation on X axis. \\
\hline
{\em counter\+\_\+clock\+\_\+y} & Amount of degrees from 0.\+0 to 360.\+0 to limit counter clockwise rotation o Y axis. \\
\hline
{\em clock\+\_\+wise\+\_\+y} & Amount of degrees from 0.\+0 to 360.\+0 to limit clockwise rotation on Y axis. \\
\hline
{\em counter\+\_\+clock\+\_\+z} & Amount of degrees from 0.\+0 to 360.\+0 to limit counter clockwise rotation on Z axis. \\
\hline
{\em clock\+\_\+wise\+\_\+z} & Amount of degrees from 0.\+0 to 360.\+0 to limit clockwise rotation on Z axis.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_ga0bb752b6e1c20a094b279be1be1c9a15}{ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+get()}} 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{test_slider_8c-example}{test\+\_\+slider.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga0bb752b6e1c20a094b279be1be1c9a15}\label{group__EPhysics__Constraint_ga0bb752b6e1c20a094b279be1be1c9a15}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_angular\_limit\_get@{ephysics\_constraint\_angular\_limit\_get}}
\index{ephysics\_constraint\_angular\_limit\_get@{ephysics\_constraint\_angular\_limit\_get}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_angular\_limit\_get()}{ephysics\_constraint\_angular\_limit\_get()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint,  }\item[{double $\ast$}]{counter\+\_\+clock\+\_\+x,  }\item[{double $\ast$}]{clock\+\_\+wise\+\_\+x,  }\item[{double $\ast$}]{counter\+\_\+clock\+\_\+y,  }\item[{double $\ast$}]{clock\+\_\+wise\+\_\+y,  }\item[{double $\ast$}]{counter\+\_\+clock\+\_\+z,  }\item[{double $\ast$}]{clock\+\_\+wise\+\_\+z }\end{DoxyParamCaption})}



Get the angular moving limits of a {\ttfamily constraint}. 


\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to get the angular limits from. \\
\hline
{\em counter\+\_\+clock\+\_\+x} & Pointer to set with the counter clockwise limmit degrees on X axis. \\
\hline
{\em clock\+\_\+wise\+\_\+x} & Pointer to set with the clockwise limit degrees on X axis. \\
\hline
{\em counter\+\_\+clock\+\_\+y} & Pointer to set with the counter clockwise limit degrees on Y axis. \\
\hline
{\em clock\+\_\+wise\+\_\+y} & Pointer to set with the clockwise limit degrees on Y axis. \\
\hline
{\em counter\+\_\+clock\+\_\+z} & Pointer to set with the counter clockwise limit degrees on Z axis. \\
\hline
{\em clock\+\_\+wise\+\_\+z} & Pointer to set with the clockwise limit degrees on Z axis.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_ga2e6b2b6ede8bb0ae2199c4f2b9fbc8a1}{ephysics\+\_\+constraint\+\_\+angular\+\_\+limit\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}\label{group__EPhysics__Constraint_ga9108a722eb302109e47dd086a1db1fd4}} 
\index{EPhysics Constraint@{EPhysics Constraint}!ephysics\_constraint\_del@{ephysics\_constraint\_del}}
\index{ephysics\_constraint\_del@{ephysics\_constraint\_del}!EPhysics Constraint@{EPhysics Constraint}}
\doxysubsubsection{\texorpdfstring{ephysics\_constraint\_del()}{ephysics\_constraint\_del()}}
{\footnotesize\ttfamily EAPI void ephysics\+\_\+constraint\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__EPhysics__Constraint_ga6cdc4a630836a63a51489b885c09c7e3}{EPhysics\+\_\+\+Constraint}} $\ast$}]{constraint }\end{DoxyParamCaption})}



Deletes a physics constraint. 


\begin{DoxyParams}{Parameters}
{\em constraint} & The constraint to be deleted.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__EPhysics__Constraint_gac689d8c61040b5fd1af9a46b6d6e9dfe}{ephysics\+\_\+constraint\+\_\+linked\+\_\+add()}} for more details. 

ephysics\+\_\+constraint\+\_\+slider\+\_\+add() for more details. 
\end{DoxySeeAlso}
