\hypertarget{a01300}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Texture\+Node Class Reference}
\label{a01300}\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\+C\+G\+:\+:Scene\+Graph\+:\+:Texture\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{a01300}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a01297}{Texture\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01300_ab8db8798d03cb08c67bbe3282999624a}{\hyperlink{a01300_ab8db8798d03cb08c67bbe3282999624a}{Texture\+Node} (\hyperlink{a00327}{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\+A\+R)}\label{a01300_ab8db8798d03cb08c67bbe3282999624a}

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

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a01300_af5154ba0ae3ab9d686ba0a5508b328f0}{\hyperlink{a01300_af5154ba0ae3ab9d686ba0a5508b328f0}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (\hyperlink{a01300}{Texture\+Node})}\label{a01300_af5154ba0ae3ab9d686ba0a5508b328f0}

\begin{DoxyCompactList}\small\item\em set class name \end{DoxyCompactList}\item 
\hypertarget{a01300_a912450deb675ffa2945f3ea171d5b7de}{bool \hyperlink{a01300_a912450deb675ffa2945f3ea171d5b7de}{alpha} ()}\label{a01300_a912450deb675ffa2945f3ea171d5b7de}

\begin{DoxyCompactList}\small\item\em get transparency status \end{DoxyCompactList}\item 
\hypertarget{a01300_a0bafc262b0785f49338fd33c1a34e9ce}{void \hyperlink{a01300_a0bafc262b0785f49338fd33c1a34e9ce}{set\+\_\+alpha} (bool \+\_\+status)}\label{a01300_a0bafc262b0785f49338fd33c1a34e9ce}

\begin{DoxyCompactList}\small\item\em set transparency status \end{DoxyCompactList}\item 
\hypertarget{a01300_a307b679473f661d29ef334b47974c201}{bool \hyperlink{a01300_a307b679473f661d29ef334b47974c201}{repeat} ()}\label{a01300_a307b679473f661d29ef334b47974c201}

\begin{DoxyCompactList}\small\item\em get texture repeat status \end{DoxyCompactList}\item 
\hypertarget{a01300_a1a6b43980a7ad9651ad6f6a73bc90a29}{void \hyperlink{a01300_a1a6b43980a7ad9651ad6f6a73bc90a29}{set\+\_\+repeat} (bool \+\_\+status)}\label{a01300_a1a6b43980a7ad9651ad6f6a73bc90a29}

\begin{DoxyCompactList}\small\item\em set texture repeat status \end{DoxyCompactList}\item 
\hypertarget{a01300_a46c1809eabebf74f489b432a84519aa7}{G\+Lint \hyperlink{a01300_a46c1809eabebf74f489b432a84519aa7}{filter} ()}\label{a01300_a46c1809eabebf74f489b432a84519aa7}

\begin{DoxyCompactList}\small\item\em get texture filter \end{DoxyCompactList}\item 
\hypertarget{a01300_ac50f80dc15e6351e56f546253f40d0f5}{void \hyperlink{a01300_ac50f80dc15e6351e56f546253f40d0f5}{set\+\_\+filter} (G\+Lint \+\_\+filter)}\label{a01300_ac50f80dc15e6351e56f546253f40d0f5}

\begin{DoxyCompactList}\small\item\em set texture filter \end{DoxyCompactList}\item 
\hypertarget{a01300_a47d06072e41bcdda44e6e6badbb97a4b}{void {\bfseries set\+\_\+texture\+\_\+mode} (G\+Lenum \+\_\+mode)}\label{a01300_a47d06072e41bcdda44e6e6badbb97a4b}

\item 
\hypertarget{a01300_ab7e0f624b77522102726ba843c41b9b9}{void \hyperlink{a01300_ab7e0f624b77522102726ba843c41b9b9}{enable\+\_\+mipmapping} ()}\label{a01300_ab7e0f624b77522102726ba843c41b9b9}

\begin{DoxyCompactList}\small\item\em Enable mipmapping. \end{DoxyCompactList}\item 
\hypertarget{a01300_a9f1bb2bb06d59285f4936b7ce7d6ec2f}{void \hyperlink{a01300_a9f1bb2bb06d59285f4936b7ce7d6ec2f}{disable\+\_\+mipmapping} ()}\label{a01300_a9f1bb2bb06d59285f4936b7ce7d6ec2f}

\begin{DoxyCompactList}\small\item\em Disable mipmapping. \end{DoxyCompactList}\item 
\hypertarget{a01300_a467c40502530d475e7bfc5b66cbc676b}{bool \hyperlink{a01300_a467c40502530d475e7bfc5b66cbc676b}{mipmapping} () const }\label{a01300_a467c40502530d475e7bfc5b66cbc676b}

\begin{DoxyCompactList}\small\item\em Get mipmapping status. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Change active texture}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{a01300_ab8a5fb3024b12ff2fcc62008372e3f06}{activate\+Texture} (G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em Set active \hyperlink{a01282}{Texture}. \end{DoxyCompactList}\item 
G\+Luint \hyperlink{a01300_aa799bcbe6467470436c49371da45e1c5}{active\+Texture} ()
\begin{DoxyCompactList}\small\item\em Get active \hyperlink{a01282}{Texture}. \end{DoxyCompactList}\item 
bool \hyperlink{a01300_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{a01300_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{a01300_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{a01300_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}{\bf Change specific texture}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{a01300_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{a01300_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{a01300_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{a01300_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}{\bf Scene\+Graph traversal functions}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01300_a70e45e54831632c08bca8a8c74aa0cef}{void \hyperlink{a01300_a70e45e54831632c08bca8a8c74aa0cef}{enter} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01300_a70e45e54831632c08bca8a8c74aa0cef}

\begin{DoxyCompactList}\small\item\em set default texture and states for the nodes children \end{DoxyCompactList}\item 
\hypertarget{a01300_a42958d9711fe608fdd5e2a1b75ebdb26}{void \hyperlink{a01300_a42958d9711fe608fdd5e2a1b75ebdb26}{leave} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)}\label{a01300_a42958d9711fe608fdd5e2a1b75ebdb26}

\begin{DoxyCompactList}\small\item\em Unbind \hyperlink{a01282}{Texture}. \end{DoxyCompactList}\item 
\hypertarget{a01300_ac736c79bbec82882673efe73832106a0}{void \hyperlink{a01300_ac736c79bbec82882673efe73832106a0}{enter\+Pick} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)}\label{a01300_ac736c79bbec82882673efe73832106a0}

\begin{DoxyCompactList}\small\item\em Do nothing in picking. \end{DoxyCompactList}\item 
\hypertarget{a01300_aad8ede856e2f78d14645e93e13ef8559}{void \hyperlink{a01300_aad8ede856e2f78d14645e93e13ef8559}{leave\+Pick} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)}\label{a01300_aad8ede856e2f78d14645e93e13ef8559}

\begin{DoxyCompactList}\small\item\em Do nothing in picking. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01300_a27aee0d1998bc25305ce441571835f98}{void {\bfseries set\+Texture\+Data\+G\+L} (G\+Luint \+\_\+texture\+Id, G\+Lenum \+\_\+target, G\+Lint \+\_\+width, G\+Lint \+\_\+height, G\+Lenum \+\_\+format, G\+Lenum \+\_\+type, const void $\ast$\+\_\+data)}\label{a01300_a27aee0d1998bc25305ce441571835f98}

\item 
void \hyperlink{a01300_a010ad90a98435cb1eb8383fcbb45f4cb}{check\+Empty} ()
\begin{DoxyCompactList}\small\item\em Check if a texture is already generated by this Node. \end{DoxyCompactList}\item 
int \hyperlink{a01300_a851cfa8c043002e841233acff00ee4eb}{available} (G\+Luint \+\_\+id)
\begin{DoxyCompactList}\small\item\em check this node for a texture \end{DoxyCompactList}\item 
void \hyperlink{a01300_a9bdc3676ba29acd2c99f0950767bc36c}{update\+Mipmaps} (bool \+\_\+mipmap)
\begin{DoxyCompactList}\small\item\em Build mip maps of textures that don't have one yet. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01300_a751b4e038de3c7b566a30182983c3fb4}{std\+::vector$<$ \hyperlink{a01297}{Texture\+Info} $>$ {\bfseries textures\+\_\+}}\label{a01300_a751b4e038de3c7b566a30182983c3fb4}

\item 
\hypertarget{a01300_abdf1eca7465f8aa390cff20acdb3b308}{bool {\bfseries alpha\+\_\+}}\label{a01300_abdf1eca7465f8aa390cff20acdb3b308}

\item 
\hypertarget{a01300_aae5f837a6201dd6c92a2775e5a2cec64}{bool {\bfseries texture\+\_\+repeat\+\_\+}}\label{a01300_aae5f837a6201dd6c92a2775e5a2cec64}

\item 
\hypertarget{a01300_a702fc6cdb18a9aaae06fbe755cdfd9e3}{G\+Lenum {\bfseries tex\+\_\+mode\+\_\+}}\label{a01300_a702fc6cdb18a9aaae06fbe755cdfd9e3}

\item 
\hypertarget{a01300_a6e40d8c5c6662f0342efb3836ce74880}{G\+Lint {\bfseries texture\+\_\+filter\+\_\+}}\label{a01300_a6e40d8c5c6662f0342efb3836ce74880}

\item 
\hypertarget{a01300_a89f64b194b503207b9bbe64a842370eb}{bool {\bfseries mipmapping\+\_\+globally\+\_\+active\+\_\+}}\label{a01300_a89f64b194b503207b9bbe64a842370eb}

\item 
\hypertarget{a01300_a9721f1ba50dda1f59957bab928493a76}{bool {\bfseries last\+\_\+mipmapping\+\_\+status\+\_\+}}\label{a01300_a9721f1ba50dda1f59957bab928493a76}

\item 
\hypertarget{a01300_ab83244639b2cfabd21563a6f6fa1cd56}{bool {\bfseries mipmapping\+\_\+}}\label{a01300_ab83244639b2cfabd21563a6f6fa1cd56}

\item 
int \hyperlink{a01300_a27e40e293492f017210f4ffac12cc3b3}{active\+Texture\+\_\+}
\begin{DoxyCompactList}\small\item\em currently active texture \end{DoxyCompactList}\item 
\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a01300_a518a86d96c52bf2fb50c35cade94f253}{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+}
\begin{DoxyCompactList}\small\item\em Open\+Volume\+Mesh \hyperlink{a03347}{Draw\+Modes} using textures. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Setting textures}
\begin{DoxyCompactItemize}
\item 
G\+Luint \hyperlink{a01300_aa6614160461994c0ee2e964dd91bd255}{add\+\_\+texture} (const Q\+Image \&\+\_\+image)
\begin{DoxyCompactList}\small\item\em Add a texture to this node. \end{DoxyCompactList}\item 
void \hyperlink{a01300_a973ecedb3c203c2acd14aac42437c141}{apply\+Texture\+Parameters} (int \+\_\+id)
\item 
void \hyperlink{a01300_a4901f14c4ff823cf8a14e02f9a6616ca}{apply\+G\+L\+Settings} ()
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


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

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



\subsection{Member Function Documentation}
\hypertarget{a01300_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[{activate\+Texture}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::activate\+Texture (
\begin{DoxyParamCaption}
\item[{G\+Luint}]{\+\_\+id}
\end{DoxyParamCaption}
)}}\label{a01300_ab8a5fb3024b12ff2fcc62008372e3f06}


Set active \hyperlink{a01282}{Texture}. 

Sets the active texture of this node to the given id 

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

\hypertarget{a01300_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[{active\+Texture}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::active\+Texture (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a01300_aa799bcbe6467470436c49371da45e1c5}


Get active \hyperlink{a01282}{Texture}. 

Gets the currently active texture of this node 

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

\hypertarget{a01300_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[{add\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::add\+\_\+texture (
\begin{DoxyParamCaption}
\item[{const Q\+Image \&}]{\+\_\+image}
\end{DoxyParamCaption}
)}}\label{a01300_aa6614160461994c0ee2e964dd91bd255}


Add a texture to this node. 



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

\hypertarget{a01300_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[{apply\+G\+L\+Settings}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::apply\+G\+L\+Settings (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a4901f14c4ff823cf8a14e02f9a6616ca}
Set basic gl settings 

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

\hypertarget{a01300_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[{apply\+Texture\+Parameters}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::apply\+Texture\+Parameters (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a973ecedb3c203c2acd14aac42437c141}
Apply the internal texture properties to the currently active texture 

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

\hypertarget{a01300_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[{available}]{\setlength{\rightskip}{0pt plus 5cm}int A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::available (
\begin{DoxyParamCaption}
\item[{G\+Luint}]{\+\_\+id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a851cfa8c043002e841233acff00ee4eb}


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 390 of file Texture\+Node.\+cc.

\hypertarget{a01300_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[{check\+Empty}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::check\+Empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a010ad90a98435cb1eb8383fcbb45f4cb}


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 374 of file Texture\+Node.\+cc.

\hypertarget{a01300_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[{read}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::read (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+filename}
\end{DoxyParamCaption}
)}}\label{a01300_a46df8c617678ae3855cd7093c577ed14}


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

This function will change the active texture.~\newline


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

\hypertarget{a01300_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[{read}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::read (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+filename, }
\item[{G\+Luint}]{\+\_\+id}
\end{DoxyParamCaption}
)}}\label{a01300_ac98955a499f9d75b27c0ea21d6db28f4}


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 401 of file Texture\+Node.\+cc.

\hypertarget{a01300_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[{set\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (
\begin{DoxyParamCaption}
\item[{const Q\+Image \&}]{\+\_\+image}
\end{DoxyParamCaption}
)}}\label{a01300_aab7266b46c937eaf5f5aefd981ab5373}


Uses a Q\+Image to set the texture. 

This function will change the active texture.~\newline


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

\hypertarget{a01300_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[{set\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}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}
)}}\label{a01300_a219002c63b0b1599d3eb6161ece1e1ff}


Uses a float buffer to set the texture. 

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

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

\hypertarget{a01300_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[{set\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}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}
)}}\label{a01300_a32040165c1696191a9468bdd1ecdb81c}


Uses a byte buffer to set the texture. 

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

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

\hypertarget{a01300_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[{set\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::set\+\_\+texture (
\begin{DoxyParamCaption}
\item[{const Q\+Image \&}]{\+\_\+image, }
\item[{G\+Luint}]{\+\_\+id}
\end{DoxyParamCaption}
)}}\label{a01300_a883469a5e84906cc6312ebdfebad87e9}


Uses a Q\+Image to set the texture. 

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


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

\hypertarget{a01300_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[{set\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}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}
)}}\label{a01300_ac89792de5df5bb8a9ed3b01a57c36e7d}


Uses a float buffer to set the texture. 

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

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

\hypertarget{a01300_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[{set\+\_\+texture}]{\setlength{\rightskip}{0pt plus 5cm}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}
)}}\label{a01300_a3cb28aa6ea9ebfb80aab5e6cc1f5cbb9}


Uses a byte buffer to set the texture. 

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

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

\hypertarget{a01300_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[{update\+Mipmaps}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::update\+Mipmaps (
\begin{DoxyParamCaption}
\item[{bool}]{\+\_\+mipmap}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a9bdc3676ba29acd2c99f0950767bc36c}


Build mip maps of textures that don't have one yet. 

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

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



\subsection{Member Data Documentation}
\hypertarget{a01300_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[{active\+Texture\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}int A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::active\+Texture\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a27e40e293492f017210f4ffac12cc3b3}


currently active texture 

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

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

\hypertarget{a01300_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[{open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Draw\+Modes\+::\+Draw\+Mode} A\+C\+G\+::\+Scene\+Graph\+::\+Texture\+Node\+::open\+\_\+volume\+\_\+mesh\+\_\+texture\+\_\+draw\+\_\+modes\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a01300_a518a86d96c52bf2fb50c35cade94f253}


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

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

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



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