\hypertarget{class_ogre_1_1_r_t_shader_1_1_binary_op_atom}{}\doxysection{Ogre\+::R\+T\+Shader\+::Binary\+Op\+Atom Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_binary_op_atom}\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}


shorthand for \char`\"{}dst = a O\+P b;\char`\"{}  




{\ttfamily \#include $<$Ogre\+Shader\+Function\+Atom.\+h$>$}



Inheritance diagram for Ogre\+::R\+T\+Shader\+::Binary\+Op\+Atom\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=249pt]{class_ogre_1_1_r_t_shader_1_1_binary_op_atom__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::vector$<$ \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand}{Operand}} $>$ \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}{Operand\+Vector}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_afcd3dc547b9b4a71fc928f46ecabfe85}{Binary\+Op\+Atom}} (char op, const \mbox{\hyperlink{struct_ogre_1_1_r_t_shader_1_1_in}{In}} \&a, const \mbox{\hyperlink{struct_ogre_1_1_r_t_shader_1_1_in}{In}} \&b, const \mbox{\hyperlink{struct_ogre_1_1_r_t_shader_1_1_out}{Out}} \&dst, int group\+Order)
\item 
\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_a48fefc78353eedc3226d5b22c8ba5fb8}{Binary\+Op\+Atom}} (char op, int group\+Order)
\item 
int \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a57ab20ad44b371a1ff9cad41fca2b09f}{get\+Group\+Execution\+Order}} () const
\begin{DoxyCompactList}\small\item\em Get the group execution order of this function atom. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}{Operand\+Vector}} \& \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_ac613127af7ac6b4d0d9104a25aa483cf}{get\+Operand\+List}} ()
\begin{DoxyCompactList}\small\item\em Get a list of parameters this function invocation will use in the function call as arguments. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a9f2dc8cd3daeecf815fb14a37c22acec}{push\+Operand}} (\mbox{\hyperlink{namespace_ogre_1_1_r_t_shader_a0073f878d77367ce3ccea68a6a44a1e9}{Parameter\+Ptr}} parameter, \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand_a50ab83cea566b55ad9c66d0d93ea7e7a}{Operand\+::\+Op\+Semantic}} op\+Semantic, \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand_a775b1b466c9d9072e718c56eb9d8d9ad}{Operand\+::\+Op\+Mask}} op\+Mask=\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand_a775b1b466c9d9072e718c56eb9d8d9ada88638ec7440dbfc7f63ea80e008cd806}{Operand\+::\+O\+P\+M\+\_\+\+A\+LL}}, int indirection\+Level=0)
\begin{DoxyCompactList}\small\item\em Push a new operand (on the end) to the function. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_ae57d5a88e6d087f38e0964bb1099ec4b}{set\+Operands}} (const \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}{Operand\+Vector}} \&ops)
\item 
void \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_aeee0b140ebaab6973ef9c87566676fc4}{write\+Source\+Code}} (std\+::ostream \&os, const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&target\+Language) const
\begin{DoxyCompactList}\small\item\em Abstract method that writes a source code to the given output stream in the target shader language. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
shorthand for \char`\"{}dst = a O\+P b;\char`\"{} 

\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}\label{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!OperandVector@{OperandVector}}
\index{OperandVector@{OperandVector}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{OperandVector}{OperandVector}}
{\footnotesize\ttfamily typedef std\+::vector$<$\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand}{Operand}}$>$ \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}{Ogre\+::\+R\+T\+Shader\+::\+Function\+Atom\+::\+Operand\+Vector}}\hspace{0.3cm}{\ttfamily [inherited]}}



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_a48fefc78353eedc3226d5b22c8ba5fb8}\label{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_a48fefc78353eedc3226d5b22c8ba5fb8}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!BinaryOpAtom@{BinaryOpAtom}}
\index{BinaryOpAtom@{BinaryOpAtom}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{BinaryOpAtom()}{BinaryOpAtom()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Binary\+Op\+Atom\+::\+Binary\+Op\+Atom (\begin{DoxyParamCaption}\item[{char}]{op,  }\item[{int}]{group\+Order }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_afcd3dc547b9b4a71fc928f46ecabfe85}\label{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_afcd3dc547b9b4a71fc928f46ecabfe85}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!BinaryOpAtom@{BinaryOpAtom}}
\index{BinaryOpAtom@{BinaryOpAtom}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{BinaryOpAtom()}{BinaryOpAtom()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Binary\+Op\+Atom\+::\+Binary\+Op\+Atom (\begin{DoxyParamCaption}\item[{char}]{op,  }\item[{const \mbox{\hyperlink{struct_ogre_1_1_r_t_shader_1_1_in}{In}} \&}]{a,  }\item[{const \mbox{\hyperlink{struct_ogre_1_1_r_t_shader_1_1_in}{In}} \&}]{b,  }\item[{const \mbox{\hyperlink{struct_ogre_1_1_r_t_shader_1_1_out}{Out}} \&}]{dst,  }\item[{int}]{group\+Order }\end{DoxyParamCaption})}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_aeee0b140ebaab6973ef9c87566676fc4}\label{class_ogre_1_1_r_t_shader_1_1_binary_op_atom_aeee0b140ebaab6973ef9c87566676fc4}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!writeSourceCode@{writeSourceCode}}
\index{writeSourceCode@{writeSourceCode}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{writeSourceCode()}{writeSourceCode()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Binary\+Op\+Atom\+::write\+Source\+Code (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os,  }\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{target\+Language }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Abstract method that writes a source code to the given output stream in the target shader language. 



Implements \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a144ec0feff79051e2840e339f5458d9e}{Ogre\+::\+R\+T\+Shader\+::\+Function\+Atom}}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_function_atom_a57ab20ad44b371a1ff9cad41fca2b09f}\label{class_ogre_1_1_r_t_shader_1_1_function_atom_a57ab20ad44b371a1ff9cad41fca2b09f}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!getGroupExecutionOrder@{getGroupExecutionOrder}}
\index{getGroupExecutionOrder@{getGroupExecutionOrder}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{getGroupExecutionOrder()}{getGroupExecutionOrder()}}
{\footnotesize\ttfamily int Ogre\+::\+R\+T\+Shader\+::\+Function\+Atom\+::get\+Group\+Execution\+Order (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Get the group execution order of this function atom. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_function_atom_ac613127af7ac6b4d0d9104a25aa483cf}\label{class_ogre_1_1_r_t_shader_1_1_function_atom_ac613127af7ac6b4d0d9104a25aa483cf}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!getOperandList@{getOperandList}}
\index{getOperandList@{getOperandList}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{getOperandList()}{getOperandList()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}{Operand\+Vector}}\& Ogre\+::\+R\+T\+Shader\+::\+Function\+Atom\+::get\+Operand\+List (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Get a list of parameters this function invocation will use in the function call as arguments. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_function_atom_a9f2dc8cd3daeecf815fb14a37c22acec}\label{class_ogre_1_1_r_t_shader_1_1_function_atom_a9f2dc8cd3daeecf815fb14a37c22acec}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!pushOperand@{pushOperand}}
\index{pushOperand@{pushOperand}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{pushOperand()}{pushOperand()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Function\+Atom\+::push\+Operand (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_1_1_r_t_shader_a0073f878d77367ce3ccea68a6a44a1e9}{Parameter\+Ptr}}}]{parameter,  }\item[{\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand_a50ab83cea566b55ad9c66d0d93ea7e7a}{Operand\+::\+Op\+Semantic}}}]{op\+Semantic,  }\item[{\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand_a775b1b466c9d9072e718c56eb9d8d9ad}{Operand\+::\+Op\+Mask}}}]{op\+Mask = {\ttfamily \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_operand_a775b1b466c9d9072e718c56eb9d8d9ada88638ec7440dbfc7f63ea80e008cd806}{Operand\+::\+O\+P\+M\+\_\+\+A\+LL}}},  }\item[{int}]{indirection\+Level = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Push a new operand (on the end) to the function. 


\begin{DoxyParams}{Parameters}
{\em parameter} & A function parameter. \\
\hline
{\em op\+Semantic} & The in/out semantic of the parameter. \\
\hline
{\em op\+Mask} & The field mask of the parameter. \\
\hline
{\em indirection\+Level} & The level of nesting inside brackets \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_function_atom_ae57d5a88e6d087f38e0964bb1099ec4b}\label{class_ogre_1_1_r_t_shader_1_1_function_atom_ae57d5a88e6d087f38e0964bb1099ec4b}} 
\index{Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}!setOperands@{setOperands}}
\index{setOperands@{setOperands}!Ogre::RTShader::BinaryOpAtom@{Ogre::RTShader::BinaryOpAtom}}
\doxysubsubsection{\texorpdfstring{setOperands()}{setOperands()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Function\+Atom\+::set\+Operands (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function_atom_a8ee01734bbd8395fb62b20d1814952ac}{Operand\+Vector}} \&}]{ops }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_shader_function_atom_8h}{Ogre\+Shader\+Function\+Atom.\+h}}\end{DoxyCompactItemize}
