\hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:A\+CG\+:\+:Scene\+Graph\+:\+:Mesh\+NodeT$<$ Mesh $>$ Class Template Reference}
\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}}
Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:A\+CG\+:\+:Scene\+Graph\+:\+:Mesh\+NodeT$<$ Mesh $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3f78f51688688253c3ea54b69613f765}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3f78f51688688253c3ea54b69613f765}} 
{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (Mesh\+Node)
\item 
\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_abf049e12e655e227bee277cb1f0009b2}{Mesh\+NodeT} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Mesh\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a13ec564b7007731a67d0f75abe2ba853}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a13ec564b7007731a67d0f75abe2ba853}} 
virtual \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a13ec564b7007731a67d0f75abe2ba853}{$\sim$\+Mesh\+NodeT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a7e2432cee077795caf39353a20895af4}{update\+\_\+geometry} ()
\begin{DoxyCompactList}\small\item\em the geometry of the mesh has changed \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ac7bf0981bdfb21257059baad11cd1c8c}{update\+\_\+topology} ()
\begin{DoxyCompactList}\small\item\em the topology of the mesh has changed \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a0a1e28aa3c5c928f2454556097d66e33}{update\+\_\+color} ()
\begin{DoxyCompactList}\small\item\em the colors of the mesh have changed \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ae1fd0923c3b6b42bebac99465bf483cb}{update\+\_\+textures} ()
\begin{DoxyCompactList}\small\item\em force an texture update \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ac742c0e6c20d27a7fb53f70a2cf377da}{set\+\_\+property\+\_\+map} (std\+::map$<$ int, std\+::string $>$ $\ast$\+\_\+map)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a8683fa5cb522663e36fff46160ecd713}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a8683fa5cb522663e36fff46160ecd713}} 
unsigned int \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a8683fa5cb522663e36fff46160ecd713}{get\+Memory\+Usage} ()
\begin{DoxyCompactList}\small\item\em measures the size in bytes of allocated memory \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a364522ba748156c5c1e1f40ec69fc081}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a364522ba748156c5c1e1f40ec69fc081}} 
void {\bfseries set\+\_\+offset} (bool enable)
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ general picking functions}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a169d77dc6bf1d431793c76d54e8e4523}{pick} (\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target) override
\begin{DoxyCompactList}\small\item\em Draws the object in picking mode. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9189aa5fb49ff29dc78612acee483b6d}{Point}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a33d732ecf81d7fd6efee5fadd1a3e148}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a33d732ecf81d7fd6efee5fadd1a3e148}} 
typedef Point\+::value\+\_\+type {\bfseries Point\+Scalar}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3032a59503a1bac9cc6fabfcc3878b36}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3032a59503a1bac9cc6fabfcc3878b36}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a3570fd132d1ac589b380485cf59c9e0b}{Mesh\+::\+Normal} {\bfseries Normal}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa5c739595694afa1b48446b37761fa86}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa5c739595694afa1b48446b37761fa86}} 
typedef Normal\+::value\+\_\+type {\bfseries Normal\+Scalar}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aaceba3faf9370f98a9c8d9c68bb2e1cb}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aaceba3faf9370f98a9c8d9c68bb2e1cb}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_af0d8129bf1a819c468c6edcb13b5203b}{Mesh\+::\+Color} {\bfseries Color}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9399f9dbcc5726544186fb05611d3a38}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9399f9dbcc5726544186fb05611d3a38}} 
typedef Color\+::value\+\_\+type {\bfseries Color\+Scalar}
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa280441a2375d18851aa11183d39be29}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa280441a2375d18851aa11183d39be29}} 
bool {\bfseries draw\+\_\+with\+\_\+offset\+\_\+}
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Draw-\/mesh handling}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aed1be21c15966b54e1c3cf37cf03a31b}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aed1be21c15966b54e1c3cf37cf03a31b}} 
\hyperlink{classACG_1_1DrawMeshT}{Draw\+MeshT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$ $\ast$ {\bfseries draw\+Mesh\+\_\+}
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Mesh Handling}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9b1811a50fc2e71648bbc882f171ba8b}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9b1811a50fc2e71648bbc882f171ba8b}} 
\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \& \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9b1811a50fc2e71648bbc882f171ba8b}{mesh\+\_\+}
\begin{DoxyCompactList}\small\item\em The mesh this node works on. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5d13ea81e64676f7ae95631968497b7b}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5d13ea81e64676f7ae95631968497b7b}} 
const \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \& \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5d13ea81e64676f7ae95631968497b7b}{mesh} () const
\begin{DoxyCompactList}\small\item\em get the internal mesh \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Bounding Box}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa274f08c452f7fed756ed86c54364fc5}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa274f08c452f7fed756ed86c54364fc5}} 
\hyperlink{classOpenMesh_1_1VectorT}{Vec3d} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa274f08c452f7fed756ed86c54364fc5}{bb\+Min\+\_\+}
\begin{DoxyCompactList}\small\item\em bounding box lower left corner \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a755f10bbdfea5b107b1e1f66f1a72594}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a755f10bbdfea5b107b1e1f66f1a72594}} 
\hyperlink{classOpenMesh_1_1VectorT}{Vec3d} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a755f10bbdfea5b107b1e1f66f1a72594}{bb\+Max\+\_\+}
\begin{DoxyCompactList}\small\item\em bounding box upper right corner \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a7d629a99bef101636d014727a87cd576}{bounding\+Box} (\hyperlink{classOpenMesh_1_1VectorT}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{classOpenMesh_1_1VectorT}{Vec3d} \&\+\_\+bb\+Max) override
\begin{DoxyCompactList}\small\item\em Current bounding box. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Normal Buffer}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5f94e656b48756a6b66575abd77a9e79}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5f94e656b48756a6b66575abd77a9e79}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5f94e656b48756a6b66575abd77a9e79}{enable\+Normals\+\_\+}
\begin{DoxyCompactList}\small\item\em Flag if normals should be used. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a2c0cc8655865eac1665ba8a1413fc794}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a2c0cc8655865eac1665ba8a1413fc794}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a2c0cc8655865eac1665ba8a1413fc794}{normals\+Enabled} ()
\begin{DoxyCompactList}\small\item\em Returns if the normal array is currently activated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af82514e8db0ef45eef29507359299323}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af82514e8db0ef45eef29507359299323}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af82514e8db0ef45eef29507359299323}{enable\+Normals} (bool \+\_\+enable)
\begin{DoxyCompactList}\small\item\em Enable or disable the use of the normal array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Color buffer}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1e97d20a1cc8a86921a0e71a8a93d8df}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1e97d20a1cc8a86921a0e71a8a93d8df}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1e97d20a1cc8a86921a0e71a8a93d8df}{enable\+Colors\+\_\+}
\begin{DoxyCompactList}\small\item\em Returns if the color array is currently activated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5bb0a478f983e5d07b1168c3979a0a52}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5bb0a478f983e5d07b1168c3979a0a52}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5bb0a478f983e5d07b1168c3979a0a52}{colors\+Enabled} ()
\begin{DoxyCompactList}\small\item\em Returns if the color array is currently activated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aad17cdcd3d30fd1a61ffcd566845a8c4}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aad17cdcd3d30fd1a61ffcd566845a8c4}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aad17cdcd3d30fd1a61ffcd566845a8c4}{enable\+Colors} (bool \+\_\+enable)
\begin{DoxyCompactList}\small\item\em Enable or disable the use of color array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Array control functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa942fb9bcdfb4d1fa150ea505b99dc81}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa942fb9bcdfb4d1fa150ea505b99dc81}} 
enum \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aa942fb9bcdfb4d1fa150ea505b99dc81}{Array\+Type} \{ \newline
{\bfseries N\+O\+NE} = 0, 
{\bfseries P\+E\+R\+\_\+\+E\+D\+G\+E\+\_\+\+V\+E\+R\+T\+E\+X\+\_\+\+A\+R\+R\+AY} = 1, 
{\bfseries P\+E\+R\+\_\+\+E\+D\+G\+E\+\_\+\+C\+O\+L\+O\+R\+\_\+\+A\+R\+R\+AY} = 2, 
{\bfseries P\+E\+R\+\_\+\+H\+A\+L\+F\+E\+D\+G\+E\+\_\+\+V\+E\+R\+T\+E\+X\+\_\+\+A\+R\+R\+AY} = 4, 
\newline
{\bfseries P\+E\+R\+\_\+\+H\+A\+L\+F\+E\+D\+G\+E\+\_\+\+C\+O\+L\+O\+R\+\_\+\+A\+R\+R\+AY} = 8
 \}\begin{DoxyCompactList}\small\item\em Enum controlling which array should be used for rendering. \end{DoxyCompactList}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5af50802169ac78ee133981aa93ad577}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5af50802169ac78ee133981aa93ad577}} 
unsigned int \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5af50802169ac78ee133981aa93ad577}{enabled\+\_\+arrays\+\_\+}
\begin{DoxyCompactList}\small\item\em which arrays are currently enabled? \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a72505408b73f077446aec6a3e603f999}{enable\+\_\+arrays} (unsigned int \+\_\+arrays)
\begin{DoxyCompactList}\small\item\em enable/disable vertex arrays according to the bits in \+\_\+arrays \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Rendering functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5a2aee2e13b40bf4f4c1a3d270a73f78}{halfedge\+Decl}
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a641b7b875570abf0b33fe31c8bc3b02a}{draw} (\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode) override
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ad42ce793cddd05f051680af19f8d84b5}{get\+Render\+Objects} (\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{classACG_1_1SceneGraph_1_1Material}{Material} $\ast$\+\_\+mat) override
\begin{DoxyCompactList}\small\item\em Draws the object deferred. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a6f0ebc8c29341e96396704c08c97387f}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a6f0ebc8c29341e96396704c08c97387f}} 
\hyperlink{classACG_1_1DrawMeshT}{Draw\+MeshT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$ $\ast$ \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a6f0ebc8c29341e96396704c08c97387f}{get\+Draw\+Mesh} ()
\begin{DoxyCompactList}\small\item\em Get Draw\+Mesh instance. \end{DoxyCompactList}\item 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a87edac83e8bdef072c0e594e8e9aeca9}{available\+Draw\+Modes} () const override
\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aff3395551d7026fae168da7343ddc1b1}{draw\+\_\+vertices} ()
\begin{DoxyCompactList}\small\item\em draws all vertices of the mesh \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_afca2b2496e3ab7ddb8861e14f744909f}{add\+\_\+point\+\_\+\+Render\+Objects} (\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$\+\_\+renderer, const \hyperlink{structACG_1_1RenderObject}{Render\+Object} $\ast$\+\_\+base\+Obj)
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ad0cc4e7fe391a6176033b7a6eb231eb1}{draw\+\_\+lines} ()
\begin{DoxyCompactList}\small\item\em draws all edges of the mesh \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a4948e58a666003613996266901d260f3}{add\+\_\+line\+\_\+\+Render\+Objects} (\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$\+\_\+renderer, const \hyperlink{structACG_1_1RenderObject}{Render\+Object} $\ast$\+\_\+base\+Obj)
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1a5963c6a45acb57590bad3afe1d41a0}{draw\+\_\+halfedges} ()
\begin{DoxyCompactList}\small\item\em draws all halfedges of the mesh \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ae56dbf34b3088485bb7c3133047bc2ce}{draw\+\_\+faces} ()
\begin{DoxyCompactList}\small\item\em draws all faces of the mesh \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a275883ea795c5d0d9e7e914f0dee9113}{add\+\_\+face\+\_\+\+Render\+Objects} (\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$\+\_\+renderer, const \hyperlink{structACG_1_1RenderObject}{Render\+Object} $\ast$\+\_\+base\+Obj, bool \+\_\+nonindexed=false)
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{vertex picking functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a184c539db49d901c6e8771a9f864d823}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a184c539db49d901c6e8771a9f864d823}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a184c539db49d901c6e8771a9f864d823}{update\+Vertex\+Picking\+\_\+}
\begin{DoxyCompactList}\small\item\em Flag indicating if the vertex picking has to be updated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a700b4a71ae153a70f9af312907e0cf15}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a700b4a71ae153a70f9af312907e0cf15}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a700b4a71ae153a70f9af312907e0cf15}{vertex\+Picking\+Base\+Index\+\_\+}
\begin{DoxyCompactList}\small\item\em Index of the first vertex in vertexpicking. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a97864e9bf1d7c59e8f167d9551b76325}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a97864e9bf1d7c59e8f167d9551b76325}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a97864e9bf1d7c59e8f167d9551b76325}{pick\+\_\+vertices} (\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state, bool \+\_\+front=false)
\begin{DoxyCompactList}\small\item\em Renders picking for vertices \+\_\+front\+: Only render front vertices (not occluded by geometry) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{edge picking functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a12e5f75672534f7b20f37a06fbff44a5}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a12e5f75672534f7b20f37a06fbff44a5}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a12e5f75672534f7b20f37a06fbff44a5}{update\+Edge\+Picking\+\_\+}
\begin{DoxyCompactList}\small\item\em Flag indicating if the edge picking has to be updated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a955037e0bc8c61331ea809df080801b7}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a955037e0bc8c61331ea809df080801b7}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a955037e0bc8c61331ea809df080801b7}{edge\+Picking\+Base\+Index\+\_\+}
\begin{DoxyCompactList}\small\item\em Index of the first edge in edgepicking. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a8df33eeb34f2775c9b560ce9b18c3356}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a8df33eeb34f2775c9b560ce9b18c3356}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a8df33eeb34f2775c9b560ce9b18c3356}{pick\+\_\+edges} (\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state, bool \+\_\+front=false)
\begin{DoxyCompactList}\small\item\em Renders picking for edges \+\_\+front\+: Only render front edges (not occluded by geometry) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{face picking functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af08f5c76521beabfe92b24100e0227cd}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af08f5c76521beabfe92b24100e0227cd}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af08f5c76521beabfe92b24100e0227cd}{update\+Face\+Picking\+\_\+}
\begin{DoxyCompactList}\small\item\em Flag indicating if the edge picking has to be updated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a2bbc933c21774c1cd441dc84abca8a69}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a2bbc933c21774c1cd441dc84abca8a69}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a2bbc933c21774c1cd441dc84abca8a69}{face\+Picking\+Base\+Index\+\_\+}
\begin{DoxyCompactList}\small\item\em Index of the first face in facepicking. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a6a1eb69c93c638a91e627589869cf003}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a6a1eb69c93c638a91e627589869cf003}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a6a1eb69c93c638a91e627589869cf003}{pick\+\_\+faces} (\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Renders picking for faces \+\_\+front\+: Only render front faces (not occluded by geometry) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{anything picking functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a04bf015aa00c1f82f4e96377d1a4a152}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a04bf015aa00c1f82f4e96377d1a4a152}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a04bf015aa00c1f82f4e96377d1a4a152}{update\+Any\+Picking\+\_\+}
\begin{DoxyCompactList}\small\item\em Flag indicating if the any picking has to be updated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a45e025699a17fb1867f7326edb4df97e}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a45e025699a17fb1867f7326edb4df97e}} 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a45e025699a17fb1867f7326edb4df97e}{any\+Picking\+Base\+Index\+\_\+}
\begin{DoxyCompactList}\small\item\em Index of the first face in anypicking. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a84013eadc8121a2fc5e296568c93b723}{pick\+\_\+any} (\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Renders picking for all primitives. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Texture handling}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aca8c4afd6553fc5f3c99634bcbeb722a}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aca8c4afd6553fc5f3c99634bcbeb722a}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aca8c4afd6553fc5f3c99634bcbeb722a}{per\+Face\+Texture\+Index\+Available\+\_\+}
\begin{DoxyCompactList}\small\item\em This flag indicates if we have a per Face texture index property. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1f67c4b8f42861d2ca4670519ea31164}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1f67c4b8f42861d2ca4670519ea31164}} 
std\+::map$<$ int, G\+Luint $>$ $\ast$ \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1f67c4b8f42861d2ca4670519ea31164}{texture\+Map\+\_\+}
\begin{DoxyCompactList}\small\item\em Mapping of mesh face texture indices to gltexture id ( has to be provided externally ) \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a97c6bb6d95d0c2abfcbe8e1aadaf7ba7}{set\+Index\+Property\+Name} (std\+::string \+\_\+index\+Property\+Name)
\begin{DoxyCompactList}\small\item\em set the name of the property used for texture index specification \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3edaa82196b294140d69977bc5269ac2}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3edaa82196b294140d69977bc5269ac2}} 
const std\+::string \& \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a3edaa82196b294140d69977bc5269ac2}{index\+Property\+Name} () const
\begin{DoxyCompactList}\small\item\em Get current texture index property name. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a029b832eddbebf85a6726f2418215be0}{set\+Halfedge\+Textcoord\+Property\+Name} (std\+::string \+\_\+halfedge\+Textcoord\+Property\+Name)
\begin{DoxyCompactList}\small\item\em Set the name of the per face texture coordinate property. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af1fd24d6341c9fdc6baee9184ec1e1c6}{set\+Texture\+Map} (std\+::map$<$ int, G\+Luint $>$ $\ast$\+\_\+map)
\begin{DoxyCompactList}\small\item\em Setup a mapping between internal texture ids on the mesh and the ids for the loaded textures in opengl. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class Mesh$>$\newline
class A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}

This node draws a mesh using triangle strips. 

Definition at line 110 of file Mesh\+Node2\+T\+\_\+impl.\+hh.



\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9189aa5fb49ff29dc78612acee483b6d}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9189aa5fb49ff29dc78612acee483b6d}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!Point@{Point}}
\index{Point@{Point}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{Point}{Point}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a9189aa5fb49ff29dc78612acee483b6d}{Point}\hspace{0.3cm}{\ttfamily [private]}}

Typedefs of the mesh representation

These typedefs are used to specifiy and convert all input to float for rendering 

Definition at line 164 of file Mesh\+Node2\+T\+\_\+impl.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_abf049e12e655e227bee277cb1f0009b2}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_abf049e12e655e227bee277cb1f0009b2}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!Mesh\+NodeT@{Mesh\+NodeT}}
\index{Mesh\+NodeT@{Mesh\+NodeT}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{Mesh\+Node\+T()}{MeshNodeT()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{Mesh\+NodeT} (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&}]{\+\_\+mesh,  }\item[{\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$}]{\+\_\+parent = {\ttfamily 0},  }\item[{const std\+::string \&}]{\+\_\+name = {\ttfamily \char`\"{}$<$MeshNode$>$\char`\"{}} }\end{DoxyParamCaption})}



Default constructor. 

The constructor needs a mesh on which this node will work. \begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000016}{Todo}]\+: Handle vbo not supported \end{DoxyRefDesc}


Definition at line 74 of file Mesh\+Node2\+T\+\_\+impl.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a275883ea795c5d0d9e7e914f0dee9113}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a275883ea795c5d0d9e7e914f0dee9113}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!add\+\_\+face\+\_\+\+Render\+Objects@{add\+\_\+face\+\_\+\+Render\+Objects}}
\index{add\+\_\+face\+\_\+\+Render\+Objects@{add\+\_\+face\+\_\+\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{add\+\_\+face\+\_\+\+Render\+Objects()}{add\_face\_RenderObjects()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::add\+\_\+face\+\_\+\+Render\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$}]{\+\_\+renderer,  }\item[{const \hyperlink{structACG_1_1RenderObject}{Render\+Object} $\ast$}]{\+\_\+base\+Obj,  }\item[{bool}]{\+\_\+nonindexed = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Draws the object. 

get bound texture buffer and target

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000017}{Todo}]We can render also wireframe shaded and with vertex colors \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000018}{Todo}]Integrate shader here! \end{DoxyRefDesc}


Definition at line 1010 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a4948e58a666003613996266901d260f3}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a4948e58a666003613996266901d260f3}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!add\+\_\+line\+\_\+\+Render\+Objects@{add\+\_\+line\+\_\+\+Render\+Objects}}
\index{add\+\_\+line\+\_\+\+Render\+Objects@{add\+\_\+line\+\_\+\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{add\+\_\+line\+\_\+\+Render\+Objects()}{add\_line\_RenderObjects()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::add\+\_\+line\+\_\+\+Render\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$}]{\+\_\+renderer,  }\item[{const \hyperlink{structACG_1_1RenderObject}{Render\+Object} $\ast$}]{\+\_\+base\+Obj }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}



Draws the object. 

get bound texture buffer and target

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000017}{Todo}]We can render also wireframe shaded and with vertex colors \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000018}{Todo}]Integrate shader here! \end{DoxyRefDesc}


Definition at line 977 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_afca2b2496e3ab7ddb8861e14f744909f}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_afca2b2496e3ab7ddb8861e14f744909f}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!add\+\_\+point\+\_\+\+Render\+Objects@{add\+\_\+point\+\_\+\+Render\+Objects}}
\index{add\+\_\+point\+\_\+\+Render\+Objects@{add\+\_\+point\+\_\+\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{add\+\_\+point\+\_\+\+Render\+Objects()}{add\_point\_RenderObjects()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::add\+\_\+point\+\_\+\+Render\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$}]{\+\_\+renderer,  }\item[{const \hyperlink{structACG_1_1RenderObject}{Render\+Object} $\ast$}]{\+\_\+base\+Obj }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}



Draws the object. 

get bound texture buffer and target

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000017}{Todo}]We can render also wireframe shaded and with vertex colors \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000018}{Todo}]Integrate shader here! \end{DoxyRefDesc}


Definition at line 949 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a87edac83e8bdef072c0e594e8e9aeca9}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a87edac83e8bdef072c0e594e8e9aeca9}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!available\+Draw\+Modes@{available\+Draw\+Modes}}
\index{available\+Draw\+Modes@{available\+Draw\+Modes}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{available\+Draw\+Modes()}{availableDrawModes()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::available\+Draw\+Modes (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



return available draw modes 

The drawmodes are constructed based on the mesh properties and the hardware capabilities of the system. 

Reimplemented from \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode_a3d3fa2b1855749bb4f3c2a9dcecf56bc}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 115 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a7d629a99bef101636d014727a87cd576}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a7d629a99bef101636d014727a87cd576}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!bounding\+Box@{bounding\+Box}}
\index{bounding\+Box@{bounding\+Box}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{bounding\+Box()}{boundingBox()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::bounding\+Box (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1VectorT}{Vec3d} \&}]{\+\_\+bb\+Min,  }\item[{\hyperlink{classOpenMesh_1_1VectorT}{Vec3d} \&}]{\+\_\+bb\+Max }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Current bounding box. 

This function returns the bounding box of the node. 

Reimplemented from \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode_ac956bf4aae718f4cb89c78979dc47280}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 192 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a641b7b875570abf0b33fe31c8bc3b02a}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a641b7b875570abf0b33fe31c8bc3b02a}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!draw@{draw}}
\index{draw@{draw}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{draw()}{draw()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::draw (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&}]{\+\_\+state,  }\item[{const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Draws the object. 

get bound texture buffer and target

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000017}{Todo}]We can render also wireframe shaded and with vertex colors \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000018}{Todo}]Integrate shader here! \end{DoxyRefDesc}


Reimplemented from \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode_acda5dfbbd2d63f6fb509cc99e1aa422b}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 200 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ae56dbf34b3088485bb7c3133047bc2ce}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ae56dbf34b3088485bb7c3133047bc2ce}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!draw\+\_\+faces@{draw\+\_\+faces}}
\index{draw\+\_\+faces@{draw\+\_\+faces}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{draw\+\_\+faces()}{draw\_faces()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::draw\+\_\+faces (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



draws all faces of the mesh 



Definition at line 1003 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1a5963c6a45acb57590bad3afe1d41a0}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a1a5963c6a45acb57590bad3afe1d41a0}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!draw\+\_\+halfedges@{draw\+\_\+halfedges}}
\index{draw\+\_\+halfedges@{draw\+\_\+halfedges}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{draw\+\_\+halfedges()}{draw\_halfedges()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::draw\+\_\+halfedges (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}



draws all halfedges of the mesh 



Definition at line 991 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ad0cc4e7fe391a6176033b7a6eb231eb1}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ad0cc4e7fe391a6176033b7a6eb231eb1}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!draw\+\_\+lines@{draw\+\_\+lines}}
\index{draw\+\_\+lines@{draw\+\_\+lines}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{draw\+\_\+lines()}{draw\_lines()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::draw\+\_\+lines (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}



draws all edges of the mesh 



Definition at line 963 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aff3395551d7026fae168da7343ddc1b1}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_aff3395551d7026fae168da7343ddc1b1}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!draw\+\_\+vertices@{draw\+\_\+vertices}}
\index{draw\+\_\+vertices@{draw\+\_\+vertices}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{draw\+\_\+vertices()}{draw\_vertices()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::draw\+\_\+vertices (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}



draws all vertices of the mesh 



Definition at line 956 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a72505408b73f077446aec6a3e603f999}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a72505408b73f077446aec6a3e603f999}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!enable\+\_\+arrays@{enable\+\_\+arrays}}
\index{enable\+\_\+arrays@{enable\+\_\+arrays}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{enable\+\_\+arrays()}{enable\_arrays()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::enable\+\_\+arrays (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+arrays }\end{DoxyParamCaption})}



enable/disable vertex arrays according to the bits in \+\_\+arrays 

Use this function to enable or disable the appropriate array for rendering. Currently the arrays in Array\+Type are supported 

Definition at line 1017 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ad42ce793cddd05f051680af19f8d84b5}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ad42ce793cddd05f051680af19f8d84b5}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{get\+Render\+Objects()}{getRenderObjects()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::get\+Render\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1IRenderer}{I\+Renderer} $\ast$}]{\+\_\+renderer,  }\item[{\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&}]{\+\_\+state,  }\item[{const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode,  }\item[{const \hyperlink{classACG_1_1SceneGraph_1_1Material}{Material} $\ast$}]{\+\_\+mat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Draws the object deferred. 



Reimplemented from \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode_acb425c90def34591f6ee41e440dc7f69}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 670 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a169d77dc6bf1d431793c76d54e8e4523}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a169d77dc6bf1d431793c76d54e8e4523}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!pick@{pick}}
\index{pick@{pick}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{pick()}{pick()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::pick (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&}]{\+\_\+state,  }\item[{\hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target}}]{\+\_\+target }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Draws the object in picking mode. 



Reimplemented from \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1BaseNode_a89fb19e5b68bd875eaa7047738e41217}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}.



Definition at line 1129 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a84013eadc8121a2fc5e296568c93b723}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a84013eadc8121a2fc5e296568c93b723}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!pick\+\_\+any@{pick\+\_\+any}}
\index{pick\+\_\+any@{pick\+\_\+any}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{pick\+\_\+any()}{pick\_any()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::pick\+\_\+any (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{G\+L\+State} \&}]{\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Renders picking for all primitives. 



Definition at line 1473 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ac742c0e6c20d27a7fb53f70a2cf377da}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ac742c0e6c20d27a7fb53f70a2cf377da}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!set\+\_\+property\+\_\+map@{set\+\_\+property\+\_\+map}}
\index{set\+\_\+property\+\_\+map@{set\+\_\+property\+\_\+map}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{set\+\_\+property\+\_\+map()}{set\_property\_map()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::set\+\_\+property\+\_\+map (\begin{DoxyParamCaption}\item[{std\+::map$<$ int, std\+::string $>$ $\ast$}]{\+\_\+map }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000021}{Todo}]Remove all these functions afterwards! \end{DoxyRefDesc}


Definition at line 502 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a029b832eddbebf85a6726f2418215be0}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a029b832eddbebf85a6726f2418215be0}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!set\+Halfedge\+Textcoord\+Property\+Name@{set\+Halfedge\+Textcoord\+Property\+Name}}
\index{set\+Halfedge\+Textcoord\+Property\+Name@{set\+Halfedge\+Textcoord\+Property\+Name}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{set\+Halfedge\+Textcoord\+Property\+Name()}{setHalfedgeTextcoordPropertyName()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::set\+Halfedge\+Textcoord\+Property\+Name (\begin{DoxyParamCaption}\item[{std\+::string}]{\+\_\+halfedge\+Textcoord\+Property\+Name }\end{DoxyParamCaption})}



Set the name of the per face texture coordinate property. 

Set this property for per face per vertex texture coordinates. Additionally you have to set the Index\+Property\+Name to make texturing with multiple textures work. 

Definition at line 1672 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a97c6bb6d95d0c2abfcbe8e1aadaf7ba7}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a97c6bb6d95d0c2abfcbe8e1aadaf7ba7}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!set\+Index\+Property\+Name@{set\+Index\+Property\+Name}}
\index{set\+Index\+Property\+Name@{set\+Index\+Property\+Name}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{set\+Index\+Property\+Name()}{setIndexPropertyName()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::set\+Index\+Property\+Name (\begin{DoxyParamCaption}\item[{std\+::string}]{\+\_\+index\+Property\+Name }\end{DoxyParamCaption})}



set the name of the property used for texture index specification 

The given property name will define a texture index. This index is used to make a lookup in the texture correspondence map containing for each index the gluint for the texture to be used. A zero in the property means, that no texture will be bound for the face. If you define a non existing name here, texture switching will be disabled and it is assumed that a texture is bound already.

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000020}{Todo}]Remove the external texture loading and do it here.\end{DoxyRefDesc}


Definition at line 1655 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af1fd24d6341c9fdc6baee9184ec1e1c6}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_af1fd24d6341c9fdc6baee9184ec1e1c6}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!set\+Texture\+Map@{set\+Texture\+Map}}
\index{set\+Texture\+Map@{set\+Texture\+Map}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{set\+Texture\+Map()}{setTextureMap()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::set\+Texture\+Map (\begin{DoxyParamCaption}\item[{std\+::map$<$ int, G\+Luint $>$ $\ast$}]{\+\_\+map }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Setup a mapping between internal texture ids on the mesh and the ids for the loaded textures in opengl. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+map} & maps between an int index stored in the Mesh describing which texture to use for a face, and the Glu\+Int name of the texture bound by the \hyperlink{classACG_1_1SceneGraph_1_1TextureNode}{Texture\+Node}. ~\newline
 If such a map is not available ( =0 ), assume \hyperlink{classACG_1_1SceneGraph_1_1TextureNode}{Texture\+Node} has already bound a texture And render without switching textures \\
\hline
\end{DoxyParams}


Definition at line 487 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a0a1e28aa3c5c928f2454556097d66e33}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a0a1e28aa3c5c928f2454556097d66e33}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!update\+\_\+color@{update\+\_\+color}}
\index{update\+\_\+color@{update\+\_\+color}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{update\+\_\+color()}{update\_color()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::update\+\_\+color (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



the colors of the mesh have changed 

call this function if you changed the colors of the mesh. All buffers related to the color will be updated.

if you also updated the topology, the color is updated automatically 

Definition at line 1641 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a7e2432cee077795caf39353a20895af4}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a7e2432cee077795caf39353a20895af4}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!update\+\_\+geometry@{update\+\_\+geometry}}
\index{update\+\_\+geometry@{update\+\_\+geometry}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{update\+\_\+geometry()}{update\_geometry()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::update\+\_\+geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



the geometry of the mesh has changed 

call this function if you changed the geometry of the mesh. All buffers related to the geometry will be updated. \begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000019}{Todo}]check the following statements. If only geometry changed, the normals,vertices have to be updated nothing else! \end{DoxyRefDesc}


Definition at line 1576 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ae1fd0923c3b6b42bebac99465bf483cb}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ae1fd0923c3b6b42bebac99465bf483cb}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!update\+\_\+textures@{update\+\_\+textures}}
\index{update\+\_\+textures@{update\+\_\+textures}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{update\+\_\+textures()}{update\_textures()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::update\+\_\+textures (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



force an texture update 

This function has to be called, when the textures have changed 

Definition at line 1628 of file Mesh\+Node2\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ac7bf0981bdfb21257059baad11cd1c8c}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_ac7bf0981bdfb21257059baad11cd1c8c}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!update\+\_\+topology@{update\+\_\+topology}}
\index{update\+\_\+topology@{update\+\_\+topology}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{update\+\_\+topology()}{update\_topology()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::update\+\_\+topology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



the topology of the mesh has changed 

call this function if you changed the topology of the mesh. All buffers related to the topology will be updated.

this also triggers an update for the colors 

Definition at line 1613 of file Mesh\+Node2\+T\+\_\+impl.\+hh.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5a2aee2e13b40bf4f4c1a3d270a73f78}\label{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT_a5a2aee2e13b40bf4f4c1a3d270a73f78}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}!halfedge\+Decl@{halfedge\+Decl}}
\index{halfedge\+Decl@{halfedge\+Decl}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}}
\subsubsection{\texorpdfstring{halfedge\+Decl}{halfedgeDecl}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1SceneGraph_1_1MeshNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+NodeT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$\+::halfedge\+Decl\hspace{0.3cm}{\ttfamily [private]}}



Draws the object. 

get bound texture buffer and target

\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000017}{Todo}]We can render also wireframe shaded and with vertex colors \end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000018}{Todo}]Integrate shader here! \end{DoxyRefDesc}


Definition at line 349 of file Mesh\+Node2\+T\+\_\+impl.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Mesh\+Node2\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
