\hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Poly\+Line\+NodeT$<$ Poly\+Line $>$ Class Template Reference}
\label{classACG_1_1SceneGraph_1_1PolyLineNodeT}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ Poly\+Line $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ Poly\+Line $>$}}


{\ttfamily \#include $<$AC$>$}

Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:Poly\+Line\+NodeT$<$ Poly\+Line $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classACG_1_1SceneGraph_1_1PolyLineNodeT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a5dc6cd5903c3a4a6b0497ca59307d3ea}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a5dc6cd5903c3a4a6b0497ca59307d3ea}} 
typedef Poly\+Line\+::\+Point {\bfseries Point}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a9cc59a4413394485ec577ffad3f90591}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a9cc59a4413394485ec577ffad3f90591}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a9cc59a4413394485ec577ffad3f90591}{Poly\+Line\+NodeT} (\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} \&\+\_\+pl, \hyperlink{classACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$\+\_\+parent=0, std\+::string \+\_\+name=\char`\"{}$<$Poly\+Line\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a7cdc6db0daf0b0979b84de1410dd3c0f}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a7cdc6db0daf0b0979b84de1410dd3c0f}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a7cdc6db0daf0b0979b84de1410dd3c0f}{$\sim$\+Poly\+Line\+NodeT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4fccf6b2f0c8530aac74dadc6261de0d}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4fccf6b2f0c8530aac74dadc6261de0d}} 
\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} \& {\bfseries polyline} ()
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a3606cac7564cbafae69e260679932a4d}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a3606cac7564cbafae69e260679932a4d}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a3606cac7564cbafae69e260679932a4d}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{Poly\+Line\+NodeT})
\begin{DoxyCompactList}\small\item\em static name of this class \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_aba047459f3bf1c3ffb75fa1d029a853b}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_aba047459f3bf1c3ffb75fa1d029a853b}} 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_aba047459f3bf1c3ffb75fa1d029a853b}{available\+Draw\+Modes} () const override
\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a5239d870ce29c6f04613d57ffcaff4ee}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a5239d870ce29c6f04613d57ffcaff4ee}} 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a5239d870ce29c6f04613d57ffcaff4ee}{bounding\+Box} (\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max) override
\begin{DoxyCompactList}\small\item\em update bounding box \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a8c51cfdd9e726023d755f0e8357d1b9f}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a8c51cfdd9e726023d755f0e8357d1b9f}} 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a8c51cfdd9e726023d755f0e8357d1b9f}{draw} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode) override
\begin{DoxyCompactList}\small\item\em draw lines and normals \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_afa582d5685bb722b7239361bdbc5e695}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_afa582d5685bb722b7239361bdbc5e695}} 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_afa582d5685bb722b7239361bdbc5e695}{pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target) override
\begin{DoxyCompactList}\small\item\em picking \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a0c46916ef9b84adbb340d465da1ab014}{get\+Render\+Objects} (\hyperlink{classACG_1_1IRenderer}{A\+C\+G\+::\+I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{classACG_1_1SceneGraph_1_1ACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{classACG_1_1SceneGraph_1_1Material}{A\+C\+G\+::\+Scene\+Graph\+::\+Material} $\ast$\+\_\+mat) override
\begin{DoxyCompactList}\small\item\em Add the objects to the given renderer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a32a754a011d69c9ba987570a64416949}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a32a754a011d69c9ba987570a64416949}} 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a32a754a011d69c9ba987570a64416949}{update} ()
\begin{DoxyCompactList}\small\item\em Trigger an update of the vbo. \end{DoxyCompactList}\item 
int \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a8905c7d9f3dbc11bfe19c5912fb5a748}{add\+Custom\+Buffer} (const \hyperlink{structACG_1_1VertexElement}{A\+C\+G\+::\+Vertex\+Element} \&\+\_\+desc, const void $\ast$\+\_\+buffer)
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a6daa0ff29d92991f7f83c257095e1ebe}{set\+Custom\+Buffer} (int \+\_\+id, const void $\ast$\+\_\+buffer)
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a764522d5e833ccef51876d88e3236758}{setup\+Vertex\+Declaration} (\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} $\ast$\+\_\+dst, int \+\_\+color\+Source) const
\begin{DoxyCompactList}\small\item\em Create the vertex declaration. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_aa74d1b14e3f6d902ae4916e27c963aa5}{fill\+Vertex\+Buffer} (void $\ast$\+\_\+buf, size\+\_\+t \+\_\+buf\+Size, bool \+\_\+add\+Line\+Strip\+End\+Vertex)
\begin{DoxyCompactList}\small\item\em Fill a buffer with vertex data. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ae063384d67b948aa3cb54970f7c5ad61}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ae063384d67b948aa3cb54970f7c5ad61}} 
void {\bfseries pick\+\_\+vertices} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a2845be5f1dbe39f9f4e89e95226289aa}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a2845be5f1dbe39f9f4e89e95226289aa}} 
void {\bfseries pick\+\_\+spheres} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab027a7d4b9471690e44acc2c9335835a}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab027a7d4b9471690e44acc2c9335835a}} 
void {\bfseries pick\+\_\+spheres\+\_\+screen} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4101849b0d4e8414190bf3c46c326d91}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4101849b0d4e8414190bf3c46c326d91}} 
void {\bfseries pick\+\_\+edges} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, unsigned int \+\_\+offset)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab2a964a371c8534de1899327e9cb1463}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab2a964a371c8534de1899327e9cb1463}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab2a964a371c8534de1899327e9cb1463}{Poly\+Line\+NodeT} (const \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{Poly\+Line\+NodeT} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em Copy constructor (not used) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a42b266c848f20df2076e5208c74f0ac9}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a42b266c848f20df2076e5208c74f0ac9}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{Poly\+Line\+NodeT} \& \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a42b266c848f20df2076e5208c74f0ac9}{operator=} (const \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{Poly\+Line\+NodeT} \&\+\_\+rhs)
\begin{DoxyCompactList}\small\item\em Assignment operator (not used) \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a43507a0a1c86e40976e902503abd3d22}{update\+V\+BO} ()
\begin{DoxyCompactList}\small\item\em Trigger an update of the vbo. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_aaebc9ed725e92a83ba21ac0f905b5ede}{write\+Vertex} (unsigned int \+\_\+vertex, void $\ast$\+\_\+dst)
\begin{DoxyCompactList}\small\item\em Write vertex data for rendering to a buffer. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4b9e935675cf2fa1ddec96e906cf3795}{write\+Vertex\+Color} (unsigned int \+\_\+vertex, bool \+\_\+color\+Source\+Vertex, void $\ast$\+\_\+dst) const
\begin{DoxyCompactList}\small\item\em Write color for rendering to a buffer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a07b007316947ee46b6da7b27323ab3a3}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a07b007316947ee46b6da7b27323ab3a3}} 
\hyperlink{classACG_1_1VertexDeclaration}{A\+C\+G\+::\+Vertex\+Declaration} \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a07b007316947ee46b6da7b27323ab3a3}{vertex\+Decl\+\_\+}
\begin{DoxyCompactList}\small\item\em Vertex layout without vertex colors. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a640fcc58be675aee99b2792cb5e32926}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a640fcc58be675aee99b2792cb5e32926}} 
\hyperlink{classACG_1_1VertexDeclaration}{A\+C\+G\+::\+Vertex\+Declaration} \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a640fcc58be675aee99b2792cb5e32926}{vertex\+Decl\+V\+Col\+\_\+}
\begin{DoxyCompactList}\small\item\em Vertex layout with vertex colors. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a616082677ed929c36fad56d69b3e8b40}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a616082677ed929c36fad56d69b3e8b40}} 
\hyperlink{classACG_1_1VertexDeclaration}{A\+C\+G\+::\+Vertex\+Declaration} \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a616082677ed929c36fad56d69b3e8b40}{vertex\+Decl\+E\+Col\+\_\+}
\begin{DoxyCompactList}\small\item\em Vertex layout with edge colors. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_aa9f2ef3e16c312b61d567fd5981ea93c}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_aa9f2ef3e16c312b61d567fd5981ea93c}} 
std\+::vector$<$ std\+::pair$<$ \hyperlink{structACG_1_1VertexElement}{A\+C\+G\+::\+Vertex\+Element}, const void $\ast$ $>$ $>$ \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_aa9f2ef3e16c312b61d567fd5981ea93c}{custom\+Buffers\+\_\+}
\begin{DoxyCompactList}\small\item\em Custom vertex data for shader based rendering. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab6f01e2fa2035cea032bdc253c03759a}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab6f01e2fa2035cea032bdc253c03759a}} 
std\+::map$<$ typename Poly\+Line\+::\+Custom\+Property\+Handle, int $>$ \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab6f01e2fa2035cea032bdc253c03759a}{polyline\+Prop\+Map\+\_\+}
\begin{DoxyCompactList}\small\item\em Map from custom properties in Poly\+Line to id in custom\+Buffers\+\_\+. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_aeaa93bd732f03073723a0eea68b3a123}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_aeaa93bd732f03073723a0eea68b3a123}} 
\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} \& \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_aeaa93bd732f03073723a0eea68b3a123}{polyline\+\_\+}
\begin{DoxyCompactList}\small\item\em The associated poly line. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ad2701ed490566d002d37e6dc4636696b}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ad2701ed490566d002d37e6dc4636696b}} 
Geometry\+Buffer \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_ad2701ed490566d002d37e6dc4636696b}{vbo\+\_\+}
\begin{DoxyCompactList}\small\item\em V\+BO used to render the poly line. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_adfd13dc406cd7ba31546de338918f276}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_adfd13dc406cd7ba31546de338918f276}} 
std\+::vector$<$ unsigned int $>$ \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_adfd13dc406cd7ba31546de338918f276}{selected\+Vertex\+Index\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Index buffer for selected vertices. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a9bd017b27acd85c022cc7a1f164fe538}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a9bd017b27acd85c022cc7a1f164fe538}} 
std\+::vector$<$ unsigned int $>$ \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a9bd017b27acd85c022cc7a1f164fe538}{selected\+Edge\+Index\+Buffer\+\_\+}
\begin{DoxyCompactList}\small\item\em Index buffer for selected edges. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ad5814978cd30d5141f0dacebbfa005b4}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ad5814978cd30d5141f0dacebbfa005b4}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_ad5814978cd30d5141f0dacebbfa005b4}{update\+V\+B\+O\+\_\+}
\begin{DoxyCompactList}\small\item\em Flag to trigger update of vbo. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab96de6fa5065055088d44009e59fcd47}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab96de6fa5065055088d44009e59fcd47}} 
\hyperlink{classACG_1_1GLSphere}{G\+L\+Sphere} $\ast$ \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_ab96de6fa5065055088d44009e59fcd47}{sphere\+\_\+}
\begin{DoxyCompactList}\small\item\em Sphere for Vertex\+Sphere Draw\+Mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a1ce7148a07f3cc000025fc46ac430117}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a1ce7148a07f3cc000025fc46ac430117}} 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_a1ce7148a07f3cc000025fc46ac430117}{P\+O\+I\+N\+T\+S\+\_\+\+S\+P\+H\+E\+R\+ES}
\begin{DoxyCompactList}\small\item\em This defines a local point spheres draw mode for all poly\+Line nodes. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_abbf30799805e12cee8470486b1545b4c}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_abbf30799805e12cee8470486b1545b4c}} 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT_abbf30799805e12cee8470486b1545b4c}{P\+O\+I\+N\+T\+S\+\_\+\+S\+P\+H\+E\+R\+E\+S\+\_\+\+S\+C\+R\+E\+EN}
\begin{DoxyCompactList}\small\item\em This defines a local point spheres draw mode for all poly\+Line nodes with constant screen size. \end{DoxyCompactList}\end{DoxyCompactItemize}


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

/.../\+Poly\+Line\+NodeT.hh$>$

Brief Description.

A more elaborate description follows.

/.../\+Poly\+Line\+Collection\+NodeT.hh$>$

This Node provides support for rendering polyline collections. 

Definition at line 89 of file Poly\+Line\+Node\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a8905c7d9f3dbc11bfe19c5912fb5a748}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a8905c7d9f3dbc11bfe19c5912fb5a748}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!add\+Custom\+Buffer@{add\+Custom\+Buffer}}
\index{add\+Custom\+Buffer@{add\+Custom\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{add\+Custom\+Buffer()}{addCustomBuffer()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
int \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::add\+Custom\+Buffer (\begin{DoxyParamCaption}\item[{const \hyperlink{structACG_1_1VertexElement}{A\+C\+G\+::\+Vertex\+Element} \&}]{\+\_\+desc,  }\item[{const void $\ast$}]{\+\_\+buffer }\end{DoxyParamCaption})}

Add custom data to the vertex buffer for rendering with shaders

The element description declares the type of data and the name in the shader. The provided buffer has to store data for each vertex\+: num elements in buffer = polyline().n\+\_\+vertices() If the stride offset in {\itshape desc.\+pointer} is 0, it is assumed that the buffer stores the data without memory alignment. This function does not create a local copy of the buffer, so the provided memory address has to be valid whenever an internal vbo update is triggered. Custom attributes are then available in the vertex shader by accessing the input with name tangent\+Element.\+shader\+Input\+Name\+\_\+.

Example\+:

in plugin\+: have allocated buffer\+: tangent\+Data\+\_\+ of type Vec3f$\ast$ (member of a class)

\hyperlink{structACG_1_1VertexElement}{A\+C\+G\+::\+Vertex\+Element} tangent\+Desc; tangent\+Desc.\+type\+\_\+ = G\+L\+\_\+\+F\+L\+O\+AT; tangent\+Desc.\+num\+Elements\+\_\+ = 3; tangent\+Desc.\+usage\+\_\+ = A\+C\+G\+::\+V\+E\+R\+T\+E\+X\+\_\+\+U\+S\+A\+G\+E\+\_\+\+U\+S\+E\+R\+\_\+\+D\+E\+F\+I\+N\+ED; tangent\+Desc.\+shader\+Input\+Name\+\_\+ = \char`\"{}my\+Tangent\char`\"{}; tangent\+Desc.\+pointer\+\_\+ = 0;

polyline\+Node-\/$>$add\+Custom\+Buffer(tangent\+Desc, tangent\+Data\+\_\+);

in vertex shader\+: in vec3 my\+Tangent; ..


\begin{DoxyParams}{Parameters}
{\em \+\_\+desc} & type description of an element in the buffer \\
\hline
{\em \+\_\+buffer} & pointer to data buffer, has to be a valid address for the remaining time \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
id of custom buffer 
\end{DoxyReturn}


Definition at line 1131 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_aa74d1b14e3f6d902ae4916e27c963aa5}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_aa74d1b14e3f6d902ae4916e27c963aa5}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!fill\+Vertex\+Buffer@{fill\+Vertex\+Buffer}}
\index{fill\+Vertex\+Buffer@{fill\+Vertex\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{fill\+Vertex\+Buffer()}{fillVertexBuffer()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
size\+\_\+t \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::fill\+Vertex\+Buffer (\begin{DoxyParamCaption}\item[{void $\ast$}]{\+\_\+buf,  }\item[{size\+\_\+t}]{\+\_\+buf\+Size,  }\item[{bool}]{\+\_\+add\+Line\+Strip\+End\+Vertex }\end{DoxyParamCaption})}



Fill a buffer with vertex data. 

Fill the specified buffer with vertex buffer data. The buffer size in bytes can be calculated as vertex stride $\ast$ num vertices. If \+\_\+add\+Line\+Strip\+End\+Vertex is true, then the buffer size is vertex stride $\ast$ (num vertices + 1) instead. Vertex layout and stride can be queried with via setup\+Vertex\+Declaration. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+buf} & address to buffer to which the vertices are written \\
\hline
{\em \+\_\+buf\+Size} & size in bytes available in the specified buffer \\
\hline
{\em \+\_\+add\+Line\+Strip\+End\+Vertex} & add a copy of the first vertex to the end of the buffer (useful to close the line in line\+\_\+strip rendering mode) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes written 
\end{DoxyReturn}


Definition at line 691 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

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



Add the objects to the given renderer. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+renderer} & The renderer which will be used. Add your geometry into this class \\
\hline
{\em \+\_\+state} & The current GL State when this object is called \\
\hline
{\em \+\_\+draw\+Mode} & The active draw mode \\
\hline
{\em \+\_\+mat} & Current material \\
\hline
\end{DoxyParams}


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 893 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a6daa0ff29d92991f7f83c257095e1ebe}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a6daa0ff29d92991f7f83c257095e1ebe}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!set\+Custom\+Buffer@{set\+Custom\+Buffer}}
\index{set\+Custom\+Buffer@{set\+Custom\+Buffer}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{set\+Custom\+Buffer()}{setCustomBuffer()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::set\+Custom\+Buffer (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id,  }\item[{const void $\ast$}]{\+\_\+buffer }\end{DoxyParamCaption})}

Update pointer to custom data


\begin{DoxyParams}{Parameters}
{\em \+\_\+id} & id of the custom buffer; return value of add\+Custom\+Buffer \\
\hline
{\em \+\_\+buffer} & pointer to data buffer, has to be a valid address for the remaining time \\
\hline
\end{DoxyParams}


Definition at line 1151 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a764522d5e833ccef51876d88e3236758}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a764522d5e833ccef51876d88e3236758}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!setup\+Vertex\+Declaration@{setup\+Vertex\+Declaration}}
\index{setup\+Vertex\+Declaration@{setup\+Vertex\+Declaration}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{setup\+Vertex\+Declaration()}{setupVertexDeclaration()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::setup\+Vertex\+Declaration (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1VertexDeclaration}{Vertex\+Declaration} $\ast$}]{\+\_\+dst,  }\item[{int}]{\+\_\+color\+Source }\end{DoxyParamCaption}) const}



Create the vertex declaration. 

The vertex data in the vbo contains both vertex and edge colors, so the vertex declaration decides which bytes to use for colored rendering (if any). 
\begin{DoxyParams}{Parameters}
{\em \+\_\+dst} & Vertex declaration to initialize \\
\hline
{\em \+\_\+color\+Source} & 0 -\/ no colors, 1 -\/ vertex colors, 2 -\/ edge colors \\
\hline
\end{DoxyParams}


Definition at line 638 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a43507a0a1c86e40976e902503abd3d22}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a43507a0a1c86e40976e902503abd3d22}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!update\+V\+BO@{update\+V\+BO}}
\index{update\+V\+BO@{update\+V\+BO}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{update\+V\+B\+O()}{updateVBO()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::update\+V\+BO (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Trigger an update of the vbo. 

If the poly\+Line is changed, you have to call this function to update the buffers. 

Definition at line 757 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_aaebc9ed725e92a83ba21ac0f905b5ede}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_aaebc9ed725e92a83ba21ac0f905b5ede}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!write\+Vertex@{write\+Vertex}}
\index{write\+Vertex@{write\+Vertex}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{write\+Vertex()}{writeVertex()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::write\+Vertex (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+vertex,  }\item[{void $\ast$}]{\+\_\+dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Write vertex data for rendering to a buffer. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+vertex} & index of polyline vertex \\
\hline
{\em \+\_\+dst} & address of vertex in buffer \\
\hline
\end{DoxyParams}


Definition at line 843 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4b9e935675cf2fa1ddec96e906cf3795}\label{classACG_1_1SceneGraph_1_1PolyLineNodeT_a4b9e935675cf2fa1ddec96e906cf3795}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}!write\+Vertex\+Color@{write\+Vertex\+Color}}
\index{write\+Vertex\+Color@{write\+Vertex\+Color}!A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT@{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}}
\subsubsection{\texorpdfstring{write\+Vertex\+Color()}{writeVertexColor()}}
{\footnotesize\ttfamily template$<$class Poly\+Line $>$ \\
void \hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$\+::write\+Vertex\+Color (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+vertex,  }\item[{bool}]{\+\_\+color\+Source\+Vertex,  }\item[{void $\ast$}]{\+\_\+dst }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [private]}}



Write color for rendering to a buffer. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+vertex} & index of polyline vertex \\
\hline
{\em \+\_\+color\+Source\+Vertex} & vertex or edge color? \\
\hline
{\em \+\_\+dst} & address of vertex in buffer \\
\hline
\end{DoxyParams}


Definition at line 809 of file Poly\+Line\+Node\+T\+\_\+impl.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Type-\/\+Poly\+Line/\+Object\+Types/\+Poly\+Line/Poly\+Line\+Node\+T.\+hh\item 
Type-\/\+Poly\+Line/\+Object\+Types/\+Poly\+Line/Poly\+Line\+Node\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
