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


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

Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:A\+C\+G\+:\+:Scene\+Graph\+:\+:Base\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a00328}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a01170}{Shader\+Set}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473}{Status\+Mode} \{ \hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473a0e86f5b231b35c0419a8eb157f6d70f4}{Active} = 0x1, 
\hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473a5b94ab726395e5015fc897ca768f973d}{Hide\+Node} = 0x2, 
\hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473a1ef496838beb3f1fb686c8a510b61b20}{Hide\+Children} = 0x4, 
\hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473a0d65f369a2e52b86701e02fa8ebaaf56}{Hide\+Subtree} = 0x8
 \}
\begin{DoxyCompactList}\small\item\em Status modi. \end{DoxyCompactList}\item 
enum \hyperlink{a00328_aaf4401b85d9945ae3ae933baa53394c9}{Traverse\+Mode} \{ \hyperlink{a00328_aaf4401b85d9945ae3ae933baa53394c9a646232c71e2399fd8b05e3e2ba2821ee}{Node\+First} = 0x1, 
\hyperlink{a00328_aaf4401b85d9945ae3ae933baa53394c9a232053935e29ac10e7c3744e0573712e}{Children\+First} = 0x2, 
\hyperlink{a00328_aaf4401b85d9945ae3ae933baa53394c9a957f92d8798be2b3470ff95539e06de1}{Second\+Pass} = 0x4
 \}
\begin{DoxyCompactList}\small\item\em Node traverse types. \end{DoxyCompactList}\item 
\hypertarget{a00328_a5e7a1ece555e7eb600dcb68fafb165b1}{typedef std\+::list$<$ \hyperlink{a00328}{Base\+Node} $\ast$ $>$\\*
\+::const\+\_\+iterator \hyperlink{a00328_a5e7a1ece555e7eb600dcb68fafb165b1}{Const\+Child\+Iter}}\label{a00328_a5e7a1ece555e7eb600dcb68fafb165b1}

\begin{DoxyCompactList}\small\item\em allows to iterate over children \end{DoxyCompactList}\item 
\hypertarget{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}{typedef std\+::list$<$ \hyperlink{a00328}{Base\+Node} $\ast$ $>$\\*
\+::iterator \hyperlink{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}{Child\+Iter}}\label{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}

\begin{DoxyCompactList}\small\item\em allows to iterate over children \end{DoxyCompactList}\item 
\hypertarget{a00328_afeec67e348ed737269b922f835ac4824}{typedef std\+::list$<$ \hyperlink{a00328}{Base\+Node} $\ast$ $>$\\*
\+::const\+\_\+reverse\+\_\+iterator \hyperlink{a00328_afeec67e348ed737269b922f835ac4824}{Const\+Child\+R\+Iter}}\label{a00328_afeec67e348ed737269b922f835ac4824}

\begin{DoxyCompactList}\small\item\em allows to reverse iterate over children \end{DoxyCompactList}\item 
\hypertarget{a00328_a5ad0e61e584679c98b42088ad0e6f82a}{typedef std\+::list$<$ \hyperlink{a00328}{Base\+Node} $\ast$ $>$\\*
\+::reverse\+\_\+iterator \hyperlink{a00328_a5ad0e61e584679c98b42088ad0e6f82a}{Child\+R\+Iter}}\label{a00328_a5ad0e61e584679c98b42088ad0e6f82a}

\begin{DoxyCompactList}\small\item\em allows to reverse iterate over children \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00328_abad1a546da418bd8688ff15b22e1dc65}{\hyperlink{a00328_abad1a546da418bd8688ff15b22e1dc65}{Base\+Node} (\hyperlink{a00328}{Base\+Node} $\ast$\+\_\+parent=0, std\+::string \+\_\+name=\char`\"{}$<$unknown$>$\char`\"{})}\label{a00328_abad1a546da418bd8688ff15b22e1dc65}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a00328_a75b06bfae492d4d77c5a4d78e125b604}{\hyperlink{a00328_a75b06bfae492d4d77c5a4d78e125b604}{Base\+Node} (\hyperlink{a00328}{Base\+Node} $\ast$\+\_\+parent, \hyperlink{a00328}{Base\+Node} $\ast$\+\_\+child, std\+::string \+\_\+name=\char`\"{}$<$unknown$>$\char`\"{})}\label{a00328_a75b06bfae492d4d77c5a4d78e125b604}

\begin{DoxyCompactList}\small\item\em Put this node between \+\_\+parent and \+\_\+child. \end{DoxyCompactList}\item 
\hypertarget{a00328_a5f9ab0cf2bc6945d158dc23d4908570c}{virtual \hyperlink{a00328_a5f9ab0cf2bc6945d158dc23d4908570c}{$\sim$\+Base\+Node} ()}\label{a00328_a5f9ab0cf2bc6945d158dc23d4908570c}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a076a775dc6a63ebdd903e2ff7feb5be7}{delete\+\_\+subtree} ()
\begin{DoxyCompactList}\small\item\em Delete the whole subtree of this node. \end{DoxyCompactList}\item 
\hypertarget{a00328_a42eef41fdd8a734b18d9d8ba5cd34826}{virtual const std\+::string \& \hyperlink{a00328_a42eef41fdd8a734b18d9d8ba5cd34826}{class\+Name} () const =0}\label{a00328_a42eef41fdd8a734b18d9d8ba5cd34826}

\begin{DoxyCompactList}\small\item\em Return class name (implemented by the A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E macro) \end{DoxyCompactList}\item 
virtual \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a00328_ad0f2ceb5083801533c4711b468f67bc5}{available\+Draw\+Modes} () const 
\item 
virtual void \hyperlink{a00328_ac956bf4aae718f4cb89c78979dc47280}{bounding\+Box} (\hyperlink{a01409}{Vec3d} \&, \hyperlink{a01409}{Vec3d} \&)
\item 
virtual void \hyperlink{a00328_aa5dedbaaca06ced237cc72dda563640d}{enter} (\hyperlink{a00642}{G\+L\+State} \&, const \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \&)
\item 
virtual void \hyperlink{a00328_acda5dfbbd2d63f6fb509cc99e1aa422b}{draw} (\hyperlink{a00642}{G\+L\+State} \&, const \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \&)
\begin{DoxyCompactList}\small\item\em Draw this node using the draw modes \+\_\+draw\+Mode. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00328_acb425c90def34591f6ee41e440dc7f69}{get\+Render\+Objects} (\hyperlink{a00737}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a00642}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{a00790}{Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em Deferred draw call with shader based renderer. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00328_a89b2e2b616e717b78262d1900e96de77}{leave} (\hyperlink{a00642}{G\+L\+State} \&, const \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \&)
\item 
virtual void \hyperlink{a00328_a5dd4dadc634ff50b9874a404fcd5c8df}{enter\+Pick} (\hyperlink{a00642}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)
\item 
virtual void \hyperlink{a00328_a89fb19e5b68bd875eaa7047738e41217}{pick} (\hyperlink{a00642}{G\+L\+State} \&, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target})
\item 
virtual void \hyperlink{a00328_acecbc50f36560ef4fd16a65f8b0f5b90}{leave\+Pick} (\hyperlink{a00642}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)
\item 
void \hyperlink{a00328_a1876701a10d671faa29a6c3df189cfb2}{enable\+Picking} (bool \+\_\+enable)
\item 
bool \hyperlink{a00328_ac62737fa43a069be6b781e278f0624d4}{picking\+Enabled} ()
\item 
\hypertarget{a00328_af487fff50b4876ac0fa88008e701008f}{virtual void \hyperlink{a00328_af487fff50b4876ac0fa88008e701008f}{mouse\+Event} (\hyperlink{a00642}{G\+L\+State} \&, Q\+Mouse\+Event $\ast$)}\label{a00328_af487fff50b4876ac0fa88008e701008f}

\begin{DoxyCompactList}\small\item\em Handle mouse event (some interaction, e.\+g. modeling) \end{DoxyCompactList}\item 
\hypertarget{a00328_a3a843d8c7dc183102d12b248dedc46d9}{void \hyperlink{a00328_a3a843d8c7dc183102d12b248dedc46d9}{set\+Dirty} (bool \+\_\+dirty=true)}\label{a00328_a3a843d8c7dc183102d12b248dedc46d9}

\begin{DoxyCompactList}\small\item\em mark node for redrawn \end{DoxyCompactList}\item 
\hypertarget{a00328_a99488bdbd1f1600ce5033031f814c0f2}{bool \hyperlink{a00328_a99488bdbd1f1600ce5033031f814c0f2}{is\+Dirty} () const }\label{a00328_a99488bdbd1f1600ce5033031f814c0f2}

\begin{DoxyCompactList}\small\item\em Check if node should be redrawn. \end{DoxyCompactList}\item 
\hypertarget{a00328_ac3761ffddd38028382eac4171eea00eb}{\hyperlink{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}{Child\+Iter} \hyperlink{a00328_ac3761ffddd38028382eac4171eea00eb}{children\+Begin} ()}\label{a00328_ac3761ffddd38028382eac4171eea00eb}

\begin{DoxyCompactList}\small\item\em Returns\+: begin-\/iterator of children. \end{DoxyCompactList}\item 
\hypertarget{a00328_a53d3969d6b7616926c7a63f49a169982}{\hyperlink{a00328_a5e7a1ece555e7eb600dcb68fafb165b1}{Const\+Child\+Iter} \hyperlink{a00328_a53d3969d6b7616926c7a63f49a169982}{children\+Begin} () const }\label{a00328_a53d3969d6b7616926c7a63f49a169982}

\begin{DoxyCompactList}\small\item\em Same but {\ttfamily cont}. \end{DoxyCompactList}\item 
\hypertarget{a00328_ac55d7a3d0aa1299f35294ce9b0c9e6c4}{\hyperlink{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}{Child\+Iter} \hyperlink{a00328_ac55d7a3d0aa1299f35294ce9b0c9e6c4}{children\+End} ()}\label{a00328_ac55d7a3d0aa1299f35294ce9b0c9e6c4}

\begin{DoxyCompactList}\small\item\em Returns\+: end-\/iterator of children. \end{DoxyCompactList}\item 
\hypertarget{a00328_ae61b28c3888c9ee6f988fc366097d442}{\hyperlink{a00328_a5e7a1ece555e7eb600dcb68fafb165b1}{Const\+Child\+Iter} \hyperlink{a00328_ae61b28c3888c9ee6f988fc366097d442}{children\+End} () const }\label{a00328_ae61b28c3888c9ee6f988fc366097d442}

\begin{DoxyCompactList}\small\item\em Same but {\ttfamily const}. \end{DoxyCompactList}\item 
\hypertarget{a00328_ae94bc2da8100bff26777c3bf1bce4ad9}{\hyperlink{a00328_a5ad0e61e584679c98b42088ad0e6f82a}{Child\+R\+Iter} \hyperlink{a00328_ae94bc2da8100bff26777c3bf1bce4ad9}{children\+R\+Begin} ()}\label{a00328_ae94bc2da8100bff26777c3bf1bce4ad9}

\begin{DoxyCompactList}\small\item\em Returns\+: reverse begin-\/iterator of children. \end{DoxyCompactList}\item 
\hypertarget{a00328_aeb18d2000e9859a44ba0eb6e623fe601}{\hyperlink{a00328_afeec67e348ed737269b922f835ac4824}{Const\+Child\+R\+Iter} \hyperlink{a00328_aeb18d2000e9859a44ba0eb6e623fe601}{children\+R\+Begin} () const }\label{a00328_aeb18d2000e9859a44ba0eb6e623fe601}

\begin{DoxyCompactList}\small\item\em Same but const. \end{DoxyCompactList}\item 
\hypertarget{a00328_a699935ecde635aae0d217fe1e95900fb}{\hyperlink{a00328_a5ad0e61e584679c98b42088ad0e6f82a}{Child\+R\+Iter} \hyperlink{a00328_a699935ecde635aae0d217fe1e95900fb}{children\+R\+End} ()}\label{a00328_a699935ecde635aae0d217fe1e95900fb}

\begin{DoxyCompactList}\small\item\em Returns\+: reverse end-\/iterator of children. \end{DoxyCompactList}\item 
\hypertarget{a00328_a52be1886e7adc4ce2e6382ce65bb4654}{\hyperlink{a00328_afeec67e348ed737269b922f835ac4824}{Const\+Child\+R\+Iter} \hyperlink{a00328_a52be1886e7adc4ce2e6382ce65bb4654}{children\+R\+End} () const }\label{a00328_a52be1886e7adc4ce2e6382ce65bb4654}

\begin{DoxyCompactList}\small\item\em Same but {\ttfamily const}. \end{DoxyCompactList}\item 
\hypertarget{a00328_a92b664e0ac5eae963d2f3abeec8fb230}{void \hyperlink{a00328_a92b664e0ac5eae963d2f3abeec8fb230}{push\+\_\+back} (\hyperlink{a00328}{Base\+Node} $\ast$\+\_\+node)}\label{a00328_a92b664e0ac5eae963d2f3abeec8fb230}

\begin{DoxyCompactList}\small\item\em Insert \+\_\+node at the end of the list of children. \end{DoxyCompactList}\item 
void \hyperlink{a00328_abc5afbc11830327e9232f0771bae4d5c}{remove} (\hyperlink{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}{Child\+Iter} \+\_\+pos)
\item 
\hypertarget{a00328_a1f72ecd5b4bfbd18170f5081d23d45e6}{size\+\_\+t \hyperlink{a00328_a1f72ecd5b4bfbd18170f5081d23d45e6}{n\+Children} () const }\label{a00328_a1f72ecd5b4bfbd18170f5081d23d45e6}

\begin{DoxyCompactList}\small\item\em number of children \end{DoxyCompactList}\item 
\hyperlink{a00328_af8ab02e1eb2edfa8a661a1ba91e318c4}{Child\+Iter} \hyperlink{a00328_a0491ae6551780b9a44a6d852f246ef40}{find} (\hyperlink{a00328}{Base\+Node} $\ast$\+\_\+node)
\item 
\hyperlink{a00328}{Base\+Node} $\ast$ \hyperlink{a00328_a98bf4beb2f4c543c86424d5eb0a37574}{find} (const std\+::string \&\+\_\+name)
\item 
\hypertarget{a00328_ade1032dc7ff531a6363ca6621ca2a0a4}{\hyperlink{a00328}{Base\+Node} $\ast$ \hyperlink{a00328_ade1032dc7ff531a6363ca6621ca2a0a4}{parent} ()}\label{a00328_ade1032dc7ff531a6363ca6621ca2a0a4}

\begin{DoxyCompactList}\small\item\em Get the nodes parent node. \end{DoxyCompactList}\item 
\hypertarget{a00328_af38915ae58b15ed6ac219fba742b9c80}{const \hyperlink{a00328}{Base\+Node} $\ast$ \hyperlink{a00328_af38915ae58b15ed6ac219fba742b9c80}{parent} () const }\label{a00328_af38915ae58b15ed6ac219fba742b9c80}

\begin{DoxyCompactList}\small\item\em Get the nodes parent node. \end{DoxyCompactList}\item 
void \hyperlink{a00328_aa16ecd9656f0231f01fd1adaa11c3f99}{set\+\_\+parent} (\hyperlink{a00328}{Base\+Node} $\ast$\+\_\+parent)
\begin{DoxyCompactList}\small\item\em Set the parent of this node. \end{DoxyCompactList}\item 
\hypertarget{a00328_a837a9b9f3ffc7b1691795e7bd6fcbe5f}{\hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473}{Status\+Mode} \hyperlink{a00328_a837a9b9f3ffc7b1691795e7bd6fcbe5f}{status} () const }\label{a00328_a837a9b9f3ffc7b1691795e7bd6fcbe5f}

\begin{DoxyCompactList}\small\item\em Get node's status. \end{DoxyCompactList}\item 
\hypertarget{a00328_aa79fbee4c19ff0f3886e35d0a1c538ef}{void \hyperlink{a00328_aa79fbee4c19ff0f3886e35d0a1c538ef}{set\+\_\+status} (\hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473}{Status\+Mode} \+\_\+s)}\label{a00328_aa79fbee4c19ff0f3886e35d0a1c538ef}

\begin{DoxyCompactList}\small\item\em Set the status of this node. \end{DoxyCompactList}\item 
\hypertarget{a00328_ae622ae0891629ae16cab6097b7ee9fbe}{void \hyperlink{a00328_ae622ae0891629ae16cab6097b7ee9fbe}{hide} ()}\label{a00328_ae622ae0891629ae16cab6097b7ee9fbe}

\begin{DoxyCompactList}\small\item\em Hide Node\+: set status to Hide\+Node. \end{DoxyCompactList}\item 
\hypertarget{a00328_a29ff6e3772ee2938c7e2c79d70095345}{void \hyperlink{a00328_a29ff6e3772ee2938c7e2c79d70095345}{show} ()}\label{a00328_a29ff6e3772ee2938c7e2c79d70095345}

\begin{DoxyCompactList}\small\item\em Show node\+: set status to Active. \end{DoxyCompactList}\item 
\hypertarget{a00328_a16c454a4c816cfc23a22c7b2cd0b9a51}{bool \hyperlink{a00328_a16c454a4c816cfc23a22c7b2cd0b9a51}{visible} ()}\label{a00328_a16c454a4c816cfc23a22c7b2cd0b9a51}

\begin{DoxyCompactList}\small\item\em Is node visible (status == Active)? \end{DoxyCompactList}\item 
\hypertarget{a00328_afb4f45d973343e795eccfc955fd29b87}{bool \hyperlink{a00328_afb4f45d973343e795eccfc955fd29b87}{hidden} ()}\label{a00328_afb4f45d973343e795eccfc955fd29b87}

\begin{DoxyCompactList}\small\item\em Is node not visible (status != Active)? \end{DoxyCompactList}\item 
\hypertarget{a00328_a8b73dd4531e7ab2de027207a8ec311bd}{std\+::string \hyperlink{a00328_a8b73dd4531e7ab2de027207a8ec311bd}{name} () const }\label{a00328_a8b73dd4531e7ab2de027207a8ec311bd}

\begin{DoxyCompactList}\small\item\em Returns\+: name of node (needs not be unique) \end{DoxyCompactList}\item 
\hypertarget{a00328_a2a8685e1b793fe10f7633366f623b929}{void \hyperlink{a00328_a2a8685e1b793fe10f7633366f623b929}{name} (const std\+::string \&\+\_\+name)}\label{a00328_a2a8685e1b793fe10f7633366f623b929}

\begin{DoxyCompactList}\small\item\em rename a node \end{DoxyCompactList}\item 
unsigned int \hyperlink{a00328_a2d35dc63d2477bbdfb76706461f4cd2c}{id} () const 
\item 
\hypertarget{a00328_a5dde64d59e91dfde359e8a1f7a74d5e2}{\hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a00328_a5dde64d59e91dfde359e8a1f7a74d5e2}{draw\+Mode} () const }\label{a00328_a5dde64d59e91dfde359e8a1f7a74d5e2}

\begin{DoxyCompactList}\small\item\em Return the own draw modes of this node. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a8e2d9ad8cec26d8afec65421ffb10e34}{draw\+Mode} (\hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode)
\item 
\hypertarget{a00328_aae08f43dace7b352087e0275c8a8a8e6}{unsigned int \hyperlink{a00328_aae08f43dace7b352087e0275c8a8a8e6}{traverse\+Mode} () const }\label{a00328_aae08f43dace7b352087e0275c8a8a8e6}

\begin{DoxyCompactList}\small\item\em Return how the node should be traversed. \end{DoxyCompactList}\item 
\hypertarget{a00328_ae8e768562af83516062ed270a52df8d1}{void \hyperlink{a00328_ae8e768562af83516062ed270a52df8d1}{set\+Traverse\+Mode} (unsigned int \+\_\+mode)}\label{a00328_ae8e768562af83516062ed270a52df8d1}

\begin{DoxyCompactList}\small\item\em Set traverse mode for node. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00328_a4c00179ea515ec99f6a017e181bc5e92}{\hyperlink{a00328_a4c00179ea515ec99f6a017e181bc5e92}{Base\+Node} (const \hyperlink{a00328}{Base\+Node} \&)}\label{a00328_a4c00179ea515ec99f6a017e181bc5e92}

\begin{DoxyCompactList}\small\item\em Copy constructor. Disabled. \end{DoxyCompactList}\item 
\hypertarget{a00328_a91465cf47070aac51e27310fb9719bf9}{void \hyperlink{a00328_a91465cf47070aac51e27310fb9719bf9}{operator=} (const \hyperlink{a00328}{Base\+Node} \&)}\label{a00328_a91465cf47070aac51e27310fb9719bf9}

\begin{DoxyCompactList}\small\item\em Assignment operator. Disabled. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00328_ae921532bd16b791b7cb3c4017e731593}{\hyperlink{a00328}{Base\+Node} $\ast$ \hyperlink{a00328_ae921532bd16b791b7cb3c4017e731593}{parent\+\_\+}}\label{a00328_ae921532bd16b791b7cb3c4017e731593}

\begin{DoxyCompactList}\small\item\em pointer to parent node \end{DoxyCompactList}\item 
\hypertarget{a00328_ab718e9b42fe85348bb92a0aa6f64a50c}{std\+::string \hyperlink{a00328_ab718e9b42fe85348bb92a0aa6f64a50c}{name\+\_\+}}\label{a00328_ab718e9b42fe85348bb92a0aa6f64a50c}

\begin{DoxyCompactList}\small\item\em name of node \end{DoxyCompactList}\item 
\hypertarget{a00328_a6e6a5c3f81cc1e9447b9a9881b40f2c6}{\hyperlink{a00328_a02530b4f4e203cc38b01b89bef128473}{Status\+Mode} \hyperlink{a00328_a6e6a5c3f81cc1e9447b9a9881b40f2c6}{status\+\_\+}}\label{a00328_a6e6a5c3f81cc1e9447b9a9881b40f2c6}

\begin{DoxyCompactList}\small\item\em node \hyperlink{a00328_a837a9b9f3ffc7b1691795e7bd6fcbe5f}{status()} \end{DoxyCompactList}\item 
\hypertarget{a00328_aafc0830823901aaac3493702c988300c}{std\+::list$<$ \hyperlink{a00328}{Base\+Node} $\ast$ $>$ \hyperlink{a00328_aafc0830823901aaac3493702c988300c}{children\+\_\+}}\label{a00328_aafc0830823901aaac3493702c988300c}

\begin{DoxyCompactList}\small\item\em list of children \end{DoxyCompactList}\item 
\hypertarget{a00328_a8558677c6b853aa79233305cfd82829a}{unsigned int \hyperlink{a00328_a8558677c6b853aa79233305cfd82829a}{id\+\_\+}}\label{a00328_a8558677c6b853aa79233305cfd82829a}

\begin{DoxyCompactList}\small\item\em I\+D of node. \end{DoxyCompactList}\item 
\hypertarget{a00328_ab8118fb2efad88b0b5c1c458d8fa8162}{\hyperlink{a00510}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a00328_ab8118fb2efad88b0b5c1c458d8fa8162}{draw\+Mode\+\_\+}}\label{a00328_ab8118fb2efad88b0b5c1c458d8fa8162}

\begin{DoxyCompactList}\small\item\em private draw mode \end{DoxyCompactList}\item 
bool \hyperlink{a00328_ab81858876b14881034d6a37d263e0092}{picking\+Enabled\+\_\+}
\item 
\hypertarget{a00328_a809d5a2b9aa6ea64034f2adcde759ae2}{bool \hyperlink{a00328_a809d5a2b9aa6ea64034f2adcde759ae2}{dirty\+\_\+}}\label{a00328_a809d5a2b9aa6ea64034f2adcde759ae2}

\begin{DoxyCompactList}\small\item\em Flag indicating that the node has to be redrawn. \end{DoxyCompactList}\item 
\hypertarget{a00328_a32fa1e4bf63f89156cab873756372e1f}{unsigned int \hyperlink{a00328_a32fa1e4bf63f89156cab873756372e1f}{traverse\+Mode\+\_\+}}\label{a00328_a32fa1e4bf63f89156cab873756372e1f}

\begin{DoxyCompactList}\small\item\em traverse mode \end{DoxyCompactList}\item 
\hypertarget{a00328_a843ec7045832d651152b15ac153524ea}{std\+::map\\*
$<$ \hyperlink{a03346_abb087eecc84bd0123089399da8979113}{Draw\+Modes\+::\+Draw\+Mode\+Primitive}, \\*
\hyperlink{a01170}{Shader\+Set} $>$ \hyperlink{a00328_a843ec7045832d651152b15ac153524ea}{shader\+Settings\+\_\+}}\label{a00328_a843ec7045832d651152b15ac153524ea}

\begin{DoxyCompactList}\small\item\em shader settings for primitive modes \end{DoxyCompactList}\item 
\hypertarget{a00328_ab276bd43a438638d0054ba7aac11a1ae}{std\+::map$<$ int, \\*
\hyperlink{a01285}{Render\+Object\+::\+Texture} $>$ \hyperlink{a00328_ab276bd43a438638d0054ba7aac11a1ae}{texture\+Settings\+\_\+}}\label{a00328_ab276bd43a438638d0054ba7aac11a1ae}

\begin{DoxyCompactList}\small\item\em texture settings for shader based rendering \end{DoxyCompactList}\item 
\hypertarget{a00328_ab148d11e5f972f13df8b37ba5e1a7c3d}{const \hyperlink{a01385}{G\+L\+S\+L\+::\+Uniform\+Pool} $\ast$ \hyperlink{a00328_ab148d11e5f972f13df8b37ba5e1a7c3d}{uniform\+Pool\+\_\+}}\label{a00328_ab148d11e5f972f13df8b37ba5e1a7c3d}

\begin{DoxyCompactList}\small\item\em user provided uniform pool for shader constants \end{DoxyCompactList}\item 
\hypertarget{a00328_affaa81fd04fad5c4c05b7ac5cf97da1a}{\hyperlink{a01112}{Render\+Object\+Modifier} $\ast$ \hyperlink{a00328_affaa81fd04fad5c4c05b7ac5cf97da1a}{render\+Modifier\+\_\+}}\label{a00328_affaa81fd04fad5c4c05b7ac5cf97da1a}

\begin{DoxyCompactList}\small\item\em render-\/object modifier \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00328_a501d3f3b8b423e100a2e8bfc6a7ffa0b}{static unsigned int \hyperlink{a00328_a501d3f3b8b423e100a2e8bfc6a7ffa0b}{last\+\_\+id\+\_\+used\+\_\+\+\_\+} = 0}\label{a00328_a501d3f3b8b423e100a2e8bfc6a7ffa0b}

\begin{DoxyCompactList}\small\item\em used to provide unique I\+Ds to nodes \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Render pass controls}
\label{_amgrp36d2e4439deb179166c805c972ab9867}%
 The render pass controls are only used during multipass traversal. There are two types of multipass controls. One type controls if the enter and leave functions of the nodes are used (Render\+Status\+Pass) or if the actual draw function is called (Render\+Draw\+Pass). The bitmasks define if the functions are called by the traverse\+\_\+multipass operation. The bitmask are initialized to run in the first path.~\newline
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00328_a6c2806f5fe93a018b2a51f9bae6c8e24}{enum \hyperlink{a00328_a6c2806f5fe93a018b2a51f9bae6c8e24}{P\+A\+S\+S\+E\+S} \{ \\*
{\bfseries N\+O\+P\+A\+S\+S} = 0, 
{\bfseries A\+L\+L\+P\+A\+S\+S\+E\+S} = 1 $<$$<$ 0, 
{\bfseries P\+A\+S\+S\+\_\+1} = 1 $<$$<$ 1, 
{\bfseries P\+A\+S\+S\+\_\+2} = 1 $<$$<$ 2, 
\\*
{\bfseries P\+A\+S\+S\+\_\+3} = 1 $<$$<$ 3, 
{\bfseries P\+A\+S\+S\+\_\+4} = 1 $<$$<$ 4, 
{\bfseries P\+A\+S\+S\+\_\+5} = 1 $<$$<$ 5, 
{\bfseries P\+A\+S\+S\+\_\+6} = 1 $<$$<$ 6, 
\\*
{\bfseries P\+A\+S\+S\+\_\+7} = 1 $<$$<$ 7, 
{\bfseries P\+A\+S\+S\+\_\+8} = 1 $<$$<$ 8
 \}}\label{a00328_a6c2806f5fe93a018b2a51f9bae6c8e24}

\begin{DoxyCompactList}\small\item\em This enum should be used to enable rendering of a node in different. \end{DoxyCompactList}\item 
\hypertarget{a00328_ac74ea64a90593f62c0ad07916c15b538}{typedef unsigned int \hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask}}\label{a00328_ac74ea64a90593f62c0ad07916c15b538}

\begin{DoxyCompactList}\small\item\em Multipass pass bit mask type. \end{DoxyCompactList}\item 
\hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask} \hyperlink{a00328_a82bcdf6070fbcc508dba14f34e19f2f7}{multipass\+Status} () const 
\begin{DoxyCompactList}\small\item\em Get the current multipass settings for the nodes status functions. \end{DoxyCompactList}\item 
void \hyperlink{a00328_ad87b0dbdabb760f5f3c1b6c608354dd8}{set\+Multipass\+Status} (const \hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask} \+\_\+pass\+Status)
\begin{DoxyCompactList}\small\item\em Set multipass settings for the nodes status functions. \end{DoxyCompactList}\item 
void \hyperlink{a00328_ad91cf957c42d06d0f2134d38fe832ae2}{multipass\+Status\+Set\+Active} (const unsigned int \+\_\+i, bool \+\_\+active)
\begin{DoxyCompactList}\small\item\em Set multipass status to traverse in a specific pass. \end{DoxyCompactList}\item 
bool \hyperlink{a00328_a7e12fbef1820e55a0fc1b44a589ab582}{multipass\+Status\+Active} (const unsigned int \+\_\+i) const 
\begin{DoxyCompactList}\small\item\em Get multipass status to traverse in a specific pass. \end{DoxyCompactList}\item 
\hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask} \hyperlink{a00328_a53a2b9fdf451332abf9c8af13728cb86}{multipass\+Node} () const 
\begin{DoxyCompactList}\small\item\em Get the current multipass settings for the node. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a6c9b9dfdbd45a0b1d96852acef8491d4}{set\+Multipass\+Node} (const \hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask} \+\_\+pass\+Node)
\begin{DoxyCompactList}\small\item\em Set multipass settings for the node. \end{DoxyCompactList}\item 
void \hyperlink{a00328_aa5b51555586e02aa737000ecd7746b75}{multipass\+Node\+Set\+Active} (const unsigned int \+\_\+i, bool \+\_\+active)
\begin{DoxyCompactList}\small\item\em Set Node status to traverse in a specific pass. \end{DoxyCompactList}\item 
bool \hyperlink{a00328_abe3efb91e89be0a15d6bfe4862915ac3}{multipass\+Node\+Active} (const unsigned int \+\_\+i) const 
\begin{DoxyCompactList}\small\item\em Get Node status to traverse in a specific pass. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Render\+Object controls}
\label{_amgrp7d67d64816b31378d36bf835a4cc04e9}%
 The render pass controls are only used during shader-\/based rendering with render-\/objects. It is possible to provide shader and state settings that are copied to render-\/objects. These functions do not affect the fixed-\/function pipeline implementation of the scenegraph (\hyperlink{a00328_aa5dedbaaca06ced237cc72dda563640d}{enter()} \hyperlink{a00328_acda5dfbbd2d63f6fb509cc99e1aa422b}{draw()} \hyperlink{a00328_a89b2e2b616e717b78262d1900e96de77}{leave()}).~\newline
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask} \hyperlink{a00328_a73e4c2889cbdb22e7ecab8d4536b8408}{multipass\+Status\+\_\+}
\item 
\hyperlink{a00328_ac74ea64a90593f62c0ad07916c15b538}{Multipass\+Bit\+Mask} \hyperlink{a00328_a2b2533543430ecbf1990cd52939a1d05}{multipass\+Node\+\_\+}
\item 
void \hyperlink{a00328_acba8f8c7c0da363df6f226c462dac6e4}{set\+Render\+Object\+Shaders} (const std\+::string \&\+\_\+vertex\+Shader\+File, const std\+::string \&\+\_\+geometry\+Shader\+File, const std\+::string \&\+\_\+fragment\+Shader\+File, bool \+\_\+relative\+Paths=true, \hyperlink{a03346_abb087eecc84bd0123089399da8979113}{Draw\+Modes\+::\+Draw\+Mode\+Primitive} \+\_\+primitive\+Type=Draw\+Modes\+::\+P\+R\+I\+M\+I\+T\+I\+V\+E\+\_\+\+P\+O\+L\+Y\+G\+O\+N)
\begin{DoxyCompactList}\small\item\em Set custom shaders. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a80b6383cc3a1a20f6cae4f0655efdb88}{set\+Render\+Object\+Shaders} (const std\+::string \&\+\_\+vertex\+Shader\+File, const std\+::string \&\+\_\+tess\+Control\+Shader\+File, const std\+::string \&\+\_\+tess\+Eval\+Shader\+File, const std\+::string \&\+\_\+geometry\+Shader\+File, const std\+::string \&\+\_\+fragment\+Shader\+File, bool \+\_\+relative\+Paths=true, \hyperlink{a03346_abb087eecc84bd0123089399da8979113}{Draw\+Modes\+::\+Draw\+Mode\+Primitive} \+\_\+primitive\+Type=Draw\+Modes\+::\+P\+R\+I\+M\+I\+T\+I\+V\+E\+\_\+\+P\+O\+L\+Y\+G\+O\+N)
\begin{DoxyCompactList}\small\item\em Set custom shaders. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a723b1b77801f6eae56cbfbb7709a07fb}{set\+Render\+Object\+Uniform\+Pool} (const \hyperlink{a01385}{G\+L\+S\+L\+::\+Uniform\+Pool} $\ast$\+\_\+pool)
\begin{DoxyCompactList}\small\item\em Set uniforms for shader based rendering. \end{DoxyCompactList}\item 
const \hyperlink{a01385}{G\+L\+S\+L\+::\+Uniform\+Pool} $\ast$ \hyperlink{a00328_a3b58dbd42f150421eace0c4be26fd755}{get\+Render\+Object\+Uniform\+Pool} ()
\begin{DoxyCompactList}\small\item\em Get uniforms for shader based rendering. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a59f38f9321a63bf74081f38fe70efb51}{set\+Render\+Object\+Texture} (int \+\_\+sampler\+Slot, G\+Luint \+\_\+tex\+Id, G\+Lenum \+\_\+tex\+Type=G\+L\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+2\+D)
\begin{DoxyCompactList}\small\item\em Set textures for shader based rendering. \end{DoxyCompactList}\item 
void \hyperlink{a00328_a08e29ac989f4e8ce2d41dad6c72b9615}{set\+Render\+Object\+Modifier} (\hyperlink{a01112}{Render\+Object\+Modifier} $\ast$\+\_\+modifier)
\begin{DoxyCompactList}\small\item\em Set modifier for render objects. \end{DoxyCompactList}\item 
\hyperlink{a01112}{Render\+Object\+Modifier} $\ast$ \hyperlink{a00328_a630becdeee4c652b1a327f15e3a9f5e7}{get\+Render\+Object\+Modifier} ()
\begin{DoxyCompactList}\small\item\em Get render-\/object modifier. \end{DoxyCompactList}\item 
void \hyperlink{a00328_adf77fda580d17d2764e17509da55a12b}{apply\+Render\+Object\+Settings} (\hyperlink{a03346_abb087eecc84bd0123089399da8979113}{Draw\+Modes\+::\+Draw\+Mode\+Primitive} \+\_\+primitive, \hyperlink{a01109}{Render\+Object} $\ast$\+\_\+obj) const 
\begin{DoxyCompactList}\small\item\em Set shaders, textures and uniforms as provided by user to a render-\/object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This is the base for all scenegraph nodes. All virtual functions should be reimplemented when inheriting from this class. 

Definition at line 135 of file Mesh\+Node2\+T.\+cc.



\subsection{Member Enumeration Documentation}
\hypertarget{a00328_a02530b4f4e203cc38b01b89bef128473}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Status\+Mode@{Status\+Mode}}
\index{Status\+Mode@{Status\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{Status\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::\+Status\+Mode}}}\label{a00328_a02530b4f4e203cc38b01b89bef128473}


Status modi. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{Active@{Active}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Active@{Active}}\item[{\em 
\hypertarget{a00328_a02530b4f4e203cc38b01b89bef128473a0e86f5b231b35c0419a8eb157f6d70f4}{Active}\label{a00328_a02530b4f4e203cc38b01b89bef128473a0e86f5b231b35c0419a8eb157f6d70f4}
}]Draw node \& children. \index{Hide\+Node@{Hide\+Node}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Hide\+Node@{Hide\+Node}}\item[{\em 
\hypertarget{a00328_a02530b4f4e203cc38b01b89bef128473a5b94ab726395e5015fc897ca768f973d}{Hide\+Node}\label{a00328_a02530b4f4e203cc38b01b89bef128473a5b94ab726395e5015fc897ca768f973d}
}]Hide this node, but draw children. \index{Hide\+Children@{Hide\+Children}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Hide\+Children@{Hide\+Children}}\item[{\em 
\hypertarget{a00328_a02530b4f4e203cc38b01b89bef128473a1ef496838beb3f1fb686c8a510b61b20}{Hide\+Children}\label{a00328_a02530b4f4e203cc38b01b89bef128473a1ef496838beb3f1fb686c8a510b61b20}
}]Draw this node, but hide children. \index{Hide\+Subtree@{Hide\+Subtree}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Hide\+Subtree@{Hide\+Subtree}}\item[{\em 
\hypertarget{a00328_a02530b4f4e203cc38b01b89bef128473a0d65f369a2e52b86701e02fa8ebaaf56}{Hide\+Subtree}\label{a00328_a02530b4f4e203cc38b01b89bef128473a0d65f369a2e52b86701e02fa8ebaaf56}
}]Hide this node and its children. \end{description}
\end{Desc}


Definition at line 365 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_aaf4401b85d9945ae3ae933baa53394c9}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Traverse\+Mode@{Traverse\+Mode}}
\index{Traverse\+Mode@{Traverse\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{Traverse\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::\+Traverse\+Mode}}}\label{a00328_aaf4401b85d9945ae3ae933baa53394c9}


Node traverse types. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{Node\+First@{Node\+First}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Node\+First@{Node\+First}}\item[{\em 
\hypertarget{a00328_aaf4401b85d9945ae3ae933baa53394c9a646232c71e2399fd8b05e3e2ba2821ee}{Node\+First}\label{a00328_aaf4401b85d9945ae3ae933baa53394c9a646232c71e2399fd8b05e3e2ba2821ee}
}]Execute action on node first and then on its children. \index{Children\+First@{Children\+First}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Children\+First@{Children\+First}}\item[{\em 
\hypertarget{a00328_aaf4401b85d9945ae3ae933baa53394c9a232053935e29ac10e7c3744e0573712e}{Children\+First}\label{a00328_aaf4401b85d9945ae3ae933baa53394c9a232053935e29ac10e7c3744e0573712e}
}]Execute action the children first and then on this node. \index{Second\+Pass@{Second\+Pass}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!Second\+Pass@{Second\+Pass}}\item[{\em 
\hypertarget{a00328_aaf4401b85d9945ae3ae933baa53394c9a957f92d8798be2b3470ff95539e06de1}{Second\+Pass}\label{a00328_aaf4401b85d9945ae3ae933baa53394c9a957f92d8798be2b3470ff95539e06de1}
}]Draw node in second pass. \end{description}
\end{Desc}


Definition at line 414 of file Mesh\+Node2\+T.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00328_adf77fda580d17d2764e17509da55a12b}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!apply\+Render\+Object\+Settings@{apply\+Render\+Object\+Settings}}
\index{apply\+Render\+Object\+Settings@{apply\+Render\+Object\+Settings}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{apply\+Render\+Object\+Settings}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::apply\+Render\+Object\+Settings (
\begin{DoxyParamCaption}
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode\+Primitive}}]{\+\_\+primitive, }
\item[{{\bf Render\+Object} $\ast$}]{\+\_\+obj}
\end{DoxyParamCaption}
) const}}\label{a00328_adf77fda580d17d2764e17509da55a12b}


Set shaders, textures and uniforms as provided by user to a render-\/object. 

A derived node can use this convenience function to copy shader, uniform and texture settings to a render-\/object.


\begin{DoxyParams}{Parameters}
{\em \+\_\+primitive} & the primitive type of the render-\/object \\
\hline
{\em \+\_\+obj} & the render-\/object \mbox{[}in/out\mbox{]} \\
\hline
\end{DoxyParams}


Definition at line 307 of file Base\+Node.\+cc.

\hypertarget{a00328_ad0f2ceb5083801533c4711b468f67bc5}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!available\+Draw\+Modes@{available\+Draw\+Modes}}
\index{available\+Draw\+Modes@{available\+Draw\+Modes}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{available\+Draw\+Modes}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Draw\+Modes\+::\+Draw\+Mode} A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::available\+Draw\+Modes (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_ad0f2ceb5083801533c4711b468f67bc5}
Return a list of available draw modes for this node\+: should be O\+R'ed from the items of the enum Draw\+Mode\+I\+Ds. 

Reimplemented in \hyperlink{a00829_a31b41c9d0c23bf04709eb87e5672c959}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}, \hyperlink{a00830_a1e9e1db43cf4773f9f1331388bde5e35}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}, \hyperlink{a00830_a1e9e1db43cf4773f9f1331388bde5e35}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh\+T $>$}, \hyperlink{a00830_a1e9e1db43cf4773f9f1331388bde5e35}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Poly\+Mesh $>$}, \hyperlink{a00830_a1e9e1db43cf4773f9f1331388bde5e35}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00648_ad6b853f3b26676319e3099986b38c013}{A\+C\+G\+::\+Scene\+Graph\+::\+Glut\+Primitive\+Node}, \hyperlink{a00373_a3a38ea30f3721a4f46f63ad02306a97a}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Curve\+Node\+T$<$ B\+Spline\+Curve $>$}, \hyperlink{a00373_a3a38ea30f3721a4f46f63ad02306a97a}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Curve\+Node\+T$<$ A\+C\+G\+::\+B\+Spline\+Curve\+T $>$}, \hyperlink{a00378_a7beb3ed64c770aa9b071cebbaad60295}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Surface\+Node\+T$<$ B\+Spline\+Surface\+Type $>$}, \hyperlink{a00378_a7beb3ed64c770aa9b071cebbaad60295}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Surface\+Node\+T$<$ A\+C\+G\+::\+B\+Spline\+Surface\+T $>$}, \hyperlink{a01166_a0aaebc2b6c92af3dc952e31ee79e0744}{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}, \hyperlink{a00774_a172788341dcfe53d268561c23dbf5b81}{A\+C\+G\+::\+Scene\+Graph\+::\+Line\+Node}, \hyperlink{a01280_a4a026e1e1d837186b5274d9030e10eac}{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}, \hyperlink{a00464_a451d694f5e55c6ecce1c2e70d1b545da}{A\+C\+G\+::\+Scene\+Graph\+::\+Coordsys\+Node}, \hyperlink{a01466_a1e08580ff43b072d7ac175041bbfbe08}{A\+C\+G\+::\+Scene\+Graph\+::\+Volume\+Mesh\+Node\+T$<$ Volume\+Mesh\+T $>$}, \hyperlink{a01466_a1e08580ff43b072d7ac175041bbfbe08}{A\+C\+G\+::\+Scene\+Graph\+::\+Volume\+Mesh\+Node\+T$<$ Mesh\+T $>$}, \hyperlink{a01221_ac631d55bcb9b62d96d963159ee1e08f6}{A\+C\+G\+::\+Scene\+Graph\+::\+Splat\+Cloud\+Node}, \hyperlink{a00977_a432a4598d3a2e5abd7ffd048ec1e8ca7}{A\+C\+G\+::\+Scene\+Graph\+::\+Point\+Node}, \hyperlink{a00983_a6d67dc818c1772ee7c53837f0a9572c7}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ Poly\+Line $>$}, \hyperlink{a00983_a6d67dc818c1772ee7c53837f0a9572c7}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ A\+C\+G\+::\+Poly\+Line\+T $>$}, \hyperlink{a00660_aff9d1241ca4d08f1fbb0b7f6814c201c}{A\+C\+G\+::\+Scene\+Graph\+::\+Grid\+Node}, \hyperlink{a01187_ab2f8968c4311220274f12e634d13f59f}{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+Type $>$}, \hyperlink{a01187_ab2f8968c4311220274f12e634d13f59f}{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+T $>$}, \hyperlink{a00906_a018513aa0c8ff8d07b780b6c66fd225b}{A\+C\+G\+::\+Scene\+Graph\+::\+O\+B\+J\+Node}, \hyperlink{a00463_ac866df7d645a02dd855d8ca6c543dd32}{A\+C\+G\+::\+Scene\+Graph\+::\+Coordinate\+System\+Node}, \hyperlink{a00368_ad2d281be5db77a89f66e3a9b351e92e9}{A\+C\+G\+::\+Scene\+Graph\+::\+Bounding\+Box\+Node}, \hyperlink{a00462_afbdce687adac2e3b1f2c8f92ed8e38fa}{A\+C\+G\+::\+Scene\+Graph\+::\+Coord\+Frame\+Node}, \hyperlink{a00385_adb04a6640c402673169dfeadf087d9df}{A\+C\+G\+::\+Scene\+Graph\+::\+Camera\+Node}, \hyperlink{a00300_aac3a59cf3febd9cd1ae4ea5823d63c15}{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}, \hyperlink{a01194_ae1b5c07c2931003d76568d768f1f809c}{A\+C\+G\+::\+Scene\+Graph\+::\+Slice\+Node}, \hyperlink{a00542_af7f6db48c29eb9bedfd03173c820a977}{A\+C\+G\+::\+Scene\+Graph\+::\+Env\+Map\+Node}, \hyperlink{a01086_a16dd4787cdae2bd9941dc9ad5affe101}{A\+C\+G\+::\+Scene\+Graph\+::\+Qt\+Widget\+Node}, \hyperlink{a01330_af19287c88f36de23dda3359125fee40c}{A\+C\+G\+::\+Scene\+Graph\+::\+Triangle\+Node}, and \hyperlink{a01088_a442258af79ab6cca758fa0c47d685bd7}{A\+C\+G\+::\+Scene\+Graph\+::\+Quad\+Node}.



Definition at line 167 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_ac956bf4aae718f4cb89c78979dc47280}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!bounding\+Box@{bounding\+Box}}
\index{bounding\+Box@{bounding\+Box}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{bounding\+Box}]{\setlength{\rightskip}{0pt plus 5cm}virtual void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::bounding\+Box (
\begin{DoxyParamCaption}
\item[{{\bf Vec3d} \&}]{, }
\item[{{\bf Vec3d} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_ac956bf4aae718f4cb89c78979dc47280}
Compute the bounding box of this node and update the values \+\_\+bb\+Min and \+\_\+bb\+Max accordingly. Do not initialize \+\_\+bb\+Min and \+\_\+bb\+Max since they may already store values of previous nodes' bounding box computation. 

Reimplemented in \hyperlink{a00766_add4d3054343ce657952ac97dc4f26f9f}{A\+C\+G\+::\+Scene\+Graph\+::\+Light\+Node}, \hyperlink{a01321_a90a85206e4808e374a936cedacf11672}{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}, \hyperlink{a00648_ae0e5754e3f154385e85e04f82f210184}{A\+C\+G\+::\+Scene\+Graph\+::\+Glut\+Primitive\+Node}, \hyperlink{a00829_a1c561b16c60b3e0007d5f6d5179c8dc2}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}, \hyperlink{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}, \hyperlink{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh\+T $>$}, \hyperlink{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Poly\+Mesh $>$}, \hyperlink{a00830_a1c561b16c60b3e0007d5f6d5179c8dc2}{A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00373_aeabd40cec14ea590c8a0f0b4b8addbdd}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Curve\+Node\+T$<$ B\+Spline\+Curve $>$}, \hyperlink{a00373_aeabd40cec14ea590c8a0f0b4b8addbdd}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Curve\+Node\+T$<$ A\+C\+G\+::\+B\+Spline\+Curve\+T $>$}, \hyperlink{a00378_aa243614c6258e8ad9e7ca74c725a8b86}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Surface\+Node\+T$<$ B\+Spline\+Surface\+Type $>$}, \hyperlink{a00378_aa243614c6258e8ad9e7ca74c725a8b86}{A\+C\+G\+::\+Scene\+Graph\+::\+B\+Spline\+Surface\+Node\+T$<$ A\+C\+G\+::\+B\+Spline\+Surface\+T $>$}, \hyperlink{a00774_a6527b1c4c1a47b9c4cc830cd326df3a1}{A\+C\+G\+::\+Scene\+Graph\+::\+Line\+Node}, \hyperlink{a01280_a36164d8d6ee6f7a38aa74ebbf877b96a}{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}, \hyperlink{a00464_ad139235b59f613b58b5e44643e979622}{A\+C\+G\+::\+Scene\+Graph\+::\+Coordsys\+Node}, \hyperlink{a01466_abeeba4402a613f53f98efa2c3256d28f}{A\+C\+G\+::\+Scene\+Graph\+::\+Volume\+Mesh\+Node\+T$<$ Volume\+Mesh\+T $>$}, \hyperlink{a01466_abeeba4402a613f53f98efa2c3256d28f}{A\+C\+G\+::\+Scene\+Graph\+::\+Volume\+Mesh\+Node\+T$<$ Mesh\+T $>$}, \hyperlink{a01221_adca970914786880ea53aa5ecf8e0960e}{A\+C\+G\+::\+Scene\+Graph\+::\+Splat\+Cloud\+Node}, \hyperlink{a00977_a9ab3cd1a1ea95f75530bf00345b7f028}{A\+C\+G\+::\+Scene\+Graph\+::\+Point\+Node}, \hyperlink{a00983_a653627ced0b09273c1744a7493c55c49}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ Poly\+Line $>$}, \hyperlink{a00983_a653627ced0b09273c1744a7493c55c49}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ A\+C\+G\+::\+Poly\+Line\+T $>$}, \hyperlink{a00660_acc505fc95ea70017f810369278e96d75}{A\+C\+G\+::\+Scene\+Graph\+::\+Grid\+Node}, \hyperlink{a01187_af0fb1ed8c67e8105b3bddafaf92baee6}{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+Type $>$}, \hyperlink{a01187_af0fb1ed8c67e8105b3bddafaf92baee6}{A\+C\+G\+::\+Scene\+Graph\+::\+Skeleton\+Node\+T$<$ Skeleton\+T $>$}, \hyperlink{a00906_a1ada615e40af638c952a29650d821c34}{A\+C\+G\+::\+Scene\+Graph\+::\+O\+B\+J\+Node}, \hyperlink{a00463_a01985ca18255b0a593d53bd87316ce98}{A\+C\+G\+::\+Scene\+Graph\+::\+Coordinate\+System\+Node}, \hyperlink{a00462_a52e4bf030eed5363b5a111761f814681}{A\+C\+G\+::\+Scene\+Graph\+::\+Coord\+Frame\+Node}, \hyperlink{a00385_a40e71bfddf754ab7e0db1f81468a3d40}{A\+C\+G\+::\+Scene\+Graph\+::\+Camera\+Node}, \hyperlink{a00300_a23f02fbfd2f538e8840b8b873025be78}{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}, \hyperlink{a01194_a77735180e043f8a4732863aa81f5cf60}{A\+C\+G\+::\+Scene\+Graph\+::\+Slice\+Node}, \hyperlink{a01086_a6674a641858d1215c147bd9195b4432a}{A\+C\+G\+::\+Scene\+Graph\+::\+Qt\+Widget\+Node}, \hyperlink{a01330_ae1e20a0733201af0402d9bf5344d327a}{A\+C\+G\+::\+Scene\+Graph\+::\+Triangle\+Node}, and \hyperlink{a01088_ad963e2ff6f9115d983a2637dd8c7bccc}{A\+C\+G\+::\+Scene\+Graph\+::\+Quad\+Node}.



Definition at line 174 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a076a775dc6a63ebdd903e2ff7feb5be7}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!delete\+\_\+subtree@{delete\+\_\+subtree}}
\index{delete\+\_\+subtree@{delete\+\_\+subtree}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{delete\+\_\+subtree}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::delete\+\_\+subtree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00328_a076a775dc6a63ebdd903e2ff7feb5be7}


Delete the whole subtree of this node. 

This function will remove the whole subtree below this node. All children in this nodes bubtree will be automatically removed from the tree and their destructor is called. The node itself will be removed from the list of its parents children. Afterwards it will also call its own destructor. 

Definition at line 176 of file Base\+Node.\+cc.

\hypertarget{a00328_acda5dfbbd2d63f6fb509cc99e1aa422b}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!draw@{draw}}
\index{draw@{draw}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{draw}]{\setlength{\rightskip}{0pt plus 5cm}virtual void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::draw (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_acda5dfbbd2d63f6fb509cc99e1aa422b}


Draw this node using the draw modes \+\_\+draw\+Mode. 

This function is called when the scenegraph is traversed by the classical draw routines.

In this call the node should draw it's content via Open\+G\+L.

\begin{DoxyNote}{Note}
Keep in mind, that you should use the currently active state and don't change it (at least reset it the original values you got). Otherwise nodes that are drawn after this node might get an inconsistent state. 
\end{DoxyNote}


Reimplemented in \hyperlink{a00829_aa4e59c73dbad5a4844cf7a521c04cffc}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}.



Definition at line 194 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a8e2d9ad8cec26d8afec65421ffb10e34}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!draw\+Mode@{draw\+Mode}}
\index{draw\+Mode@{draw\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{draw\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::draw\+Mode (
\begin{DoxyParamCaption}
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+draw\+Mode}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a8e2d9ad8cec26d8afec65421ffb10e34}
Set this node's own draw mode. It will be used for drawing instead of the the global draw mode. 

Definition at line 409 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a1876701a10d671faa29a6c3df189cfb2}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!enable\+Picking@{enable\+Picking}}
\index{enable\+Picking@{enable\+Picking}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{enable\+Picking}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::enable\+Picking (
\begin{DoxyParamCaption}
\item[{bool}]{\+\_\+enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a1876701a10d671faa29a6c3df189cfb2}
Enable or Disable picking for this node ( default\+: enabled ) 

Definition at line 241 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_aa5dedbaaca06ced237cc72dda563640d}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!enter@{enter}}
\index{enter@{enter}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{enter}]{\setlength{\rightskip}{0pt plus 5cm}virtual void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::enter (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_aa5dedbaaca06ced237cc72dda563640d}
This function is called when traversing the scene graph and arriving at this node. It can be used to store G\+L states that will be changed in order to restore then in the \hyperlink{a00328_a89b2e2b616e717b78262d1900e96de77}{leave()} function. \begin{DoxySeeAlso}{See also}
\hyperlink{a00793}{Material\+Node} 
\end{DoxySeeAlso}


Reimplemented in \hyperlink{a00793_a920ca6f2024b8d2a6c34ebb5b1c302ec}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Material\+Node}.



Definition at line 182 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a5dd4dadc634ff50b9874a404fcd5c8df}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!enter\+Pick@{enter\+Pick}}
\index{enter\+Pick@{enter\+Pick}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{enter\+Pick}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::enter\+Pick (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{{\bf Pick\+Target}}]{\+\_\+target, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00328_a5dd4dadc634ff50b9874a404fcd5c8df}
This function is called when traversing the scene graph during picking and arriving at this node. It can be used to store G\+L states that will be changed in order to restore then in the \hyperlink{a00328_acecbc50f36560ef4fd16a65f8b0f5b90}{leave\+Pick()} function. Its default implementation will call the \hyperlink{a00328_aa5dedbaaca06ced237cc72dda563640d}{enter()} function. 

Reimplemented in \hyperlink{a00793_a2955de10fc7dd49a5b32bcdc1dc7dcbc}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Material\+Node}.



Definition at line 186 of file Base\+Node.\+cc.

\hypertarget{a00328_a0491ae6551780b9a44a6d852f246ef40}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!find@{find}}
\index{find@{find}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{find}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Child\+Iter} A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::find (
\begin{DoxyParamCaption}
\item[{{\bf Base\+Node} $\ast$}]{\+\_\+node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a0491ae6551780b9a44a6d852f246ef40}
Find a specific node in the list of children.~\newline
 This method is designed to convert a node pointer to an iterator that may be used e.\+g. for insert()'ing a new node at a distinct position.~\newline
 Returns \hyperlink{a00328_ac55d7a3d0aa1299f35294ce9b0c9e6c4}{children\+End()} if no appropriate node is found. 

Definition at line 322 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a98bf4beb2f4c543c86424d5eb0a37574}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!find@{find}}
\index{find@{find}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{find}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Base\+Node}$\ast$ A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::find (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a98bf4beb2f4c543c86424d5eb0a37574}
Find a node of a given name 

Definition at line 331 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a630becdeee4c652b1a327f15e3a9f5e7}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!get\+Render\+Object\+Modifier@{get\+Render\+Object\+Modifier}}
\index{get\+Render\+Object\+Modifier@{get\+Render\+Object\+Modifier}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{get\+Render\+Object\+Modifier}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Render\+Object\+Modifier}$\ast$ A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::get\+Render\+Object\+Modifier (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a630becdeee4c652b1a327f15e3a9f5e7}


Get render-\/object modifier. 



Definition at line 646 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_acb425c90def34591f6ee41e440dc7f69}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{get\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}virtual void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::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 {\bf Material} $\ast$}]{\+\_\+mat}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_acb425c90def34591f6ee41e440dc7f69}


Deferred draw call with shader based renderer. 

The renderer calls this function to collect the geometry that should be rendered from the nodes.

Add any renderable geometry to the renderer via \+\_\+renderer-\/$>$add\+Render\+Object()

The material is fetched from the last active material node and may be used to setup Renderobjects, but may as well be ignored.

\begin{DoxyNote}{Note}
You should not draw anything yourself in this function.
\end{DoxyNote}

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


Reimplemented in \hyperlink{a00829_a95431f31ee4ffeaf338c25622c159e83}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}, \hyperlink{a01280_a3196e99ba7f0ac3c8c40b84ee8a98451}{A\+C\+G\+::\+Scene\+Graph\+::\+Text\+Node}, \hyperlink{a00983_abe7e7dcf179e202f9fc4b270d1be76ae}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ Poly\+Line $>$}, \hyperlink{a00983_abe7e7dcf179e202f9fc4b270d1be76ae}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T$<$ A\+C\+G\+::\+Poly\+Line\+T $>$}, and \hyperlink{a01086_a0acfe4ac084ff3a5f9d57a48eec6aae7}{A\+C\+G\+::\+Scene\+Graph\+::\+Qt\+Widget\+Node}.



Definition at line 212 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a3b58dbd42f150421eace0c4be26fd755}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!get\+Render\+Object\+Uniform\+Pool@{get\+Render\+Object\+Uniform\+Pool}}
\index{get\+Render\+Object\+Uniform\+Pool@{get\+Render\+Object\+Uniform\+Pool}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{get\+Render\+Object\+Uniform\+Pool}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf G\+L\+S\+L\+::\+Uniform\+Pool}$\ast$ A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::get\+Render\+Object\+Uniform\+Pool (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a3b58dbd42f150421eace0c4be26fd755}


Get uniforms for shader based rendering. 



Definition at line 617 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a2d35dc63d2477bbdfb76706461f4cd2c}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!id@{id}}
\index{id@{id}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{id}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a2d35dc63d2477bbdfb76706461f4cd2c}
Get unique I\+D of node. I\+Ds are always positive and may be used e.\+g. for picking. 

Definition at line 399 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a89b2e2b616e717b78262d1900e96de77}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!leave@{leave}}
\index{leave@{leave}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{leave}]{\setlength{\rightskip}{0pt plus 5cm}virtual void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::leave (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_a89b2e2b616e717b78262d1900e96de77}
The leave function is used to restore G\+L states the have been changed. This function must restore the status before \hyperlink{a00328_aa5dedbaaca06ced237cc72dda563640d}{enter()} ! 

Reimplemented in \hyperlink{a00793_a5e3666e6f9b8c51e958e3fe7d07740f7}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Material\+Node}.



Definition at line 217 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_acecbc50f36560ef4fd16a65f8b0f5b90}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!leave\+Pick@{leave\+Pick}}
\index{leave\+Pick@{leave\+Pick}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{leave\+Pick}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::leave\+Pick (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{{\bf Pick\+Target}}]{\+\_\+target, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00328_acecbc50f36560ef4fd16a65f8b0f5b90}
The leave\+Pick function is used to restore G\+L states the have been changed. This function must restore the status before \hyperlink{a00328_a5dd4dadc634ff50b9874a404fcd5c8df}{enter\+Pick()} ! Its default implementation will call the \hyperlink{a00328_a89b2e2b616e717b78262d1900e96de77}{leave()} function. 

Reimplemented in \hyperlink{a00793_aec88c12aeefa7194bd3d58d464996265}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Material\+Node}.



Definition at line 194 of file Base\+Node.\+cc.

\hypertarget{a00328_a53a2b9fdf451332abf9c8af13728cb86}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Node@{multipass\+Node}}
\index{multipass\+Node@{multipass\+Node}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Node}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Multipass\+Bit\+Mask} A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Node (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a53a2b9fdf451332abf9c8af13728cb86}


Get the current multipass settings for the node. 

Get a bitmask defining in which traverse path an action is applied to the node. (1-\/indexed) Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!

\begin{DoxyReturn}{Returns}
Bitmask defining in which traverse passes an action is applied to the node. 
\end{DoxyReturn}


Definition at line 513 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_abe3efb91e89be0a15d6bfe4862915ac3}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Node\+Active@{multipass\+Node\+Active}}
\index{multipass\+Node\+Active@{multipass\+Node\+Active}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Node\+Active}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Node\+Active (
\begin{DoxyParamCaption}
\item[{const unsigned int}]{\+\_\+i}
\end{DoxyParamCaption}
) const}}\label{a00328_abe3efb91e89be0a15d6bfe4862915ac3}


Get Node status to traverse in a specific pass. 

Check multipass setting for the node if an action will be applied in the given pass. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Check this pass if an action will be applied to the node. \\
\hline
\end{DoxyParams}


Definition at line 254 of file Base\+Node.\+cc.

\hypertarget{a00328_aa5b51555586e02aa737000ecd7746b75}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Node\+Set\+Active@{multipass\+Node\+Set\+Active}}
\index{multipass\+Node\+Set\+Active@{multipass\+Node\+Set\+Active}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Node\+Set\+Active}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Node\+Set\+Active (
\begin{DoxyParamCaption}
\item[{const unsigned int}]{\+\_\+i, }
\item[{bool}]{\+\_\+active}
\end{DoxyParamCaption}
)}}\label{a00328_aa5b51555586e02aa737000ecd7746b75}


Set Node status to traverse in a specific pass. 

Change multipass setting for the node. An action will be applied to this node in the given pass. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Pass in which the node should be rendered \\
\hline
{\em \+\_\+active} & Enable or disable node in this pass? \\
\hline
\end{DoxyParams}


Definition at line 234 of file Base\+Node.\+cc.

\hypertarget{a00328_a82bcdf6070fbcc508dba14f34e19f2f7}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Status@{multipass\+Status}}
\index{multipass\+Status@{multipass\+Status}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Status}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Multipass\+Bit\+Mask} A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Status (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a82bcdf6070fbcc508dba14f34e19f2f7}


Get the current multipass settings for the nodes status functions. 

Get a bitmask defining in which traverse pass the enter and leave nodes are used. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!

\begin{DoxyReturn}{Returns}
Bitmask defining in which traverse pass the enter and leave nodes are used 
\end{DoxyReturn}


Definition at line 469 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a7e12fbef1820e55a0fc1b44a589ab582}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Status\+Active@{multipass\+Status\+Active}}
\index{multipass\+Status\+Active@{multipass\+Status\+Active}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Status\+Active}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Status\+Active (
\begin{DoxyParamCaption}
\item[{const unsigned int}]{\+\_\+i}
\end{DoxyParamCaption}
) const}}\label{a00328_a7e12fbef1820e55a0fc1b44a589ab582}


Get multipass status to traverse in a specific pass. 

Check multipass setting for the nodes status functions if they should be called in the given render pass. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Check this pass if the nodes enter/leave functions are active \\
\hline
\end{DoxyParams}


Definition at line 221 of file Base\+Node.\+cc.

\hypertarget{a00328_ad91cf957c42d06d0f2134d38fe832ae2}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Status\+Set\+Active@{multipass\+Status\+Set\+Active}}
\index{multipass\+Status\+Set\+Active@{multipass\+Status\+Set\+Active}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Status\+Set\+Active}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Status\+Set\+Active (
\begin{DoxyParamCaption}
\item[{const unsigned int}]{\+\_\+i, }
\item[{bool}]{\+\_\+active}
\end{DoxyParamCaption}
)}}\label{a00328_ad91cf957c42d06d0f2134d38fe832ae2}


Set multipass status to traverse in a specific pass. 

Change multipass setting for the nodes status functions. The node will call its enter and leave functions in the given pass if its set active. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Pass in which the node should be rendered \\
\hline
{\em \+\_\+active} & Activate or deactivate in this pass? \\
\hline
\end{DoxyParams}


Definition at line 201 of file Base\+Node.\+cc.

\hypertarget{a00328_a89fb19e5b68bd875eaa7047738e41217}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!pick@{pick}}
\index{pick@{pick}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{pick}]{\setlength{\rightskip}{0pt plus 5cm}virtual void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::pick (
\begin{DoxyParamCaption}
\item[{{\bf G\+L\+State} \&}]{, }
\item[{{\bf Pick\+Target}}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00328_a89fb19e5b68bd875eaa7047738e41217}
Draw the node using the G\+L picking name stack. The node's I\+D will already be on the name stack, so only names identifying e.\+g. faces should be used ( by pick\+\_\+set\+\_\+name() ). 

Reimplemented in \hyperlink{a00829_a3964635f6365b8c258a956d2a76559fa}{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Mesh\+Node\+T$<$ Mesh $>$}.



Definition at line 230 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_ac62737fa43a069be6b781e278f0624d4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!picking\+Enabled@{picking\+Enabled}}
\index{picking\+Enabled@{picking\+Enabled}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{picking\+Enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::picking\+Enabled (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_ac62737fa43a069be6b781e278f0624d4}
Check if picking is enabled for this node 

Definition at line 245 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_abc5afbc11830327e9232f0771bae4d5c}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!remove@{remove}}
\index{remove@{remove}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{remove}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::remove (
\begin{DoxyParamCaption}
\item[{{\bf Child\+Iter}}]{\+\_\+pos}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_abc5afbc11830327e9232f0771bae4d5c}
Remove child node at position \+\_\+pos. This \+\_\+pos {\itshape must} {\itshape be} {\itshape reachable} from \hyperlink{a00328_ac3761ffddd38028382eac4171eea00eb}{children\+Begin()}.~\newline
 This method has no effect if called with \hyperlink{a00328_ac55d7a3d0aa1299f35294ce9b0c9e6c4}{children\+End()} as parameter. 

Definition at line 306 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_aa16ecd9656f0231f01fd1adaa11c3f99}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+\_\+parent@{set\+\_\+parent}}
\index{set\+\_\+parent@{set\+\_\+parent}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+\_\+parent}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+\_\+parent (
\begin{DoxyParamCaption}
\item[{{\bf Base\+Node} $\ast$}]{\+\_\+parent}
\end{DoxyParamCaption}
)}}\label{a00328_aa16ecd9656f0231f01fd1adaa11c3f99}


Set the parent of this node. 

This function will remove this node from its original parents children, if the parent exists. And will add it to the new parents children. 

Definition at line 152 of file Base\+Node.\+cc.

\hypertarget{a00328_a6c9b9dfdbd45a0b1d96852acef8491d4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Multipass\+Node@{set\+Multipass\+Node}}
\index{set\+Multipass\+Node@{set\+Multipass\+Node}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Multipass\+Node}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Multipass\+Node (
\begin{DoxyParamCaption}
\item[{const {\bf Multipass\+Bit\+Mask}}]{\+\_\+pass\+Node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a6c9b9dfdbd45a0b1d96852acef8491d4}


Set multipass settings for the node. 

Set a bitmask defining in which traverse path an action is applied to the node. (1-\/indexed) Set to A\+L\+L\+P\+A\+S\+S\+E\+S if you want to render in all passes. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!


\begin{DoxyParams}{Parameters}
{\em \+\_\+pass\+Node} & Bitmask defining in which traverse passes an action is applied to the node. \\
\hline
\end{DoxyParams}


Definition at line 525 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_ad87b0dbdabb760f5f3c1b6c608354dd8}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Multipass\+Status@{set\+Multipass\+Status}}
\index{set\+Multipass\+Status@{set\+Multipass\+Status}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Multipass\+Status}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Multipass\+Status (
\begin{DoxyParamCaption}
\item[{const {\bf Multipass\+Bit\+Mask}}]{\+\_\+pass\+Status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_ad87b0dbdabb760f5f3c1b6c608354dd8}


Set multipass settings for the nodes status functions. 

Set a bitmask defining in which traverse pass the enter and leave nodes are used. Use the P\+A\+S\+S\+E\+S enum above to control multipass rendering!

Set to A\+L\+L\+P\+A\+S\+S\+E\+S if you want to render in all passes


\begin{DoxyParams}{Parameters}
{\em \+\_\+pass\+Status} & Bitmask defining in which traverse pass the enter and leave nodes are used \\
\hline
\end{DoxyParams}


Definition at line 481 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a08e29ac989f4e8ce2d41dad6c72b9615}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Render\+Object\+Modifier@{set\+Render\+Object\+Modifier}}
\index{set\+Render\+Object\+Modifier@{set\+Render\+Object\+Modifier}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Render\+Object\+Modifier}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Render\+Object\+Modifier (
\begin{DoxyParamCaption}
\item[{{\bf Render\+Object\+Modifier} $\ast$}]{\+\_\+modifier}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a08e29ac989f4e8ce2d41dad6c72b9615}


Set modifier for render objects. 

Render-\/objects can be modified, if the implementation of a node supports this. The currently active modifier should be applied directly before adding an object to the renderer.


\begin{DoxyParams}{Parameters}
{\em \+\_\+modifier} & pointer to address of modifier, address must be valid whenever the node creates render-\/objects \\
\hline
\end{DoxyParams}


Definition at line 641 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_acba8f8c7c0da363df6f226c462dac6e4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Render\+Object\+Shaders@{set\+Render\+Object\+Shaders}}
\index{set\+Render\+Object\+Shaders@{set\+Render\+Object\+Shaders}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Render\+Object\+Shaders}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Render\+Object\+Shaders (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+vertex\+Shader\+File, }
\item[{const std\+::string \&}]{\+\_\+geometry\+Shader\+File, }
\item[{const std\+::string \&}]{\+\_\+fragment\+Shader\+File, }
\item[{bool}]{\+\_\+relative\+Paths = {\ttfamily true}, }
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode\+Primitive}}]{\+\_\+primitive\+Type = {\ttfamily DrawModes\+:\+:PRIMITIVE\+\_\+POLYGON}}
\end{DoxyParamCaption}
)}}\label{a00328_acba8f8c7c0da363df6f226c462dac6e4}


Set custom shaders. 

Assigns a set of shaders to a primitive type of a node. For instance, it is possible to render faces with a different shaders than lines. Default shaders are used instead if no other shaders are provided. Note\+: the derived node has to actually make use of shaders provided here

Example\+: set shaders in Open\+Flipper/\+Shaders/\+My\+Wire\+Shaders for rendering the line parts of a node\+: node-\/$>$set\+Renderobject\+Shaders(\char`\"{}\+My\+Wire\+Shaders/v.\+glsl\char`\"{}, \char`\"{}\+My\+Wire\+Shaders/g.\+glsl\char`\"{}, \char`\"{}\+My\+Wire\+Shaders/f.\+glsl\char`\"{}, true, A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+P\+R\+I\+M\+I\+T\+I\+V\+E\+\_\+\+W\+I\+R\+E\+F\+R\+A\+M\+E);


\begin{DoxyParams}{Parameters}
{\em \+\_\+vertex\+Shader\+File} & filename of vertex shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+geometry\+Shader\+File} & filename of geometry shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+fragment\+Shader\+File} & filename of fragment shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+relative\+Paths} & filenames are relative or absolute \\
\hline
{\em \+\_\+primitive\+Type} & assign shaders to rendering this type of primitive of the polyline \\
\hline
\end{DoxyParams}


Definition at line 267 of file Base\+Node.\+cc.

\hypertarget{a00328_a80b6383cc3a1a20f6cae4f0655efdb88}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Render\+Object\+Shaders@{set\+Render\+Object\+Shaders}}
\index{set\+Render\+Object\+Shaders@{set\+Render\+Object\+Shaders}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Render\+Object\+Shaders}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Render\+Object\+Shaders (
\begin{DoxyParamCaption}
\item[{const std\+::string \&}]{\+\_\+vertex\+Shader\+File, }
\item[{const std\+::string \&}]{\+\_\+tess\+Control\+Shader\+File, }
\item[{const std\+::string \&}]{\+\_\+tess\+Eval\+Shader\+File, }
\item[{const std\+::string \&}]{\+\_\+geometry\+Shader\+File, }
\item[{const std\+::string \&}]{\+\_\+fragment\+Shader\+File, }
\item[{bool}]{\+\_\+relative\+Paths = {\ttfamily true}, }
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode\+Primitive}}]{\+\_\+primitive\+Type = {\ttfamily DrawModes\+:\+:PRIMITIVE\+\_\+POLYGON}}
\end{DoxyParamCaption}
)}}\label{a00328_a80b6383cc3a1a20f6cae4f0655efdb88}


Set custom shaders. 

Assigns a set of shaders to a primitive type of a node. For instance, it is possible to render faces with a different shaders than lines. Default shaders are used instead if no other shaders are provided. Note\+: the derived node has to actually make use of shaders provided here

Example\+: set shaders in Open\+Flipper/\+Shaders/\+My\+Wire\+Shaders for rendering the line parts of a node\+: node-\/$>$set\+Render\+Object\+Shaders(\char`\"{}\+My\+Wire\+Shaders/v.\+glsl\char`\"{}, \char`\"{}\+My\+Wire\+Shaders/g.\+glsl\char`\"{}, \char`\"{}\+My\+Wire\+Shaders/f.\+glsl\char`\"{}, true, A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+P\+R\+I\+M\+I\+T\+I\+V\+E\+\_\+\+W\+I\+R\+E\+F\+R\+A\+M\+E);


\begin{DoxyParams}{Parameters}
{\em \+\_\+vertex\+Shader\+File} & filename of vertex shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+tess\+Control\+Shader\+File} & filename of tessellation-\/control shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+tess\+Eval\+Shader\+File} & filename of tessellation-\/eval shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+geometry\+Shader\+File} & filename of geometry shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+fragment\+Shader\+File} & filename of fragment shader template compatible with \hyperlink{a01159}{A\+C\+G\+::\+Shader\+Generator} \\
\hline
{\em \+\_\+relative\+Paths} & filenames are relative or absolute \\
\hline
{\em \+\_\+primitive\+Type} & assign shaders to rendering this type of primitive of the polyline \\
\hline
\end{DoxyParams}


Definition at line 280 of file Base\+Node.\+cc.

\hypertarget{a00328_a59f38f9321a63bf74081f38fe70efb51}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Render\+Object\+Texture@{set\+Render\+Object\+Texture}}
\index{set\+Render\+Object\+Texture@{set\+Render\+Object\+Texture}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Render\+Object\+Texture}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Render\+Object\+Texture (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+sampler\+Slot, }
\item[{G\+Luint}]{\+\_\+tex\+Id, }
\item[{G\+Lenum}]{\+\_\+tex\+Type = {\ttfamily GL\+\_\+TEXTURE\+\_\+2D}}
\end{DoxyParamCaption}
)}}\label{a00328_a59f38f9321a63bf74081f38fe70efb51}


Set textures for shader based rendering. 

Assign textures to sampler slots. Note\+: Fixed-\/function drawing ignores these textures. Also, it is still necessary to set the according sampler index in a Uniform\+Pool to access this texture in a shader.


\begin{DoxyParams}{Parameters}
{\em \+\_\+sampler\+Slot} & sampler slot to bind the texture to, zero-\/based index \\
\hline
{\em \+\_\+tex\+Id} & gl texture id \\
\hline
{\em \+\_\+tex\+Type} & gl texture type ie. G\+L\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+1\+D, .. \\
\hline
\end{DoxyParams}


Definition at line 295 of file Base\+Node.\+cc.

\hypertarget{a00328_a723b1b77801f6eae56cbfbb7709a07fb}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!set\+Render\+Object\+Uniform\+Pool@{set\+Render\+Object\+Uniform\+Pool}}
\index{set\+Render\+Object\+Uniform\+Pool@{set\+Render\+Object\+Uniform\+Pool}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{set\+Render\+Object\+Uniform\+Pool}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::set\+Render\+Object\+Uniform\+Pool (
\begin{DoxyParamCaption}
\item[{const {\bf G\+L\+S\+L\+::\+Uniform\+Pool} $\ast$}]{\+\_\+pool}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00328_a723b1b77801f6eae56cbfbb7709a07fb}


Set uniforms for shader based rendering. 

Uniforms are copied from a pool when rendering with shader-\/based render-\/objects. The specified pool has to be a valid memory address whenever the objects are rendered. It does not make a copy of the pool.


\begin{DoxyParams}{Parameters}
{\em \+\_\+pool} & pointer to address of a uniform pool \\
\hline
\end{DoxyParams}


Definition at line 612 of file Mesh\+Node2\+T.\+cc.



\subsection{Member Data Documentation}
\hypertarget{a00328_a2b2533543430ecbf1990cd52939a1d05}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Node\+\_\+@{multipass\+Node\+\_\+}}
\index{multipass\+Node\+\_\+@{multipass\+Node\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Node\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Multipass\+Bit\+Mask} A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Node\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00328_a2b2533543430ecbf1990cd52939a1d05}
multi pass bit mask (1-\/indexed) Defines in which multipass runs an action should be applied to the node. (Only applies during multipass traversal!) 

Definition at line 672 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_a73e4c2889cbdb22e7ecab8d4536b8408}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!multipass\+Status\+\_\+@{multipass\+Status\+\_\+}}
\index{multipass\+Status\+\_\+@{multipass\+Status\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{multipass\+Status\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Multipass\+Bit\+Mask} A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::multipass\+Status\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00328_a73e4c2889cbdb22e7ecab8d4536b8408}
multi pass bit mask (1-\/indexed) Defines in which multipass runs the enter and leave functions should be called. (Only applies during multipass traversal!) 

Definition at line 666 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00328_ab81858876b14881034d6a37d263e0092}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}!picking\+Enabled\+\_\+@{picking\+Enabled\+\_\+}}
\index{picking\+Enabled\+\_\+@{picking\+Enabled\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node}}
\subsubsection[{picking\+Enabled\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node\+::picking\+Enabled\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00328_ab81858876b14881034d6a37d263e0092}
Flag indicating if picking should be done for this object This flag has to be checked by your node if you implement picking 

Definition at line 709 of file Mesh\+Node2\+T.\+cc.



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