\hypertarget{a08024}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Status\+NodeT$<$ Mesh, Mod $>$ Class Template Reference}
\label{a08024}\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\+CG\+:\+:Scene\+Graph\+:\+:Status\+NodeT$<$ Mesh, Mod $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=0.954003cm]{a08024}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08024_a4aea36145402a486e74ca9f7d2c01598}\label{a08024_a4aea36145402a486e74ca9f7d2c01598}} 
typedef \hyperlink{a08012}{Status\+Node\+BaseT}$<$ \hyperlink{a08764}{Mesh}, Mod, \+::\hyperlink{a08004}{Status\+Nodes\+\_\+\+Mod\+Traits}$<$ Mod $>$\+::Static\+Usage $>$ {\bfseries Base\+Class}
\item 
\mbox{\Hypertarget{a08024_a13b6ac9f2343ffcce6cd505c9926dbc2}\label{a08024_a13b6ac9f2343ffcce6cd505c9926dbc2}} 
typedef Mod {\bfseries Mod\+Type}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08024_a7ff294a7646f02e03721d0e4d929d624}\label{a08024_a7ff294a7646f02e03721d0e4d929d624}} 
\hyperlink{a08024_a7ff294a7646f02e03721d0e4d929d624}{Status\+NodeT} (const \hyperlink{a08764}{Mesh} \&\+\_\+mesh, \hyperlink{a07748}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Status\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em constructor \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08024_af8b9ecda5679743932b606f14d734ecd}\label{a08024_af8b9ecda5679743932b606f14d734ecd}} 
virtual \hyperlink{a08024_af8b9ecda5679743932b606f14d734ecd}{$\sim$\+Status\+NodeT} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08024_acee54e2c9bb0f9a977d4d51b9f4f620c}\label{a08024_acee54e2c9bb0f9a977d4d51b9f4f620c}} 
{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (Status\+Node)
\item 
\mbox{\Hypertarget{a08024_aa21fec44881e4430fbe639f62e199400}\label{a08024_aa21fec44881e4430fbe639f62e199400}} 
void \hyperlink{a08024_aa21fec44881e4430fbe639f62e199400}{update\+Geometry} ()
\begin{DoxyCompactList}\small\item\em set geometry invalid, topology and selection is kept \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08024_a7f2c6138ec36052d65727280bae234b9}\label{a08024_a7f2c6138ec36052d65727280bae234b9}} 
void \hyperlink{a08024_a7f2c6138ec36052d65727280bae234b9}{update\+Topology} ()
\begin{DoxyCompactList}\small\item\em set topology invalid (updates everything) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08024_a8bad527816162aa62f668fa4f9547ddb}\label{a08024_a8bad527816162aa62f668fa4f9547ddb}} 
void \hyperlink{a08024_a8bad527816162aa62f668fa4f9547ddb}{update\+Selection} ()
\begin{DoxyCompactList}\small\item\em set selection invalid (Only selection changed, rest is kept) \end{DoxyCompactList}\item 
void \hyperlink{a08024_a273444b9bef9dc98be0a3bf2582caff8}{set\+Draw\+Mesh} (\hyperlink{a07288}{Draw\+MeshT}$<$ \hyperlink{a08764}{Mesh} $>$ $\ast$\+\_\+drawmesh)
\begin{DoxyCompactList}\small\item\em Set drawmesh. \end{DoxyCompactList}\item 
void \hyperlink{a08024_aad88be4e0c5849ea5cb8285cc60edfd3}{get\+Render\+Objects} (\hyperlink{a07468}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const class \hyperlink{a07828}{Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em support for shader-\/pipeline \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08024_a46634eeab360b7f55e0d92dab966622f}\label{a08024_a46634eeab360b7f55e0d92dab966622f}} 
\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} {\bfseries available\+Draw\+Modes} () const
\item 
\mbox{\Hypertarget{a08024_a251b66b88f088319817c159dc0449525}\label{a08024_a251b66b88f088319817c159dc0449525}} 
void {\bfseries bounding\+Box} (\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)
\item 
\mbox{\Hypertarget{a08024_a5bb4ff74a708dacd3b5185927ab447c5}\label{a08024_a5bb4ff74a708dacd3b5185927ab447c5}} 
void {\bfseries draw} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)
\item 
\mbox{\Hypertarget{a08024_a2797f5409f6b17e6ca283800665ca23c}\label{a08024_a2797f5409f6b17e6ca283800665ca23c}} 
void {\bfseries pick} (\hyperlink{a07452}{G\+L\+State} \&, \hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target})
\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08024_a672e2a49f1dcaf1a681821128e705bd8}\label{a08024_a672e2a49f1dcaf1a681821128e705bd8}} 
typedef \hyperlink{a08776_a71e1e8eaabeb24eca04237931b4bea26}{Mesh\+::\+Face} {\bfseries Face}
\item 
\mbox{\Hypertarget{a08024_a698bada72287992d097bd3fc17ca4f29}\label{a08024_a698bada72287992d097bd3fc17ca4f29}} 
typedef \hyperlink{a08776_a03e6fd1a2fc91d4144374fd28dfbecee}{Mesh\+::\+Vertex} {\bfseries Vertex}
\item 
\mbox{\Hypertarget{a08024_ae36c9bfacf0d5843fa9fb7772a19fc32}\label{a08024_ae36c9bfacf0d5843fa9fb7772a19fc32}} 
typedef \hyperlink{a08776_a249b0c195a81eeab341f7f73089d157e}{Mesh\+::\+Halfedge} {\bfseries Halfedge}
\item 
\mbox{\Hypertarget{a08024_aa1edb21105f714471888a4be4cd5298c}\label{a08024_aa1edb21105f714471888a4be4cd5298c}} 
typedef \hyperlink{a08776_ab2ccdc42b7b25cf35915d3639fc461b2}{Mesh\+::\+Edge} {\bfseries Edge}
\item 
\mbox{\Hypertarget{a08024_a9331b15fcbd22bd80ceb743dc56602a0}\label{a08024_a9331b15fcbd22bd80ceb743dc56602a0}} 
typedef Mesh\+::\+Face\+Handle {\bfseries Face\+Handle}
\item 
\mbox{\Hypertarget{a08024_aa7bc2507cd9316b96b79c63d17082e83}\label{a08024_aa7bc2507cd9316b96b79c63d17082e83}} 
typedef Mesh\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}
\item 
\mbox{\Hypertarget{a08024_ab285527208672ce1f89ec6a4f3d87c73}\label{a08024_ab285527208672ce1f89ec6a4f3d87c73}} 
typedef \hyperlink{a08776_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} {\bfseries Point}
\item 
\mbox{\Hypertarget{a08024_aa045846b069b32e5eeca9186f5694605}\label{a08024_aa045846b069b32e5eeca9186f5694605}} 
typedef \hyperlink{a08776_a3570fd132d1ac589b380485cf59c9e0b}{Mesh\+::\+Normal} {\bfseries Normal}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a08024_adedd3c36884694e7d1f956bab37efe5d}{update\+\_\+cache} ()
\item 
\mbox{\Hypertarget{a08024_a6ad5ee9c9dca8de1f956dedbe779cf4f}\label{a08024_a6ad5ee9c9dca8de1f956dedbe779cf4f}} 
void {\bfseries draw\+\_\+points} ()
\item 
\mbox{\Hypertarget{a08024_a3b9d009e97f29b4eaf769af67af8b724}\label{a08024_a3b9d009e97f29b4eaf769af67af8b724}} 
void {\bfseries draw\+\_\+edges} ()
\item 
\mbox{\Hypertarget{a08024_a5a52ad5812e687cfd4c64df13c44f68c}\label{a08024_a5a52ad5812e687cfd4c64df13c44f68c}} 
void {\bfseries draw\+\_\+halfedges} ()
\item 
\mbox{\Hypertarget{a08024_aa5b975376bf1e0d692190aec0631a46b}\label{a08024_aa5b975376bf1e0d692190aec0631a46b}} 
void {\bfseries draw\+\_\+faces} (bool \+\_\+per\+\_\+vertex)
\item 
\mbox{\Hypertarget{a08024_ab2f7c3a4a699c900b90683bf2d2e3733}\label{a08024_ab2f7c3a4a699c900b90683bf2d2e3733}} 
Point {\bfseries halfedge\+\_\+point} (const Halfedge\+Handle \+\_\+heh)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08024_a8bbc0ef5abac96f4dbfc7dde239f4cdb}\label{a08024_a8bbc0ef5abac96f4dbfc7dde239f4cdb}} 
const \hyperlink{a08764}{Mesh} \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{a08024_abefe95a217cd7715e10d611ce88bce85}\label{a08024_abefe95a217cd7715e10d611ce88bce85}} 
\hyperlink{a07288}{Draw\+MeshT}$<$ \hyperlink{a08764}{Mesh} $>$ $\ast$ {\bfseries draw\+Mesh\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a5d54cfcffdacd1e40dc9eadc0e6166b0}\label{a08024_a5d54cfcffdacd1e40dc9eadc0e6166b0}} 
std\+::vector$<$ unsigned int $>$ {\bfseries v\+\_\+cache\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a1647ecb06aac15a28c2d4d39fa3b843c}\label{a08024_a1647ecb06aac15a28c2d4d39fa3b843c}} 
std\+::vector$<$ unsigned int $>$ {\bfseries e\+\_\+cache\+\_\+}
\item 
\mbox{\Hypertarget{a08024_ae408b58d2d76d6eee832c8ec1e05af81}\label{a08024_ae408b58d2d76d6eee832c8ec1e05af81}} 
std\+::vector$<$ unsigned int $>$ {\bfseries f\+\_\+cache\+\_\+}
\item 
\mbox{\Hypertarget{a08024_ae551618f7dcb6cca634b08e29a22b83c}\label{a08024_ae551618f7dcb6cca634b08e29a22b83c}} 
std\+::vector$<$ unsigned int $>$ {\bfseries poly\+\_\+cache\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a5c3e59272d1c6b794cf26f3773b297ee}\label{a08024_a5c3e59272d1c6b794cf26f3773b297ee}} 
std\+::vector$<$ Face\+Handle $>$ {\bfseries fh\+\_\+cache\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a8d51ff0ff6ba7cfaf6cb043b4440c0ba}\label{a08024_a8d51ff0ff6ba7cfaf6cb043b4440c0ba}} 
std\+::vector$<$ Point $>$ {\bfseries he\+\_\+points\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a83a305cbc18e4a160ca0ab335463c193}\label{a08024_a83a305cbc18e4a160ca0ab335463c193}} 
std\+::vector$<$ Normal $>$ {\bfseries he\+\_\+normals\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a6113046f7cc64f5f02252f57db6c952b}\label{a08024_a6113046f7cc64f5f02252f57db6c952b}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries bb\+Min\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a8f594bc2f0965d13bf9c2f153c38eb43}\label{a08024_a8f594bc2f0965d13bf9c2f153c38eb43}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries bb\+Max\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a33db12441849ada215e24b3bb73cc378}\label{a08024_a33db12441849ada215e24b3bb73cc378}} 
bool \hyperlink{a08024_a33db12441849ada215e24b3bb73cc378}{invalid\+Geometry\+\_\+}
\begin{DoxyCompactList}\small\item\em State variables. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08024_a849d5a582a23f6ceeaf9cd04470d9c7e}\label{a08024_a849d5a582a23f6ceeaf9cd04470d9c7e}} 
bool {\bfseries vertex\+Index\+Invalid\+\_\+}
\item 
\mbox{\Hypertarget{a08024_aeff7dc284d3cc5e754b0e39348ac8b2c}\label{a08024_aeff7dc284d3cc5e754b0e39348ac8b2c}} 
bool {\bfseries halfedge\+Cache\+Invalid\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a9a9fee5048fff426f48f1cb0d0b1a5b5}\label{a08024_a9a9fee5048fff426f48f1cb0d0b1a5b5}} 
bool {\bfseries edge\+Index\+Invalid\+\_\+}
\item 
\mbox{\Hypertarget{a08024_a402909ab4d01e0f2a48976dcd0a067fd}\label{a08024_a402909ab4d01e0f2a48976dcd0a067fd}} 
bool {\bfseries face\+Index\+Invalid\+\_\+}
\item 
\mbox{\Hypertarget{a08024_ad6b86b983531395b79d454ea984df824}\label{a08024_ad6b86b983531395b79d454ea984df824}} 
\hyperlink{a07596}{Vertex\+Declaration} {\bfseries point\+Vertex\+Decl\+\_\+}
\item 
\mbox{\Hypertarget{a08024_aa3c53e38aac41f90a77243ce82bcd6dc}\label{a08024_aa3c53e38aac41f90a77243ce82bcd6dc}} 
\hyperlink{a07596}{Vertex\+Declaration} {\bfseries halfedge\+Vertex\+Decl\+\_\+}
\end{DoxyCompactItemize}


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

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

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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08024_aad88be4e0c5849ea5cb8285cc60edfd3}\label{a08024_aad88be4e0c5849ea5cb8285cc60edfd3}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}}
\subsubsection{\texorpdfstring{get\+Render\+Objects()}{getRenderObjects()}}
{\footnotesize\ttfamily template$<$class Mesh , class Mod $>$ \\
void \hyperlink{a08024}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ \hyperlink{a08764}{Mesh}, Mod $>$\+::get\+Render\+Objects (\begin{DoxyParamCaption}\item[{\hyperlink{a07468}{I\+Renderer} $\ast$}]{\+\_\+renderer,  }\item[{\hyperlink{a07452}{G\+L\+State} \&}]{\+\_\+state,  }\item[{const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode,  }\item[{const class \hyperlink{a07828}{Material} $\ast$}]{\+\_\+mat }\end{DoxyParamCaption})}



support for shader-\/pipeline 


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


Definition at line 598 of file Status\+Nodes\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08024_a273444b9bef9dc98be0a3bf2582caff8}\label{a08024_a273444b9bef9dc98be0a3bf2582caff8}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}!set\+Draw\+Mesh@{set\+Draw\+Mesh}}
\index{set\+Draw\+Mesh@{set\+Draw\+Mesh}!A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}}
\subsubsection{\texorpdfstring{set\+Draw\+Mesh()}{setDrawMesh()}}
{\footnotesize\ttfamily template$<$class Mesh, class Mod $>$ \\
void \hyperlink{a08024}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ \hyperlink{a08764}{Mesh}, Mod $>$\+::set\+Draw\+Mesh (\begin{DoxyParamCaption}\item[{\hyperlink{a07288}{Draw\+MeshT}$<$ \hyperlink{a08764}{Mesh} $>$ $\ast$}]{\+\_\+drawmesh }\end{DoxyParamCaption})}



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 765 of file Status\+Nodes\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08024_adedd3c36884694e7d1f956bab37efe5d}\label{a08024_adedd3c36884694e7d1f956bab37efe5d}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}!update\+\_\+cache@{update\+\_\+cache}}
\index{update\+\_\+cache@{update\+\_\+cache}!A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}}
\subsubsection{\texorpdfstring{update\+\_\+cache()}{update\_cache()}}
{\footnotesize\ttfamily template$<$class Mesh , class Mod $>$ \\
void \hyperlink{a08024}{A\+C\+G\+::\+Scene\+Graph\+::\+Status\+NodeT}$<$ \hyperlink{a08764}{Mesh}, Mod $>$\+::update\+\_\+cache (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

build/update cache of active vertices/edges/faces. This function automatically enables caching. 

Definition at line 122 of file Status\+Nodes\+T\+\_\+impl.\+hh.



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