\hypertarget{namespace_odin_a_i}{\section{Odin\-A\-I Namespace Reference}
\label{namespace_odin_a_i}\index{Odin\-A\-I@{Odin\-A\-I}}
}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_odin_a_i_1_1_a_star_graph_search}{A\-Star\-Graph\-Search}
\item 
class \hyperlink{class_odin_a_i_1_1_dijkstra_graph_search}{Dijkstra\-Graph\-Search}
\begin{DoxyCompactList}\small\item\em Given a graph, and an optional target, it calculates the shortest path from the source node to the target. \end{DoxyCompactList}\item 
class \hyperlink{class_odin_a_i_1_1_event}{Event}
\item 
class \hyperlink{class_odin_a_i_1_1_event_manager}{Event\-Manager}
\item 
class \hyperlink{class_odin_a_i_1_1_base_goal}{Base\-Goal}
\item 
class \hyperlink{class_odin_a_i_1_1_atomic_goal}{Atomic\-Goal}
\item 
class \hyperlink{class_odin_a_i_1_1_composite_goal}{Composite\-Goal}
\item 
class \hyperlink{class_odin_a_i_1_1_graph_edge}{Graph\-Edge}
\item 
class \hyperlink{class_odin_a_i_1_1_graph_node}{Graph\-Node}
\item 
class \hyperlink{class_odin_a_i_1_1_nav_graph_node}{Nav\-Graph\-Node}
\item 
class \hyperlink{class_odin_a_i_1_1_network_manager}{Network\-Manager}
\item 
class \hyperlink{class_odin_a_i_1_1_odin_a_i_root}{Odin\-A\-I\-Root}
\item 
class \hyperlink{class_odin_a_i_1_1_indexed_priority_q_low}{Indexed\-Priority\-Q\-Low}
\item 
class \hyperlink{class_odin_a_i_1_1_sparse_graph}{Sparse\-Graph}
\item 
class \hyperlink{class_odin_a_i_1_1_timer}{Timer}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{namespace_odin_a_i_a1592d0f3a9b93918d7fa6d6e78c660e5}{typedef std\-::function$<$ void(const \\*
\hyperlink{class_odin_a_i_1_1_event}{Event} $\ast$)$>$ {\bfseries Event\-Callback}}\label{namespace_odin_a_i_a1592d0f3a9b93918d7fa6d6e78c660e5}

\item 
\hypertarget{namespace_odin_a_i_a8ee1d6c4165463dae5c003c1e422d422}{typedef unsigned int {\bfseries uint}}\label{namespace_odin_a_i_a8ee1d6c4165463dae5c003c1e422d422}

\item 
\hypertarget{namespace_odin_a_i_a08a31485f8074e21af4ac2abf2c4e11c}{typedef unsigned short {\bfseries ushort}}\label{namespace_odin_a_i_a08a31485f8074e21af4ac2abf2c4e11c}

\item 
\hypertarget{namespace_odin_a_i_a9482587565d4cb0813b9eab9f471c262}{typedef unsigned char {\bfseries byte}}\label{namespace_odin_a_i_a9482587565d4cb0813b9eab9f471c262}

\item 
\hypertarget{namespace_odin_a_i_aefeb34db1069b5c0cf95c358d773831c}{typedef std\-::function$<$ void(char \\*
$\ast$, int)$>$ {\bfseries Async\-Recv\-Callback}}\label{namespace_odin_a_i_aefeb34db1069b5c0cf95c358d773831c}

\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum {\bfseries Goal\-\_\-\-Status} \{ {\bfseries G\-O\-A\-L\-\_\-\-F\-A\-I\-L\-E\-D}, 
{\bfseries G\-O\-A\-L\-\_\-\-C\-O\-M\-P\-L\-E\-T\-E}, 
{\bfseries G\-O\-A\-L\-\_\-\-A\-C\-T\-I\-V\-E}, 
{\bfseries G\-O\-A\-L\-\_\-\-I\-N\-A\-C\-T\-I\-V\-E}
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{namespace_odin_a_i_a7fc8ff007249069e4ee98aee9e789dfa}{void {\bfseries Debug\-Message} (const char $\ast$msg)}\label{namespace_odin_a_i_a7fc8ff007249069e4ee98aee9e789dfa}

\item 
bool \hyperlink{namespace_odin_a_i_a98c59f46eecb0aefc61828f5b3d65b98}{Is\-Equal} (double a, double b)
\item 
int \hyperlink{namespace_odin_a_i_a4f56d8e9185e34bddfcc33c0264ef35f}{Double\-Int} (int a)
\item 
\hypertarget{namespace_odin_a_i_a5132ef12ca795d6bd017517de42f0d7f}{int {\bfseries Double\-To\-Int\-Round} (double value)}\label{namespace_odin_a_i_a5132ef12ca795d6bd017517de42f0d7f}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{namespace_odin_a_i_a516172ab51695a348597d8f4b45f349e}{const double {\bfseries k\-Double\-Epsilon} = std\-::numeric\-\_\-limits$<$double$>$\-::epsilon()}\label{namespace_odin_a_i_a516172ab51695a348597d8f4b45f349e}

\item 
\hypertarget{namespace_odin_a_i_a6eac938add226dc2de9c52bd4f773ae9}{const double {\bfseries k\-Max\-Double} = std\-::numeric\-\_\-limits$<$double$>$\-::max()}\label{namespace_odin_a_i_a6eac938add226dc2de9c52bd4f773ae9}

\item 
\hypertarget{namespace_odin_a_i_aea6a79fe6b2b39e58025d35d489c3a2f}{const int {\bfseries k\-Max\-Int} = std\-::numeric\-\_\-limits$<$int$>$\-::max()}\label{namespace_odin_a_i_aea6a79fe6b2b39e58025d35d489c3a2f}

\item 
\hypertarget{namespace_odin_a_i_a0db0b8c872c72d673df7070f598be667}{const double {\bfseries k\-P\-I} = 3.\-1415926536}\label{namespace_odin_a_i_a0db0b8c872c72d673df7070f598be667}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{class_odin_a_i_1_1_timer}{Timer} for time dependent code. 

\subsection{Function Documentation}
\hypertarget{namespace_odin_a_i_a4f56d8e9185e34bddfcc33c0264ef35f}{\index{Odin\-A\-I@{Odin\-A\-I}!Double\-Int@{Double\-Int}}
\index{Double\-Int@{Double\-Int}!OdinAI@{Odin\-A\-I}}
\subsubsection[{Double\-Int}]{\setlength{\rightskip}{0pt plus 5cm}int Odin\-A\-I\-::\-Double\-Int (
\begin{DoxyParamCaption}
\item[{int}]{a}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{namespace_odin_a_i_a4f56d8e9185e34bddfcc33c0264ef35f}
Double a number, by using left shift. \hypertarget{namespace_odin_a_i_a98c59f46eecb0aefc61828f5b3d65b98}{\index{Odin\-A\-I@{Odin\-A\-I}!Is\-Equal@{Is\-Equal}}
\index{Is\-Equal@{Is\-Equal}!OdinAI@{Odin\-A\-I}}
\subsubsection[{Is\-Equal}]{\setlength{\rightskip}{0pt plus 5cm}bool Odin\-A\-I\-::\-Is\-Equal (
\begin{DoxyParamCaption}
\item[{double}]{a, }
\item[{double}]{b}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{namespace_odin_a_i_a98c59f46eecb0aefc61828f5b3d65b98}
Checks if two floats are equal. N\-O\-T\-E\-: It is the most safe way of doing it! 