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


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

Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:Shader\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a01166}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a01162}{Shader\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01166_a76bd89560c1927bac19f991519985f6d}{\hyperlink{a01166_a76bd89560c1927bac19f991519985f6d}{Shader\+Node} (\hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Shader\+Node$>$\char`\"{})}\label{a01166_a76bd89560c1927bac19f991519985f6d}

\begin{DoxyCompactList}\small\item\em Default constructor. Applies all properties. \end{DoxyCompactList}\item 
\hypertarget{a01166_a6f97aaf16b7cb3f8a0481607b68e9bf3}{virtual \hyperlink{a01166_a6f97aaf16b7cb3f8a0481607b68e9bf3}{$\sim$\+Shader\+Node} ()}\label{a01166_a6f97aaf16b7cb3f8a0481607b68e9bf3}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a01166_a19639b11a435fe0778ed1bc0a8bbd0c4}{{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (\hyperlink{a01166}{Shader\+Node})}\label{a01166_a19639b11a435fe0778ed1bc0a8bbd0c4}

\item 
\hypertarget{a01166_a66d547fbdf96880de8eb9758c2b484c7}{void \hyperlink{a01166_a66d547fbdf96880de8eb9758c2b484c7}{enter} (\hyperlink{a00643}{G\+L\+State} \&, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01166_a66d547fbdf96880de8eb9758c2b484c7}

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

\begin{DoxyCompactList}\small\item\em disable shader \end{DoxyCompactList}\item 
\hypertarget{a01166_a54874e6047fb372ca205a27ece3849df}{void \hyperlink{a01166_a54874e6047fb372ca205a27ece3849df}{enter\+Pick} (\hyperlink{a00643}{G\+L\+State} \&, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01166_a54874e6047fb372ca205a27ece3849df}

\begin{DoxyCompactList}\small\item\em set shader \end{DoxyCompactList}\item 
\hypertarget{a01166_a07ba730a1cfd6aa98cb0f7b3a98fc2ea}{void \hyperlink{a01166_a07ba730a1cfd6aa98cb0f7b3a98fc2ea}{leave\+Pick} (\hyperlink{a00643}{G\+L\+State} \&, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01166_a07ba730a1cfd6aa98cb0f7b3a98fc2ea}

\begin{DoxyCompactList}\small\item\em disable shader \end{DoxyCompactList}\item 
\hypertarget{a01166_a244f1db481c6220a6477e91fae9e5c71}{void \hyperlink{a01166_a244f1db481c6220a6477e91fae9e5c71}{set\+Shader\+Dir} (std\+::string \+\_\+shader\+Dir)}\label{a01166_a244f1db481c6220a6477e91fae9e5c71}

\begin{DoxyCompactList}\small\item\em Sets the shader dir. \end{DoxyCompactList}\item 
\hypertarget{a01166_abff57179e981c6e70c25f675064329f4}{std\+::string {\bfseries shader\+Dir} ()}\label{a01166_abff57179e981c6e70c25f675064329f4}

\item 
\hypertarget{a01166_a0aeea038375e4153c2c8fbef3933e0de}{std\+::string {\bfseries vertex\+Shader\+Name} (\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)}\label{a01166_a0aeea038375e4153c2c8fbef3933e0de}

\item 
\hypertarget{a01166_a3398ecbc9b68934225d1fa113a3219d4}{std\+::string {\bfseries fragment\+Shader\+Name} (\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)}\label{a01166_a3398ecbc9b68934225d1fa113a3219d4}

\item 
void \hyperlink{a01166_a88d19e3c0fb3cfd5f28f00a70fa94f8a}{disable\+Shader} (\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode)
\item 
void \hyperlink{a01166_a877b53c021859dfd424025f61e2bda4d}{set\+Shader} (\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, std\+::string \+\_\+vertex\+Shader, std\+::string \+\_\+fragment\+Shader, std\+::string \+\_\+pick\+Vertex\+Shader=\char`\"{}\char`\"{}, std\+::string \+\_\+pick\+Fragment\+Shader=\char`\"{}\char`\"{})
\item 
\hypertarget{a01166_a7ff7cae3802a7b3d45081131f513707f}{\hyperlink{a01019}{G\+L\+S\+L\+::\+Ptr\+Program} \hyperlink{a01166_a7ff7cae3802a7b3d45081131f513707f}{get\+Shader} (\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)}\label{a01166_a7ff7cae3802a7b3d45081131f513707f}

\begin{DoxyCompactList}\small\item\em Get the shader for the given draw\+Mode. \end{DoxyCompactList}\item 
\hypertarget{a01166_a3c0803dec3c19514de44b1bde33bc5d6}{bool \hyperlink{a01166_a3c0803dec3c19514de44b1bde33bc5d6}{has\+Shader} (\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)}\label{a01166_a3c0803dec3c19514de44b1bde33bc5d6}

\begin{DoxyCompactList}\small\item\em Check if a shader is available for the given draw\+Mode. \end{DoxyCompactList}\item 
\hypertarget{a01166_a0aaebc2b6c92af3dc952e31ee79e0744}{\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a01166_a0aaebc2b6c92af3dc952e31ee79e0744}{available\+Draw\+Modes} () const }\label{a01166_a0aaebc2b6c92af3dc952e31ee79e0744}

\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01166_af252df2a6c638db3f50f9ff6b6c5a600}{std\+::string {\bfseries shader\+Dir\+\_\+}}\label{a01166_af252df2a6c638db3f50f9ff6b6c5a600}

\item 
\hypertarget{a01166_a75c4fd57e4acf12f1bcd73938d548f21}{std\+::map$<$ size\+\_\+t, \hyperlink{a01162}{Shader\+Info} $>$ {\bfseries shaders}}\label{a01166_a75c4fd57e4acf12f1bcd73938d548f21}

\item 
\hypertarget{a01166_ae52622d8fc0f0b8400135f76c6914538}{std\+::map$<$ size\+\_\+t, \hyperlink{a01162}{Shader\+Info} $>$ {\bfseries pick\+Shaders}}\label{a01166_ae52622d8fc0f0b8400135f76c6914538}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Set shaders for this node and all its children. All changes will be done in the \hyperlink{a01166_a66d547fbdf96880de8eb9758c2b484c7}{enter()} method undonecd ..cd in the \hyperlink{a01166_a533a63a471cadbe8468582df464abba8}{leave()} method. 

Definition at line 87 of file Shader\+Node.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01166_a88d19e3c0fb3cfd5f28f00a70fa94f8a}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}!disable\+Shader@{disable\+Shader}}
\index{disable\+Shader@{disable\+Shader}!A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}}
\subsubsection[{disable\+Shader}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node\+::disable\+Shader (
\begin{DoxyParamCaption}
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+drawmode}
\end{DoxyParamCaption}
)}}\label{a01166_a88d19e3c0fb3cfd5f28f00a70fa94f8a}
Removes the shader for the given draw mode 
\begin{DoxyParams}{Parameters}
{\em \+\_\+drawmode} & Set the drawmode for which the shader should be deactivated \\
\hline
\end{DoxyParams}


Definition at line 268 of file Shader\+Node.\+cc.

\hypertarget{a01166_a877b53c021859dfd424025f61e2bda4d}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}!set\+Shader@{set\+Shader}}
\index{set\+Shader@{set\+Shader}!A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}}
\subsubsection[{set\+Shader}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node\+::set\+Shader (
\begin{DoxyParamCaption}
\item[{{\bf Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+drawmode, }
\item[{std\+::string}]{\+\_\+vertex\+Shader, }
\item[{std\+::string}]{\+\_\+fragment\+Shader, }
\item[{std\+::string}]{\+\_\+pick\+Vertex\+Shader = {\ttfamily \char`\"{}\char`\"{}}, }
\item[{std\+::string}]{\+\_\+pick\+Fragment\+Shader = {\ttfamily \char`\"{}\char`\"{}}}
\end{DoxyParamCaption}
)}}\label{a01166_a877b53c021859dfd424025f61e2bda4d}
Sets a Shader for the given draw mode 
\begin{DoxyParams}{Parameters}
{\em \+\_\+drawmode} & Set the drawmode for which the shader should be activated \\
\hline
{\em \+\_\+vertex\+Shader} & filename of the Vertex Shader within the shader directory \\
\hline
{\em \+\_\+fragment\+Shader} & filename of the Fragment Shader within the shader directory \\
\hline
{\em \+\_\+pick\+Vertex\+Shader} & Vertex shader during picking \\
\hline
{\em \+\_\+pick\+Fragment\+Shader} & Fragment shader during picking \\
\hline
\end{DoxyParams}


Definition at line 297 of file Shader\+Node.\+cc.



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