\hypertarget{classACG_1_1DrawMeshBase}{}\section{A\+CG\+:\+:Draw\+Mesh\+Base Class Reference}
\label{classACG_1_1DrawMeshBase}\index{A\+C\+G\+::\+Draw\+Mesh\+Base@{A\+C\+G\+::\+Draw\+Mesh\+Base}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+G\+L/\+Draw\+Mesh.\+hh$>$}

Inheritance diagram for A\+CG\+:\+:Draw\+Mesh\+Base\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=0.653061cm]{classACG_1_1DrawMeshBase}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_acbb293b24d9540742d5cc3a605920dd8}\label{classACG_1_1DrawMeshBase_acbb293b24d9540742d5cc3a605920dd8}} 
size\+\_\+t {\bfseries get\+Num\+Tris} () const
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a4aca7e40e0e6ade0ed953ac618178ae0}\label{classACG_1_1DrawMeshBase_a4aca7e40e0e6ade0ed953ac618178ae0}} 
size\+\_\+t {\bfseries get\+Num\+Verts} () const
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a6bc83ed2d9df0c6592a423e5300ad469}\label{classACG_1_1DrawMeshBase_a6bc83ed2d9df0c6592a423e5300ad469}} 
\hyperlink{classACG_1_1MeshCompiler}{Mesh\+Compiler} $\ast$ \hyperlink{classACG_1_1DrawMeshBase_a6bc83ed2d9df0c6592a423e5300ad469}{get\+Mesh\+Compiler} ()
\begin{DoxyCompactList}\small\item\em get mesh compiler used to create the draw mesh \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a0e1d412e04d46600708084a098e1e1d8}\label{classACG_1_1DrawMeshBase_a0e1d412e04d46600708084a098e1e1d8}} 
unsigned int {\bfseries get\+Num\+Subsets} () const
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a199121f1582f7990b9ac958f7c9a4f59}\label{classACG_1_1DrawMeshBase_a199121f1582f7990b9ac958f7c9a4f59}} 
G\+Lenum \hyperlink{classACG_1_1DrawMeshBase_a199121f1582f7990b9ac958f7c9a4f59}{get\+Index\+Type} () const
\begin{DoxyCompactList}\small\item\em get index type of index buffer \end{DoxyCompactList}\item 
G\+Luint \hyperlink{classACG_1_1DrawMeshBase_a22b463dcee7cc85bcbbb083d15a2bea2}{pick\+Vertex\+I\+B\+O\+\_\+opt} ()
\begin{DoxyCompactList}\small\item\em get an index buffer mapping from openmesh vertices to drawmesh vbo vertices \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_afd07e9e3511b16b8131854261bf2734d}\label{classACG_1_1DrawMeshBase_afd07e9e3511b16b8131854261bf2734d}} 
void {\bfseries delete\+Ibo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a79108c2655a765114a373b4ad393dbac}\label{classACG_1_1DrawMeshBase_a79108c2655a765114a373b4ad393dbac}} 
void {\bfseries bind\+Vbo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_afdf831b6971df104873c0f5834943a1b}\label{classACG_1_1DrawMeshBase_afdf831b6971df104873c0f5834943a1b}} 
void {\bfseries bind\+Ibo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a5eccaf1c4cf40a22ace53a40bd4466e2}\label{classACG_1_1DrawMeshBase_a5eccaf1c4cf40a22ace53a40bd4466e2}} 
void {\bfseries bind\+Line\+Ibo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_aac43532ff2aedbd115e8f2a819b5dba1}\label{classACG_1_1DrawMeshBase_aac43532ff2aedbd115e8f2a819b5dba1}} 
void {\bfseries bind\+H\+E\+Vbo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a029b09dbd3d279534cd5cb2ec25de904}\label{classACG_1_1DrawMeshBase_a029b09dbd3d279534cd5cb2ec25de904}} 
void {\bfseries unbind\+H\+E\+Vbo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_ac437b78f7861daa337206ea87258072b}\label{classACG_1_1DrawMeshBase_ac437b78f7861daa337206ea87258072b}} 
void {\bfseries bind\+Pick\+Vertex\+Ibo} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a11c6ecf029e156eca5153e661777afc5}\label{classACG_1_1DrawMeshBase_a11c6ecf029e156eca5153e661777afc5}} 
void {\bfseries create\+Index\+Buffer} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_adcdf620052e24ab88e5b64c8707671d2}\label{classACG_1_1DrawMeshBase_adcdf620052e24ab88e5b64c8707671d2}} 
void {\bfseries fill\+Line\+Buffer} (size\+\_\+t n\+\_\+edges, void $\ast$data)
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a0801407ff88ca68b979c988bc881b698}\label{classACG_1_1DrawMeshBase_a0801407ff88ca68b979c988bc881b698}} 
void {\bfseries fill\+H\+E\+V\+BO} (size\+\_\+t number\+Of\+Elements\+\_\+, size\+\_\+t size\+Of\+Elements\+\_\+, void $\ast$data\+\_\+)
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a2ae351203a3265f8fa09f67fbb5a80a7}\label{classACG_1_1DrawMeshBase_a2ae351203a3265f8fa09f67fbb5a80a7}} 
void {\bfseries fill\+Vertex\+Buffer} ()
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_af8fb9129dc2f121fb978daaf6a0af7ef}\label{classACG_1_1DrawMeshBase_af8fb9129dc2f121fb978daaf6a0af7ef}} 
void {\bfseries fill\+Inv\+Vertex\+Map} (size\+\_\+t n\+\_\+vertices, void $\ast$data)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a87ee6936ca8efc14a66bcc27fdcb6864}\label{classACG_1_1DrawMeshBase_a87ee6936ca8efc14a66bcc27fdcb6864}} 
G\+Luint {\bfseries vbo\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_afef369196d9e92e401f6099bc04199fa}\label{classACG_1_1DrawMeshBase_afef369196d9e92e401f6099bc04199fa}} 
G\+Luint {\bfseries ibo\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a385560408944d5165f4bff18b2c4f219}\label{classACG_1_1DrawMeshBase_a385560408944d5165f4bff18b2c4f219}} 
size\+\_\+t {\bfseries num\+Tris\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a4f1c76ca7a36ea8f948bddfe9bb853ce}\label{classACG_1_1DrawMeshBase_a4f1c76ca7a36ea8f948bddfe9bb853ce}} 
size\+\_\+t {\bfseries num\+Verts\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a52fc4fbc582bd17bbb1bbf927feb34ca}\label{classACG_1_1DrawMeshBase_a52fc4fbc582bd17bbb1bbf927feb34ca}} 
\hyperlink{classACG_1_1MeshCompiler}{Mesh\+Compiler} $\ast$ {\bfseries mesh\+Comp\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_ae3fefecefc51a58e5ff511c785c64cf7}\label{classACG_1_1DrawMeshBase_ae3fefecefc51a58e5ff511c785c64cf7}} 
G\+Luint \hyperlink{classACG_1_1DrawMeshBase_ae3fefecefc51a58e5ff511c785c64cf7}{line\+I\+B\+O\+\_\+}
\begin{DoxyCompactList}\small\item\em index buffer used in Wireframe / Hiddenline mode \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_aaff870fee992880ee81e986d7e0fa06e}\label{classACG_1_1DrawMeshBase_aaff870fee992880ee81e986d7e0fa06e}} 
G\+Luint \hyperlink{classACG_1_1DrawMeshBase_aaff870fee992880ee81e986d7e0fa06e}{he\+V\+B\+O\+\_\+}
\begin{DoxyCompactList}\small\item\em vbo for halfedge rendering, as they are offset \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a7d5c23d23fd2f64fa3d1122d05ddd3ba}\label{classACG_1_1DrawMeshBase_a7d5c23d23fd2f64fa3d1122d05ddd3ba}} 
G\+Lint {\bfseries prev\+V\+B\+O\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a4a24e9f3811de5c878cfce7290641953}\label{classACG_1_1DrawMeshBase_a4a24e9f3811de5c878cfce7290641953}} 
G\+Lenum \hyperlink{classACG_1_1DrawMeshBase_a4a24e9f3811de5c878cfce7290641953}{index\+Type\+\_\+}
\begin{DoxyCompactList}\small\item\em support for 2 and 4 byte unsigned integers \end{DoxyCompactList}\item 
std\+::vector$<$ char $>$ \hyperlink{classACG_1_1DrawMeshBase_ace8abeef287d4482b6fd0a331fcf5d83}{vertices\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a93b3cfb5f23312f8d6d9c3be67e573b9}\label{classACG_1_1DrawMeshBase_a93b3cfb5f23312f8d6d9c3be67e573b9}} 
\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} $\ast$ \hyperlink{classACG_1_1DrawMeshBase_a93b3cfb5f23312f8d6d9c3be67e573b9}{vertex\+Decl\+\_\+}
\begin{DoxyCompactList}\small\item\em vertex buffer layout declaration with per vertex colors \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a52e03634179af4264123d3cca626c3c5}\label{classACG_1_1DrawMeshBase_a52e03634179af4264123d3cca626c3c5}} 
\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} $\ast$ \hyperlink{classACG_1_1DrawMeshBase_a52e03634179af4264123d3cca626c3c5}{vertex\+Decl\+Edge\+Col\+\_\+}
\begin{DoxyCompactList}\small\item\em vertex buffer layout declaration with per edge colors \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_aaec2233abf7d5c5dc932b5600c8b4de3}\label{classACG_1_1DrawMeshBase_aaec2233abf7d5c5dc932b5600c8b4de3}} 
\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} $\ast$ \hyperlink{classACG_1_1DrawMeshBase_aaec2233abf7d5c5dc932b5600c8b4de3}{vertex\+Decl\+Halfedge\+Col\+\_\+}
\begin{DoxyCompactList}\small\item\em vertex buffer layout declaration with per halfedge colors \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a4891ee340ed8dc3f99fbcfe2552b9f49}\label{classACG_1_1DrawMeshBase_a4891ee340ed8dc3f99fbcfe2552b9f49}} 
\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} $\ast$ \hyperlink{classACG_1_1DrawMeshBase_a4891ee340ed8dc3f99fbcfe2552b9f49}{vertex\+Decl\+Halfedge\+Pos\+\_\+}
\begin{DoxyCompactList}\small\item\em vertex buffer layout declaration with halfedge positions only \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a22eea3124e087e22073e4d226831aa30}\label{classACG_1_1DrawMeshBase_a22eea3124e087e22073e4d226831aa30}} 
G\+Luint \hyperlink{classACG_1_1DrawMeshBase_a22eea3124e087e22073e4d226831aa30}{pick\+Vertex\+I\+B\+O\+\_\+}
\begin{DoxyCompactList}\small\item\em map from openmesh vertex to vbo vertex id \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class holds non-\/templated code and is intended to be inherited by the templated \hyperlink{classACG_1_1DrawMeshT}{Draw\+MeshT} class. 

Definition at line 85 of file Draw\+Mesh.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_a22b463dcee7cc85bcbbb083d15a2bea2}\label{classACG_1_1DrawMeshBase_a22b463dcee7cc85bcbbb083d15a2bea2}} 
\index{A\+C\+G\+::\+Draw\+Mesh\+Base@{A\+C\+G\+::\+Draw\+Mesh\+Base}!pick\+Vertex\+I\+B\+O\+\_\+opt@{pick\+Vertex\+I\+B\+O\+\_\+opt}}
\index{pick\+Vertex\+I\+B\+O\+\_\+opt@{pick\+Vertex\+I\+B\+O\+\_\+opt}!A\+C\+G\+::\+Draw\+Mesh\+Base@{A\+C\+G\+::\+Draw\+Mesh\+Base}}
\subsubsection{\texorpdfstring{pick\+Vertex\+I\+B\+O\+\_\+opt()}{pickVertexIBO\_opt()}}
{\footnotesize\ttfamily G\+Luint A\+C\+G\+::\+Draw\+Mesh\+Base\+::pick\+Vertex\+I\+B\+O\+\_\+opt (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



get an index buffer mapping from openmesh vertices to drawmesh vbo vertices 

\begin{DoxyReturn}{Returns}
index buffer object (U\+N\+S\+I\+G\+N\+E\+D\+\_\+\+I\+NT), might be 0 if the openmesh object is a point cloud 
\end{DoxyReturn}


Definition at line 121 of file Draw\+Mesh.\+hh.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classACG_1_1DrawMeshBase_ace8abeef287d4482b6fd0a331fcf5d83}\label{classACG_1_1DrawMeshBase_ace8abeef287d4482b6fd0a331fcf5d83}} 
\index{A\+C\+G\+::\+Draw\+Mesh\+Base@{A\+C\+G\+::\+Draw\+Mesh\+Base}!vertices\+\_\+@{vertices\+\_\+}}
\index{vertices\+\_\+@{vertices\+\_\+}!A\+C\+G\+::\+Draw\+Mesh\+Base@{A\+C\+G\+::\+Draw\+Mesh\+Base}}
\subsubsection{\texorpdfstring{vertices\+\_\+}{vertices\_}}
{\footnotesize\ttfamily std\+::vector$<$char$>$ A\+C\+G\+::\+Draw\+Mesh\+Base\+::vertices\+\_\+\hspace{0.3cm}{\ttfamily [protected]}}

final vertex buffer used for rendering raw byte array, use write\+\_\+\+\_\+() functions for access 

Definition at line 143 of file Draw\+Mesh.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+G\+L/Draw\+Mesh.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+G\+L/Draw\+Mesh.\+cc\end{DoxyCompactItemize}
