\hypertarget{a06177}{}\section{A\+CG\+:\+:Scene\+Graph Namespace Reference}
\label{a06177}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{a06191}{Draw\+Modes}
\end{DoxyCompactItemize}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a07936}{Array\+Resource\+Manager\+NodeT}
\item 
class \hyperlink{a07740}{Arrow\+Node}
\item 
class \hyperlink{a07748}{Base\+Node}
\item 
class \hyperlink{a07948}{Bounding\+Box\+Action}
\item 
class \hyperlink{a07756}{Bounding\+Box\+Node}
\item 
class \hyperlink{a11252}{B\+Spline\+Curve\+NodeT}
\item 
class \hyperlink{a11264}{B\+Spline\+Surface\+NodeT}
\item 
class \hyperlink{a11292}{Camera\+Node}
\item 
class \hyperlink{a07760}{Cartesian\+Clipping\+Node}
\item 
class \hyperlink{a07984}{Check\+Dirty\+Action}
\item 
class \hyperlink{a07764}{Clipping\+Node}
\item 
class \hyperlink{a07964}{Collect\+Active\+Draw\+Modes\+Action}
\item 
class \hyperlink{a07960}{Collect\+Draw\+Modes\+Action}
\item 
class \hyperlink{a07776}{Coord\+Frame\+Node}
\item 
class \hyperlink{a11304}{Coordinate\+System\+Node}
\begin{DoxyCompactList}\small\item\em Node for displaying coordinate systems. \end{DoxyCompactList}\item 
class \hyperlink{a07780}{Coordsys\+Node}
\item 
class \hyperlink{a07972}{Draw\+Action}
\item 
struct \hyperlink{a07940}{enable\+\_\+if}
\item 
struct \hyperlink{a07944}{enable\+\_\+if$<$ false, T $>$}
\item 
class \hyperlink{a07796}{Env\+Map\+Node}
\item 
class \hyperlink{a07956}{Find\+Node\+Action}
\item 
class \hyperlink{a07800}{Glut\+Primitive\+Node}
\item 
class \hyperlink{a07808}{Grid\+Node}
\item 
class \hyperlink{a11320}{Light\+Node}
\item 
class \hyperlink{a11316}{Light\+Source}
\begin{DoxyCompactList}\small\item\em Structure to hold options for one \hyperlink{a11316}{Light\+Source}. \end{DoxyCompactList}\item 
class \hyperlink{a11324}{Light\+Source\+Handle}
\item 
class \hyperlink{a07812}{Light\+Source\+Node}
\item 
class \hyperlink{a07820}{Line\+Node}
\item 
struct \hyperlink{a08040}{Lock\+ModT}
\item 
class \hyperlink{a08044}{Lock\+NodeT}
\item 
class \hyperlink{a07824}{Manipulator\+Node}
\item 
class \hyperlink{a07828}{Material}
\item 
class \hyperlink{a07832}{Material\+Node}
\item 
class \hyperlink{a07836}{Mesh\+Node\+Base}
\item 
class \hyperlink{a07840}{Mesh\+NodeT}
\item 
class \hyperlink{a07980}{Mouse\+Event\+Action}
\item 
class \hyperlink{a07952}{Multi\+Pass\+Info\+Action}
\item 
class \hyperlink{a07904}{O\+B\+J\+Node}
\item 
class \hyperlink{a07912}{O\+S\+D\+Transform\+Node}
\item 
class \hyperlink{a07976}{Pick\+Action}
\item 
class \hyperlink{a07916}{Point\+Node}
\item 
class \hyperlink{a11816}{Poly\+Line\+Collection\+NodeT}
\item 
class \hyperlink{a11796}{Poly\+Line\+NodeT}
\item 
class \hyperlink{a07924}{Principal\+Axis\+Node}
\item 
struct \hyperlink{a07920}{Principal\+Component}
\item 
class \hyperlink{a07932}{Ptr\+Resource\+Manager\+NodeT}
\item 
class \hyperlink{a07624}{Qt\+Manipulator\+Node}
\item 
class \hyperlink{a07628}{Qt\+Translation\+Manipulator\+Node}
\item 
class \hyperlink{a11844}{Qt\+Widget\+Node}
\item 
class \hyperlink{a07928}{Quad\+Node}
\item 
struct \hyperlink{a08032}{Selection\+ModT}
\item 
class \hyperlink{a08036}{Selection\+NodeT}
\item 
class \hyperlink{a07988}{Separator\+Node}
\item 
class \hyperlink{a07968}{Set\+Draw\+Modes\+Action}
\item 
class \hyperlink{a07992}{Shader\+Node}
\item 
class \hyperlink{a11940}{Skeleton\+NodeT}
\item 
class \hyperlink{a08000}{Slice\+Node}
\item 
class \hyperlink{a12048}{Splat\+Cloud\+Node}
\item 
struct \hyperlink{a08028}{Status\+ModT}
\item 
class \hyperlink{a08012}{Status\+Node\+BaseT}
\item 
class \hyperlink{a08020}{Status\+Node\+Base\+T$<$ Mesh, Mod, false $>$}
\item 
class \hyperlink{a08016}{Status\+Node\+Base\+T$<$ Mesh, Mod, true $>$}
\item 
class \hyperlink{a08008}{Status\+Nodes\+Base}
\begin{DoxyCompactList}\small\item\em The \hyperlink{a08008}{Status\+Nodes\+Base} class extends Status\+NodesT with a half\+Edge vbo for core\+Profile rendering support. \end{DoxyCompactList}\item 
class \hyperlink{a08024}{Status\+NodeT}
\item 
class \hyperlink{a11360}{Status\+View\+NodeT}
\item 
class \hyperlink{a08048}{Stencil\+Ref\+Node}
\item 
class \hyperlink{a08052}{Strip}
\begin{DoxyCompactList}\small\item\em class for managing a single triangle strip. \end{DoxyCompactList}\item 
class \hyperlink{a08060}{Strip\+ProcessorT}
\item 
class \hyperlink{a08064}{Switch\+Node}
\item 
class \hyperlink{a08068}{Text\+Node}
\item 
class \hyperlink{a08072}{Texture3\+D\+Node}
\item 
class \hyperlink{a08076}{Texture\+Node}
\item 
class \hyperlink{a08056}{Texture\+Render\+Info}
\item 
class \hyperlink{a08084}{Trackball\+Node}
\item 
class \hyperlink{a08088}{Transform\+Node}
\item 
class \hyperlink{a08092}{Translation\+Manipulator\+Node}
\item 
class \hyperlink{a08100}{Triangle\+Node}
\item 
class \hyperlink{a08104}{Tri\+Strip\+Node\+DeprecatedT}
\item 
class \hyperlink{a11748}{Volume\+Mesh\+NodeT}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a06177_a3189e3808d691534c1fb68eed6428711}\label{a06177_a3189e3808d691534c1fb68eed6428711}} 
typedef unsigned int {\bfseries uint}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \{ \newline
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0a4bd9a4df9c5977ab401d09cb0e6cbd16}{P\+I\+C\+K\+\_\+\+C\+E\+LL}, 
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0aacdc618a4766def461047ecafa8724da}{P\+I\+C\+K\+\_\+\+F\+A\+CE}, 
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0a06758ad68497c1331f2f6639e17b01fe}{P\+I\+C\+K\+\_\+\+E\+D\+GE}, 
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0ac350d88f39959a7b143792247f8706dd}{P\+I\+C\+K\+\_\+\+V\+E\+R\+T\+EX}, 
\newline
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0a16466d3b836973188ef3426feda66fcd}{P\+I\+C\+K\+\_\+\+A\+N\+Y\+T\+H\+I\+NG}, 
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0afa7c865892fd0d2bd9eb346c94312ea0}{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+E\+D\+GE}, 
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0aa26b6373fff6ab6ed3131d32ab59ced1}{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+V\+E\+R\+T\+EX}, 
\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0a4d101a4910e6004459c53482a3538ff3}{P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE}
 \}\begin{DoxyCompactList}\small\item\em What target to use for picking. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a07748}{Base\+Node} $\ast$ \hyperlink{a06177_a1299f77548fd1f3541aeb9096c4b4b22}{find\+\_\+node} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+root, unsigned int \+\_\+node\+\_\+idx)
\begin{DoxyCompactList}\small\item\em Find a node in the scene graph. \end{DoxyCompactList}\item 
\hyperlink{a07748}{Base\+Node} $\ast$ \hyperlink{a06177_a677575bee2f37781b1a43e235037d5d6}{find\+\_\+hidden\+\_\+node} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+root, unsigned int \+\_\+node\+\_\+idx)
\begin{DoxyCompactList}\small\item\em Find a node in the scene graph. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06177_a1561ba4965dbcd56447336c2ff846c2a}\label{a06177_a1561ba4965dbcd56447336c2ff846c2a}} 
{\footnotesize template$<$typename Action $>$ }\\\hyperlink{a07940}{enable\+\_\+if}$<$ has\+\_\+enter$<$ Action, void(Action\+::$\ast$)(\hyperlink{a07748}{Base\+Node} $\ast$) $>$\+::value, void $>$\+::type {\bfseries if\+\_\+has\+\_\+enter} (Action \&\+\_\+action, \hyperlink{a07748}{Base\+Node} $\ast$\+\_\+node)
\item 
\mbox{\Hypertarget{a06177_af9da042711482a3fb2b2935154a64bac}\label{a06177_af9da042711482a3fb2b2935154a64bac}} 
{\footnotesize template$<$typename Action $>$ }\\\hyperlink{a07940}{enable\+\_\+if}$<$!has\+\_\+enter$<$ Action, void(Action\+::$\ast$)(\hyperlink{a07748}{Base\+Node} $\ast$) $>$\+::value, void $>$\+::type {\bfseries if\+\_\+has\+\_\+enter} (Action \&, \hyperlink{a07748}{Base\+Node} $\ast$)
\item 
\mbox{\Hypertarget{a06177_ad057a5dccf37ee828dc60451f2e800bf}\label{a06177_ad057a5dccf37ee828dc60451f2e800bf}} 
{\footnotesize template$<$typename Action $>$ }\\\hyperlink{a07940}{enable\+\_\+if}$<$ has\+\_\+leave$<$ Action, void(Action\+::$\ast$)(\hyperlink{a07748}{Base\+Node} $\ast$) $>$\+::value, void $>$\+::type {\bfseries if\+\_\+has\+\_\+leave} (Action \&\+\_\+action, \hyperlink{a07748}{Base\+Node} $\ast$\+\_\+node)
\item 
\mbox{\Hypertarget{a06177_a08a7c856c27f42757b89fe53628d1826}\label{a06177_a08a7c856c27f42757b89fe53628d1826}} 
{\footnotesize template$<$typename Action $>$ }\\\hyperlink{a07940}{enable\+\_\+if}$<$!has\+\_\+enter$<$ Action, void(Action\+::$\ast$)(\hyperlink{a07748}{Base\+Node} $\ast$) $>$\+::value, void $>$\+::type {\bfseries if\+\_\+has\+\_\+leave} (Action \&, \hyperlink{a07748}{Base\+Node} $\ast$)
\item 
{\footnotesize template$<$class Action $>$ }\\void \hyperlink{a06177_af10521b6f81a7a588708218d75936f81}{traverse} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action)
\item 
{\footnotesize template$<$class Action $>$ }\\void \hyperlink{a06177_a334bbeb5b340547913d31f7cf17f9872}{traverse\+\_\+all} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action)
\item 
{\footnotesize template$<$class Action $>$ }\\void \hyperlink{a06177_a7a6bc81c886119388cc6efe0fd7c8c85}{traverse\+\_\+multipass} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action, const unsigned int \&\+\_\+pass)
\item 
{\footnotesize template$<$class Action $>$ }\\void \hyperlink{a06177_a43edcdd142eacba808a327fbc942a85c}{traverse\+\_\+multipass} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action, \hyperlink{a07452}{G\+L\+State} \&\+\_\+state, \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode}=\hyperlink{a06191_a86e2ee2cdca1cdeaf861126ce9604507}{Draw\+Modes\+::\+D\+E\+F\+A\+U\+LT})
\item 
void \hyperlink{a06177_a8f51719ad75f81a4e74d97d64bbf6c2f}{analyze\+Scene\+Graph} (\hyperlink{a07888}{A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} $\ast$\+\_\+root, unsigned int \&\+\_\+max\+Passes, \hyperlink{a08448}{A\+C\+G\+::\+Vec3d} \&\+\_\+bbmin, \hyperlink{a08448}{A\+C\+G\+::\+Vec3d} \&\+\_\+bbmax)
\begin{DoxyCompactList}\small\item\em Analyze the \hyperlink{a06177}{Scene\+Graph} $<$\hyperlink{a01100}{A\+C\+G/\+Scenegraph/\+Scene\+Graph\+Analysis.\+hh}$>$ \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a06177_a8581b93f38bd4e12d0bbf5f45e193543}\label{a06177_a8581b93f38bd4e12d0bbf5f45e193543}} 
bool \hyperlink{a06177_a8581b93f38bd4e12d0bbf5f45e193543}{strip\+Texture\+Compare} (const \hyperlink{a08052}{Strip} \&i, const \hyperlink{a08052}{Strip} \&j)
\begin{DoxyCompactList}\small\item\em Compare function for sorting Strips depending on their texture index. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a06177_ad5782109b0adcee6557ab4f3d894a051}\label{a06177_ad5782109b0adcee6557ab4f3d894a051}} 
const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries cylinder\+\_\+color} (0.\+8f, 0.\+4f, 0.\+4f, 1.\+0f)
\item 
\mbox{\Hypertarget{a06177_a819c4f2bb17cbdaba7920967e4694796}\label{a06177_a819c4f2bb17cbdaba7920967e4694796}} 
const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries sphere\+\_\+color} (0.\+8f, 0.\+4f, 0.\+4f, 1.\+0f)
\item 
\mbox{\Hypertarget{a06177_ad19e608154f6721a267263dee9d380f2}\label{a06177_ad19e608154f6721a267263dee9d380f2}} 
const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries select\+\_\+color} (1.\+0f, 0.\+1f, 0.\+1f, 1.\+0f)
\item 
\mbox{\Hypertarget{a06177_a71447c0f83fb912c4a64e500f9c2a81c}\label{a06177_a71447c0f83fb912c4a64e500f9c2a81c}} 
const float {\bfseries S\+C\+A\+L\+E\+\_\+\+C\+O\+N\+ST} = 5.\+0f
\item 
const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries colors} \mbox{[}4\mbox{]}\mbox{[}6\mbox{]}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This namespace holds the \hyperlink{a06176}{A\+CG} scene graph, all its nodes and helpers. 

\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0}\label{a06177_af5fad41dadeca314c2077f897377dbd0}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!Pick\+Target@{Pick\+Target}}
\index{Pick\+Target@{Pick\+Target}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{Pick\+Target}{PickTarget}}
{\footnotesize\ttfamily enum A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target}



What target to use for picking. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+C\+E\+LL@{P\+I\+C\+K\+\_\+\+C\+E\+LL}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+C\+E\+LL@{P\+I\+C\+K\+\_\+\+C\+E\+LL}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0a4bd9a4df9c5977ab401d09cb0e6cbd16}\label{a06177_af5fad41dadeca314c2077f897377dbd0a4bd9a4df9c5977ab401d09cb0e6cbd16}} 
P\+I\+C\+K\+\_\+\+C\+E\+LL&picks faces (may not be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+F\+A\+CE@{P\+I\+C\+K\+\_\+\+F\+A\+CE}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+F\+A\+CE@{P\+I\+C\+K\+\_\+\+F\+A\+CE}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0aacdc618a4766def461047ecafa8724da}\label{a06177_af5fad41dadeca314c2077f897377dbd0aacdc618a4766def461047ecafa8724da}} 
P\+I\+C\+K\+\_\+\+F\+A\+CE&picks faces (should be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+E\+D\+GE@{P\+I\+C\+K\+\_\+\+E\+D\+GE}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+E\+D\+GE@{P\+I\+C\+K\+\_\+\+E\+D\+GE}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0a06758ad68497c1331f2f6639e17b01fe}\label{a06177_af5fad41dadeca314c2077f897377dbd0a06758ad68497c1331f2f6639e17b01fe}} 
P\+I\+C\+K\+\_\+\+E\+D\+GE&picks edges (may not be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+V\+E\+R\+T\+EX@{P\+I\+C\+K\+\_\+\+V\+E\+R\+T\+EX}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+V\+E\+R\+T\+EX@{P\+I\+C\+K\+\_\+\+V\+E\+R\+T\+EX}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0ac350d88f39959a7b143792247f8706dd}\label{a06177_af5fad41dadeca314c2077f897377dbd0ac350d88f39959a7b143792247f8706dd}} 
P\+I\+C\+K\+\_\+\+V\+E\+R\+T\+EX&picks verices (may not be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+A\+N\+Y\+T\+H\+I\+NG@{P\+I\+C\+K\+\_\+\+A\+N\+Y\+T\+H\+I\+NG}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+A\+N\+Y\+T\+H\+I\+NG@{P\+I\+C\+K\+\_\+\+A\+N\+Y\+T\+H\+I\+NG}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0a16466d3b836973188ef3426feda66fcd}\label{a06177_af5fad41dadeca314c2077f897377dbd0a16466d3b836973188ef3426feda66fcd}} 
P\+I\+C\+K\+\_\+\+A\+N\+Y\+T\+H\+I\+NG&pick any of the prior targets (should be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+E\+D\+GE@{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+E\+D\+GE}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+E\+D\+GE@{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+E\+D\+GE}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0afa7c865892fd0d2bd9eb346c94312ea0}\label{a06177_af5fad41dadeca314c2077f897377dbd0afa7c865892fd0d2bd9eb346c94312ea0}} 
P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+E\+D\+GE&picks only visible front edges (may not be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+V\+E\+R\+T\+EX@{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+V\+E\+R\+T\+EX}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+V\+E\+R\+T\+EX@{P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+V\+E\+R\+T\+EX}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0aa26b6373fff6ab6ed3131d32ab59ced1}\label{a06177_af5fad41dadeca314c2077f897377dbd0aa26b6373fff6ab6ed3131d32ab59ced1}} 
P\+I\+C\+K\+\_\+\+F\+R\+O\+N\+T\+\_\+\+V\+E\+R\+T\+EX&picks only visible front verices (may not be implemented for all nodes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE@{P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE@{P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE}}}\mbox{\Hypertarget{a06177_af5fad41dadeca314c2077f897377dbd0a4d101a4910e6004459c53482a3538ff3}\label{a06177_af5fad41dadeca314c2077f897377dbd0a4d101a4910e6004459c53482a3538ff3}} 
P\+I\+C\+K\+\_\+\+S\+P\+L\+I\+NE&Pick spline curve or surface (picks u or u,v coords respectively) \\
\hline

\end{DoxyEnumFields}


Definition at line 73 of file Pick\+Target.\+hh.



\subsection{Function Documentation}
\mbox{\Hypertarget{a06177_a8f51719ad75f81a4e74d97d64bbf6c2f}\label{a06177_a8f51719ad75f81a4e74d97d64bbf6c2f}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!analyze\+Scene\+Graph@{analyze\+Scene\+Graph}}
\index{analyze\+Scene\+Graph@{analyze\+Scene\+Graph}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{analyze\+Scene\+Graph()}{analyzeSceneGraph()}}
{\footnotesize\ttfamily A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT void A\+C\+G\+::\+Scene\+Graph\+::analyze\+Scene\+Graph (\begin{DoxyParamCaption}\item[{\hyperlink{a07888}{A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} $\ast$}]{\+\_\+root,  }\item[{unsigned int \&}]{\+\_\+max\+Passes,  }\item[{\hyperlink{a08448}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+bbmin,  }\item[{\hyperlink{a08448}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+bbmax }\end{DoxyParamCaption})}



Analyze the \hyperlink{a06177}{Scene\+Graph} $<$\hyperlink{a01100}{A\+C\+G/\+Scenegraph/\+Scene\+Graph\+Analysis.\+hh}$>$ 


\begin{DoxyParams}{Parameters}
{\em \+\_\+root} & Root node of the scenegraph \\
\hline
{\em \+\_\+max\+Passes} & Returns the maximal number of render passes \\
\hline
{\em \+\_\+bbmin} & Returns lower left of the bounding box \\
\hline
{\em \+\_\+bbmax} & Returns upper right of the bounding box \\
\hline
\end{DoxyParams}


Definition at line 56 of file Scene\+Graph\+Analysis.\+cc.

\mbox{\Hypertarget{a06177_a677575bee2f37781b1a43e235037d5d6}\label{a06177_a677575bee2f37781b1a43e235037d5d6}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!find\+\_\+hidden\+\_\+node@{find\+\_\+hidden\+\_\+node}}
\index{find\+\_\+hidden\+\_\+node@{find\+\_\+hidden\+\_\+node}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{find\+\_\+hidden\+\_\+node()}{find\_hidden\_node()}}
{\footnotesize\ttfamily A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT \hyperlink{a07748}{Base\+Node} $\ast$ A\+C\+G\+::\+Scene\+Graph\+::find\+\_\+hidden\+\_\+node (\begin{DoxyParamCaption}\item[{\hyperlink{a07748}{Base\+Node} $\ast$}]{\+\_\+root,  }\item[{unsigned int}]{\+\_\+node\+\_\+idx }\end{DoxyParamCaption})}



Find a node in the scene graph. 

Traverses scenegraph just like the find\+\_\+node function, but includes hidden nodes. 

Definition at line 93 of file Scene\+Graph.\+cc.

\mbox{\Hypertarget{a06177_a1299f77548fd1f3541aeb9096c4b4b22}\label{a06177_a1299f77548fd1f3541aeb9096c4b4b22}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!find\+\_\+node@{find\+\_\+node}}
\index{find\+\_\+node@{find\+\_\+node}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{find\+\_\+node()}{find\_node()}}
{\footnotesize\ttfamily A\+C\+G\+D\+L\+L\+E\+X\+P\+O\+RT \hyperlink{a07748}{Base\+Node} $\ast$ A\+C\+G\+::\+Scene\+Graph\+::find\+\_\+node (\begin{DoxyParamCaption}\item[{\hyperlink{a07748}{Base\+Node} $\ast$}]{\+\_\+root,  }\item[{unsigned int}]{\+\_\+node\+\_\+idx }\end{DoxyParamCaption})}



Find a node in the scene graph. 

Traverse scenegraph starting at \+\_\+root, looking for a node whose id is \+\_\+node\+\_\+idx . Returns 0 if node wasn\textquotesingle{}t found.


\begin{DoxyParams}{Parameters}
{\em \+\_\+root} & The root node where the traversal starts (not necessary the root node of the scenegraph) \\
\hline
{\em \+\_\+node\+\_\+idx} & The node index this function should look for \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if the node was not found, otherwise a pointer to the node. 
\end{DoxyReturn}


Definition at line 77 of file Scene\+Graph.\+cc.

\mbox{\Hypertarget{a06177_af10521b6f81a7a588708218d75936f81}\label{a06177_af10521b6f81a7a588708218d75936f81}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!traverse@{traverse}}
\index{traverse@{traverse}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{traverse()}{traverse()}}
{\footnotesize\ttfamily template$<$class Action $>$ \\
void A\+C\+G\+::\+Scene\+Graph\+::traverse (\begin{DoxyParamCaption}\item[{\hyperlink{a07748}{Base\+Node} $\ast$}]{\+\_\+node,  }\item[{Action \&}]{\+\_\+action }\end{DoxyParamCaption})}

Traverse the scenegraph starting at the node {\ttfamily \+\_\+node} and apply the action {\ttfamily \+\_\+action} to each node. This traversal function will call the enter/leave functions of the action if they have been implemented. 

Definition at line 137 of file Scene\+Graph.\+hh.

\mbox{\Hypertarget{a06177_a334bbeb5b340547913d31f7cf17f9872}\label{a06177_a334bbeb5b340547913d31f7cf17f9872}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!traverse\+\_\+all@{traverse\+\_\+all}}
\index{traverse\+\_\+all@{traverse\+\_\+all}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{traverse\+\_\+all()}{traverse\_all()}}
{\footnotesize\ttfamily template$<$class Action $>$ \\
void A\+C\+G\+::\+Scene\+Graph\+::traverse\+\_\+all (\begin{DoxyParamCaption}\item[{\hyperlink{a07748}{Base\+Node} $\ast$}]{\+\_\+node,  }\item[{Action \&}]{\+\_\+action }\end{DoxyParamCaption})}

Traverse the scenegraph exactly like the \hyperlink{a06177_af10521b6f81a7a588708218d75936f81}{traverse()} function does, but also include hidden nodes. 

Definition at line 202 of file Scene\+Graph.\+hh.

\mbox{\Hypertarget{a06177_a7a6bc81c886119388cc6efe0fd7c8c85}\label{a06177_a7a6bc81c886119388cc6efe0fd7c8c85}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!traverse\+\_\+multipass@{traverse\+\_\+multipass}}
\index{traverse\+\_\+multipass@{traverse\+\_\+multipass}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{traverse\+\_\+multipass()}{traverse\_multipass()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class Action $>$ \\
void A\+C\+G\+::\+Scene\+Graph\+::traverse\+\_\+multipass (\begin{DoxyParamCaption}\item[{\hyperlink{a07748}{Base\+Node} $\ast$}]{\+\_\+node,  }\item[{Action \&}]{\+\_\+action,  }\item[{const unsigned int \&}]{\+\_\+pass }\end{DoxyParamCaption})}

Traverse the scenegraph starting at the node {\ttfamily \+\_\+node} and apply the action {\ttfamily \+\_\+action} to each node. This traversal function will call the enter/leave functions of the action if they have been implemented. This function traverses the scene graph multiple times if multipass rendering is turned on. \hyperlink{a07452}{G\+L\+State} holds attributes to control render passes. Attention\+: Render passes are 1-\/indexed.~\newline
 !!! You should ot use this function directly. Use the traverse\+\_\+multipass function which controls the glstate too. This function will also manage the passes for you!!! 

Definition at line 254 of file Scene\+Graph.\+hh.

\mbox{\Hypertarget{a06177_a43edcdd142eacba808a327fbc942a85c}\label{a06177_a43edcdd142eacba808a327fbc942a85c}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!traverse\+\_\+multipass@{traverse\+\_\+multipass}}
\index{traverse\+\_\+multipass@{traverse\+\_\+multipass}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{traverse\+\_\+multipass()}{traverse\_multipass()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Action $>$ \\
void A\+C\+G\+::\+Scene\+Graph\+::traverse\+\_\+multipass (\begin{DoxyParamCaption}\item[{\hyperlink{a07748}{Base\+Node} $\ast$}]{\+\_\+node,  }\item[{Action \&}]{\+\_\+action,  }\item[{\hyperlink{a07452}{G\+L\+State} \&}]{\+\_\+state,  }\item[{\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode}}]{ = {\ttfamily \hyperlink{a06191_a86e2ee2cdca1cdeaf861126ce9604507}{Draw\+Modes\+::\+D\+E\+F\+A\+U\+LT}} }\end{DoxyParamCaption})}

Traverse the scenegraph starting at the node {\ttfamily \+\_\+node} and apply the action {\ttfamily action} to each node. When arriving at a node, its \hyperlink{a07748_aeb32b92d411b21712d12662ddd910ee8}{Base\+Node\+::enter()} function is called, then {\ttfamily \+\_\+action} is applied and the node\textquotesingle{}s children are traversed. After that the \hyperlink{a07748_abfaa9091bfb2ff5d221884902c100bfe}{Base\+Node\+::leave()} method is called. Do this in multiple passes.

{\bfseries You have to initialize glstate before doing this\+:}~\newline
In the state you give here use \hyperlink{a07452_a832488ef67b1ae775574338c6005c0e5}{G\+L\+State\+::set\+\_\+max\+\_\+render\+\_\+passes} to set the maximum number of renderpasses that should be performed. This is not computed here, as the number only changes if the scenegraph is changed and not for all render calls.

\begin{DoxySeeAlso}{See also}
\hyperlink{a07888}{A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} 
\end{DoxySeeAlso}


Definition at line 329 of file Scene\+Graph.\+hh.



\subsection{Variable Documentation}
\mbox{\Hypertarget{a06177_a27afe32f0d3c8c484ff12e2d1a5ea774}\label{a06177_a27afe32f0d3c8c484ff12e2d1a5ea774}} 
\index{A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}!colors@{colors}}
\index{colors@{colors}!A\+C\+G\+::\+Scene\+Graph@{A\+C\+G\+::\+Scene\+Graph}}
\subsubsection{\texorpdfstring{colors}{colors}}
{\footnotesize\ttfamily const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} A\+C\+G\+::\+Scene\+Graph\+::colors\mbox{[}4\mbox{]}\mbox{[}6\mbox{]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
  
  \{
    
    \hyperlink{a08448}{Vec4f}(0.2f,0.2f,0.2f,1.0f), \hyperlink{a08448}{Vec4f}(0.5f,0.5f,0.5f,1.0f), \hyperlink{a08448}{Vec4f}(0.8f,0.8f,0.8f,1.0f),
    
    \hyperlink{a08448}{Vec4f}(0.2f,0.2f,0.2f,0.2f), \hyperlink{a08448}{Vec4f}(0.5f,0.5f,0.5f,0.4f), \hyperlink{a08448}{Vec4f}(0.8f,0.8f,0.8f,0.6f)
  \},
  
  \{
    
    \hyperlink{a08448}{Vec4f}(0.2f,0.0f,0.0f,1.0f), \hyperlink{a08448}{Vec4f}(0.5f,0.0f,0.0f,1.0f), \hyperlink{a08448}{Vec4f}(0.8f,0.0f,0.0f,1.0f),
    
    \hyperlink{a08448}{Vec4f}(0.3f,0.1f,0.1f,0.2f), \hyperlink{a08448}{Vec4f}(0.5f,0.2f,0.2f,0.4f), \hyperlink{a08448}{Vec4f}(0.8f,0.4f,0.4f,0.6f)
  \},
  
  \{
    
    \hyperlink{a08448}{Vec4f}(0.0f,0.2f,0.0f,1.0f), \hyperlink{a08448}{Vec4f}(0.0f,0.5f,0.0f,1.0f), \hyperlink{a08448}{Vec4f}(0.0f,0.8f,0.0f,1.0f),
    
    \hyperlink{a08448}{Vec4f}(0.1f,0.3f,0.1f,0.2f), \hyperlink{a08448}{Vec4f}(0.2f,0.5f,0.2f,0.4f), \hyperlink{a08448}{Vec4f}(0.4f,0.8f,0.4f,0.6f)
  \},
  
  \{
    
    \hyperlink{a08448}{Vec4f}(0.0f,0.0f,0.2f,1.0f), \hyperlink{a08448}{Vec4f}(0.0f,0.0f,0.5f,1.0f), \hyperlink{a08448}{Vec4f}(0.0f,0.0f,0.8f,1.0f),
    
    \hyperlink{a08448}{Vec4f}(0.1f,0.1f,0.3f,0.2f), \hyperlink{a08448}{Vec4f}(0.2f,0.2f,0.5f,0.4f), \hyperlink{a08448}{Vec4f}(0.4f,0.4f,0.8f,0.6f)
  \}
\}
\end{DoxyCode}


Definition at line 80 of file Translation\+Manipulator\+Node.\+cc.

