\hypertarget{a01245}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Status\+Node\+T$<$ Mesh, Mod $>$ Class Template Reference}
\label{a01245}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T$<$ Mesh, Mod $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T$<$ Mesh, Mod $>$}}
}


{\ttfamily \#include $<$A\+C\+G/\+Scenegraph/\+Status\+Nodes\+T.\+hh$>$}

Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:Status\+Node\+T$<$ Mesh, Mod $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.924399cm]{a01245}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01245_a4aea36145402a486e74ca9f7d2c01598}{typedef \hyperlink{a01241}{Status\+Node\+Base\+T}$<$ \hyperlink{a01335}{Mesh}, \\*
Mod,\+::\hyperlink{a01244}{Status\+Nodes\+\_\+\+Mod\+Traits}\\*
$<$ Mod $>$\+::Static\+Usage $>$ {\bfseries Base\+Class}}\label{a01245_a4aea36145402a486e74ca9f7d2c01598}

\item 
\hypertarget{a01245_a13b6ac9f2343ffcce6cd505c9926dbc2}{typedef Mod {\bfseries Mod\+Type}}\label{a01245_a13b6ac9f2343ffcce6cd505c9926dbc2}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01245_a7ff294a7646f02e03721d0e4d929d624}{\hyperlink{a01245_a7ff294a7646f02e03721d0e4d929d624}{Status\+Node\+T} (const \hyperlink{a01335}{Mesh} \&\+\_\+mesh, \hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Status\+Node$>$\char`\"{})}\label{a01245_a7ff294a7646f02e03721d0e4d929d624}

\begin{DoxyCompactList}\small\item\em constructor \end{DoxyCompactList}\item 
\hypertarget{a01245_af8b9ecda5679743932b606f14d734ecd}{virtual \hyperlink{a01245_af8b9ecda5679743932b606f14d734ecd}{$\sim$\+Status\+Node\+T} ()}\label{a01245_af8b9ecda5679743932b606f14d734ecd}

\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\hypertarget{a01245_acee54e2c9bb0f9a977d4d51b9f4f620c}{{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (Status\+Node)}\label{a01245_acee54e2c9bb0f9a977d4d51b9f4f620c}

\item 
\hypertarget{a01245_aa21fec44881e4430fbe639f62e199400}{void \hyperlink{a01245_aa21fec44881e4430fbe639f62e199400}{update\+Geometry} ()}\label{a01245_aa21fec44881e4430fbe639f62e199400}

\begin{DoxyCompactList}\small\item\em set geometry invalid, topology and selection is kept \end{DoxyCompactList}\item 
\hypertarget{a01245_a7f2c6138ec36052d65727280bae234b9}{void \hyperlink{a01245_a7f2c6138ec36052d65727280bae234b9}{update\+Topology} ()}\label{a01245_a7f2c6138ec36052d65727280bae234b9}

\begin{DoxyCompactList}\small\item\em set topology invalid (updates everything) \end{DoxyCompactList}\item 
\hypertarget{a01245_a8bad527816162aa62f668fa4f9547ddb}{void \hyperlink{a01245_a8bad527816162aa62f668fa4f9547ddb}{update\+Selection} ()}\label{a01245_a8bad527816162aa62f668fa4f9547ddb}

\begin{DoxyCompactList}\small\item\em set selection invalid (Only selection changed, rest is kept) \end{DoxyCompactList}\item 
void \hyperlink{a01245_a273444b9bef9dc98be0a3bf2582caff8}{set\+Draw\+Mesh} (\hyperlink{a00507}{Draw\+Mesh\+T}$<$ \hyperlink{a01335}{Mesh} $>$ $\ast$\+\_\+drawmesh)
\begin{DoxyCompactList}\small\item\em Set drawmesh. \end{DoxyCompactList}\item 
void \hyperlink{a01245_aad88be4e0c5849ea5cb8285cc60edfd3}{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 class \hyperlink{a00789}{Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em support for shader-\/pipeline \end{DoxyCompactList}\item 
\hypertarget{a01245_a55728ba2a7223c52483329a821488d94}{\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} {\bfseries available\+Draw\+Modes} () const }\label{a01245_a55728ba2a7223c52483329a821488d94}

\item 
\hypertarget{a01245_a251b66b88f088319817c159dc0449525}{void {\bfseries bounding\+Box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)}\label{a01245_a251b66b88f088319817c159dc0449525}

\item 
\hypertarget{a01245_a5bb4ff74a708dacd3b5185927ab447c5}{void {\bfseries draw} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)}\label{a01245_a5bb4ff74a708dacd3b5185927ab447c5}

\item 
\hypertarget{a01245_a2797f5409f6b17e6ca283800665ca23c}{void {\bfseries pick} (\hyperlink{a00643}{G\+L\+State} \&, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target})}\label{a01245_a2797f5409f6b17e6ca283800665ca23c}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01245_a672e2a49f1dcaf1a681821128e705bd8}{typedef \hyperlink{a00994_a71e1e8eaabeb24eca04237931b4bea26}{Mesh\+::\+Face} {\bfseries Face}}\label{a01245_a672e2a49f1dcaf1a681821128e705bd8}

\item 
\hypertarget{a01245_a698bada72287992d097bd3fc17ca4f29}{typedef \hyperlink{a00994_a03e6fd1a2fc91d4144374fd28dfbecee}{Mesh\+::\+Vertex} {\bfseries Vertex}}\label{a01245_a698bada72287992d097bd3fc17ca4f29}

\item 
\hypertarget{a01245_ae36c9bfacf0d5843fa9fb7772a19fc32}{typedef \hyperlink{a00994_a249b0c195a81eeab341f7f73089d157e}{Mesh\+::\+Halfedge} {\bfseries Halfedge}}\label{a01245_ae36c9bfacf0d5843fa9fb7772a19fc32}

\item 
\hypertarget{a01245_aa1edb21105f714471888a4be4cd5298c}{typedef \hyperlink{a00994_ab2ccdc42b7b25cf35915d3639fc461b2}{Mesh\+::\+Edge} {\bfseries Edge}}\label{a01245_aa1edb21105f714471888a4be4cd5298c}

\item 
\hypertarget{a01245_a9331b15fcbd22bd80ceb743dc56602a0}{typedef Mesh\+::\+Face\+Handle {\bfseries Face\+Handle}}\label{a01245_a9331b15fcbd22bd80ceb743dc56602a0}

\item 
\hypertarget{a01245_aa7bc2507cd9316b96b79c63d17082e83}{typedef Mesh\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}}\label{a01245_aa7bc2507cd9316b96b79c63d17082e83}

\item 
\hypertarget{a01245_ab285527208672ce1f89ec6a4f3d87c73}{typedef \hyperlink{a00994_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} {\bfseries Point}}\label{a01245_ab285527208672ce1f89ec6a4f3d87c73}

\item 
\hypertarget{a01245_aa045846b069b32e5eeca9186f5694605}{typedef Mesh\+::\+Normal {\bfseries Normal}}\label{a01245_aa045846b069b32e5eeca9186f5694605}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a01245_adedd3c36884694e7d1f956bab37efe5d}{update\+\_\+cache} ()
\item 
\hypertarget{a01245_a6ad5ee9c9dca8de1f956dedbe779cf4f}{void {\bfseries draw\+\_\+points} ()}\label{a01245_a6ad5ee9c9dca8de1f956dedbe779cf4f}

\item 
\hypertarget{a01245_a3b9d009e97f29b4eaf769af67af8b724}{void {\bfseries draw\+\_\+edges} ()}\label{a01245_a3b9d009e97f29b4eaf769af67af8b724}

\item 
\hypertarget{a01245_a5a52ad5812e687cfd4c64df13c44f68c}{void {\bfseries draw\+\_\+halfedges} ()}\label{a01245_a5a52ad5812e687cfd4c64df13c44f68c}

\item 
\hypertarget{a01245_aa5b975376bf1e0d692190aec0631a46b}{void {\bfseries draw\+\_\+faces} (bool \+\_\+per\+\_\+vertex)}\label{a01245_aa5b975376bf1e0d692190aec0631a46b}

\item 
\hypertarget{a01245_ab2f7c3a4a699c900b90683bf2d2e3733}{Point {\bfseries halfedge\+\_\+point} (const Halfedge\+Handle \+\_\+heh)}\label{a01245_ab2f7c3a4a699c900b90683bf2d2e3733}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01245_a8bbc0ef5abac96f4dbfc7dde239f4cdb}{const \hyperlink{a01335}{Mesh} \& {\bfseries mesh\+\_\+}}\label{a01245_a8bbc0ef5abac96f4dbfc7dde239f4cdb}

\item 
\hypertarget{a01245_abefe95a217cd7715e10d611ce88bce85}{\hyperlink{a00507}{Draw\+Mesh\+T}$<$ \hyperlink{a01335}{Mesh} $>$ $\ast$ {\bfseries draw\+Mesh\+\_\+}}\label{a01245_abefe95a217cd7715e10d611ce88bce85}

\item 
\hypertarget{a01245_a5d54cfcffdacd1e40dc9eadc0e6166b0}{std\+::vector$<$ unsigned int $>$ {\bfseries v\+\_\+cache\+\_\+}}\label{a01245_a5d54cfcffdacd1e40dc9eadc0e6166b0}

\item 
\hypertarget{a01245_a1647ecb06aac15a28c2d4d39fa3b843c}{std\+::vector$<$ unsigned int $>$ {\bfseries e\+\_\+cache\+\_\+}}\label{a01245_a1647ecb06aac15a28c2d4d39fa3b843c}

\item 
\hypertarget{a01245_ae408b58d2d76d6eee832c8ec1e05af81}{std\+::vector$<$ unsigned int $>$ {\bfseries f\+\_\+cache\+\_\+}}\label{a01245_ae408b58d2d76d6eee832c8ec1e05af81}

\item 
\hypertarget{a01245_ae551618f7dcb6cca634b08e29a22b83c}{std\+::vector$<$ unsigned int $>$ {\bfseries poly\+\_\+cache\+\_\+}}\label{a01245_ae551618f7dcb6cca634b08e29a22b83c}

\item 
\hypertarget{a01245_a5c3e59272d1c6b794cf26f3773b297ee}{std\+::vector$<$ Face\+Handle $>$ {\bfseries fh\+\_\+cache\+\_\+}}\label{a01245_a5c3e59272d1c6b794cf26f3773b297ee}

\item 
\hypertarget{a01245_a8d51ff0ff6ba7cfaf6cb043b4440c0ba}{std\+::vector$<$ Point $>$ {\bfseries he\+\_\+points\+\_\+}}\label{a01245_a8d51ff0ff6ba7cfaf6cb043b4440c0ba}

\item 
\hypertarget{a01245_a83a305cbc18e4a160ca0ab335463c193}{std\+::vector$<$ Normal $>$ {\bfseries he\+\_\+normals\+\_\+}}\label{a01245_a83a305cbc18e4a160ca0ab335463c193}

\item 
\hypertarget{a01245_a6113046f7cc64f5f02252f57db6c952b}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries bb\+Min\+\_\+}}\label{a01245_a6113046f7cc64f5f02252f57db6c952b}

\item 
\hypertarget{a01245_a8f594bc2f0965d13bf9c2f153c38eb43}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries bb\+Max\+\_\+}}\label{a01245_a8f594bc2f0965d13bf9c2f153c38eb43}

\item 
\hypertarget{a01245_a33db12441849ada215e24b3bb73cc378}{bool \hyperlink{a01245_a33db12441849ada215e24b3bb73cc378}{invalid\+Geometry\+\_\+}}\label{a01245_a33db12441849ada215e24b3bb73cc378}

\begin{DoxyCompactList}\small\item\em State variables. \end{DoxyCompactList}\item 
\hypertarget{a01245_a849d5a582a23f6ceeaf9cd04470d9c7e}{bool {\bfseries vertex\+Index\+Invalid\+\_\+}}\label{a01245_a849d5a582a23f6ceeaf9cd04470d9c7e}

\item 
\hypertarget{a01245_aeff7dc284d3cc5e754b0e39348ac8b2c}{bool {\bfseries halfedge\+Cache\+Invalid\+\_\+}}\label{a01245_aeff7dc284d3cc5e754b0e39348ac8b2c}

\item 
\hypertarget{a01245_a9a9fee5048fff426f48f1cb0d0b1a5b5}{bool {\bfseries edge\+Index\+Invalid\+\_\+}}\label{a01245_a9a9fee5048fff426f48f1cb0d0b1a5b5}

\item 
\hypertarget{a01245_a402909ab4d01e0f2a48976dcd0a067fd}{bool {\bfseries face\+Index\+Invalid\+\_\+}}\label{a01245_a402909ab4d01e0f2a48976dcd0a067fd}

\item 
\hypertarget{a01245_ad6b86b983531395b79d454ea984df824}{\hyperlink{a01417}{Vertex\+Declaration} {\bfseries point\+Vertex\+Decl\+\_\+}}\label{a01245_ad6b86b983531395b79d454ea984df824}

\item 
\hypertarget{a01245_aa3c53e38aac41f90a77243ce82bcd6dc}{\hyperlink{a01417}{Vertex\+Declaration} {\bfseries halfedge\+Vertex\+Decl\+\_\+}}\label{a01245_aa3c53e38aac41f90a77243ce82bcd6dc}

\end{DoxyCompactItemize}


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

Renders Status flags of Mesh Vertices/\+Faces/\+Edges 

Definition at line 183 of file Status\+Nodes\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01245_aad88be4e0c5849ea5cb8285cc60edfd3}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}}
\subsubsection[{get\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Mod $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}$<$ {\bf Mesh}, Mod $>$\+::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 class {\bf Material} $\ast$}]{\+\_\+mat}
\end{DoxyParamCaption}
)}}\label{a01245_aad88be4e0c5849ea5cb8285cc60edfd3}


support for shader-\/pipeline 


\begin{DoxyParams}{Parameters}
{\em \+\_\+renderer} & Render-\/\+Interface, collector for Renderobjects \\
\hline
{\em \+\_\+state} & current Open\+G\+L state \\
\hline
{\em \+\_\+draw\+Mode} & active Drawmode \\
\hline
{\em \+\_\+mat} & active \hyperlink{a00789}{Material} \\
\hline
\end{DoxyParams}


Definition at line 589 of file Status\+Nodes\+T.\+cc.

\hypertarget{a01245_a273444b9bef9dc98be0a3bf2582caff8}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}!set\+Draw\+Mesh@{set\+Draw\+Mesh}}
\index{set\+Draw\+Mesh@{set\+Draw\+Mesh}!A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}}
\subsubsection[{set\+Draw\+Mesh}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh, class Mod $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}$<$ {\bf Mesh}, Mod $>$\+::set\+Draw\+Mesh (
\begin{DoxyParamCaption}
\item[{{\bf Draw\+Mesh\+T}$<$ {\bf Mesh} $>$ $\ast$}]{\+\_\+drawmesh}
\end{DoxyParamCaption}
)}}\label{a01245_a273444b9bef9dc98be0a3bf2582caff8}


Set drawmesh. 

Selections are then rendered with gpu buffers gathered fro the meshnode for improved performance


\begin{DoxyParams}{Parameters}
{\em \+\_\+drawmesh} & Pointer to the drawmesh for which this status node will work \\
\hline
\end{DoxyParams}


Definition at line 750 of file Status\+Nodes\+T.\+cc.

\hypertarget{a01245_adedd3c36884694e7d1f956bab37efe5d}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}!update\+\_\+cache@{update\+\_\+cache}}
\index{update\+\_\+cache@{update\+\_\+cache}!A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}}
\subsubsection[{update\+\_\+cache}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Mod $>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Status\+Node\+T}$<$ {\bf Mesh}, Mod $>$\+::update\+\_\+cache (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01245_adedd3c36884694e7d1f956bab37efe5d}
build/update cache of active vertices/edges/faces. This function automatically enables caching. 

Definition at line 132 of file Status\+Nodes\+T.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
A\+C\+G/\+Scenegraph/Status\+Nodes\+T.\+hh\item 
A\+C\+G/\+Scenegraph/Status\+Nodes\+T.\+cc\end{DoxyCompactItemize}
