\hypertarget{a00830}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Mesh\+Node\+T$<$ Mesh $>$ Class Template Reference}
\label{a00830}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}}
}
Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:Mesh\+Node\+T$<$ Mesh $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{a00830}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_ab70561426d93f43722e152f7e234567a}{{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (Mesh\+Node)}\label{a00830_ab70561426d93f43722e152f7e234567a}

\item 
\hyperlink{a00830_a9e77bce1f7509d567646c06169e27e87}{Mesh\+Node\+T} (\hyperlink{a01335}{Mesh} \&\+\_\+mesh, \hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, std\+::string \+\_\+name=\char`\"{}$<$Mesh\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a00830_a5c8a4ca76d8fb3a0c9221efc470281cc}{virtual \hyperlink{a00830_a5c8a4ca76d8fb3a0c9221efc470281cc}{$\sim$\+Mesh\+Node\+T} ()}\label{a00830_a5c8a4ca76d8fb3a0c9221efc470281cc}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
void \hyperlink{a00830_a7e2432cee077795caf39353a20895af4}{update\+\_\+geometry} ()
\begin{DoxyCompactList}\small\item\em the geometry of the mesh has changed \end{DoxyCompactList}\item 
void \hyperlink{a00830_ac7bf0981bdfb21257059baad11cd1c8c}{update\+\_\+topology} ()
\begin{DoxyCompactList}\small\item\em the topology of the mesh has changed \end{DoxyCompactList}\item 
void \hyperlink{a00830_a0a1e28aa3c5c928f2454556097d66e33}{update\+\_\+color} ()
\begin{DoxyCompactList}\small\item\em the colors of the mesh have changed \end{DoxyCompactList}\item 
void \hyperlink{a00830_ae1fd0923c3b6b42bebac99465bf483cb}{update\+\_\+textures} ()
\begin{DoxyCompactList}\small\item\em force an texture update \end{DoxyCompactList}\item 
void \hyperlink{a00830_a51b14d749bf1721329fabaef88fab07f}{set\+\_\+property\+\_\+map} (std\+::map$<$ int, std\+::string $>$ $\ast$\+\_\+map)
\item 
\hypertarget{a00830_a8683fa5cb522663e36fff46160ecd713}{unsigned int \hyperlink{a00830_a8683fa5cb522663e36fff46160ecd713}{get\+Memory\+Usage} ()}\label{a00830_a8683fa5cb522663e36fff46160ecd713}

\begin{DoxyCompactList}\small\item\em measures the size in bytes of allocated memory \end{DoxyCompactList}\item 
\hypertarget{a00830_adad83cb487c65a0cf71b9def720d7a08}{void {\bfseries set\+\_\+offset} (bool enable)}\label{a00830_adad83cb487c65a0cf71b9def720d7a08}

\end{DoxyCompactItemize}
\begin{Indent}{\bf general picking functions}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00830_a3964635f6365b8c258a956d2a76559fa}{pick} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target)
\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{a00994_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} \hyperlink{a00830_a78a59233c1f0fdddfb093bcc8c5cd2f7}{Point}
\item 
\hypertarget{a00830_a87afdfa437e50de421812816b7644208}{typedef Point\+::value\+\_\+type {\bfseries Point\+Scalar}}\label{a00830_a87afdfa437e50de421812816b7644208}

\item 
\hypertarget{a00830_a7f346e397ddb197ca634dec112636b2e}{typedef \hyperlink{a00994_a3570fd132d1ac589b380485cf59c9e0b}{Mesh\+::\+Normal} {\bfseries Normal}}\label{a00830_a7f346e397ddb197ca634dec112636b2e}

\item 
\hypertarget{a00830_a4ec9a4c060e4a9fbfa30c812850dd397}{typedef Normal\+::value\+\_\+type {\bfseries Normal\+Scalar}}\label{a00830_a4ec9a4c060e4a9fbfa30c812850dd397}

\item 
\hypertarget{a00830_a38566389a3c2c2674cda91e163d64db9}{typedef \hyperlink{a00994_af0d8129bf1a819c468c6edcb13b5203b}{Mesh\+::\+Color} {\bfseries Color}}\label{a00830_a38566389a3c2c2674cda91e163d64db9}

\item 
\hypertarget{a00830_a7311b8d250f9f77734e4304ab82ea06c}{typedef Color\+::value\+\_\+type {\bfseries Color\+Scalar}}\label{a00830_a7311b8d250f9f77734e4304ab82ea06c}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_aa819b1e68ff6dedda5d6a0684847e047}{bool {\bfseries draw\+\_\+with\+\_\+offset\+\_\+}}\label{a00830_aa819b1e68ff6dedda5d6a0684847e047}

\end{DoxyCompactItemize}
\begin{Indent}{\bf Draw-\/mesh handling}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_a9ffe5bf83f43a7beb57dd3a12721dfd8}{\hyperlink{a00507}{Draw\+Mesh\+T}$<$ \hyperlink{a01335}{Mesh} $>$ $\ast$ {\bfseries draw\+Mesh\+\_\+}}\label{a00830_a9ffe5bf83f43a7beb57dd3a12721dfd8}

\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Mesh Handling}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_a39c658e79eb39a49720c66ac6240a12a}{\hyperlink{a01335}{Mesh} \& \hyperlink{a00830_a39c658e79eb39a49720c66ac6240a12a}{mesh\+\_\+}}\label{a00830_a39c658e79eb39a49720c66ac6240a12a}

\begin{DoxyCompactList}\small\item\em The mesh this node works on. \end{DoxyCompactList}\item 
\hypertarget{a00830_a7d174c19b4eb6c17905786959af55de2}{const \hyperlink{a01335}{Mesh} \& \hyperlink{a00830_a7d174c19b4eb6c17905786959af55de2}{mesh} () const }\label{a00830_a7d174c19b4eb6c17905786959af55de2}

\begin{DoxyCompactList}\small\item\em get the internal mesh \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Bounding Box}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_ade4d7c84a771e31968c18585e5394206}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00830_ade4d7c84a771e31968c18585e5394206}{bb\+Min\+\_\+}}\label{a00830_ade4d7c84a771e31968c18585e5394206}

\begin{DoxyCompactList}\small\item\em bounding box lower left corner \end{DoxyCompactList}\item 
\hypertarget{a00830_a7dc36a7ef35ca12ff977824478288a38}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00830_a7dc36a7ef35ca12ff977824478288a38}{bb\+Max\+\_\+}}\label{a00830_a7dc36a7ef35ca12ff977824478288a38}

\begin{DoxyCompactList}\small\item\em bounding box upper right corner \end{DoxyCompactList}\item 
void \hyperlink{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}{bounding\+Box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)
\begin{DoxyCompactList}\small\item\em Current bounding box. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Normal Buffer}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_a71d4f01fc765aa3aa1435beba7d96945}{bool \hyperlink{a00830_a71d4f01fc765aa3aa1435beba7d96945}{enable\+Normals\+\_\+}}\label{a00830_a71d4f01fc765aa3aa1435beba7d96945}

\begin{DoxyCompactList}\small\item\em Flag if normals should be used. \end{DoxyCompactList}\item 
\hypertarget{a00830_a0274d09c6b8d559a4e20afea940351f9}{bool \hyperlink{a00830_a0274d09c6b8d559a4e20afea940351f9}{normals\+Enabled} ()}\label{a00830_a0274d09c6b8d559a4e20afea940351f9}

\begin{DoxyCompactList}\small\item\em Returns if the normal array is currently activated. \end{DoxyCompactList}\item 
\hypertarget{a00830_ad82acbefcd9a72db33aeeb117b739651}{void \hyperlink{a00830_ad82acbefcd9a72db33aeeb117b739651}{enable\+Normals} (bool \+\_\+enable)}\label{a00830_ad82acbefcd9a72db33aeeb117b739651}

\begin{DoxyCompactList}\small\item\em Enable or disable the use of the normal array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Color buffer}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_af1326a24a89e5b4df280e5f6d272efb9}{bool \hyperlink{a00830_af1326a24a89e5b4df280e5f6d272efb9}{enable\+Colors\+\_\+}}\label{a00830_af1326a24a89e5b4df280e5f6d272efb9}

\begin{DoxyCompactList}\small\item\em Returns if the color array is currently activated. \end{DoxyCompactList}\item 
\hypertarget{a00830_af8417c9bceb0cf81face95ee76abd802}{bool \hyperlink{a00830_af8417c9bceb0cf81face95ee76abd802}{colors\+Enabled} ()}\label{a00830_af8417c9bceb0cf81face95ee76abd802}

\begin{DoxyCompactList}\small\item\em Returns if the color array is currently activated. \end{DoxyCompactList}\item 
\hypertarget{a00830_a19093bb0bd40d86e5ffc708bb276d693}{void \hyperlink{a00830_a19093bb0bd40d86e5ffc708bb276d693}{enable\+Colors} (bool \+\_\+enable)}\label{a00830_a19093bb0bd40d86e5ffc708bb276d693}

\begin{DoxyCompactList}\small\item\em Enable or disable the use of color array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Array control functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_a18f063340b10c75974f25d2b70adb827}{enum \hyperlink{a00830_a18f063340b10c75974f25d2b70adb827}{Array\+Type} \{ \\*
{\bfseries N\+O\+N\+E} = 0, 
{\bfseries P\+E\+R\+\_\+\+E\+D\+G\+E\+\_\+\+V\+E\+R\+T\+E\+X\+\_\+\+A\+R\+R\+A\+Y} = 1, 
{\bfseries P\+E\+R\+\_\+\+E\+D\+G\+E\+\_\+\+C\+O\+L\+O\+R\+\_\+\+A\+R\+R\+A\+Y} = 2, 
{\bfseries P\+E\+R\+\_\+\+H\+A\+L\+F\+E\+D\+G\+E\+\_\+\+V\+E\+R\+T\+E\+X\+\_\+\+A\+R\+R\+A\+Y} = 4, 
\\*
{\bfseries P\+E\+R\+\_\+\+H\+A\+L\+F\+E\+D\+G\+E\+\_\+\+C\+O\+L\+O\+R\+\_\+\+A\+R\+R\+A\+Y} = 8
 \}}\label{a00830_a18f063340b10c75974f25d2b70adb827}

\begin{DoxyCompactList}\small\item\em Enum controlling which array should be used for rendering. \end{DoxyCompactList}\item 
\hypertarget{a00830_a231e9030a00f1e21313d4f1cae04aa6a}{unsigned int \hyperlink{a00830_a231e9030a00f1e21313d4f1cae04aa6a}{enabled\+\_\+arrays\+\_\+}}\label{a00830_a231e9030a00f1e21313d4f1cae04aa6a}

\begin{DoxyCompactList}\small\item\em which arrays are currently enabled? \end{DoxyCompactList}\item 
void \hyperlink{a00830_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 
void \hyperlink{a00830_aa4e59c73dbad5a4844cf7a521c04cffc}{draw} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{a00830_ac7c7e6d75cd39590406542ccb0da33f9}{get\+Render\+Objects} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{a00789}{Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em Draws the object deferred. \end{DoxyCompactList}\item 
\hypertarget{a00830_af12216a954d3c22acdae8aec83cb1d8f}{\hyperlink{a00507}{Draw\+Mesh\+T}$<$ \hyperlink{a01335}{Mesh} $>$ $\ast$ \hyperlink{a00830_af12216a954d3c22acdae8aec83cb1d8f}{get\+Draw\+Mesh} ()}\label{a00830_af12216a954d3c22acdae8aec83cb1d8f}

\begin{DoxyCompactList}\small\item\em Get Draw\+Mesh instance. \end{DoxyCompactList}\item 
\hyperlink{a00510}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a00830_a1e9e1db43cf4773f9f1331388bde5e35}{available\+Draw\+Modes} () const 
\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\item 
void \hyperlink{a00830_aff3395551d7026fae168da7343ddc1b1}{draw\+\_\+vertices} ()
\begin{DoxyCompactList}\small\item\em draws all vertices of the mesh \end{DoxyCompactList}\item 
void \hyperlink{a00830_afca2b2496e3ab7ddb8861e14f744909f}{add\+\_\+point\+\_\+\+Render\+Objects} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, const \hyperlink{a01110}{Render\+Object} $\ast$\+\_\+base\+Obj)
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{a00830_ad0cc4e7fe391a6176033b7a6eb231eb1}{draw\+\_\+lines} ()
\begin{DoxyCompactList}\small\item\em draws all edges of the mesh \end{DoxyCompactList}\item 
void \hyperlink{a00830_a4948e58a666003613996266901d260f3}{add\+\_\+line\+\_\+\+Render\+Objects} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, const \hyperlink{a01110}{Render\+Object} $\ast$\+\_\+base\+Obj)
\begin{DoxyCompactList}\small\item\em Draws the object. \end{DoxyCompactList}\item 
void \hyperlink{a00830_a1a5963c6a45acb57590bad3afe1d41a0}{draw\+\_\+halfedges} ()
\begin{DoxyCompactList}\small\item\em draws all halfedges of the mesh \end{DoxyCompactList}\item 
void \hyperlink{a00830_ae56dbf34b3088485bb7c3133047bc2ce}{draw\+\_\+faces} ()
\begin{DoxyCompactList}\small\item\em draws all faces of the mesh \end{DoxyCompactList}\item 
void \hyperlink{a00830_a275883ea795c5d0d9e7e914f0dee9113}{add\+\_\+face\+\_\+\+Render\+Objects} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, const \hyperlink{a01110}{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 
\hypertarget{a00830_a9ccc70449b7743f2490c511327397d9a}{bool \hyperlink{a00830_a9ccc70449b7743f2490c511327397d9a}{update\+Vertex\+Picking\+\_\+}}\label{a00830_a9ccc70449b7743f2490c511327397d9a}

\begin{DoxyCompactList}\small\item\em Flag indicating if the vertex picking has to be updated. \end{DoxyCompactList}\item 
\hypertarget{a00830_a92f544e010246ed9b6f5784c77943584}{unsigned int \hyperlink{a00830_a92f544e010246ed9b6f5784c77943584}{vertex\+Picking\+Base\+Index\+\_\+}}\label{a00830_a92f544e010246ed9b6f5784c77943584}

\begin{DoxyCompactList}\small\item\em Index of the first vertex in vertexpicking. \end{DoxyCompactList}\item 
\hypertarget{a00830_a97864e9bf1d7c59e8f167d9551b76325}{void \hyperlink{a00830_a97864e9bf1d7c59e8f167d9551b76325}{pick\+\_\+vertices} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, bool \+\_\+front=false)}\label{a00830_a97864e9bf1d7c59e8f167d9551b76325}

\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 
\hypertarget{a00830_a8ffa57a6bfcfc7916137c227ef43534c}{bool \hyperlink{a00830_a8ffa57a6bfcfc7916137c227ef43534c}{update\+Edge\+Picking\+\_\+}}\label{a00830_a8ffa57a6bfcfc7916137c227ef43534c}

\begin{DoxyCompactList}\small\item\em Flag indicating if the edge picking has to be updated. \end{DoxyCompactList}\item 
\hypertarget{a00830_a91b22a1428b72256bae9e46edc63e140}{unsigned int \hyperlink{a00830_a91b22a1428b72256bae9e46edc63e140}{edge\+Picking\+Base\+Index\+\_\+}}\label{a00830_a91b22a1428b72256bae9e46edc63e140}

\begin{DoxyCompactList}\small\item\em Index of the first edge in edgepicking. \end{DoxyCompactList}\item 
\hypertarget{a00830_a8df33eeb34f2775c9b560ce9b18c3356}{void \hyperlink{a00830_a8df33eeb34f2775c9b560ce9b18c3356}{pick\+\_\+edges} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, bool \+\_\+front=false)}\label{a00830_a8df33eeb34f2775c9b560ce9b18c3356}

\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 
\hypertarget{a00830_a9cf7a877c1dba7f6a9a0db160843e6d6}{bool \hyperlink{a00830_a9cf7a877c1dba7f6a9a0db160843e6d6}{update\+Face\+Picking\+\_\+}}\label{a00830_a9cf7a877c1dba7f6a9a0db160843e6d6}

\begin{DoxyCompactList}\small\item\em Flag indicating if the edge picking has to be updated. \end{DoxyCompactList}\item 
\hypertarget{a00830_afff2d20b2952331c4ebf3fb262f22a5d}{unsigned int \hyperlink{a00830_afff2d20b2952331c4ebf3fb262f22a5d}{face\+Picking\+Base\+Index\+\_\+}}\label{a00830_afff2d20b2952331c4ebf3fb262f22a5d}

\begin{DoxyCompactList}\small\item\em Index of the first face in facepicking. \end{DoxyCompactList}\item 
\hypertarget{a00830_a6a1eb69c93c638a91e627589869cf003}{void \hyperlink{a00830_a6a1eb69c93c638a91e627589869cf003}{pick\+\_\+faces} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)}\label{a00830_a6a1eb69c93c638a91e627589869cf003}

\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 
\hypertarget{a00830_ae455fff1aabdd63dc9f6ea82828b7a87}{bool \hyperlink{a00830_ae455fff1aabdd63dc9f6ea82828b7a87}{update\+Any\+Picking\+\_\+}}\label{a00830_ae455fff1aabdd63dc9f6ea82828b7a87}

\begin{DoxyCompactList}\small\item\em Flag indicating if the any picking has to be updated. \end{DoxyCompactList}\item 
\hypertarget{a00830_a228c9b3178c77c4c79ded483d8f0b106}{unsigned int \hyperlink{a00830_a228c9b3178c77c4c79ded483d8f0b106}{any\+Picking\+Base\+Index\+\_\+}}\label{a00830_a228c9b3178c77c4c79ded483d8f0b106}

\begin{DoxyCompactList}\small\item\em Index of the first face in anypicking. \end{DoxyCompactList}\item 
void \hyperlink{a00830_a84013eadc8121a2fc5e296568c93b723}{pick\+\_\+any} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em Renders picking for all primitives. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Texture handling}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00830_a81d3ea806e3cee9fbbfd0734077f58d8}{bool \hyperlink{a00830_a81d3ea806e3cee9fbbfd0734077f58d8}{per\+Face\+Texture\+Index\+Available\+\_\+}}\label{a00830_a81d3ea806e3cee9fbbfd0734077f58d8}

\begin{DoxyCompactList}\small\item\em This flag indicates if we have a per Face texture index property. \end{DoxyCompactList}\item 
\hypertarget{a00830_a1e33ec99c695fa66f278292eb8f48e3c}{bool \hyperlink{a00830_a1e33ec99c695fa66f278292eb8f48e3c}{per\+Face\+Texture\+Coords\+Available\+\_\+}}\label{a00830_a1e33ec99c695fa66f278292eb8f48e3c}

\begin{DoxyCompactList}\small\item\em This flag indicates if we have a per Face texture coordinate property. \end{DoxyCompactList}\item 
\hypertarget{a00830_a930e6d14b980a04e9084340cf515dc61}{std\+::map$<$ int, G\+Luint $>$ $\ast$ \hyperlink{a00830_a930e6d14b980a04e9084340cf515dc61}{texture\+Map\+\_\+}}\label{a00830_a930e6d14b980a04e9084340cf515dc61}

\begin{DoxyCompactList}\small\item\em Mapping of mesh face texture indices to gltexture id ( has to be provided externally ) \end{DoxyCompactList}\item 
void \hyperlink{a00830_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 
\hypertarget{a00830_a17369af90a3c0d8db6ca7c04cf74cd31}{const std\+::string \& \hyperlink{a00830_a17369af90a3c0d8db6ca7c04cf74cd31}{index\+Property\+Name} () const }\label{a00830_a17369af90a3c0d8db6ca7c04cf74cd31}

\begin{DoxyCompactList}\small\item\em Get current texture index property name. \end{DoxyCompactList}\item 
void \hyperlink{a00830_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{a00830_a0d98548f5bbf34c936461ef9e94dbfdf}{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$>$class A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}

This node draws a mesh using triangle strips. 

Definition at line 116 of file Mesh\+Node2\+T.\+hh.



\subsection{Member Typedef Documentation}
\hypertarget{a00830_a78a59233c1f0fdddfb093bcc8c5cd2f7}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!Point@{Point}}
\index{Point@{Point}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ typedef {\bf Mesh\+::\+Point} {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::{\bf Point}\hspace{0.3cm}{\ttfamily [private]}}}\label{a00830_a78a59233c1f0fdddfb093bcc8c5cd2f7}
Typedefs of the mesh representation

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

Definition at line 170 of file Mesh\+Node2\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00830_a9e77bce1f7509d567646c06169e27e87}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!Mesh\+Node\+T@{Mesh\+Node\+T}}
\index{Mesh\+Node\+T@{Mesh\+Node\+T}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{Mesh\+Node\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::{\bf Mesh\+Node\+T} (
\begin{DoxyParamCaption}
\item[{{\bf Mesh} \&}]{\+\_\+mesh, }
\item[{{\bf Base\+Node} $\ast$}]{\+\_\+parent = {\ttfamily 0}, }
\item[{std\+::string}]{\+\_\+name = {\ttfamily \char`\"{}$<$MeshNode$>$\char`\"{}}}
\end{DoxyParamCaption}
)}}\label{a00830_a9e77bce1f7509d567646c06169e27e87}


Default constructor. 

The constructor needs a mesh on which this node will work. 

\subsection{Member Function Documentation}
\hypertarget{a00830_a275883ea795c5d0d9e7e914f0dee9113}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!add\+\_\+face\+\_\+\+Render\+Objects@{add\+\_\+face\+\_\+\+Render\+Objects}}
\index{add\+\_\+face\+\_\+\+Render\+Objects@{add\+\_\+face\+\_\+\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{add\+\_\+face\+\_\+\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::add\+\_\+face\+\_\+\+Render\+Objects (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{const {\bf Render\+Object} $\ast$}]{\+\_\+base\+Obj, }
\item[{bool}]{\+\_\+nonindexed = {\ttfamily false}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00830_a275883ea795c5d0d9e7e914f0dee9113}


Draws the object. 

\hypertarget{a00830_a4948e58a666003613996266901d260f3}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!add\+\_\+line\+\_\+\+Render\+Objects@{add\+\_\+line\+\_\+\+Render\+Objects}}
\index{add\+\_\+line\+\_\+\+Render\+Objects@{add\+\_\+line\+\_\+\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{add\+\_\+line\+\_\+\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::add\+\_\+line\+\_\+\+Render\+Objects (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{const {\bf Render\+Object} $\ast$}]{\+\_\+base\+Obj}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}}\label{a00830_a4948e58a666003613996266901d260f3}


Draws the object. 

\hypertarget{a00830_afca2b2496e3ab7ddb8861e14f744909f}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!add\+\_\+point\+\_\+\+Render\+Objects@{add\+\_\+point\+\_\+\+Render\+Objects}}
\index{add\+\_\+point\+\_\+\+Render\+Objects@{add\+\_\+point\+\_\+\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{add\+\_\+point\+\_\+\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::add\+\_\+point\+\_\+\+Render\+Objects (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{const {\bf Render\+Object} $\ast$}]{\+\_\+base\+Obj}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}}\label{a00830_afca2b2496e3ab7ddb8861e14f744909f}


Draws the object. 

\hypertarget{a00830_a1e9e1db43cf4773f9f1331388bde5e35}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!available\+Draw\+Modes@{available\+Draw\+Modes}}
\index{available\+Draw\+Modes@{available\+Draw\+Modes}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{available\+Draw\+Modes}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::available\+Draw\+Modes (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00830_a1e9e1db43cf4773f9f1331388bde5e35}


return available draw modes 

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

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

\hypertarget{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!bounding\+Box@{bounding\+Box}}
\index{bounding\+Box@{bounding\+Box}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{bounding\+Box}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::bounding\+Box (
\begin{DoxyParamCaption}
\item[{{\bf Vec3d} \&}]{\+\_\+bb\+Min, }
\item[{{\bf Vec3d} \&}]{\+\_\+bb\+Max}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}


Current bounding box. 

This function returns the bounding box of the node. 

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

\hypertarget{a00830_aa4e59c73dbad5a4844cf7a521c04cffc}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!draw@{draw}}
\index{draw@{draw}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{draw}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::draw (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode}
\end{DoxyParamCaption}
)}}\label{a00830_aa4e59c73dbad5a4844cf7a521c04cffc}


Draws the object. 

\hypertarget{a00830_ae56dbf34b3088485bb7c3133047bc2ce}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!draw\+\_\+faces@{draw\+\_\+faces}}
\index{draw\+\_\+faces@{draw\+\_\+faces}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{draw\+\_\+faces}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::draw\+\_\+faces (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00830_ae56dbf34b3088485bb7c3133047bc2ce}


draws all faces of the mesh 

\hypertarget{a00830_a1a5963c6a45acb57590bad3afe1d41a0}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!draw\+\_\+halfedges@{draw\+\_\+halfedges}}
\index{draw\+\_\+halfedges@{draw\+\_\+halfedges}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{draw\+\_\+halfedges}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::draw\+\_\+halfedges (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}}\label{a00830_a1a5963c6a45acb57590bad3afe1d41a0}


draws all halfedges of the mesh 

\hypertarget{a00830_ad0cc4e7fe391a6176033b7a6eb231eb1}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!draw\+\_\+lines@{draw\+\_\+lines}}
\index{draw\+\_\+lines@{draw\+\_\+lines}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{draw\+\_\+lines}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::draw\+\_\+lines (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}}\label{a00830_ad0cc4e7fe391a6176033b7a6eb231eb1}


draws all edges of the mesh 

\hypertarget{a00830_aff3395551d7026fae168da7343ddc1b1}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!draw\+\_\+vertices@{draw\+\_\+vertices}}
\index{draw\+\_\+vertices@{draw\+\_\+vertices}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{draw\+\_\+vertices}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::draw\+\_\+vertices (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [private]}}}\label{a00830_aff3395551d7026fae168da7343ddc1b1}


draws all vertices of the mesh 

\hypertarget{a00830_a72505408b73f077446aec6a3e603f999}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!enable\+\_\+arrays@{enable\+\_\+arrays}}
\index{enable\+\_\+arrays@{enable\+\_\+arrays}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{enable\+\_\+arrays}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::enable\+\_\+arrays (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+arrays}
\end{DoxyParamCaption}
)}}\label{a00830_a72505408b73f077446aec6a3e603f999}


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 \hypertarget{a00830_ac7c7e6d75cd39590406542ccb0da33f9}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{get\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::get\+Render\+Objects (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode, }
\item[{const {\bf Material} $\ast$}]{\+\_\+mat}
\end{DoxyParamCaption}
)}}\label{a00830_ac7c7e6d75cd39590406542ccb0da33f9}


Draws the object deferred. 

\hypertarget{a00830_a3964635f6365b8c258a956d2a76559fa}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!pick@{pick}}
\index{pick@{pick}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{pick}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::pick (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{{\bf Pick\+Target}}]{\+\_\+target}
\end{DoxyParamCaption}
)}}\label{a00830_a3964635f6365b8c258a956d2a76559fa}


Draws the object in picking mode. 

\hypertarget{a00830_a84013eadc8121a2fc5e296568c93b723}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!pick\+\_\+any@{pick\+\_\+any}}
\index{pick\+\_\+any@{pick\+\_\+any}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{pick\+\_\+any}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::pick\+\_\+any (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00830_a84013eadc8121a2fc5e296568c93b723}


Renders picking for all primitives. 

\hypertarget{a00830_a51b14d749bf1721329fabaef88fab07f}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!set\+\_\+property\+\_\+map@{set\+\_\+property\+\_\+map}}
\index{set\+\_\+property\+\_\+map@{set\+\_\+property\+\_\+map}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{set\+\_\+property\+\_\+map}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::set\+\_\+property\+\_\+map (
\begin{DoxyParamCaption}
\item[{std\+::map$<$ int, std\+::string $>$ $\ast$}]{\+\_\+map}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00830_a51b14d749bf1721329fabaef88fab07f}
\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a03409__todo000042}{Todo}]Remove all these functions afterwards! \end{DoxyRefDesc}


Definition at line 511 of file Mesh\+Node2\+T.\+hh.

\hypertarget{a00830_a029b832eddbebf85a6726f2418215be0}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!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\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{set\+Halfedge\+Textcoord\+Property\+Name}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::set\+Halfedge\+Textcoord\+Property\+Name (
\begin{DoxyParamCaption}
\item[{std\+::string}]{\+\_\+halfedge\+Textcoord\+Property\+Name}
\end{DoxyParamCaption}
)}}\label{a00830_a029b832eddbebf85a6726f2418215be0}


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. \hypertarget{a00830_a97c6bb6d95d0c2abfcbe8e1aadaf7ba7}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!set\+Index\+Property\+Name@{set\+Index\+Property\+Name}}
\index{set\+Index\+Property\+Name@{set\+Index\+Property\+Name}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{set\+Index\+Property\+Name}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::set\+Index\+Property\+Name (
\begin{DoxyParamCaption}
\item[{std\+::string}]{\+\_\+index\+Property\+Name}
\end{DoxyParamCaption}
)}}\label{a00830_a97c6bb6d95d0c2abfcbe8e1aadaf7ba7}


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{a03409__todo000041}{Todo}]Remove the external texture loading and do it here.\end{DoxyRefDesc}
\hypertarget{a00830_a0d98548f5bbf34c936461ef9e94dbfdf}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!set\+Texture\+Map@{set\+Texture\+Map}}
\index{set\+Texture\+Map@{set\+Texture\+Map}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{set\+Texture\+Map}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::set\+Texture\+Map (
\begin{DoxyParamCaption}
\item[{std\+::map$<$ int, G\+Luint $>$ $\ast$}]{\+\_\+map}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00830_a0d98548f5bbf34c936461ef9e94dbfdf}


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{a01300}{Texture\+Node}. ~\newline
 If such a map is not available ( =0 ), assume \hyperlink{a01300}{Texture\+Node} has already bound a texture And render without switching textures \\
\hline
\end{DoxyParams}


Definition at line 493 of file Mesh\+Node2\+T.\+hh.

\hypertarget{a00830_a0a1e28aa3c5c928f2454556097d66e33}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!update\+\_\+color@{update\+\_\+color}}
\index{update\+\_\+color@{update\+\_\+color}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{update\+\_\+color}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::update\+\_\+color (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00830_a0a1e28aa3c5c928f2454556097d66e33}


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 \hypertarget{a00830_a7e2432cee077795caf39353a20895af4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!update\+\_\+geometry@{update\+\_\+geometry}}
\index{update\+\_\+geometry@{update\+\_\+geometry}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{update\+\_\+geometry}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::update\+\_\+geometry (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00830_a7e2432cee077795caf39353a20895af4}


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. \hypertarget{a00830_ae1fd0923c3b6b42bebac99465bf483cb}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!update\+\_\+textures@{update\+\_\+textures}}
\index{update\+\_\+textures@{update\+\_\+textures}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{update\+\_\+textures}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::update\+\_\+textures (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00830_ae1fd0923c3b6b42bebac99465bf483cb}


force an texture update 

This function has to be called, when the textures have changed \hypertarget{a00830_ac7bf0981bdfb21257059baad11cd1c8c}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}!update\+\_\+topology@{update\+\_\+topology}}
\index{update\+\_\+topology@{update\+\_\+topology}!A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}}
\subsubsection[{update\+\_\+topology}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T}$<$ {\bf Mesh} $>$\+::update\+\_\+topology (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00830_ac7bf0981bdfb21257059baad11cd1c8c}


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 

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