\hypertarget{group___volume}{}\section{Volume}
\label{group___volume}\index{Volume@{Volume}}


Volume Rendering with L\+OD aimed at terrain  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_volume_1_1_cache_source}{Ogre\+::\+Volume\+::\+Cache\+Source}
\begin{DoxyCompactList}\small\item\em A caching \hyperlink{class_ogre_1_1_volume_1_1_source}{Source}. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_chunk}{Ogre\+::\+Volume\+::\+Chunk}
\begin{DoxyCompactList}\small\item\em A single volume chunk mesh. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_chunk_handler}{Ogre\+::\+Volume\+::\+Chunk\+Handler}
\begin{DoxyCompactList}\small\item\em Handles the \hyperlink{class_ogre_1_1_work_queue}{Work\+Queue} management of the chunks. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_parameters}{Ogre\+::\+Volume\+::\+Chunk\+Parameters}
\begin{DoxyCompactList}\small\item\em Parameters for loading the volume. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_request}{Ogre\+::\+Volume\+::\+Chunk\+Request}
\begin{DoxyCompactList}\small\item\em Data being passed around while loading. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_tree_shared_data}{Ogre\+::\+Volume\+::\+Chunk\+Tree\+Shared\+Data}
\begin{DoxyCompactList}\small\item\em Internal shared values of the chunks which are equal in the whole tree. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_cube_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Cube\+Source}
\begin{DoxyCompactList}\small\item\em A not rotated cube. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_difference_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Difference\+Source}
\begin{DoxyCompactList}\small\item\em Builds the difference between two sources. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_intersection_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Intersection\+Source}
\begin{DoxyCompactList}\small\item\em Builds the intersection between two sources. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_negate_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Negate\+Source}
\begin{DoxyCompactList}\small\item\em Negates the given volume. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_noise_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Noise\+Source}
\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_operation_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Operation\+Source}
\begin{DoxyCompactList}\small\item\em Abstract operation volume source holding two sources as operants. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_plane_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Plane\+Source}
\begin{DoxyCompactList}\small\item\em A plane. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_scale_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Scale\+Source}
\begin{DoxyCompactList}\small\item\em Scales the given volume source. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_sphere_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Sphere\+Source}
\begin{DoxyCompactList}\small\item\em A sphere. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_unary_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Unary\+Source}
\begin{DoxyCompactList}\small\item\em \hyperlink{class_ogre_1_1_volume_1_1_source}{Source} which does a unary operation to another one. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_union_source}{Ogre\+::\+Volume\+::\+C\+S\+G\+Union\+Source}
\begin{DoxyCompactList}\small\item\em Builds the union between two sources. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_volume_1_1_dual_cell}{Ogre\+::\+Volume\+::\+Dual\+Cell}
\begin{DoxyCompactList}\small\item\em To store the generated dual cells in a vector. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_dual_grid_generator}{Ogre\+::\+Volume\+::\+Dual\+Grid\+Generator}
\begin{DoxyCompactList}\small\item\em Class for the generation of the Dual\+Grid. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_grid_source}{Ogre\+::\+Volume\+::\+Grid\+Source}
\begin{DoxyCompactList}\small\item\em A volume source from a discrete 3d grid. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_half_float_grid_source}{Ogre\+::\+Volume\+::\+Half\+Float\+Grid\+Source}
\begin{DoxyCompactList}\small\item\em A volume source from a 16 Bit float 3D grid capable of loading volume serializations. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_iso_surface}{Ogre\+::\+Volume\+::\+Iso\+Surface}
\begin{DoxyCompactList}\small\item\em Abstract \hyperlink{class_ogre_1_1_volume_1_1_iso_surface}{Iso\+Surface}. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_iso_surface_m_c}{Ogre\+::\+Volume\+::\+Iso\+Surface\+MC}
\begin{DoxyCompactList}\small\item\em Marching Cubes implementation like at \href{http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/}{\tt http\+://local.\+wasp.\+uwa.\+edu.\+au/$\sim$pbourke/geometry/polygonise/}. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_mesh_builder}{Ogre\+::\+Volume\+::\+Mesh\+Builder}
\begin{DoxyCompactList}\small\item\em Class to build up a mesh with vertices and indices. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_mesh_builder_callback}{Ogre\+::\+Volume\+::\+Mesh\+Builder\+Callback}
\begin{DoxyCompactList}\small\item\em Callback class when the user needs information about the triangles of chunks of a L\+OD level. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_octree_node}{Ogre\+::\+Volume\+::\+Octree\+Node}
\begin{DoxyCompactList}\small\item\em A node in the volume octree. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_octree_node_split_policy}{Ogre\+::\+Volume\+::\+Octree\+Node\+Split\+Policy}
\begin{DoxyCompactList}\small\item\em The class deciding on whether to split an octree node or not when building the octree. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_simplex_noise}{Ogre\+::\+Volume\+::\+Simplex\+Noise}
\begin{DoxyCompactList}\small\item\em Simplex Noise ported from public domain Java Implementation \href{http://webstaff.itn.liu.se/~stegu/simplexnoise/SimplexNoise.java}{\tt http\+://webstaff.\+itn.\+liu.\+se/$\sim$stegu/simplexnoise/\+Simplex\+Noise.\+java} Thanks Stefan Gustavson! \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_source}{Ogre\+::\+Volume\+::\+Source}
\begin{DoxyCompactList}\small\item\em Abstract class defining the density function. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_volume_1_1_texture_source}{Ogre\+::\+Volume\+::\+Texture\+Source}
\begin{DoxyCompactList}\small\item\em A volume source from a 3D texture. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Ogre\+::\+Volume\+::\+Vertex}
\begin{DoxyCompactList}\small\item\em Lightweight struct to represent a mesh vertex. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_parameters}{Ogre\+::\+Volume\+::\+Chunk\+Parameters} \hyperlink{group___volume_ga89fbc5eed010b8802358563eb88e674a}{Ogre\+::\+Volume\+::\+Chunk\+Parameters}
\begin{DoxyCompactList}\small\item\em Parameters for loading the volume. \end{DoxyCompactList}\item 
typedef struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_request}{Ogre\+::\+Volume\+::\+Chunk\+Request} \hyperlink{group___volume_gaaaeebbcd7c0272d310d955203cd89c47}{Ogre\+::\+Volume\+::\+Chunk\+Request}
\begin{DoxyCompactList}\small\item\em Data being passed around while loading. \end{DoxyCompactList}\item 
typedef struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_tree_shared_data}{Ogre\+::\+Volume\+::\+Chunk\+Tree\+Shared\+Data} \hyperlink{group___volume_ga65bee0c0281be4af946c81918568cec2}{Ogre\+::\+Volume\+::\+Chunk\+Tree\+Shared\+Data}
\begin{DoxyCompactList}\small\item\em Internal shared values of the chunks which are equal in the whole tree. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Ogre\+Volume\+Export \hyperlink{struct_ogre_1_1_volume_1_1_dual_cell}{Ogre\+::\+Volume\+::\+Dual\+Cell} \hyperlink{group___volume_gaa9e25032e3169d25a199262844a14c46}{Ogre\+::\+Volume\+::\+Dual\+Cell}
\begin{DoxyCompactList}\small\item\em To store the generated dual cells in a vector. \end{DoxyCompactList}\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_volume_1_1_dual_cell}{Dual\+Cell} $>$ \hyperlink{group___volume_gaba362e5d4ee54e19d9f7025c2a9c7e85}{Ogre\+::\+Volume\+::\+Vec\+Dual\+Cell}
\begin{DoxyCompactList}\small\item\em To hold dual cells. \end{DoxyCompactList}\item 
typedef std\+::vector$<$ size\+\_\+t $>$ \hyperlink{group___volume_ga00db3f974951d99d4a0902580eeb8151}{Ogre\+::\+Volume\+::\+Vec\+Indices}
\begin{DoxyCompactList}\small\item\em To hold indices. \end{DoxyCompactList}\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} $>$ \hyperlink{group___volume_ga42533278f4be6a1aeae58d18255d0ca1}{Ogre\+::\+Volume\+::\+Vec\+Vertex}
\begin{DoxyCompactList}\small\item\em To hold vertices. \end{DoxyCompactList}\item 
typedef struct \+\_\+\+Ogre\+Volume\+Export \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Ogre\+::\+Volume\+::\+Vertex} \hyperlink{group___volume_ga90facc4b1e8fd828ae06b8edd0f5b701}{Ogre\+::\+Volume\+::\+Vertex}
\begin{DoxyCompactList}\small\item\em Lightweight struct to represent a mesh vertex. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
bool \+\_\+\+Ogre\+Volume\+Export \hyperlink{group___volume_ga8da49f5068936374cdd572df6699b4dd}{Ogre\+::\+Volume\+::operator$<$} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&a, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&b)
\begin{DoxyCompactList}\small\item\em A less operator. \end{DoxyCompactList}\item 
bool \+\_\+\+Ogre\+Volume\+Export \hyperlink{group___volume_ga5cd7447d3e0ad90168468172f675d359}{Ogre\+::\+Volume\+::operator$<$} (const \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} \&a, const \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} \&b)
\begin{DoxyCompactList}\small\item\em A less operator. \end{DoxyCompactList}\item 
bool \+\_\+\+Ogre\+Volume\+Export \hyperlink{group___volume_gacdc0fc7510e13d480a690d30e2235260}{Ogre\+::\+Volume\+::operator==} (\hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} const \&a, \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} const \&b)
\begin{DoxyCompactList}\small\item\em == operator for two vertices. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Volume Rendering with L\+OD aimed at terrain 



\subsection{Typedef Documentation}
\mbox{\Hypertarget{group___volume_ga89fbc5eed010b8802358563eb88e674a}\label{group___volume_ga89fbc5eed010b8802358563eb88e674a}} 
\index{Volume@{Volume}!Chunk\+Parameters@{Chunk\+Parameters}}
\index{Chunk\+Parameters@{Chunk\+Parameters}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Chunk\+Parameters}{ChunkParameters}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_parameters}{Ogre\+::\+Volume\+::\+Chunk\+Parameters}  \hyperlink{struct_ogre_1_1_volume_1_1_chunk_parameters}{Ogre\+::\+Volume\+::\+Chunk\+Parameters}}



Parameters for loading the volume. 

\mbox{\Hypertarget{group___volume_ga65bee0c0281be4af946c81918568cec2}\label{group___volume_ga65bee0c0281be4af946c81918568cec2}} 
\index{Volume@{Volume}!Chunk\+Tree\+Shared\+Data@{Chunk\+Tree\+Shared\+Data}}
\index{Chunk\+Tree\+Shared\+Data@{Chunk\+Tree\+Shared\+Data}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Chunk\+Tree\+Shared\+Data}{ChunkTreeSharedData}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_tree_shared_data}{Ogre\+::\+Volume\+::\+Chunk\+Tree\+Shared\+Data}  \hyperlink{struct_ogre_1_1_volume_1_1_chunk_tree_shared_data}{Ogre\+::\+Volume\+::\+Chunk\+Tree\+Shared\+Data}}



Internal shared values of the chunks which are equal in the whole tree. 

\mbox{\Hypertarget{group___volume_gaaaeebbcd7c0272d310d955203cd89c47}\label{group___volume_gaaaeebbcd7c0272d310d955203cd89c47}} 
\index{Volume@{Volume}!Chunk\+Request@{Chunk\+Request}}
\index{Chunk\+Request@{Chunk\+Request}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Chunk\+Request}{ChunkRequest}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_ogre_1_1_volume_1_1_chunk_request}{Ogre\+::\+Volume\+::\+Chunk\+Request}  \hyperlink{struct_ogre_1_1_volume_1_1_chunk_request}{Ogre\+::\+Volume\+::\+Chunk\+Request}}



Data being passed around while loading. 

\mbox{\Hypertarget{group___volume_gaa9e25032e3169d25a199262844a14c46}\label{group___volume_gaa9e25032e3169d25a199262844a14c46}} 
\index{Volume@{Volume}!Dual\+Cell@{Dual\+Cell}}
\index{Dual\+Cell@{Dual\+Cell}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Dual\+Cell}{DualCell}}
{\footnotesize\ttfamily typedef struct \+\_\+\+Ogre\+Volume\+Export \hyperlink{struct_ogre_1_1_volume_1_1_dual_cell}{Ogre\+::\+Volume\+::\+Dual\+Cell}  \hyperlink{struct_ogre_1_1_volume_1_1_dual_cell}{Ogre\+::\+Volume\+::\+Dual\+Cell}}



To store the generated dual cells in a vector. 

\mbox{\Hypertarget{group___volume_gaba362e5d4ee54e19d9f7025c2a9c7e85}\label{group___volume_gaba362e5d4ee54e19d9f7025c2a9c7e85}} 
\index{Volume@{Volume}!Vec\+Dual\+Cell@{Vec\+Dual\+Cell}}
\index{Vec\+Dual\+Cell@{Vec\+Dual\+Cell}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Vec\+Dual\+Cell}{VecDualCell}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_volume_1_1_dual_cell}{Dual\+Cell}$>$ \hyperlink{group___volume_gaba362e5d4ee54e19d9f7025c2a9c7e85}{Ogre\+::\+Volume\+::\+Vec\+Dual\+Cell}}



To hold dual cells. 

\mbox{\Hypertarget{group___volume_ga90facc4b1e8fd828ae06b8edd0f5b701}\label{group___volume_ga90facc4b1e8fd828ae06b8edd0f5b701}} 
\index{Volume@{Volume}!Vertex@{Vertex}}
\index{Vertex@{Vertex}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Vertex}{Vertex}}
{\footnotesize\ttfamily typedef struct \+\_\+\+Ogre\+Volume\+Export \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Ogre\+::\+Volume\+::\+Vertex}  \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Ogre\+::\+Volume\+::\+Vertex}}



Lightweight struct to represent a mesh vertex. 

\mbox{\Hypertarget{group___volume_ga42533278f4be6a1aeae58d18255d0ca1}\label{group___volume_ga42533278f4be6a1aeae58d18255d0ca1}} 
\index{Volume@{Volume}!Vec\+Vertex@{Vec\+Vertex}}
\index{Vec\+Vertex@{Vec\+Vertex}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Vec\+Vertex}{VecVertex}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex}$>$ \hyperlink{group___volume_ga42533278f4be6a1aeae58d18255d0ca1}{Ogre\+::\+Volume\+::\+Vec\+Vertex}}



To hold vertices. 

\mbox{\Hypertarget{group___volume_ga00db3f974951d99d4a0902580eeb8151}\label{group___volume_ga00db3f974951d99d4a0902580eeb8151}} 
\index{Volume@{Volume}!Vec\+Indices@{Vec\+Indices}}
\index{Vec\+Indices@{Vec\+Indices}!Volume@{Volume}}
\subsubsection{\texorpdfstring{Vec\+Indices}{VecIndices}}
{\footnotesize\ttfamily typedef std\+::vector$<$size\+\_\+t$>$ \hyperlink{group___volume_ga00db3f974951d99d4a0902580eeb8151}{Ogre\+::\+Volume\+::\+Vec\+Indices}}



To hold indices. 



\subsection{Function Documentation}
\mbox{\Hypertarget{group___volume_ga8da49f5068936374cdd572df6699b4dd}\label{group___volume_ga8da49f5068936374cdd572df6699b4dd}} 
\index{Volume@{Volume}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!Volume@{Volume}}
\subsubsection{\texorpdfstring{operator$<$()}{operator<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool \+\_\+\+Ogre\+Volume\+Export Ogre\+::\+Volume\+::operator$<$ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{a,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{b }\end{DoxyParamCaption})}



A less operator. 

\begin{DoxyNote}{Note}
This operator is needed so that \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} can serve as the key in a map structrue 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em a} & The first vector to test. \\
\hline
{\em b} & The second vector to test. \\
\hline
\end{DoxyParams}


Referenced by Ogre\+::\+Volume\+::\+Vertex\+::\+Vertex().

\mbox{\Hypertarget{group___volume_gacdc0fc7510e13d480a690d30e2235260}\label{group___volume_gacdc0fc7510e13d480a690d30e2235260}} 
\index{Volume@{Volume}!operator==@{operator==}}
\index{operator==@{operator==}!Volume@{Volume}}
\subsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool \+\_\+\+Ogre\+Volume\+Export Ogre\+::\+Volume\+::operator== (\begin{DoxyParamCaption}\item[{\hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} const \&}]{a,  }\item[{\hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} const \&}]{b }\end{DoxyParamCaption})}



== operator for two vertices. 


\begin{DoxyParams}{Parameters}
{\em a} & The first vertex to test. \\
\hline
{\em b} & The second vertex to test. \\
\hline
\end{DoxyParams}


Referenced by Ogre\+::\+Volume\+::\+Vertex\+::\+Vertex().

\mbox{\Hypertarget{group___volume_ga5cd7447d3e0ad90168468172f675d359}\label{group___volume_ga5cd7447d3e0ad90168468172f675d359}} 
\index{Volume@{Volume}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!Volume@{Volume}}
\subsubsection{\texorpdfstring{operator$<$()}{operator<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool \+\_\+\+Ogre\+Volume\+Export Ogre\+::\+Volume\+::operator$<$ (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} \&}]{a,  }\item[{const \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} \&}]{b }\end{DoxyParamCaption})}



A less operator. 

\begin{DoxyNote}{Note}
This operator is needed so that \hyperlink{struct_ogre_1_1_volume_1_1_vertex}{Vertex} can serve as the key in a map structrue 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em a} & The first vertex to test. \\
\hline
{\em b} & The second vertex to test. \\
\hline
\end{DoxyParams}
