\hypertarget{namespace_ogre_1_1_volume}{}\section{Ogre\+:\+:Volume Namespace Reference}
\label{namespace_ogre_1_1_volume}\index{Ogre\+::\+Volume@{Ogre\+::\+Volume}}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_volume_1_1_cache_source}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{C\+S\+G\+Noise\+Source}
\item 
class \hyperlink{class_ogre_1_1_volume_1_1_c_s_g_operation_source}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{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}{Vec\+Dual\+Cell}
\begin{DoxyCompactList}\small\item\em To hold dual cells. \end{DoxyCompactList}\item 
typedef std\+::vector$<$ size\+\_\+t $>$ \hyperlink{group___volume_ga00db3f974951d99d4a0902580eeb8151}{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}{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}{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}{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}{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}{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*{Variables}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{namespace_ogre_1_1_volume_aaffc813983e56a842801d1c95a0d68a7}{mc\+Edges} \mbox{[}256\mbox{]}
\begin{DoxyCompactList}\small\item\em Marching Cubes tables from the public domain code found on \href{http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/}{\tt http\+://local.\+wasp.\+uwa.\+edu.\+au/$\sim$pbourke/geometry/polygonise/} in \href{http://paulbourke.net/geometry/polygonise/marchingsource.cpp}{\tt http\+://paulbourke.\+net/geometry/polygonise/marchingsource.\+cpp} Thanks! \end{DoxyCompactList}\item 
int \hyperlink{namespace_ogre_1_1_volume_a91eddf9820871324597ceb2bfeacccec}{mc\+Triangles} \mbox{[}256\mbox{]}\mbox{[}16\mbox{]}
\begin{DoxyCompactList}\small\item\em Triangulation lookup table. \end{DoxyCompactList}\item 
int \hyperlink{namespace_ogre_1_1_volume_aee34e486e74e6a73b85e785f6d0326e2}{ms\+Edges} \mbox{[}16\mbox{]}
\item 
int \hyperlink{namespace_ogre_1_1_volume_afba711c74cd63d7159a08e5ed6d91c1c}{ms\+Triangles} \mbox{[}18\mbox{]}\mbox{[}13\mbox{]}
\end{DoxyCompactItemize}


\subsection{Variable Documentation}
\mbox{\Hypertarget{namespace_ogre_1_1_volume_aaffc813983e56a842801d1c95a0d68a7}\label{namespace_ogre_1_1_volume_aaffc813983e56a842801d1c95a0d68a7}} 
\index{Ogre\+::\+Volume@{Ogre\+::\+Volume}!mc\+Edges@{mc\+Edges}}
\index{mc\+Edges@{mc\+Edges}!Ogre\+::\+Volume@{Ogre\+::\+Volume}}
\subsubsection{\texorpdfstring{mc\+Edges}{mcEdges}}
{\footnotesize\ttfamily int Ogre\+::\+Volume\+::mc\+Edges\mbox{[}256\mbox{]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
=
    \{
        0x000, 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c, 0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 
      0xe09, 0xf00, 
        0x190, 0x099, 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c, 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 
      0xf99, 0xe90, 
        0x230, 0x339, 0x033, 0x13a, 0x636, 0x73f, 0x435, 0x53c, 0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 
      0xc39, 0xd30, 
        0x3a0, 0x2a9, 0x1a3, 0x0aa, 0x7a6, 0x6af, 0x5a5, 0x4ac, 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 
      0xda9, 0xca0, 
        0x460, 0x569, 0x663, 0x76a, 0x066, 0x16f, 0x265, 0x36c, 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 
      0xa69, 0xb60, 
        0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0x0ff, 0x3f5, 0x2fc, 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 
      0xbf9, 0xaf0, 
        0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x055, 0x15c, 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 
      0x859, 0x950, 
        0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0x0cc, 0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 
      0x9c9, 0x8c0, 
        0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc, 0x0cc, 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 
      0x6c9, 0x7c0, 
        0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c, 0x15c, 0x055, 0x35f, 0x256, 0x55a, 0x453, 
      0x759, 0x650, 
        0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc, 0x2fc, 0x3f5, 0x0ff, 0x1f6, 0x6fa, 0x7f3, 
      0x4f9, 0x5f0, 
        0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c, 0x36c, 0x265, 0x16f, 0x066, 0x76a, 0x663, 
      0x569, 0x460, 
        0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac, 0x4ac, 0x5a5, 0x6af, 0x7a6, 0x0aa, 0x1a3, 
      0x2a9, 0x3a0, 
        0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c, 0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x033, 
      0x339, 0x230, 
        0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c, 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 
      0x099, 0x190, 
        0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c, 0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 
      0x109, 0x000
    \}
\end{DoxyCode}


Marching Cubes tables from the public domain code found on \href{http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/}{\tt http\+://local.\+wasp.\+uwa.\+edu.\+au/$\sim$pbourke/geometry/polygonise/} in \href{http://paulbourke.net/geometry/polygonise/marchingsource.cpp}{\tt http\+://paulbourke.\+net/geometry/polygonise/marchingsource.\+cpp} Thanks! 

Edges table. \mbox{\Hypertarget{namespace_ogre_1_1_volume_a91eddf9820871324597ceb2bfeacccec}\label{namespace_ogre_1_1_volume_a91eddf9820871324597ceb2bfeacccec}} 
\index{Ogre\+::\+Volume@{Ogre\+::\+Volume}!mc\+Triangles@{mc\+Triangles}}
\index{mc\+Triangles@{mc\+Triangles}!Ogre\+::\+Volume@{Ogre\+::\+Volume}}
\subsubsection{\texorpdfstring{mc\+Triangles}{mcTriangles}}
{\footnotesize\ttfamily int Ogre\+::\+Volume\+::mc\+Triangles\mbox{[}256\mbox{]}\mbox{[}16\mbox{]}}



Triangulation lookup table. 

\mbox{\Hypertarget{namespace_ogre_1_1_volume_aee34e486e74e6a73b85e785f6d0326e2}\label{namespace_ogre_1_1_volume_aee34e486e74e6a73b85e785f6d0326e2}} 
\index{Ogre\+::\+Volume@{Ogre\+::\+Volume}!ms\+Edges@{ms\+Edges}}
\index{ms\+Edges@{ms\+Edges}!Ogre\+::\+Volume@{Ogre\+::\+Volume}}
\subsubsection{\texorpdfstring{ms\+Edges}{msEdges}}
{\footnotesize\ttfamily int Ogre\+::\+Volume\+::ms\+Edges\mbox{[}16\mbox{]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
=
    \{
        0x0, 
        0x9, 
        0x3, 
        0xA, 
        0x6, 
        0xF, 
        0x5, 
        0xC, 
        0xC, 
        0x5, 
        0xF, 
        0x6, 
        0xA, 
        0x3, 
        0x9, 
        0x0  
    \}
\end{DoxyCode}
\mbox{\Hypertarget{namespace_ogre_1_1_volume_afba711c74cd63d7159a08e5ed6d91c1c}\label{namespace_ogre_1_1_volume_afba711c74cd63d7159a08e5ed6d91c1c}} 
\index{Ogre\+::\+Volume@{Ogre\+::\+Volume}!ms\+Triangles@{ms\+Triangles}}
\index{ms\+Triangles@{ms\+Triangles}!Ogre\+::\+Volume@{Ogre\+::\+Volume}}
\subsubsection{\texorpdfstring{ms\+Triangles}{msTriangles}}
{\footnotesize\ttfamily int Ogre\+::\+Volume\+::ms\+Triangles\mbox{[}18\mbox{]}\mbox{[}13\mbox{]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
=
    \{
        \{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1\}, 
        \{7, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1\},    
        \{3, 2, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1\},    
        \{7, 2, 0, 7, 3, 2, -1, -1, -1, -1, -1, -1, -1\},       
        \{5, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1\},    
        \{7, 1, 0, 3, 5, 4, -1, -1, -1, -1, -1, -1, -1\},       
        \{1, 4, 2, 1, 5, 4, -1, -1, -1, -1, -1, -1, -1\},       
        \{0, 7, 5, 0, 5, 4, 0, 4, 2, -1, -1, -1, -1\},          
        \{7, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1\},    
        \{0, 5, 1, 0, 6, 5, -1, -1, -1, -1, -1, -1, -1\},       
        \{1, 3, 2, 7, 6, 5, -1, -1, -1, -1, -1, -1, -1\},       
        \{3, 6, 5, 3, 0, 6, 3, 2, 0, -1, -1, -1, -1\},          
        \{7, 6, 4, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1\},       
        \{3, 1, 0, 3, 0, 6, 3, 6, 4, -1, -1, -1, -1\},          
        \{2, 1, 7, 2, 7, 6, 2, 6, 4, -1, -1, -1, -1\},          
        \{6, 2, 0, 6, 4, 2, -1, -1, -1, -1, -1, -1, -1\},       
        \{1, 0, 7, 1, 7, 5, 1, 5, 4, 1, 4, 3, -1\},             
        \{1, 3, 2, 1, 5, 3, 1, 6, 5, 1, 7, 6, -1\}              
    \}
\end{DoxyCode}
