\hypertarget{a07792}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Draw\+Modes\+:\+:Draw\+Mode Class Reference}
\label{a07792}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}


Specifies a \hyperlink{a07792}{Draw\+Mode}.  




{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/\+Draw\+Modes.\+hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a07792_a4fe565c9a3f9e2c476e35769623f3199}{Draw\+Mode} (size\+\_\+t \+\_\+index)
\begin{DoxyCompactList}\small\item\em constructor for unsigned int. \end{DoxyCompactList}\item 
\hyperlink{a07792_aaf19e20af76b360995fb4add6bb58fdd}{Draw\+Mode} (const Mode\+Flag\+Set \&\+\_\+flags)
\begin{DoxyCompactList}\small\item\em constructor for Mode\+Flags. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{a07792_a17c0598dec7b705e43172ea564112c71}{get\+Index} () const
\begin{DoxyCompactList}\small\item\em get an index of the current draw\+Mode \end{DoxyCompactList}\item 
void \hyperlink{a07792_a374e16f2a13c812ba01c31c8d71108cc}{filter} (\hyperlink{a07792}{Draw\+Mode} \+\_\+filter)
\begin{DoxyCompactList}\small\item\em filter out one drawmode \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07792_a0de857671fd1181f84c1effc70ce87cd}\label{a07792_a0de857671fd1181f84c1effc70ce87cd}} 
void \hyperlink{a07792_a0de857671fd1181f84c1effc70ce87cd}{combine} (\hyperlink{a07792}{Draw\+Mode} \+\_\+mode)
\begin{DoxyCompactList}\small\item\em combine with another drawmode \end{DoxyCompactList}\item 
std\+::string \hyperlink{a07792_a3c4ce37e097c6ab7cf63bc007940ba83}{description} () const
\item 
bool \hyperlink{a07792_ab5df4e93af76e6d0e4870ed1e049eeda}{is\+Atomic} () const
\begin{DoxyCompactList}\small\item\em Check if this is an atomic draw Mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07792_aae645db9fe6cbd6d1d3de2127f981247}\label{a07792_aae645db9fe6cbd6d1d3de2127f981247}} 
bool \hyperlink{a07792_aae645db9fe6cbd6d1d3de2127f981247}{contains\+Atomic\+Draw\+Mode} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+atomic\+Draw\+Mode) const
\begin{DoxyCompactList}\small\item\em Check whether an Atomic \hyperlink{a07792}{Draw\+Mode} is active in this draw Mode. \end{DoxyCompactList}\item 
std\+::vector$<$ \hyperlink{a07792}{Draw\+Mode} $>$ \hyperlink{a07792_a83c53b3e39cd73a83bd7fbb1b5fc4afd}{get\+Atomic\+Draw\+Modes} () const
\begin{DoxyCompactList}\small\item\em Separates this draw\+Mode into a list of all separate atomic draw modes. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07792_a86e9b7e92324efadff345447bb52050f}\label{a07792_a86e9b7e92324efadff345447bb52050f}} 
size\+\_\+t \hyperlink{a07792_a86e9b7e92324efadff345447bb52050f}{max\+Modes} () const
\begin{DoxyCompactList}\small\item\em Get the number of maximum Modes which could be handled by the current implementation. \end{DoxyCompactList}\item 
const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$ \hyperlink{a07792_abdf6b0a074e2a94a5ec14de83b7c4e08}{get\+Draw\+Mode\+Properties} () const
\begin{DoxyCompactList}\small\item\em returns the base properties of this draw mode \end{DoxyCompactList}\item 
void \hyperlink{a07792_adcc9a04caa493d1129922b487d9de014}{set\+Draw\+Mode\+Properties} (const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$\+\_\+props)
\begin{DoxyCompactList}\small\item\em set the base properties of this draw mode \end{DoxyCompactList}\item 
void \hyperlink{a07792_a3992c60ee1e26b15db2fbd243b997799}{set\+Draw\+Mode\+Properties} (const \hyperlink{a07788}{Draw\+Mode\+Properties} \&\+\_\+props)
\begin{DoxyCompactList}\small\item\em set the base properties of this draw mode \end{DoxyCompactList}\item 
bool \hyperlink{a07792_abe0d7877e961338412275d5447917fc8}{check\+Consistency} () const
\begin{DoxyCompactList}\small\item\em checks consistency of property layers \end{DoxyCompactList}\item 
int \hyperlink{a07792_a3fe567168ee8e76a969eb001eaaab644}{get\+Layer\+Index\+By\+Primitive} (\hyperlink{a06191_aff5214aaf6e6caba8f1a09f816d544fe}{Draw\+Mode\+Primitive} \+\_\+type) const
\begin{DoxyCompactList}\small\item\em search for layer with specified primitive \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Operators}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a07792_aea962367a88b70d9c47b064e1ef1b358}\label{a07792_aea962367a88b70d9c47b064e1ef1b358}} 
\hyperlink{a07792}{Draw\+Mode} \& {\bfseries operator=} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode)
\item 
\mbox{\Hypertarget{a07792_ac6675a8f57da58a10cbc049f387b493d}\label{a07792_ac6675a8f57da58a10cbc049f387b493d}} 
bool {\bfseries operator==} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode) const
\item 
\mbox{\Hypertarget{a07792_acacf3d81e298a6fe0f60ebc7fd7e0de7}\label{a07792_acacf3d81e298a6fe0f60ebc7fd7e0de7}} 
\hyperlink{a07792}{Draw\+Mode} {\bfseries operator \&} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode) const
\item 
\mbox{\Hypertarget{a07792_a0ff42fdc940819deda8aa6b165eb12a3}\label{a07792_a0ff42fdc940819deda8aa6b165eb12a3}} 
\hyperlink{a07792}{Draw\+Mode} \& {\bfseries operator++} ()
\item 
\mbox{\Hypertarget{a07792_a7cdf4db0a56173d74e7fba69df5e09d1}\label{a07792_a7cdf4db0a56173d74e7fba69df5e09d1}} 
\hyperlink{a07792}{Draw\+Mode} \& {\bfseries operator$\vert$=} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode2)
\item 
\mbox{\Hypertarget{a07792_ae557506958ae3b1301e4bd4011fce165}\label{a07792_ae557506958ae3b1301e4bd4011fce165}} 
\hyperlink{a07792}{Draw\+Mode} \& {\bfseries operator \&=} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode2)
\item 
\mbox{\Hypertarget{a07792_a7df95e7b14fc3b667dc128441f5c05ac}\label{a07792_a7df95e7b14fc3b667dc128441f5c05ac}} 
bool {\bfseries operator!=} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode2) const
\item 
\mbox{\Hypertarget{a07792_a25134a4d777264e1bd331f39f9406cd5}\label{a07792_a25134a4d777264e1bd331f39f9406cd5}} 
\hyperlink{a07792}{Draw\+Mode} {\bfseries operator$\vert$} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode2) const
\item 
\mbox{\Hypertarget{a07792_aab441c8ef9fdd7d4f72b2ec39d76c3b7}\label{a07792_aab441c8ef9fdd7d4f72b2ec39d76c3b7}} 
\hyperlink{a07792}{Draw\+Mode} {\bfseries operator$^\wedge$} (const \hyperlink{a07792}{Draw\+Mode} \&\+\_\+mode2) const
\item 
\mbox{\Hypertarget{a07792_acead54a31167514d096af9cebd05c2d6}\label{a07792_acead54a31167514d096af9cebd05c2d6}} 
\hyperlink{a07792}{Draw\+Mode} {\bfseries operator$\sim$} () const
\item 
\mbox{\Hypertarget{a07792_a7e2d863954b1d6fce1ce8a1b77a2c3b4}\label{a07792_a7e2d863954b1d6fce1ce8a1b77a2c3b4}} 
{\bfseries operator bool} () const
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Layer Management}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a07792_a0746c5dd0c371e2454ac74575d5e7f41}{add\+Layer} (const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$\+\_\+props)
\begin{DoxyCompactList}\small\item\em add another layer on top of this drawmode \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07792_af52624e3dc606cc03e025be9a71f1b5b}\label{a07792_af52624e3dc606cc03e025be9a71f1b5b}} 
size\+\_\+t \hyperlink{a07792_af52624e3dc606cc03e025be9a71f1b5b}{get\+Num\+Layers} () const
\begin{DoxyCompactList}\small\item\em returns the layer count \end{DoxyCompactList}\item 
const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$ \hyperlink{a07792_a53e8a03e5bec1c702a189cb4ff78def9}{get\+Layer} (unsigned int \+\_\+i) const
\begin{DoxyCompactList}\small\item\em returns the property set at layer i \end{DoxyCompactList}\item 
bool \hyperlink{a07792_a8fe573e10a03b879a5eeb41cf4b28944}{remove\+Layer} (unsigned int \+\_\+i)
\begin{DoxyCompactList}\small\item\em remove layer at index i \end{DoxyCompactList}\item 
bool \hyperlink{a07792_ab16cdd0674c8aa90e13070e780ba5574}{remove\+Layer} (const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$\+\_\+prop)
\begin{DoxyCompactList}\small\item\em remove layer if it is in list \end{DoxyCompactList}\item 
int \hyperlink{a07792_adf2695ed041c6e834b1cd1b113c7623f}{get\+Layer\+Index} (const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$\+\_\+prop) const
\begin{DoxyCompactList}\small\item\em returns layer index of a property, -\/1 if not in list \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a07792_a9bbe426bef70b48a98a142f3ed987f55}\label{a07792_a9bbe426bef70b48a98a142f3ed987f55}} 
static \hyperlink{a07792}{Draw\+Mode} {\bfseries get\+From\+Description} (std\+::string \+\_\+description)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a07792_a4e8e923deba9a5d3faa1e0f0321e91d0}\label{a07792_a4e8e923deba9a5d3faa1e0f0321e91d0}} 
Mode\+Flag\+Set {\bfseries mode\+Flags\+\_\+}
\item 
std\+::vector$<$ \hyperlink{a07788}{Draw\+Mode\+Properties} $>$ \hyperlink{a07792_ae1a212ad4ed4c655e857be569206dd54}{layers\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Specifies a \hyperlink{a07792}{Draw\+Mode}. 

This class specifies a \hyperlink{a07792}{Draw\+Mode}. It can contain several properties and layers that define, how objects will be rendered. 

Definition at line 288 of file Draw\+Modes.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a07792_a4fe565c9a3f9e2c476e35769623f3199}\label{a07792_a4fe565c9a3f9e2c476e35769623f3199}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!Draw\+Mode@{Draw\+Mode}}
\index{Draw\+Mode@{Draw\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{Draw\+Mode()}{DrawMode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::\+Draw\+Mode (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



constructor for unsigned int. 

This constructor creates a \hyperlink{a07792}{Draw\+Mode} with the given draw\+Mode index. Be Care\+Full! this constructor can only be used to construct atomic draw modes! The int will not be handled like an bitset but really as an index. See the list of draw modes below to check for the right numbers. You should use the predefined draw\+Modes or create new ones using the other functions and ignore this constructor!


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & Index of the new \hyperlink{a07792}{Draw\+Mode} \\
\hline
\end{DoxyParams}


Definition at line 188 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_aaf19e20af76b360995fb4add6bb58fdd}\label{a07792_aaf19e20af76b360995fb4add6bb58fdd}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!Draw\+Mode@{Draw\+Mode}}
\index{Draw\+Mode@{Draw\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{Draw\+Mode()}{DrawMode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::\+Draw\+Mode (\begin{DoxyParamCaption}\item[{const Mode\+Flag\+Set \&}]{\+\_\+flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



constructor for Mode\+Flags. 

This constructor creates a \hyperlink{a07792}{Draw\+Mode} from a bitset. This makes it easier to predefine draw modes using a bitset.


\begin{DoxyParams}{Parameters}
{\em \+\_\+flags} & Flags for the new drawmode defined by a bitset \\
\hline
\end{DoxyParams}


Definition at line 205 of file Draw\+Modes.\+cc.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a07792_a0746c5dd0c371e2454ac74575d5e7f41}\label{a07792_a0746c5dd0c371e2454ac74575d5e7f41}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!add\+Layer@{add\+Layer}}
\index{add\+Layer@{add\+Layer}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{add\+Layer()}{addLayer()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::add\+Layer (\begin{DoxyParamCaption}\item[{const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$}]{\+\_\+props }\end{DoxyParamCaption})}



add another layer on top of this drawmode 

This allows for combinations of \hyperlink{a06191}{Draw\+Modes}. The renderer will iterator over all layers of the drawmode and issue a new draw call for each layer. Example\+: layer 0 \+: flat shading properties layer 1 \+: edge drawing properties

The result will be a flat shaded object with it\textquotesingle{}s wireframe on top of it. Does duplicate check, in case the property set is already in the layer list.

add\+Layer is also called in bitwise $\vert$ operator for backwards compatibility with bitset \hyperlink{a06191}{Draw\+Modes}


\begin{DoxyParams}{Parameters}
{\em \+\_\+props} & Property that should be added \\
\hline
\end{DoxyParams}


Definition at line 540 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_abe0d7877e961338412275d5447917fc8}\label{a07792_abe0d7877e961338412275d5447917fc8}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!check\+Consistency@{check\+Consistency}}
\index{check\+Consistency@{check\+Consistency}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{check\+Consistency()}{checkConsistency()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::check\+Consistency (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



checks consistency of property layers 

There should only be at most one layer for each primitive type for example 

Definition at line 573 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a3c4ce37e097c6ab7cf63bc007940ba83}\label{a07792_a3c4ce37e097c6ab7cf63bc007940ba83}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!description@{description}}
\index{description@{description}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily std\+::string A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

Get a description string for this \hyperlink{a07792}{Draw\+Mode} An empty string is returned if this is not a valid draw mode. this list has the format Draw\+Mode\+Name+\+Draw\+M\+Ode\+Name+... 

Definition at line 444 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a374e16f2a13c812ba01c31c8d71108cc}\label{a07792_a374e16f2a13c812ba01c31c8d71108cc}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!filter@{filter}}
\index{filter@{filter}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{filter()}{filter()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::filter (\begin{DoxyParamCaption}\item[{\hyperlink{a07792}{Draw\+Mode}}]{\+\_\+filter }\end{DoxyParamCaption})}



filter out one drawmode 

This removes one or more drawmodes if this drawode is not atomic. 

Definition at line 463 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a83c53b3e39cd73a83bd7fbb1b5fc4afd}\label{a07792_a83c53b3e39cd73a83bd7fbb1b5fc4afd}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!get\+Atomic\+Draw\+Modes@{get\+Atomic\+Draw\+Modes}}
\index{get\+Atomic\+Draw\+Modes@{get\+Atomic\+Draw\+Modes}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{get\+Atomic\+Draw\+Modes()}{getAtomicDrawModes()}}
{\footnotesize\ttfamily std\+::vector$<$ \hyperlink{a07792}{Draw\+Mode} $>$ A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::get\+Atomic\+Draw\+Modes (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Separates this draw\+Mode into a list of all separate atomic draw modes. 

A draw\+Mode can consist of several atomic draw modes. This function returns a list of the separated atomic draw modes. 

Definition at line 495 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_abdf6b0a074e2a94a5ec14de83b7c4e08}\label{a07792_abdf6b0a074e2a94a5ec14de83b7c4e08}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!get\+Draw\+Mode\+Properties@{get\+Draw\+Mode\+Properties}}
\index{get\+Draw\+Mode\+Properties@{get\+Draw\+Mode\+Properties}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{get\+Draw\+Mode\+Properties()}{getDrawModeProperties()}}
{\footnotesize\ttfamily const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$ A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::get\+Draw\+Mode\+Properties (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



returns the base properties of this draw mode 

Base properties are the original properties that defined the \hyperlink{a07792}{Draw\+Mode} before any merge operation. They are located at layer 0, so actually this function has the same effect as get\+Layer(0).

Every \hyperlink{a07792}{Draw\+Mode} is property based with only two exceptions\+:
\begin{DoxyItemize}
\item N\+O\+NE
\item D\+E\+F\+A\+U\+LT
\end{DoxyItemize}

get\+Draw\+Mode\+Properties returns 0 for these. 

Definition at line 567 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a17c0598dec7b705e43172ea564112c71}\label{a07792_a17c0598dec7b705e43172ea564112c71}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!get\+Index@{get\+Index}}
\index{get\+Index@{get\+Index}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{get\+Index()}{getIndex()}}
{\footnotesize\ttfamily size\+\_\+t A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::get\+Index (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



get an index of the current draw\+Mode 

If this draw\+Mode is a combination of different draw\+Modes, the returned value will be 0. Otherwise the internal flag index will be returned 

Definition at line 434 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a53e8a03e5bec1c702a189cb4ff78def9}\label{a07792_a53e8a03e5bec1c702a189cb4ff78def9}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!get\+Layer@{get\+Layer}}
\index{get\+Layer@{get\+Layer}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{get\+Layer()}{getLayer()}}
{\footnotesize\ttfamily const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$ A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::get\+Layer (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+i }\end{DoxyParamCaption}) const}



returns the property set at layer i 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Layer that is requested \\
\hline
\end{DoxyParams}


Definition at line 535 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_adf2695ed041c6e834b1cd1b113c7623f}\label{a07792_adf2695ed041c6e834b1cd1b113c7623f}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!get\+Layer\+Index@{get\+Layer\+Index}}
\index{get\+Layer\+Index@{get\+Layer\+Index}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{get\+Layer\+Index()}{getLayerIndex()}}
{\footnotesize\ttfamily int A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::get\+Layer\+Index (\begin{DoxyParamCaption}\item[{const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$}]{\+\_\+prop }\end{DoxyParamCaption}) const}



returns layer index of a property, -\/1 if not in list 


\begin{DoxyParams}{Parameters}
{\em \+\_\+prop} & Property to be searched for \\
\hline
\end{DoxyParams}


Definition at line 611 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a3fe567168ee8e76a969eb001eaaab644}\label{a07792_a3fe567168ee8e76a969eb001eaaab644}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!get\+Layer\+Index\+By\+Primitive@{get\+Layer\+Index\+By\+Primitive}}
\index{get\+Layer\+Index\+By\+Primitive@{get\+Layer\+Index\+By\+Primitive}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{get\+Layer\+Index\+By\+Primitive()}{getLayerIndexByPrimitive()}}
{\footnotesize\ttfamily int A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::get\+Layer\+Index\+By\+Primitive (\begin{DoxyParamCaption}\item[{\hyperlink{a06191_aff5214aaf6e6caba8f1a09f816d544fe}{Draw\+Mode\+Primitive}}]{\+\_\+type }\end{DoxyParamCaption}) const}



search for layer with specified primitive 


\begin{DoxyParams}{Parameters}
{\em \+\_\+type} & primitive type \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
layer id if layer exists, -\/1 otherwise 
\end{DoxyReturn}


Definition at line 626 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_ab5df4e93af76e6d0e4870ed1e049eeda}\label{a07792_ab5df4e93af76e6d0e4870ed1e049eeda}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!is\+Atomic@{is\+Atomic}}
\index{is\+Atomic@{is\+Atomic}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{is\+Atomic()}{isAtomic()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::is\+Atomic (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Check if this is an atomic draw Mode. 

This function checks, if this is a atomic draw mode ( no combination of multiple draw modes ) 

Definition at line 512 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a8fe573e10a03b879a5eeb41cf4b28944}\label{a07792_a8fe573e10a03b879a5eeb41cf4b28944}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!remove\+Layer@{remove\+Layer}}
\index{remove\+Layer@{remove\+Layer}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{remove\+Layer()}{removeLayer()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::remove\+Layer (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+i }\end{DoxyParamCaption})}



remove layer at index i 


\begin{DoxyParams}{Parameters}
{\em \+\_\+i} & Layer that is requested \\
\hline
\end{DoxyParams}


Definition at line 546 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_ab16cdd0674c8aa90e13070e780ba5574}\label{a07792_ab16cdd0674c8aa90e13070e780ba5574}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!remove\+Layer@{remove\+Layer}}
\index{remove\+Layer@{remove\+Layer}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{remove\+Layer()}{removeLayer()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::remove\+Layer (\begin{DoxyParamCaption}\item[{const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$}]{\+\_\+prop }\end{DoxyParamCaption})}



remove layer if it is in list 


\begin{DoxyParams}{Parameters}
{\em \+\_\+prop} & Property that should be removed if it\textquotesingle{}s available \\
\hline
\end{DoxyParams}


Definition at line 557 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_adcc9a04caa493d1129922b487d9de014}\label{a07792_adcc9a04caa493d1129922b487d9de014}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!set\+Draw\+Mode\+Properties@{set\+Draw\+Mode\+Properties}}
\index{set\+Draw\+Mode\+Properties@{set\+Draw\+Mode\+Properties}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{set\+Draw\+Mode\+Properties()}{setDrawModeProperties()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::set\+Draw\+Mode\+Properties (\begin{DoxyParamCaption}\item[{const \hyperlink{a07788}{Draw\+Mode\+Properties} $\ast$}]{\+\_\+props }\end{DoxyParamCaption})}



set the base properties of this draw mode 


\begin{DoxyParams}{Parameters}
{\em \+\_\+props} & \hyperlink{a11928}{Properties} to be set \\
\hline
\end{DoxyParams}


Definition at line 251 of file Draw\+Modes.\+cc.

\mbox{\Hypertarget{a07792_a3992c60ee1e26b15db2fbd243b997799}\label{a07792_a3992c60ee1e26b15db2fbd243b997799}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!set\+Draw\+Mode\+Properties@{set\+Draw\+Mode\+Properties}}
\index{set\+Draw\+Mode\+Properties@{set\+Draw\+Mode\+Properties}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{set\+Draw\+Mode\+Properties()}{setDrawModeProperties()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::set\+Draw\+Mode\+Properties (\begin{DoxyParamCaption}\item[{const \hyperlink{a07788}{Draw\+Mode\+Properties} \&}]{\+\_\+props }\end{DoxyParamCaption})}



set the base properties of this draw mode 


\begin{DoxyParams}{Parameters}
{\em \+\_\+props} & \hyperlink{a11928}{Properties} to be set \\
\hline
\end{DoxyParams}


Definition at line 263 of file Draw\+Modes.\+cc.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{a07792_ae1a212ad4ed4c655e857be569206dd54}\label{a07792_ae1a212ad4ed4c655e857be569206dd54}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}!layers\+\_\+@{layers\+\_\+}}
\index{layers\+\_\+@{layers\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode@{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode}}
\subsubsection{\texorpdfstring{layers\+\_\+}{layers\_}}
{\footnotesize\ttfamily std\+::vector$<$\hyperlink{a07788}{Draw\+Mode\+Properties}$>$ A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode\+::layers\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

vector for combined \hyperlink{a06191}{Draw\+Modes} -\/$>$ holds \hyperlink{a07788}{Draw\+Mode\+Properties} for each layer -\/$>$ original layer at index 0 

Definition at line 499 of file Draw\+Modes.\+hh.



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