\hypertarget{classACG_1_1SceneGraph_1_1ShaderNode}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Shader\+Node Class Reference}
\label{classACG_1_1SceneGraph_1_1ShaderNode}\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\+CG\+:\+:Scene\+Graph\+:\+:Shader\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classACG_1_1SceneGraph_1_1ShaderNode}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_1_1ShaderInfo}{Shader\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a76bd89560c1927bac19f991519985f6d}\label{classACG_1_1SceneGraph_1_1ShaderNode_a76bd89560c1927bac19f991519985f6d}} 
\hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a76bd89560c1927bac19f991519985f6d}{Shader\+Node} (\hyperlink{classACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Shader\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. Applies all properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a6f97aaf16b7cb3f8a0481607b68e9bf3}\label{classACG_1_1SceneGraph_1_1ShaderNode_a6f97aaf16b7cb3f8a0481607b68e9bf3}} 
virtual \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a6f97aaf16b7cb3f8a0481607b68e9bf3}{$\sim$\+Shader\+Node} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a19639b11a435fe0778ed1bc0a8bbd0c4}\label{classACG_1_1SceneGraph_1_1ShaderNode_a19639b11a435fe0778ed1bc0a8bbd0c4}} 
{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{classACG_1_1SceneGraph_1_1ShaderNode}{Shader\+Node})
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_aac253c6a5ee75792397e7f025a26b73a}\label{classACG_1_1SceneGraph_1_1ShaderNode_aac253c6a5ee75792397e7f025a26b73a}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_aac253c6a5ee75792397e7f025a26b73a}{enter} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode) override
\begin{DoxyCompactList}\small\item\em set shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a9654dd266c103894506b69398ac12ce7}\label{classACG_1_1SceneGraph_1_1ShaderNode_a9654dd266c103894506b69398ac12ce7}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a9654dd266c103894506b69398ac12ce7}{leave} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode) override
\begin{DoxyCompactList}\small\item\em disable shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_acad4641606c31cd0c11be4be74dc6b9d}\label{classACG_1_1SceneGraph_1_1ShaderNode_acad4641606c31cd0c11be4be74dc6b9d}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_acad4641606c31cd0c11be4be74dc6b9d}{enter\+Pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode) override
\begin{DoxyCompactList}\small\item\em set shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a44ad956fb59665bafce2cd7677799263}\label{classACG_1_1SceneGraph_1_1ShaderNode_a44ad956fb59665bafce2cd7677799263}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a44ad956fb59665bafce2cd7677799263}{leave\+Pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode) override
\begin{DoxyCompactList}\small\item\em disable shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a244f1db481c6220a6477e91fae9e5c71}\label{classACG_1_1SceneGraph_1_1ShaderNode_a244f1db481c6220a6477e91fae9e5c71}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a244f1db481c6220a6477e91fae9e5c71}{set\+Shader\+Dir} (std\+::string \+\_\+shader\+Dir)
\begin{DoxyCompactList}\small\item\em Sets the shader dir. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_abff57179e981c6e70c25f675064329f4}\label{classACG_1_1SceneGraph_1_1ShaderNode_abff57179e981c6e70c25f675064329f4}} 
std\+::string {\bfseries shader\+Dir} ()
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a0aeea038375e4153c2c8fbef3933e0de}\label{classACG_1_1SceneGraph_1_1ShaderNode_a0aeea038375e4153c2c8fbef3933e0de}} 
std\+::string {\bfseries vertex\+Shader\+Name} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a3398ecbc9b68934225d1fa113a3219d4}\label{classACG_1_1SceneGraph_1_1ShaderNode_a3398ecbc9b68934225d1fa113a3219d4}} 
std\+::string {\bfseries fragment\+Shader\+Name} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a88d19e3c0fb3cfd5f28f00a70fa94f8a}{disable\+Shader} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode)
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_ae35ec62a738c20a22cf9e2ab188c36f9}{set\+Shader} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, const std\+::string \&\+\_\+vertex\+Shader, const std\+::string \&\+\_\+fragment\+Shader, std\+::string \+\_\+pick\+Vertex\+Shader=\char`\"{}\char`\"{}, std\+::string \+\_\+pick\+Fragment\+Shader=\char`\"{}\char`\"{})
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a7ff7cae3802a7b3d45081131f513707f}\label{classACG_1_1SceneGraph_1_1ShaderNode_a7ff7cae3802a7b3d45081131f513707f}} 
\hyperlink{classGLSL_1_1Program}{G\+L\+S\+L\+::\+Ptr\+Program} \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a7ff7cae3802a7b3d45081131f513707f}{get\+Shader} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\begin{DoxyCompactList}\small\item\em Get the shader for the given draw\+Mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a3c0803dec3c19514de44b1bde33bc5d6}\label{classACG_1_1SceneGraph_1_1ShaderNode_a3c0803dec3c19514de44b1bde33bc5d6}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a3c0803dec3c19514de44b1bde33bc5d6}{has\+Shader} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\begin{DoxyCompactList}\small\item\em Check if a shader is available for the given draw\+Mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a90008b4fb2321522f4074509e029878c}\label{classACG_1_1SceneGraph_1_1ShaderNode_a90008b4fb2321522f4074509e029878c}} 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a90008b4fb2321522f4074509e029878c}{available\+Draw\+Modes} () const override
\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_af252df2a6c638db3f50f9ff6b6c5a600}\label{classACG_1_1SceneGraph_1_1ShaderNode_af252df2a6c638db3f50f9ff6b6c5a600}} 
std\+::string {\bfseries shader\+Dir\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a75c4fd57e4acf12f1bcd73938d548f21}\label{classACG_1_1SceneGraph_1_1ShaderNode_a75c4fd57e4acf12f1bcd73938d548f21}} 
std\+::map$<$ size\+\_\+t, \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_1_1ShaderInfo}{Shader\+Info} $>$ {\bfseries shaders}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_ae52622d8fc0f0b8400135f76c6914538}\label{classACG_1_1SceneGraph_1_1ShaderNode_ae52622d8fc0f0b8400135f76c6914538}} 
std\+::map$<$ size\+\_\+t, \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_1_1ShaderInfo}{Shader\+Info} $>$ {\bfseries pick\+Shaders}
\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{classACG_1_1SceneGraph_1_1ShaderNode_aac253c6a5ee75792397e7f025a26b73a}{enter()} method undonecd ..cd in the \hyperlink{classACG_1_1SceneGraph_1_1ShaderNode_a9654dd266c103894506b69398ac12ce7}{leave()} method. 

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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_a88d19e3c0fb3cfd5f28f00a70fa94f8a}\label{classACG_1_1SceneGraph_1_1ShaderNode_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{\texorpdfstring{disable\+Shader()}{disableShader()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node\+::disable\+Shader (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+drawmode }\end{DoxyParamCaption})}

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 262 of file Shader\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ShaderNode_ae35ec62a738c20a22cf9e2ab188c36f9}\label{classACG_1_1SceneGraph_1_1ShaderNode_ae35ec62a738c20a22cf9e2ab188c36f9}} 
\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{\texorpdfstring{set\+Shader()}{setShader()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node\+::set\+Shader (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+drawmode,  }\item[{const std\+::string \&}]{\+\_\+vertex\+Shader,  }\item[{const std\+::string \&}]{\+\_\+fragment\+Shader,  }\item[{std\+::string}]{\+\_\+pick\+Vertex\+Shader = {\ttfamily \char`\"{}\char`\"{}},  }\item[{std\+::string}]{\+\_\+pick\+Fragment\+Shader = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})}

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 291 of file Shader\+Node.\+cc.



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