\hypertarget{a01280}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Text\+Node Class Reference}
\label{a01280}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
}


{\ttfamily \#include $<$A\+C\+G/\+Scenegraph/\+Text\+Node.\+hh$>$}

Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:Text\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a01280}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{Text\+Mode} \{ {\bfseries S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D}, 
\hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36a6a9acc007c4519e5d572d73dce1a0a4b}{S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E}, 
\hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36af278f8cf8584c617ea11c00f52b0b059}{O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D}
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a01280_ab3f9f2488605d3dedf2257ea00e65fbb}{Text\+Node} (\hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, std\+::string \+\_\+name=\char`\"{}$<$Text\+Node$>$\char`\"{}, Text\+Mode \+\_\+text\+Mode=S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D, bool \+\_\+always\+On\+Top=false)
\item 
\hypertarget{a01280_ac5718da5dbb4df7be9aa168b5e40c20c}{\hyperlink{a01280_ac5718da5dbb4df7be9aa168b5e40c20c}{$\sim$\+Text\+Node} ()}\label{a01280_ac5718da5dbb4df7be9aa168b5e40c20c}

\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\hypertarget{a01280_a6565ddfc6742fe8193d58c4d8be5a12d}{\hyperlink{a01280_a6565ddfc6742fe8193d58c4d8be5a12d}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (\hyperlink{a01280}{Text\+Node})}\label{a01280_a6565ddfc6742fe8193d58c4d8be5a12d}

\begin{DoxyCompactList}\small\item\em static name of this class \end{DoxyCompactList}\item 
\hypertarget{a01280_a4a026e1e1d837186b5274d9030e10eac}{\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a01280_a4a026e1e1d837186b5274d9030e10eac}{available\+Draw\+Modes} () const }\label{a01280_a4a026e1e1d837186b5274d9030e10eac}

\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\item 
\hypertarget{a01280_a36164d8d6ee6f7a38aa74ebbf877b96a}{void \hyperlink{a01280_a36164d8d6ee6f7a38aa74ebbf877b96a}{bounding\+Box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)}\label{a01280_a36164d8d6ee6f7a38aa74ebbf877b96a}

\begin{DoxyCompactList}\small\item\em update bounding box \end{DoxyCompactList}\item 
\hypertarget{a01280_aae0052f35e944bd657a173a0de5144e0}{void \hyperlink{a01280_aae0052f35e944bd657a173a0de5144e0}{draw} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)}\label{a01280_aae0052f35e944bd657a173a0de5144e0}

\begin{DoxyCompactList}\small\item\em draw Text \end{DoxyCompactList}\item 
\hypertarget{a01280_a715892b0ec03d026bd73ed0ebf77208f}{void \hyperlink{a01280_a715892b0ec03d026bd73ed0ebf77208f}{enter} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01280_a715892b0ec03d026bd73ed0ebf77208f}

\begin{DoxyCompactList}\small\item\em set texture and drawing states \end{DoxyCompactList}\item 
\hypertarget{a01280_a00a75983c956a19de2584ee49a9b39df}{void \hyperlink{a01280_a00a75983c956a19de2584ee49a9b39df}{leave} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01280_a00a75983c956a19de2584ee49a9b39df}

\begin{DoxyCompactList}\small\item\em restore texture and drawing states \end{DoxyCompactList}\item 
\hypertarget{a01280_a3196e99ba7f0ac3c8c40b84ee8a98451}{void \hyperlink{a01280_a3196e99ba7f0ac3c8c40b84ee8a98451}{get\+Render\+Objects} (\hyperlink{a00737}{A\+C\+G\+::\+I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a00642}{A\+C\+G\+::\+G\+L\+State} \&\+\_\+state, const \hyperlink{a00510}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{a00790}{A\+C\+G\+::\+Scene\+Graph\+::\+Material} $\ast$\+\_\+mat)}\label{a01280_a3196e99ba7f0ac3c8c40b84ee8a98451}

\begin{DoxyCompactList}\small\item\em set \hyperlink{a01110}{Render\+Object} for Shader pipeline renderer \end{DoxyCompactList}\item 
void \hyperlink{a01280_ac4b53a591ff384cefa0c908d7efa08bd}{set\+Rendering\+Mode} (\hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{Text\+Mode} \+\_\+text\+Mode)
\item 
\hypertarget{a01280_ae265b0e652b576b043a642b07bc20faa}{void \hyperlink{a01280_ae265b0e652b576b043a642b07bc20faa}{set\+Always\+On\+Top} (bool \+\_\+always\+On\+Top)}\label{a01280_ae265b0e652b576b043a642b07bc20faa}

\begin{DoxyCompactList}\small\item\em draw the text always on top \end{DoxyCompactList}\item 
\hypertarget{a01280_ab6466d434aaac5e23902ce61a88f2bc6}{bool \hyperlink{a01280_ab6466d434aaac5e23902ce61a88f2bc6}{always\+On\+Top} ()}\label{a01280_ab6466d434aaac5e23902ce61a88f2bc6}

\begin{DoxyCompactList}\small\item\em returns wheter always on top is setted or not \end{DoxyCompactList}\item 
\hypertarget{a01280_a0d691e6929393c370b4246dfe7c292d3}{\hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{Text\+Mode} \hyperlink{a01280_a0d691e6929393c370b4246dfe7c292d3}{rendering\+Mode} ()}\label{a01280_a0d691e6929393c370b4246dfe7c292d3}

\begin{DoxyCompactList}\small\item\em returns the rendering mode (S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D or O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D) \end{DoxyCompactList}\item 
\hypertarget{a01280_ab074b86dcd8e79d8dca32de68f1a47a3}{void \hyperlink{a01280_ab074b86dcd8e79d8dca32de68f1a47a3}{set\+Text} (std\+::string \+\_\+text)}\label{a01280_ab074b86dcd8e79d8dca32de68f1a47a3}

\begin{DoxyCompactList}\small\item\em sets the string that will be rendered \end{DoxyCompactList}\item 
\hypertarget{a01280_a6337bc01c821267acfa2356f814360c6}{void \hyperlink{a01280_a6337bc01c821267acfa2356f814360c6}{set\+Size} (const double \+\_\+size)}\label{a01280_a6337bc01c821267acfa2356f814360c6}

\begin{DoxyCompactList}\small\item\em sets the size by which the quads displaying the text will be scaled \end{DoxyCompactList}\item 
\hypertarget{a01280_ac1be021717b5fabf00447de5b03211b9}{void \hyperlink{a01280_ac1be021717b5fabf00447de5b03211b9}{set\+Pixel\+Size} (const unsigned int \+\_\+size)}\label{a01280_ac1be021717b5fabf00447de5b03211b9}

\begin{DoxyCompactList}\small\item\em sets the pixelsize of the text (only available for the S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E mode and only works, if scaling is 1) \end{DoxyCompactList}\item 
\hypertarget{a01280_ae3d7e7d0a926e3c90fec7f2a804e3432}{void \hyperlink{a01280_ae3d7e7d0a926e3c90fec7f2a804e3432}{set\+Font} (const Q\+Font \&\+\_\+font)}\label{a01280_ae3d7e7d0a926e3c90fec7f2a804e3432}

\begin{DoxyCompactList}\small\item\em sets the font to be used for generating a texture with most characters of the chosen font \end{DoxyCompactList}\item 
float \hyperlink{a01280_ada2c2641359a614519ff347908a4a09d}{last\+Scale} ()
\begin{DoxyCompactList}\small\item\em returns the scaling factor for screen aligned text the text. returns 0, if textmode is not S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{a01280_ac3a32354a5c3a5a2e217044dd098cd47}{update\+Font} ()
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a01280_ac41ee440bfa6b3dc1b9cda3d246ffd97}{update\+V\+B\+O} ()
\item 
\hypertarget{a01280_a7742f1424e1aa22d2df461b51fec2dab}{void \hyperlink{a01280_a7742f1424e1aa22d2df461b51fec2dab}{bind\+V\+B\+O} ()}\label{a01280_a7742f1424e1aa22d2df461b51fec2dab}

\begin{DoxyCompactList}\small\item\em binds \hyperlink{a01280_a2a79969cd449ddd9d63d12eae00a7324}{vbo\+\_\+} and sets the necessary Open\+G\+L states \end{DoxyCompactList}\item 
\hypertarget{a01280_aeb7b2dbf1ef95296a9693a4e864df8ae}{void \hyperlink{a01280_aeb7b2dbf1ef95296a9693a4e864df8ae}{unbind\+V\+B\+O} ()}\label{a01280_aeb7b2dbf1ef95296a9693a4e864df8ae}

\begin{DoxyCompactList}\small\item\em unbinds \hyperlink{a01280_a2a79969cd449ddd9d63d12eae00a7324}{vbo\+\_\+} \end{DoxyCompactList}\item 
\hypertarget{a01280_a6129d07af3154cf51d08316648a35792}{void \hyperlink{a01280_a6129d07af3154cf51d08316648a35792}{apply\+Screen\+Aligned} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)}\label{a01280_a6129d07af3154cf51d08316648a35792}

\begin{DoxyCompactList}\small\item\em modifies \+\_\+state so that the modelviewmatrix will be screenaligned. remember to call \char`\"{}\+\_\+state.\+pop\+\_\+modelview\+\_\+matrix();\char`\"{} twice \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01280_a2f1c8207af03a138a40d271dd3f109b2}{static quint32 \hyperlink{a01280_a2f1c8207af03a138a40d271dd3f109b2}{nearest\+Power\+Of\+Two} (quint32 num)}\label{a01280_a2f1c8207af03a138a40d271dd3f109b2}

\begin{DoxyCompactList}\small\item\em returns the nearest greater power of 2 to num \end{DoxyCompactList}\item 
static std\+::map$<$ char, \\*
std\+::pair$<$ unsigned int, \\*
unsigned int $>$ $>$ \hyperlink{a01280_ae95dcaa87dbc0078a420ffab3f99ab13}{create\+Map} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01280_a71ea893d44fb311f99849b99dc4fee42}{double \hyperlink{a01280_a71ea893d44fb311f99849b99dc4fee42}{size\+\_\+}}\label{a01280_a71ea893d44fb311f99849b99dc4fee42}

\begin{DoxyCompactList}\small\item\em scaling factor by which the quads in \hyperlink{a01280_a2a79969cd449ddd9d63d12eae00a7324}{vbo\+\_\+} are scaled \end{DoxyCompactList}\item 
\hypertarget{a01280_a7e1a2ac70a0900876d12f0d8286c5cf6}{unsigned \hyperlink{a01280_a7e1a2ac70a0900876d12f0d8286c5cf6}{pixel\+Size\+\_\+}}\label{a01280_a7e1a2ac70a0900876d12f0d8286c5cf6}

\begin{DoxyCompactList}\small\item\em pixel\+Size of the text for the S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E mode \end{DoxyCompactList}\item 
\hypertarget{a01280_ae217a2a6dfc6f41b1f2d41addeead893}{std\+::string \hyperlink{a01280_ae217a2a6dfc6f41b1f2d41addeead893}{text\+\_\+}}\label{a01280_ae217a2a6dfc6f41b1f2d41addeead893}

\begin{DoxyCompactList}\small\item\em text to be displayed on quads in \hyperlink{a01280_a2a79969cd449ddd9d63d12eae00a7324}{vbo\+\_\+} \end{DoxyCompactList}\item 
\hypertarget{a01280_a30c91e0061f1a717b82403a3a674420e}{\hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{Text\+Mode} \hyperlink{a01280_a30c91e0061f1a717b82403a3a674420e}{text\+Mode\+\_\+}}\label{a01280_a30c91e0061f1a717b82403a3a674420e}

\begin{DoxyCompactList}\small\item\em current display mode of \hyperlink{a01280_ae217a2a6dfc6f41b1f2d41addeead893}{text\+\_\+} (S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D, S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E or O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D) \end{DoxyCompactList}\item 
G\+Luint \hyperlink{a01280_a2a79969cd449ddd9d63d12eae00a7324}{vbo\+\_\+}
\item 
\hypertarget{a01280_a2526ed025b1a6bdb9c5c8f9a276053c9}{std\+::vector$<$ G\+Lfloat $>$ \hyperlink{a01280_a2526ed025b1a6bdb9c5c8f9a276053c9}{vertex\+Buffer\+\_\+}}\label{a01280_a2526ed025b1a6bdb9c5c8f9a276053c9}

\begin{DoxyCompactList}\small\item\em buffer of vertex coordinates and texture coordinates of the quads \end{DoxyCompactList}\item 
\hypertarget{a01280_a951cc90957fa566ba5f42e7d7d5191bb}{size\+\_\+t {\bfseries old\+Vbo\+Size\+\_\+}}\label{a01280_a951cc90957fa566ba5f42e7d7d5191bb}

\item 
\hypertarget{a01280_a2b20cd43cdd0599404dc67ec59527717}{bool \hyperlink{a01280_a2b20cd43cdd0599404dc67ec59527717}{blend\+Enabled\+\_\+}}\label{a01280_a2b20cd43cdd0599404dc67ec59527717}

\begin{DoxyCompactList}\small\item\em stores if G\+L\+\_\+\+B\+L\+E\+N\+D was enabled on entering \hyperlink{a01280}{Text\+Node} \end{DoxyCompactList}\item 
\hypertarget{a01280_a51764f343bf170ed9e678ad3ceef8beb}{bool \hyperlink{a01280_a51764f343bf170ed9e678ad3ceef8beb}{texture2d\+Enabled\+\_\+}}\label{a01280_a51764f343bf170ed9e678ad3ceef8beb}

\begin{DoxyCompactList}\small\item\em stores if G\+L\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+2\+D was enabled on entering \hyperlink{a01280}{Text\+Node} \end{DoxyCompactList}\item 
\hypertarget{a01280_a2157c7737238d958c1716bdcad3f5b89}{bool \hyperlink{a01280_a2157c7737238d958c1716bdcad3f5b89}{cull\+Face\+Enabled\+\_\+}}\label{a01280_a2157c7737238d958c1716bdcad3f5b89}

\begin{DoxyCompactList}\small\item\em stores if G\+L\+\_\+\+C\+U\+L\+L\+\_\+\+F\+A\+C\+E was enabled on entering \hyperlink{a01280}{Text\+Node} \end{DoxyCompactList}\item 
\hypertarget{a01280_a99134558cdc7049b7f032c3d4f6f3b7d}{bool \hyperlink{a01280_a99134558cdc7049b7f032c3d4f6f3b7d}{depth\+Enabled\+\_\+}}\label{a01280_a99134558cdc7049b7f032c3d4f6f3b7d}

\begin{DoxyCompactList}\small\item\em stores if G\+L\+\_\+\+D\+E\+P\+T\+H\+\_\+\+T\+E\+S\+T was enabled on entering \hyperlink{a01280}{Text\+Node} \end{DoxyCompactList}\item 
\hypertarget{a01280_ac000bebe49fc9e0c36b5e21b89ba52a4}{bool \hyperlink{a01280_ac000bebe49fc9e0c36b5e21b89ba52a4}{always\+On\+Top\+\_\+}}\label{a01280_ac000bebe49fc9e0c36b5e21b89ba52a4}

\begin{DoxyCompactList}\small\item\em stores if text should be drawn always on top \end{DoxyCompactList}\item 
\hypertarget{a01280_abeca35f74ae6c5aae44de5705e2eb905}{bool \hyperlink{a01280_abeca35f74ae6c5aae44de5705e2eb905}{alpha\+Test\+\_\+}}\label{a01280_abeca35f74ae6c5aae44de5705e2eb905}

\begin{DoxyCompactList}\small\item\em stores if the alpha test was enabled \end{DoxyCompactList}\item 
\hypertarget{a01280_a2e7e0dc5891167cec5b00b9d8f1d7d65}{float \hyperlink{a01280_a2e7e0dc5891167cec5b00b9d8f1d7d65}{alpha\+Test\+Value\+\_\+}}\label{a01280_a2e7e0dc5891167cec5b00b9d8f1d7d65}

\begin{DoxyCompactList}\small\item\em stores the alpha value used for alpha test \end{DoxyCompactList}\item 
\hypertarget{a01280_a269c56214e2f98dd439e88188fed8af4}{G\+Lenum \hyperlink{a01280_a269c56214e2f98dd439e88188fed8af4}{alpha\+Test\+Func\+\_\+}}\label{a01280_a269c56214e2f98dd439e88188fed8af4}

\begin{DoxyCompactList}\small\item\em stores alpha test comparison function \end{DoxyCompactList}\item 
\hypertarget{a01280_ab81085654274effc16efc041ecdf3654}{G\+Lint \hyperlink{a01280_ab81085654274effc16efc041ecdf3654}{blend\+Src\+\_\+}}\label{a01280_ab81085654274effc16efc041ecdf3654}

\begin{DoxyCompactList}\small\item\em stores the sfactor parameter of gl\+Blend\+Func on entering \hyperlink{a01280}{Text\+Node} \end{DoxyCompactList}\item 
\hypertarget{a01280_a92fd7bf483e28e2ff8dc7991fde53bd0}{G\+Lint \hyperlink{a01280_a92fd7bf483e28e2ff8dc7991fde53bd0}{blend\+Dest\+\_\+}}\label{a01280_a92fd7bf483e28e2ff8dc7991fde53bd0}

\begin{DoxyCompactList}\small\item\em stores the dfactor parameter of gl\+Blend\+Func on entering \hyperlink{a01280}{Text\+Node} \end{DoxyCompactList}\item 
\hypertarget{a01280_a91d295a6755b4569af4865c0eb28be37}{\hyperlink{a01418}{A\+C\+G\+::\+Vertex\+Declaration} \hyperlink{a01280_a91d295a6755b4569af4865c0eb28be37}{vertex\+Decl\+\_\+}}\label{a01280_a91d295a6755b4569af4865c0eb28be37}

\begin{DoxyCompactList}\small\item\em stores the vertex declaration \end{DoxyCompactList}\item 
\hypertarget{a01280_ad235fdcba85363f2cf9b533ffff426ea}{float \hyperlink{a01280_ad235fdcba85363f2cf9b533ffff426ea}{last\+Scale\+\_\+}}\label{a01280_ad235fdcba85363f2cf9b533ffff426ea}

\begin{DoxyCompactList}\small\item\em stores the last scaling factor the text computed to S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01280_ae960f2493630375d7036b73157c97712}{static std\+::map$<$ char, \\*
std\+::pair$<$ unsigned int, \\*
unsigned int $>$ $>$ \hyperlink{a01280_ae960f2493630375d7036b73157c97712}{char\+To\+Index\+\_\+} = \hyperlink{a01280_ae95dcaa87dbc0078a420ffab3f99ab13}{Text\+Node\+::create\+Map}()}\label{a01280_ae960f2493630375d7036b73157c97712}

\begin{DoxyCompactList}\small\item\em maps most readable characters to indices for texture coordinate calculation in \hyperlink{a01280_ac41ee440bfa6b3dc1b9cda3d246ffd97}{update\+V\+B\+O()} \end{DoxyCompactList}\item 
\hypertarget{a01280_a2603ad4ae419aad68290f61130754025}{static Q\+Font \hyperlink{a01280_a2603ad4ae419aad68290f61130754025}{qfont\+\_\+} = Q\+Font(\char`\"{}Helvetica\char`\"{}, 30)}\label{a01280_a2603ad4ae419aad68290f61130754025}

\begin{DoxyCompactList}\small\item\em font that is used to generate the texture in \hyperlink{a01280_ac3a32354a5c3a5a2e217044dd098cd47}{update\+Font()} \end{DoxyCompactList}\item 
\hypertarget{a01280_a4635beab2951af1f136f61495869ebce}{static G\+Luint \hyperlink{a01280_a4635beab2951af1f136f61495869ebce}{texture\+\_\+} = 0}\label{a01280_a4635beab2951af1f136f61495869ebce}

\begin{DoxyCompactList}\small\item\em handle for the texture into which characters from \hyperlink{a01280_a2603ad4ae419aad68290f61130754025}{qfont\+\_\+} are painted in \hyperlink{a01280_ac3a32354a5c3a5a2e217044dd098cd47}{update\+Font()} \end{DoxyCompactList}\item 
\hypertarget{a01280_afbbe8a5355a56b9e86e500d857cb79d1}{static int \hyperlink{a01280_afbbe8a5355a56b9e86e500d857cb79d1}{image\+Width\+\_\+} = 0}\label{a01280_afbbe8a5355a56b9e86e500d857cb79d1}

\begin{DoxyCompactList}\small\item\em width of the generated texture \end{DoxyCompactList}\item 
\hypertarget{a01280_a4792b33e1f267dc01334902cedd712c2}{static int \hyperlink{a01280_a4792b33e1f267dc01334902cedd712c2}{image\+Height\+\_\+} = 0}\label{a01280_a4792b33e1f267dc01334902cedd712c2}

\begin{DoxyCompactList}\small\item\em height of the generated texture \end{DoxyCompactList}\item 
\hypertarget{a01280_ac3a226fed5200c68a2ddef1c8278ee2e}{static qreal \hyperlink{a01280_ac3a226fed5200c68a2ddef1c8278ee2e}{max\+Font\+Width\+\_\+} = 0.\+0}\label{a01280_ac3a226fed5200c68a2ddef1c8278ee2e}

\begin{DoxyCompactList}\small\item\em max width of qfont \end{DoxyCompactList}\item 
\hypertarget{a01280_a507cdfd558f4e6f8c3c746cb6f8b390a}{static const int \hyperlink{a01280_a507cdfd558f4e6f8c3c746cb6f8b390a}{number\+Of\+Chars\+\_\+} = 94}\label{a01280_a507cdfd558f4e6f8c3c746cb6f8b390a}

\begin{DoxyCompactList}\small\item\em number of characters that are drawn into the texture \end{DoxyCompactList}\item 
\hypertarget{a01280_ae42177a254ae0798279460bc05ce9814}{static const unsigned int \hyperlink{a01280_ae42177a254ae0798279460bc05ce9814}{rows\+\_\+} = 10}\label{a01280_ae42177a254ae0798279460bc05ce9814}

\begin{DoxyCompactList}\small\item\em number of rows of characters in the texture \end{DoxyCompactList}\item 
\hypertarget{a01280_ad0ca704ec777eaf9f6b609941c061cf0}{static const unsigned int \hyperlink{a01280_ad0ca704ec777eaf9f6b609941c061cf0}{columns\+\_\+} = 10}\label{a01280_ad0ca704ec777eaf9f6b609941c061cf0}

\begin{DoxyCompactList}\small\item\em number of columns of characters in the texture \end{DoxyCompactList}\item 
\hypertarget{a01280_a82b42dc13a472cfec3caef7c6b51362e}{static bool \hyperlink{a01280_a82b42dc13a472cfec3caef7c6b51362e}{initialised\+\_\+} = false}\label{a01280_a82b42dc13a472cfec3caef7c6b51362e}

\begin{DoxyCompactList}\small\item\em this is used to ensure that the texture is only generated once when necessary \end{DoxyCompactList}\item 
\hypertarget{a01280_aa899879094ca0325e6638578033131ce}{static Q\+Color \hyperlink{a01280_aa899879094ca0325e6638578033131ce}{color\+\_\+} = Q\+Color(255, 0, 0)}\label{a01280_aa899879094ca0325e6638578033131ce}

\begin{DoxyCompactList}\small\item\em color that is used to draw the characters into the texture in \hyperlink{a01280_ac3a32354a5c3a5a2e217044dd098cd47}{update\+Font()} \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{a00464}{Coordsys\+Node} renders A coordinate system.

T\+O\+D\+O\+: Den Fall mode\+\_\+ == P\+O\+S\+I\+T\+I\+O\+N implementieren. 25.\+11.\+08

\hyperlink{a01280}{Text\+Node} can be used to display a string on quads in Open\+G\+L. This string can be set with \hyperlink{a01280_ab074b86dcd8e79d8dca32de68f1a47a3}{set\+Text(std\+::string \+\_\+text)}. A \hyperlink{a01280}{Text\+Node} can be attached to a parent node by using the function \hyperlink{a00330_aeff14b8f67bddf92ea8a9a6d0cd73e7e}{Base\+Object\+Data\+::add\+Additional\+Node}. The quads can then be set to align to the parent (O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D) via the \hyperlink{a01280_ac4b53a591ff384cefa0c908d7efa08bd}{set\+Rendering\+Mode(\+Text\+Mode \+\_\+text\+Mode)} function. Alternatively the quads can be aligned to the screen (S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D). The font that is used to display text on the screen can be set with the \hyperlink{a01280_ae3d7e7d0a926e3c90fec7f2a804e3432}{set\+Font(const Q\+Font\& \+\_\+font)} function. Finally the quads can be scaled via the \hyperlink{a01280_a6337bc01c821267acfa2356f814360c6}{set\+Size(double \+\_\+size)} function. 

Definition at line 96 of file Text\+Node.\+hh.



\subsection{Member Enumeration Documentation}
\hypertarget{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!Text\+Mode@{Text\+Mode}}
\index{Text\+Mode@{Text\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{Text\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::\+Text\+Mode}}}\label{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}
\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E@{S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E@{S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E}}\item[{\em 
\hypertarget{a01280_a5fc659880ff80fa64c317fa9a4a4eb36a6a9acc007c4519e5d572d73dce1a0a4b}{S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E}\label{a01280_a5fc659880ff80fa64c317fa9a4a4eb36a6a9acc007c4519e5d572d73dce1a0a4b}
}]Text will always stay parallel to screen. \index{O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D@{O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D@{O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D}}\item[{\em 
\hypertarget{a01280_a5fc659880ff80fa64c317fa9a4a4eb36af278f8cf8584c617ea11c00f52b0b059}{O\+B\+J\+E\+C\+T\+\_\+\+A\+L\+I\+G\+N\+E\+D}\label{a01280_a5fc659880ff80fa64c317fa9a4a4eb36af278f8cf8584c617ea11c00f52b0b059}
}]Text will always stay parallel to screen (like S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D) and text has static size, independent of the camera position. Text will be transformed and projected by Modelview and projection matrix \end{description}
\end{Desc}


Definition at line 100 of file Text\+Node.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a01280_ab3f9f2488605d3dedf2257ea00e65fbb}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!Text\+Node@{Text\+Node}}
\index{Text\+Node@{Text\+Node}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{Text\+Node}]{\setlength{\rightskip}{0pt plus 5cm}A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::\+Text\+Node (
\begin{DoxyParamCaption}
\item[{{\bf Base\+Node} $\ast$}]{\+\_\+parent = {\ttfamily 0}, }
\item[{std\+::string}]{\+\_\+name = {\ttfamily \char`\"{}$<$TextNode$>$\char`\"{}}, }
\item[{{\bf Text\+Mode}}]{\+\_\+text\+Mode = {\ttfamily SCREEN\+\_\+ALIGNED}, }
\item[{bool}]{\+\_\+always\+On\+Top = {\ttfamily false}}
\end{DoxyParamCaption}
)}}\label{a01280_ab3f9f2488605d3dedf2257ea00e65fbb}
default constructor 
\begin{DoxyParams}{Parameters}
{\em \+\_\+parent} & Define the parent Node this node gets attached to \\
\hline
{\em \+\_\+name} & Name of this Node \\
\hline
{\em \+\_\+text\+Mode} & Define the text rendering style ( see \hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{Text\+Node\+::\+Text\+Mode} ) \\
\hline
{\em \+\_\+always\+On\+Top} & Draw text on top of everything else? \\
\hline
\end{DoxyParams}


Definition at line 96 of file Text\+Node.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a01280_ae95dcaa87dbc0078a420ffab3f99ab13}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!create\+Map@{create\+Map}}
\index{create\+Map@{create\+Map}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{create\+Map}]{\setlength{\rightskip}{0pt plus 5cm}std\+::map$<$ char, std\+::pair$<$ unsigned int, unsigned int $>$ $>$ A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::create\+Map (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [private]}}}\label{a01280_ae95dcaa87dbc0078a420ffab3f99ab13}
Creates a map \hyperlink{a01280_ae960f2493630375d7036b73157c97712}{char\+To\+Index\+\_\+} from most characters to an incrementing set of indices. These indices are used to create the texture coordinates in \hyperlink{a01280_ac41ee440bfa6b3dc1b9cda3d246ffd97}{update\+V\+B\+O()}. 

Definition at line 230 of file Text\+Node.\+cc.

\hypertarget{a01280_ada2c2641359a614519ff347908a4a09d}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!last\+Scale@{last\+Scale}}
\index{last\+Scale@{last\+Scale}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{last\+Scale}]{\setlength{\rightskip}{0pt plus 5cm}float A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::last\+Scale (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01280_ada2c2641359a614519ff347908a4a09d}


returns the scaling factor for screen aligned text the text. returns 0, if textmode is not S\+C\+R\+E\+E\+N\+\_\+\+A\+L\+I\+G\+N\+E\+D\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+S\+I\+Z\+E 

screen aligned static size text will be scaled up/down in 3d space to achieve the static size in screen space last\+Scale returns the last scaling factor where the text was multiplied, to compute e.\+g. a distance which is also static in screen space 

Definition at line 172 of file Text\+Node.\+hh.

\hypertarget{a01280_ac4b53a591ff384cefa0c908d7efa08bd}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!set\+Rendering\+Mode@{set\+Rendering\+Mode}}
\index{set\+Rendering\+Mode@{set\+Rendering\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{set\+Rendering\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::set\+Rendering\+Mode (
\begin{DoxyParamCaption}
\item[{{\bf Text\+Mode}}]{\+\_\+text\+Mode}
\end{DoxyParamCaption}
)}}\label{a01280_ac4b53a591ff384cefa0c908d7efa08bd}
Set the rendering mode ( see \hyperlink{a01280_a5fc659880ff80fa64c317fa9a4a4eb36}{Text\+Node\+::\+Text\+Mode} ) 

Definition at line 167 of file Text\+Node.\+cc.

\hypertarget{a01280_ac3a32354a5c3a5a2e217044dd098cd47}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!update\+Font@{update\+Font}}
\index{update\+Font@{update\+Font}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{update\+Font}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::update\+Font (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [protected]}}}\label{a01280_ac3a32354a5c3a5a2e217044dd098cd47}
Generates a texture by drawing most characters into one texture. This texture is then used to draw single characters onto quads 

Definition at line 369 of file Text\+Node.\+cc.

\hypertarget{a01280_ac41ee440bfa6b3dc1b9cda3d246ffd97}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!update\+V\+B\+O@{update\+V\+B\+O}}
\index{update\+V\+B\+O@{update\+V\+B\+O}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{update\+V\+B\+O}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::update\+V\+B\+O (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01280_ac41ee440bfa6b3dc1b9cda3d246ffd97}
generates a quad for each character in \hyperlink{a01280_ae217a2a6dfc6f41b1f2d41addeead893}{text\+\_\+} and also calculates the texture coordinates for each quad's character 

Definition at line 432 of file Text\+Node.\+cc.



\subsection{Member Data Documentation}
\hypertarget{a01280_a2a79969cd449ddd9d63d12eae00a7324}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}!vbo\+\_\+@{vbo\+\_\+}}
\index{vbo\+\_\+@{vbo\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}}
\subsubsection[{vbo\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node\+::vbo\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a01280_a2a79969cd449ddd9d63d12eae00a7324}
handle to the vertex buffer object, containing the quads on which the characters in \hyperlink{a01280_ae217a2a6dfc6f41b1f2d41addeead893}{text\+\_\+} are rendered 

Definition at line 224 of file Text\+Node.\+hh.



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