\hypertarget{classACG_1_1SceneGraph_1_1TextureNode}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Texture\+Node Class Reference}
\label{classACG_1_1SceneGraph_1_1TextureNode}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}


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

Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:Texture\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classACG_1_1SceneGraph_1_1TextureNode}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_1_1TextureInfo}{Texture\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ab8db8798d03cb08c67bbe3282999624a}\label{classACG_1_1SceneGraph_1_1TextureNode_ab8db8798d03cb08c67bbe3282999624a}} 
\hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ab8db8798d03cb08c67bbe3282999624a}{Texture\+Node} (\hyperlink{classACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Texture\+Node$>$\char`\"{}, bool \+\_\+texture\+\_\+repeat=true, G\+Lint \+\_\+texture\+\_\+filter=G\+L\+\_\+\+L\+I\+N\+E\+AR)
\begin{DoxyCompactList}\small\item\em Default constructor. Applies all properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aa3a43e529edd63a78be451bd5f185566}\label{classACG_1_1SceneGraph_1_1TextureNode_aa3a43e529edd63a78be451bd5f185566}} 
virtual \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_aa3a43e529edd63a78be451bd5f185566}{$\sim$\+Texture\+Node} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_af5154ba0ae3ab9d686ba0a5508b328f0}\label{classACG_1_1SceneGraph_1_1TextureNode_af5154ba0ae3ab9d686ba0a5508b328f0}} 
\hyperlink{classACG_1_1SceneGraph_1_1TextureNode_af5154ba0ae3ab9d686ba0a5508b328f0}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{classACG_1_1SceneGraph_1_1TextureNode}{Texture\+Node})
\begin{DoxyCompactList}\small\item\em set class name \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a912450deb675ffa2945f3ea171d5b7de}\label{classACG_1_1SceneGraph_1_1TextureNode_a912450deb675ffa2945f3ea171d5b7de}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a912450deb675ffa2945f3ea171d5b7de}{alpha} ()
\begin{DoxyCompactList}\small\item\em get transparency status \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a0bafc262b0785f49338fd33c1a34e9ce}\label{classACG_1_1SceneGraph_1_1TextureNode_a0bafc262b0785f49338fd33c1a34e9ce}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a0bafc262b0785f49338fd33c1a34e9ce}{set\+\_\+alpha} (bool \+\_\+status)
\begin{DoxyCompactList}\small\item\em set transparency status \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a307b679473f661d29ef334b47974c201}\label{classACG_1_1SceneGraph_1_1TextureNode_a307b679473f661d29ef334b47974c201}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a307b679473f661d29ef334b47974c201}{repeat} ()
\begin{DoxyCompactList}\small\item\em get texture repeat status \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a1a6b43980a7ad9651ad6f6a73bc90a29}\label{classACG_1_1SceneGraph_1_1TextureNode_a1a6b43980a7ad9651ad6f6a73bc90a29}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a1a6b43980a7ad9651ad6f6a73bc90a29}{set\+\_\+repeat} (bool \+\_\+status)
\begin{DoxyCompactList}\small\item\em set texture repeat status \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a46c1809eabebf74f489b432a84519aa7}\label{classACG_1_1SceneGraph_1_1TextureNode_a46c1809eabebf74f489b432a84519aa7}} 
G\+Lint \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a46c1809eabebf74f489b432a84519aa7}{filter} ()
\begin{DoxyCompactList}\small\item\em get texture filter \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ac50f80dc15e6351e56f546253f40d0f5}\label{classACG_1_1SceneGraph_1_1TextureNode_ac50f80dc15e6351e56f546253f40d0f5}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ac50f80dc15e6351e56f546253f40d0f5}{set\+\_\+filter} (G\+Lint \+\_\+filter)
\begin{DoxyCompactList}\small\item\em set texture filter \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a47d06072e41bcdda44e6e6badbb97a4b}\label{classACG_1_1SceneGraph_1_1TextureNode_a47d06072e41bcdda44e6e6badbb97a4b}} 
void {\bfseries set\+\_\+texture\+\_\+mode} (G\+Lenum \+\_\+mode)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ab7e0f624b77522102726ba843c41b9b9}\label{classACG_1_1SceneGraph_1_1TextureNode_ab7e0f624b77522102726ba843c41b9b9}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ab7e0f624b77522102726ba843c41b9b9}{enable\+\_\+mipmapping} ()
\begin{DoxyCompactList}\small\item\em Enable mipmapping. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a9f1bb2bb06d59285f4936b7ce7d6ec2f}\label{classACG_1_1SceneGraph_1_1TextureNode_a9f1bb2bb06d59285f4936b7ce7d6ec2f}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a9f1bb2bb06d59285f4936b7ce7d6ec2f}{disable\+\_\+mipmapping} ()
\begin{DoxyCompactList}\small\item\em Disable mipmapping. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aafdc1f68b3da97cda880fe8748ba37b1}\label{classACG_1_1SceneGraph_1_1TextureNode_aafdc1f68b3da97cda880fe8748ba37b1}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_aafdc1f68b3da97cda880fe8748ba37b1}{mipmapping} () const
\begin{DoxyCompactList}\small\item\em Get mipmapping status. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Change active texture}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ab8a5fb3024b12ff2fcc62008372e3f06}{activate\+Texture} (G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em Set active \hyperlink{classACG_1_1Texture}{Texture}. \end{DoxyCompactList}\item 
G\+Luint \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_aa799bcbe6467470436c49371da45e1c5}{active\+Texture} ()
\begin{DoxyCompactList}\small\item\em Get active \hyperlink{classACG_1_1Texture}{Texture}. \end{DoxyCompactList}\item 
bool \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a46df8c617678ae3855cd7093c577ed14}{read} (const char $\ast$\+\_\+filename)
\begin{DoxyCompactList}\small\item\em Uses a Q\+Image to load the texture from the given file. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_aab7266b46c937eaf5f5aefd981ab5373}{set\+\_\+texture} (const Q\+Image \&\+\_\+image)
\begin{DoxyCompactList}\small\item\em Uses a Q\+Image to set the texture. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a219002c63b0b1599d3eb6161ece1e1ff}{set\+\_\+texture} (const float $\ast$\+\_\+image, int \+\_\+width, int \+\_\+height)
\begin{DoxyCompactList}\small\item\em Uses a float buffer to set the texture. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a32040165c1696191a9468bdd1ecdb81c}{set\+\_\+texture} (const unsigned char $\ast$\+\_\+image, int \+\_\+width, int \+\_\+height)
\begin{DoxyCompactList}\small\item\em Uses a byte buffer to set the texture. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Change specific texture}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ac98955a499f9d75b27c0ea21d6db28f4}{read} (const char $\ast$\+\_\+filename, G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em Uses a Q\+Image to load the texture from the given file. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a883469a5e84906cc6312ebdfebad87e9}{set\+\_\+texture} (const Q\+Image \&\+\_\+image, G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em Uses a Q\+Image to set the texture. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ac89792de5df5bb8a9ed3b01a57c36e7d}{set\+\_\+texture} (const float $\ast$\+\_\+image, int \+\_\+width, int \+\_\+height, G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em Uses a float buffer to set the texture. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a3cb28aa6ea9ebfb80aab5e6cc1f5cbb9}{set\+\_\+texture} (const unsigned char $\ast$\+\_\+image, int \+\_\+width, int \+\_\+height, G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em Uses a byte buffer to set the texture. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Scene\+Graph traversal functions}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a22068fe438c2ebfb53346f537f6173b7}\label{classACG_1_1SceneGraph_1_1TextureNode_a22068fe438c2ebfb53346f537f6173b7}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a22068fe438c2ebfb53346f537f6173b7}{enter} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode) override
\begin{DoxyCompactList}\small\item\em set default texture and states for the nodes children \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a4230eae85f61631584779fe5cef40a16}\label{classACG_1_1SceneGraph_1_1TextureNode_a4230eae85f61631584779fe5cef40a16}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a4230eae85f61631584779fe5cef40a16}{leave} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode) override
\begin{DoxyCompactList}\small\item\em Unbind \hyperlink{classACG_1_1Texture}{Texture}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aaf260b8259422582b2b9a2a9041416fc}\label{classACG_1_1SceneGraph_1_1TextureNode_aaf260b8259422582b2b9a2a9041416fc}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_aaf260b8259422582b2b9a2a9041416fc}{enter\+Pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode) override
\begin{DoxyCompactList}\small\item\em Do nothing in picking. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ae5577fc8fcda32da3859c2b0be1754c8}\label{classACG_1_1SceneGraph_1_1TextureNode_ae5577fc8fcda32da3859c2b0be1754c8}} 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_ae5577fc8fcda32da3859c2b0be1754c8}{leave\+Pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode) override
\begin{DoxyCompactList}\small\item\em Do nothing in picking. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a27aee0d1998bc25305ce441571835f98}\label{classACG_1_1SceneGraph_1_1TextureNode_a27aee0d1998bc25305ce441571835f98}} 
void {\bfseries set\+Texture\+Data\+GL} (G\+Luint \+\_\+texture\+Id, G\+Lenum \+\_\+target, G\+Lint \+\_\+width, G\+Lint \+\_\+height, G\+Lenum \+\_\+format, G\+Lenum \+\_\+type, const void $\ast$\+\_\+data)
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a010ad90a98435cb1eb8383fcbb45f4cb}{check\+Empty} ()
\begin{DoxyCompactList}\small\item\em Check if a texture is already generated by this Node. \end{DoxyCompactList}\item 
int \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a851cfa8c043002e841233acff00ee4eb}{available} (G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em check this node for a texture \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a9bdc3676ba29acd2c99f0950767bc36c}{update\+Mipmaps} (bool \+\_\+mipmap)
\begin{DoxyCompactList}\small\item\em Build mip maps of textures that don\textquotesingle{}t have one yet. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a751b4e038de3c7b566a30182983c3fb4}\label{classACG_1_1SceneGraph_1_1TextureNode_a751b4e038de3c7b566a30182983c3fb4}} 
std\+::vector$<$ \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_1_1TextureInfo}{Texture\+Info} $>$ {\bfseries textures\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_abdf1eca7465f8aa390cff20acdb3b308}\label{classACG_1_1SceneGraph_1_1TextureNode_abdf1eca7465f8aa390cff20acdb3b308}} 
bool {\bfseries alpha\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aae5f837a6201dd6c92a2775e5a2cec64}\label{classACG_1_1SceneGraph_1_1TextureNode_aae5f837a6201dd6c92a2775e5a2cec64}} 
bool {\bfseries texture\+\_\+repeat\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a702fc6cdb18a9aaae06fbe755cdfd9e3}\label{classACG_1_1SceneGraph_1_1TextureNode_a702fc6cdb18a9aaae06fbe755cdfd9e3}} 
G\+Lenum {\bfseries tex\+\_\+mode\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a6e40d8c5c6662f0342efb3836ce74880}\label{classACG_1_1SceneGraph_1_1TextureNode_a6e40d8c5c6662f0342efb3836ce74880}} 
G\+Lint {\bfseries texture\+\_\+filter\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a89f64b194b503207b9bbe64a842370eb}\label{classACG_1_1SceneGraph_1_1TextureNode_a89f64b194b503207b9bbe64a842370eb}} 
bool {\bfseries mipmapping\+\_\+globally\+\_\+active\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a9721f1ba50dda1f59957bab928493a76}\label{classACG_1_1SceneGraph_1_1TextureNode_a9721f1ba50dda1f59957bab928493a76}} 
bool {\bfseries last\+\_\+mipmapping\+\_\+status\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ab83244639b2cfabd21563a6f6fa1cd56}\label{classACG_1_1SceneGraph_1_1TextureNode_ab83244639b2cfabd21563a6f6fa1cd56}} 
bool {\bfseries mipmapping\+\_\+}
\item 
int \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a27e40e293492f017210f4ffac12cc3b3}{active\+Texture\+\_\+}
\begin{DoxyCompactList}\small\item\em currently active texture \end{DoxyCompactList}\item 
\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a518a86d96c52bf2fb50c35cade94f253}{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+}
\begin{DoxyCompactList}\small\item\em Open\+Volume\+Mesh \hyperlink{namespaceACG_1_1SceneGraph_1_1DrawModes}{Draw\+Modes} using textures. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Setting textures}
\begin{DoxyCompactItemize}
\item 
G\+Luint \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_aa6614160461994c0ee2e964dd91bd255}{add\+\_\+texture} (const Q\+Image \&\+\_\+image)
\begin{DoxyCompactList}\small\item\em Add a texture to this node. \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a973ecedb3c203c2acd14aac42437c141}{apply\+Texture\+Parameters} (int \+\_\+id)
\item 
void \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a4901f14c4ff823cf8a14e02f9a6616ca}{apply\+G\+L\+Settings} ()
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Set \hyperlink{classACG_1_1Texture}{Texture} for this node and all its children. All changes will be done in the \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a22068fe438c2ebfb53346f537f6173b7}{enter()} method undone in the \hyperlink{classACG_1_1SceneGraph_1_1TextureNode_a4230eae85f61631584779fe5cef40a16}{leave()} method. Enable Environment Mapping if you need it. To use Blending or Alpha\+Test use a \hyperlink{classACG_1_1SceneGraph_1_1MaterialNode}{Material\+Node}. 

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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ab8a5fb3024b12ff2fcc62008372e3f06}\label{classACG_1_1SceneGraph_1_1TextureNode_ab8a5fb3024b12ff2fcc62008372e3f06}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!activate\+Texture@{activate\+Texture}}
\index{activate\+Texture@{activate\+Texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{activate\+Texture()}{activateTexture()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::activate\+Texture (\begin{DoxyParamCaption}\item[{G\+Luint}]{\+\_\+id }\end{DoxyParamCaption})}



Set active \hyperlink{classACG_1_1Texture}{Texture}. 

Sets the active texture of this node to the given id 

Definition at line 566 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aa799bcbe6467470436c49371da45e1c5}\label{classACG_1_1SceneGraph_1_1TextureNode_aa799bcbe6467470436c49371da45e1c5}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!active\+Texture@{active\+Texture}}
\index{active\+Texture@{active\+Texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{active\+Texture()}{activeTexture()}}
{\footnotesize\ttfamily G\+Luint A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::active\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Get active \hyperlink{classACG_1_1Texture}{Texture}. 

Gets the currently active texture of this node 

Definition at line 556 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aa6614160461994c0ee2e964dd91bd255}\label{classACG_1_1SceneGraph_1_1TextureNode_aa6614160461994c0ee2e964dd91bd255}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!add\+\_\+texture@{add\+\_\+texture}}
\index{add\+\_\+texture@{add\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{add\+\_\+texture()}{add\_texture()}}
{\footnotesize\ttfamily G\+Luint A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::add\+\_\+texture (\begin{DoxyParamCaption}\item[{const Q\+Image \&}]{\+\_\+image }\end{DoxyParamCaption})}



Add a texture to this node. 



Definition at line 465 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a4901f14c4ff823cf8a14e02f9a6616ca}\label{classACG_1_1SceneGraph_1_1TextureNode_a4901f14c4ff823cf8a14e02f9a6616ca}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!apply\+G\+L\+Settings@{apply\+G\+L\+Settings}}
\index{apply\+G\+L\+Settings@{apply\+G\+L\+Settings}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{apply\+G\+L\+Settings()}{applyGLSettings()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::apply\+G\+L\+Settings (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Set basic gl settings 

Definition at line 128 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a973ecedb3c203c2acd14aac42437c141}\label{classACG_1_1SceneGraph_1_1TextureNode_a973ecedb3c203c2acd14aac42437c141}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!apply\+Texture\+Parameters@{apply\+Texture\+Parameters}}
\index{apply\+Texture\+Parameters@{apply\+Texture\+Parameters}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{apply\+Texture\+Parameters()}{applyTextureParameters()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::apply\+Texture\+Parameters (\begin{DoxyParamCaption}\item[{int}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Apply the internal texture properties to the currently active texture 

Definition at line 142 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a851cfa8c043002e841233acff00ee4eb}\label{classACG_1_1SceneGraph_1_1TextureNode_a851cfa8c043002e841233acff00ee4eb}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!available@{available}}
\index{available@{available}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{available()}{available()}}
{\footnotesize\ttfamily int A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::available (\begin{DoxyParamCaption}\item[{G\+Luint}]{\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



check this node for a texture 

Returns the id of the texture if this node handles the texture.~\newline
If not -\/1. 

Definition at line 386 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a010ad90a98435cb1eb8383fcbb45f4cb}\label{classACG_1_1SceneGraph_1_1TextureNode_a010ad90a98435cb1eb8383fcbb45f4cb}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!check\+Empty@{check\+Empty}}
\index{check\+Empty@{check\+Empty}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{check\+Empty()}{checkEmpty()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::check\+Empty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Check if a texture is already generated by this Node. 

This function will create a texture if no texture exists and set the active\+Texture\+\_\+ to the new one. 

Definition at line 370 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a46df8c617678ae3855cd7093c577ed14}\label{classACG_1_1SceneGraph_1_1TextureNode_a46df8c617678ae3855cd7093c577ed14}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!read@{read}}
\index{read@{read}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::read (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+filename }\end{DoxyParamCaption})}



Uses a Q\+Image to load the texture from the given file. 

This function will change the active texture.~\newline


Definition at line 108 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ac98955a499f9d75b27c0ea21d6db28f4}\label{classACG_1_1SceneGraph_1_1TextureNode_ac98955a499f9d75b27c0ea21d6db28f4}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!read@{read}}
\index{read@{read}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{read()}{read()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::read (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+filename,  }\item[{G\+Luint}]{\+\_\+id }\end{DoxyParamCaption})}



Uses a Q\+Image to load the texture from the given file. 

This function will change the given texture if available.~\newline


Definition at line 397 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_aab7266b46c937eaf5f5aefd981ab5373}\label{classACG_1_1SceneGraph_1_1TextureNode_aab7266b46c937eaf5f5aefd981ab5373}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!set\+\_\+texture@{set\+\_\+texture}}
\index{set\+\_\+texture@{set\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+texture()}{set\_texture()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (\begin{DoxyParamCaption}\item[{const Q\+Image \&}]{\+\_\+image }\end{DoxyParamCaption})}



Uses a Q\+Image to set the texture. 

This function will change the active texture.~\newline


Definition at line 305 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a219002c63b0b1599d3eb6161ece1e1ff}\label{classACG_1_1SceneGraph_1_1TextureNode_a219002c63b0b1599d3eb6161ece1e1ff}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!set\+\_\+texture@{set\+\_\+texture}}
\index{set\+\_\+texture@{set\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+texture()}{set\_texture()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (\begin{DoxyParamCaption}\item[{const float $\ast$}]{\+\_\+image,  }\item[{int}]{\+\_\+width,  }\item[{int}]{\+\_\+height }\end{DoxyParamCaption})}



Uses a float buffer to set the texture. 

This function will change the active texture.~\newline
 Assumptions\+: Buffer is in R\+G\+BA format, and either power of two size or using a graphics card that supports arbitrary textures. 

Definition at line 354 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a32040165c1696191a9468bdd1ecdb81c}\label{classACG_1_1SceneGraph_1_1TextureNode_a32040165c1696191a9468bdd1ecdb81c}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!set\+\_\+texture@{set\+\_\+texture}}
\index{set\+\_\+texture@{set\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+texture()}{set\_texture()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (\begin{DoxyParamCaption}\item[{const unsigned char $\ast$}]{\+\_\+image,  }\item[{int}]{\+\_\+width,  }\item[{int}]{\+\_\+height }\end{DoxyParamCaption})}



Uses a byte buffer to set the texture. 

This function will change the active texture.~\newline
 Assumptions\+: Buffer is in R\+G\+BA format, and either power of two size or using a graphics card that supports arbitrary textures. 

Definition at line 286 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a883469a5e84906cc6312ebdfebad87e9}\label{classACG_1_1SceneGraph_1_1TextureNode_a883469a5e84906cc6312ebdfebad87e9}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!set\+\_\+texture@{set\+\_\+texture}}
\index{set\+\_\+texture@{set\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+texture()}{set\_texture()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (\begin{DoxyParamCaption}\item[{const Q\+Image \&}]{\+\_\+image,  }\item[{G\+Luint}]{\+\_\+id }\end{DoxyParamCaption})}



Uses a Q\+Image to set the texture. 

This function will change the given texture if available.~\newline


Definition at line 413 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_ac89792de5df5bb8a9ed3b01a57c36e7d}\label{classACG_1_1SceneGraph_1_1TextureNode_ac89792de5df5bb8a9ed3b01a57c36e7d}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!set\+\_\+texture@{set\+\_\+texture}}
\index{set\+\_\+texture@{set\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+texture()}{set\_texture()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (\begin{DoxyParamCaption}\item[{const float $\ast$}]{\+\_\+image,  }\item[{int}]{\+\_\+width,  }\item[{int}]{\+\_\+height,  }\item[{G\+Luint}]{\+\_\+id }\end{DoxyParamCaption})}



Uses a float buffer to set the texture. 

This function will change the given texture if available.~\newline
 Assumptions\+: Buffer is in R\+G\+BA format, and either power of two size or using a graphics card that supports arbitrary textures. 

Definition at line 430 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a3cb28aa6ea9ebfb80aab5e6cc1f5cbb9}\label{classACG_1_1SceneGraph_1_1TextureNode_a3cb28aa6ea9ebfb80aab5e6cc1f5cbb9}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!set\+\_\+texture@{set\+\_\+texture}}
\index{set\+\_\+texture@{set\+\_\+texture}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+texture()}{set\_texture()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (\begin{DoxyParamCaption}\item[{const unsigned char $\ast$}]{\+\_\+image,  }\item[{int}]{\+\_\+width,  }\item[{int}]{\+\_\+height,  }\item[{G\+Luint}]{\+\_\+id }\end{DoxyParamCaption})}



Uses a byte buffer to set the texture. 

This function will change the given texture if available.~\newline
 Assumptions\+: Buffer is in R\+G\+BA format, and either power of two size or using a graphics card that supports arbitrary textures. 

Definition at line 446 of file Texture\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a9bdc3676ba29acd2c99f0950767bc36c}\label{classACG_1_1SceneGraph_1_1TextureNode_a9bdc3676ba29acd2c99f0950767bc36c}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!update\+Mipmaps@{update\+Mipmaps}}
\index{update\+Mipmaps@{update\+Mipmaps}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{update\+Mipmaps()}{updateMipmaps()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::update\+Mipmaps (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+mipmap }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Build mip maps of textures that don\textquotesingle{}t have one yet. 

Generate mipmaps for each texture that does not have one yet. 

Definition at line 244 of file Texture\+Node.\+cc.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a27e40e293492f017210f4ffac12cc3b3}\label{classACG_1_1SceneGraph_1_1TextureNode_a27e40e293492f017210f4ffac12cc3b3}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!active\+Texture\+\_\+@{active\+Texture\+\_\+}}
\index{active\+Texture\+\_\+@{active\+Texture\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{active\+Texture\+\_\+}{activeTexture\_}}
{\footnotesize\ttfamily int A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::active\+Texture\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



currently active texture 

This index is an index to the textures\+\_\+ vector! Not the G\+Luint!! 

Definition at line 346 of file Texture\+Node.\+hh.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1TextureNode_a518a86d96c52bf2fb50c35cade94f253}\label{classACG_1_1SceneGraph_1_1TextureNode_a518a86d96c52bf2fb50c35cade94f253}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}!open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+@{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+}}
\index{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+@{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+}!A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node}}
\subsubsection{\texorpdfstring{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+}{open\_volume\_mesh\_texture\_draw\_modes\_}}
{\footnotesize\ttfamily \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Open\+Volume\+Mesh \hyperlink{namespaceACG_1_1SceneGraph_1_1DrawModes}{Draw\+Modes} using textures. 

Texturing will be activated for all \hyperlink{namespaceACG_1_1SceneGraph_1_1DrawModes}{Draw\+Modes} which are combined in this Draw\+Mode 

Definition at line 352 of file Texture\+Node.\+hh.



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