\hypertarget{a00300}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Arrow\+Node Class Reference}
\label{a00300}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
}


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

Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:Arrow\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{a00300}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a00298}{Arrow}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00300_aa11bdb0b01b61f43b2159ed6c3da1d74}{\hyperlink{a00300_aa11bdb0b01b61f43b2159ed6c3da1d74}{Arrow\+Node} (\hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, std\+::string \+\_\+name=\char`\"{}$<$Arrow\+Node$>$\char`\"{})}\label{a00300_aa11bdb0b01b61f43b2159ed6c3da1d74}

\begin{DoxyCompactList}\small\item\em default constructor \end{DoxyCompactList}\item 
\hypertarget{a00300_a85c700b097557a2f5448d1f2517d60d0}{\hyperlink{a00300_a85c700b097557a2f5448d1f2517d60d0}{$\sim$\+Arrow\+Node} ()}\label{a00300_a85c700b097557a2f5448d1f2517d60d0}

\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\hypertarget{a00300_a26e5719b06c17956bee25735ca174de4}{\hyperlink{a00300_a26e5719b06c17956bee25735ca174de4}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (\hyperlink{a00300}{Arrow\+Node})}\label{a00300_a26e5719b06c17956bee25735ca174de4}

\begin{DoxyCompactList}\small\item\em static name of this class \end{DoxyCompactList}\item 
\hypertarget{a00300_aac3a59cf3febd9cd1ae4ea5823d63c15}{\hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a00300_aac3a59cf3febd9cd1ae4ea5823d63c15}{available\+Draw\+Modes} () const }\label{a00300_aac3a59cf3febd9cd1ae4ea5823d63c15}

\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\item 
\hypertarget{a00300_a23f02fbfd2f538e8840b8b873025be78}{void \hyperlink{a00300_a23f02fbfd2f538e8840b8b873025be78}{bounding\+Box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)}\label{a00300_a23f02fbfd2f538e8840b8b873025be78}

\begin{DoxyCompactList}\small\item\em update bounding box \end{DoxyCompactList}\item 
\hypertarget{a00300_ad87bbdb45d4defde70443d8beea05bad}{void \hyperlink{a00300_ad87bbdb45d4defde70443d8beea05bad}{reserve} (int \+\_\+n)}\label{a00300_ad87bbdb45d4defde70443d8beea05bad}

\begin{DoxyCompactList}\small\item\em reserve mem for \+\_\+n arrows \end{DoxyCompactList}\item 
int \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow} (const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+start, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+dir, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+normal=\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f}(0.\+0f, 1.\+0f, 0.\+0f), const Vec3f \&\+\_\+scale=\+Vec3f(1.\+0f, 1.\+0f, 1.\+0f), const Vec4uc \&\+\_\+color=\+Vec4uc(82, 82, 82, 255))
\begin{DoxyCompactList}\small\item\em Add an arrow to the node. \end{DoxyCompactList}\item 
int \hyperlink{a00300_a8517ef37afefe9d86274ba4ab6c03718}{add\+Arrow} (const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+start, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+dir, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+normal, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+scale, const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em Add an arrow to the node. \end{DoxyCompactList}\item 
int \hyperlink{a00300_a1f82a303453af88e7bea524e6f1f216c}{add\+Arrow} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+start, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+dir, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+normal=\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d}(0.\+0, 1.\+0, 0.\+0), const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+scale=\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d}(1.\+0, 1.\+0, 1.\+0), const \hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} \&\+\_\+color=\hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc}(82, 82, 82, 255))
\begin{DoxyCompactList}\small\item\em Add an arrow to the node. \end{DoxyCompactList}\item 
int \hyperlink{a00300_a6cf5a6e15bc36fbaef83e7c4fb811073}{add\+Arrow} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+start, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+dir, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+normal, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+scale, const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em Add an arrow to the node. \end{DoxyCompactList}\item 
\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \hyperlink{a00300_aebd3724ab635f888c76e1340d2c60f14}{arrow\+Start} (int \+\_\+arrow\+I\+D) const 
\begin{DoxyCompactList}\small\item\em Return the start position of an arrow. \end{DoxyCompactList}\item 
void \hyperlink{a00300_a30ff9e59075d5d74631fe4a39b6027cf}{arrow\+Start} (int \+\_\+arrow\+I\+D, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+start)
\begin{DoxyCompactList}\small\item\em Set start point of an already added arrow. \end{DoxyCompactList}\item 
\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \hyperlink{a00300_ae7c1ebdad7eb521f873fd898a94b6d3b}{arrow\+Dir} (int \+\_\+arrow\+I\+D) const 
\begin{DoxyCompactList}\small\item\em Return the direction of an arrow. \end{DoxyCompactList}\item 
void \hyperlink{a00300_a0a95a128c7bffa29b53d27d15fd69c37}{arrow\+Dir} (int \+\_\+arrow\+I\+D, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+dir)
\begin{DoxyCompactList}\small\item\em Set direction of an already added arrow. \end{DoxyCompactList}\item 
\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \hyperlink{a00300_acc79f15dc0b4d1116ea2989d6f953b2e}{arrow\+Normal} (int \+\_\+arrow\+I\+D) const 
\begin{DoxyCompactList}\small\item\em Return the normal of an arrow. \end{DoxyCompactList}\item 
void \hyperlink{a00300_ac2d0c9813c08c88fcc037194686dc9a4}{arrow\+Normal} (int \+\_\+arrow\+I\+D, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+normal)
\begin{DoxyCompactList}\small\item\em Set normal of an already added arrow. \end{DoxyCompactList}\item 
\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \hyperlink{a00300_a80be9d6cf2903dc36a15e6ca695d34b0}{arrow\+Scale} (int \+\_\+arrow\+I\+D) const 
\begin{DoxyCompactList}\small\item\em Return the scale of an arrow. \end{DoxyCompactList}\item 
void \hyperlink{a00300_aa5294bf6351b905e0058e47f4a29a969}{arrow\+Scale} (int \+\_\+arrow\+I\+D, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} \&\+\_\+scale)
\begin{DoxyCompactList}\small\item\em Set the scale of an already added arrow. \end{DoxyCompactList}\item 
\hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} \hyperlink{a00300_aa8f469e8fb0f7d88165786353c980cf0}{arrow\+Color} (int \+\_\+arrow\+I\+D) const 
\begin{DoxyCompactList}\small\item\em Return the color of an arrow. \end{DoxyCompactList}\item 
void \hyperlink{a00300_aa070b539f76bd4c632255bcef24143fb}{arrow\+Color} (int \+\_\+arrow\+I\+D, const \hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} \&\+\_\+color)
\begin{DoxyCompactList}\small\item\em Set the color of an already added arrow. \end{DoxyCompactList}\item 
\hypertarget{a00300_ab175ce1ffc1f14a32864fee03f28b314}{void \hyperlink{a00300_ab175ce1ffc1f14a32864fee03f28b314}{clear} ()}\label{a00300_ab175ce1ffc1f14a32864fee03f28b314}

\begin{DoxyCompactList}\small\item\em clear arrows \end{DoxyCompactList}\item 
\hypertarget{a00300_a7cfc284af1e5250f2d6be2c7a445b91a}{int \hyperlink{a00300_a7cfc284af1e5250f2d6be2c7a445b91a}{n\+\_\+arrows} () const }\label{a00300_a7cfc284af1e5250f2d6be2c7a445b91a}

\begin{DoxyCompactList}\small\item\em number of arrows \end{DoxyCompactList}\item 
\hypertarget{a00300_ac51ea384fe316415170f3bd325632476}{void \hyperlink{a00300_ac51ea384fe316415170f3bd325632476}{draw} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)}\label{a00300_ac51ea384fe316415170f3bd325632476}

\begin{DoxyCompactList}\small\item\em draw arrows \end{DoxyCompactList}\item 
void \hyperlink{a00300_a9e0826c754d0ba00a42cc7719f4d7940}{get\+Render\+Objects} (\hyperlink{a00738}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{a00790}{A\+C\+G\+::\+Scene\+Graph\+::\+Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em Add the objects to the given renderer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00300_a6aade6fd4ca855aab301e9049d2a6ce1}{void {\bfseries create\+Arrow\+Mesh} ()}\label{a00300_a6aade6fd4ca855aab301e9049d2a6ce1}

\item 
\hypertarget{a00300_a92a1070717939da6a851f95fd1310b65}{\hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{G\+L\+Matrixf} {\bfseries compute\+World\+Matrix} (int \+\_\+arrow) const }\label{a00300_a92a1070717939da6a851f95fd1310b65}

\item 
\hypertarget{a00300_a2d6634721ce1b886a2316373918f735e}{\hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{G\+L\+Matrixf} {\bfseries read\+World\+Matrix} (int \+\_\+arrow) const }\label{a00300_a2d6634721ce1b886a2316373918f735e}

\item 
\hypertarget{a00300_aab7aa32769ef69f1268c091e7fb1ca37}{void {\bfseries update\+Instance\+Data} ()}\label{a00300_aab7aa32769ef69f1268c091e7fb1ca37}

\item 
\hypertarget{a00300_a551df6a091a1b0e255d51bec55c32659}{void {\bfseries update\+Instance\+Buffer} ()}\label{a00300_a551df6a091a1b0e255d51bec55c32659}

\item 
\hypertarget{a00300_ae393ffa11d5b987401a1aefbc52433ac}{int {\bfseries instance\+Data\+Offset} (int \+\_\+arrow) const }\label{a00300_ae393ffa11d5b987401a1aefbc52433ac}

\item 
\hypertarget{a00300_a354fa16a67aff3814ed040798991a3e6}{int {\bfseries instance\+Data\+Size} () const }\label{a00300_a354fa16a67aff3814ed040798991a3e6}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00300_a50ca7fa98c72682650d6a2ed16b78400}{std\+::vector$<$ \hyperlink{a00298}{Arrow} $>$ {\bfseries arrows\+\_\+}}\label{a00300_a50ca7fa98c72682650d6a2ed16b78400}

\item 
\hypertarget{a00300_a91db28c47acb93fa741a9ebc2da64c15}{int {\bfseries num\+Vertices\+\_\+}}\label{a00300_a91db28c47acb93fa741a9ebc2da64c15}

\item 
\hypertarget{a00300_a21b8ed179c53e75018c53056c1f3cd21}{int {\bfseries num\+Indices\+\_\+}}\label{a00300_a21b8ed179c53e75018c53056c1f3cd21}

\item 
\hypertarget{a00300_a84df4f9298228088306b79669820ae26}{Geometry\+Buffer {\bfseries vertex\+Buffer\+\_\+}}\label{a00300_a84df4f9298228088306b79669820ae26}

\item 
\hypertarget{a00300_adf800f07a7f41e2f8949dda66939ff42}{Index\+Buffer {\bfseries index\+Buffer\+\_\+}}\label{a00300_adf800f07a7f41e2f8949dda66939ff42}

\item 
\hypertarget{a00300_a58a73dc2aa3333e8ad4585713a9b0687}{\hyperlink{a01417}{Vertex\+Declaration} {\bfseries vertex\+Decl\+\_\+}}\label{a00300_a58a73dc2aa3333e8ad4585713a9b0687}

\item 
\hypertarget{a00300_af9e2afe9ccdf9e13d853c148ef5b3329}{\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} {\bfseries local\+Arrow\+Min\+\_\+}}\label{a00300_af9e2afe9ccdf9e13d853c148ef5b3329}

\item 
\hypertarget{a00300_a6230834a255a6154afeda1106735cdf8}{\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} {\bfseries local\+Arrow\+Max\+\_\+}}\label{a00300_a6230834a255a6154afeda1106735cdf8}

\item 
\hypertarget{a00300_a1211719ec2e6c017e00795fd00d33010}{std\+::vector$<$ float $>$ {\bfseries instance\+Data\+\_\+}}\label{a00300_a1211719ec2e6c017e00795fd00d33010}

\item 
\hypertarget{a00300_a21b0aa1d051bc054bbab52b9c5c9c45f}{Geometry\+Buffer {\bfseries instance\+Buffer\+\_\+}}\label{a00300_a21b0aa1d051bc054bbab52b9c5c9c45f}

\item 
\hypertarget{a00300_a4db01423b190a7720b704503a5ad5e54}{\hyperlink{a01417}{Vertex\+Declaration} {\bfseries vertex\+Decl\+Instanced\+\_\+}}\label{a00300_a4db01423b190a7720b704503a5ad5e54}

\item 
\hypertarget{a00300_afd440095f577890ff1281c13d18934a1}{bool {\bfseries invalidate\+Instance\+Data\+\_\+}}\label{a00300_afd440095f577890ff1281c13d18934a1}

\item 
\hypertarget{a00300_a7c2c646e05456bab931139304af38890}{bool {\bfseries invalidate\+Instance\+Buffer\+\_\+}}\label{a00300_a7c2c646e05456bab931139304af38890}

\item 
\hypertarget{a00300_ab0bc00151bad0fa363a104c6d350b08e}{int {\bfseries supports\+Instancing\+\_\+}}\label{a00300_ab0bc00151bad0fa363a104c6d350b08e}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\hyperlink{a00300}{Arrow\+Node} renders a set of arrows. 

Definition at line 84 of file Arrow\+Node.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!add\+Arrow@{add\+Arrow}}
\index{add\+Arrow@{add\+Arrow}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{add\+Arrow}]{\setlength{\rightskip}{0pt plus 5cm}int A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::add\+Arrow (
\begin{DoxyParamCaption}
\item[{const {\bf Vec3f} \&}]{\+\_\+start, }
\item[{const {\bf Vec3f} \&}]{\+\_\+dir, }
\item[{const {\bf Vec3f} \&}]{\+\_\+normal = {\ttfamily {\bf Vec3f}(0.0f,~1.0f,~0.0f)}, }
\item[{const {\bf Vec3f} \&}]{\+\_\+scale = {\ttfamily {\bf Vec3f}(1.0f,~1.0f,~1.0f)}, }
\item[{const {\bf Vec4uc} \&}]{\+\_\+color = {\ttfamily {\bf Vec4uc}(82,~82,~82,~255)}}
\end{DoxyParamCaption}
)}}\label{a00300_a65936c21fb23dc38cc72bf617b88b5f8}


Add an arrow to the node. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+start} & Start position of the arrow \\
\hline
{\em \+\_\+dir} & Direction of the arrow \\
\hline
{\em \+\_\+normal} & Normal vector on the top surface of the arrow. Gets orthonormalized to \+\_\+dir internally. If 0 or collinear to \+\_\+dir, a random normal is chosen. \\
\hline
{\em \+\_\+scale} & Uniform scaling factor of the arrow. This is also the length of the arrow. \\
\hline
{\em \+\_\+color} & \hyperlink{a00298}{Arrow} color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
I\+D of the arrow 
\end{DoxyReturn}


Definition at line 380 of file Arrow\+Node.\+cc.

\hypertarget{a00300_a8517ef37afefe9d86274ba4ab6c03718}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!add\+Arrow@{add\+Arrow}}
\index{add\+Arrow@{add\+Arrow}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{add\+Arrow}]{\setlength{\rightskip}{0pt plus 5cm}int A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::add\+Arrow (
\begin{DoxyParamCaption}
\item[{const {\bf Vec3f} \&}]{\+\_\+start, }
\item[{const {\bf Vec3f} \&}]{\+\_\+dir, }
\item[{const {\bf Vec3f} \&}]{\+\_\+normal, }
\item[{const {\bf Vec3f} \&}]{\+\_\+scale, }
\item[{const {\bf Vec4f} \&}]{\+\_\+color}
\end{DoxyParamCaption}
)}}\label{a00300_a8517ef37afefe9d86274ba4ab6c03718}


Add an arrow to the node. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+start} & Start position of the arrow \\
\hline
{\em \+\_\+dir} & Direction of the arrow \\
\hline
{\em \+\_\+normal} & Normal vector on the top surface of the arrow. Gets orthonormalized to \+\_\+dir internally. If 0 or collinear to \+\_\+dir, a random normal is chosen. \\
\hline
{\em \+\_\+scale} & Uniform scaling factor of the arrow. This is also the length of the arrow. \\
\hline
{\em \+\_\+color} & \hyperlink{a00298}{Arrow} color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
id of the arrow 
\end{DoxyReturn}


Definition at line 401 of file Arrow\+Node.\+cc.

\hypertarget{a00300_a1f82a303453af88e7bea524e6f1f216c}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!add\+Arrow@{add\+Arrow}}
\index{add\+Arrow@{add\+Arrow}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{add\+Arrow}]{\setlength{\rightskip}{0pt plus 5cm}int A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::add\+Arrow (
\begin{DoxyParamCaption}
\item[{const {\bf Vec3d} \&}]{\+\_\+start, }
\item[{const {\bf Vec3d} \&}]{\+\_\+dir, }
\item[{const {\bf Vec3d} \&}]{\+\_\+normal = {\ttfamily {\bf Vec3d}(0.0,~1.0,~0.0)}, }
\item[{const {\bf Vec3d} \&}]{\+\_\+scale = {\ttfamily {\bf Vec3d}(1.0,~1.0,~1.0)}, }
\item[{const {\bf Vec4uc} \&}]{\+\_\+color = {\ttfamily {\bf Vec4uc}(82,~82,~82,~255)}}
\end{DoxyParamCaption}
)}}\label{a00300_a1f82a303453af88e7bea524e6f1f216c}


Add an arrow to the node. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+start} & Start position of the arrow \\
\hline
{\em \+\_\+dir} & Direction of the arrow \\
\hline
{\em \+\_\+normal} & Normal vector on the top surface of the arrow. Gets orthonormalized to \+\_\+dir internally. If 0 or collinear to \+\_\+dir, a random normal is chosen. \\
\hline
{\em \+\_\+scale} & Uniform scaling factor of the arrow. This is also the length of the arrow. \\
\hline
{\em \+\_\+color} & \hyperlink{a00298}{Arrow} color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
id of the arrow 
\end{DoxyReturn}


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

\hypertarget{a00300_a6cf5a6e15bc36fbaef83e7c4fb811073}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!add\+Arrow@{add\+Arrow}}
\index{add\+Arrow@{add\+Arrow}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{add\+Arrow}]{\setlength{\rightskip}{0pt plus 5cm}int A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::add\+Arrow (
\begin{DoxyParamCaption}
\item[{const {\bf Vec3d} \&}]{\+\_\+start, }
\item[{const {\bf Vec3d} \&}]{\+\_\+dir, }
\item[{const {\bf Vec3d} \&}]{\+\_\+normal, }
\item[{const {\bf Vec3d} \&}]{\+\_\+scale, }
\item[{const {\bf Vec4f} \&}]{\+\_\+color}
\end{DoxyParamCaption}
)}}\label{a00300_a6cf5a6e15bc36fbaef83e7c4fb811073}


Add an arrow to the node. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+start} & Start position of the arrow \\
\hline
{\em \+\_\+dir} & Direction of the arrow \\
\hline
{\em \+\_\+normal} & Normal vector on the top surface of the arrow. Gets orthonormalized to \+\_\+dir internally. If 0 or collinear to \+\_\+dir, a random normal is chosen. \\
\hline
{\em \+\_\+scale} & Uniform scaling factor of the arrow. This is also the length of the arrow. \\
\hline
{\em \+\_\+color} & \hyperlink{a00298}{Arrow} color \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
id of the arrow 
\end{DoxyReturn}


Definition at line 441 of file Arrow\+Node.\+cc.

\hypertarget{a00300_aa8f469e8fb0f7d88165786353c980cf0}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Color@{arrow\+Color}}
\index{arrow\+Color@{arrow\+Color}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Color}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec4uc} A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Color (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D}
\end{DoxyParamCaption}
) const}}\label{a00300_aa8f469e8fb0f7d88165786353c980cf0}


Return the color of an arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{a00298}{Arrow} color 
\end{DoxyReturn}


Definition at line 586 of file Arrow\+Node.\+cc.

\hypertarget{a00300_aa070b539f76bd4c632255bcef24143fb}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Color@{arrow\+Color}}
\index{arrow\+Color@{arrow\+Color}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Color}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Color (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D, }
\item[{const {\bf Vec4uc} \&}]{\+\_\+color}
\end{DoxyParamCaption}
)}}\label{a00300_aa070b539f76bd4c632255bcef24143fb}


Set the color of an already added arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
{\em \+\_\+scale} & \hyperlink{a00298}{Arrow} color \\
\hline
\end{DoxyParams}


Definition at line 591 of file Arrow\+Node.\+cc.

\hypertarget{a00300_ae7c1ebdad7eb521f873fd898a94b6d3b}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Dir@{arrow\+Dir}}
\index{arrow\+Dir@{arrow\+Dir}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Dir}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec3f} A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Dir (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D}
\end{DoxyParamCaption}
) const}}\label{a00300_ae7c1ebdad7eb521f873fd898a94b6d3b}


Return the direction of an arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Direction of the arrow 
\end{DoxyReturn}


Definition at line 551 of file Arrow\+Node.\+cc.

\hypertarget{a00300_a0a95a128c7bffa29b53d27d15fd69c37}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Dir@{arrow\+Dir}}
\index{arrow\+Dir@{arrow\+Dir}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Dir}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Dir (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D, }
\item[{const {\bf Vec3f} \&}]{\+\_\+dir}
\end{DoxyParamCaption}
)}}\label{a00300_a0a95a128c7bffa29b53d27d15fd69c37}


Set direction of an already added arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
{\em \+\_\+dir} & Direction of the arrow \\
\hline
\end{DoxyParams}


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

\hypertarget{a00300_acc79f15dc0b4d1116ea2989d6f953b2e}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Normal@{arrow\+Normal}}
\index{arrow\+Normal@{arrow\+Normal}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Normal}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec3f} A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Normal (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D}
\end{DoxyParamCaption}
) const}}\label{a00300_acc79f15dc0b4d1116ea2989d6f953b2e}


Return the normal of an arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Normal of the arrow 
\end{DoxyReturn}


Definition at line 563 of file Arrow\+Node.\+cc.

\hypertarget{a00300_ac2d0c9813c08c88fcc037194686dc9a4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Normal@{arrow\+Normal}}
\index{arrow\+Normal@{arrow\+Normal}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Normal}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Normal (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D, }
\item[{const {\bf Vec3f} \&}]{\+\_\+normal}
\end{DoxyParamCaption}
)}}\label{a00300_ac2d0c9813c08c88fcc037194686dc9a4}


Set normal of an already added arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
{\em \+\_\+dir} & Normal of the arrow \\
\hline
\end{DoxyParams}


Definition at line 568 of file Arrow\+Node.\+cc.

\hypertarget{a00300_a80be9d6cf2903dc36a15e6ca695d34b0}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Scale@{arrow\+Scale}}
\index{arrow\+Scale@{arrow\+Scale}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Scale}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec3f} A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Scale (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D}
\end{DoxyParamCaption}
) const}}\label{a00300_a80be9d6cf2903dc36a15e6ca695d34b0}


Return the scale of an arrow. 

Scaling vector\+: width, length, height 
\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{a00298}{Arrow} scale 
\end{DoxyReturn}


Definition at line 575 of file Arrow\+Node.\+cc.

\hypertarget{a00300_aa5294bf6351b905e0058e47f4a29a969}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Scale@{arrow\+Scale}}
\index{arrow\+Scale@{arrow\+Scale}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Scale}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Scale (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D, }
\item[{const {\bf Vec3f} \&}]{\+\_\+scale}
\end{DoxyParamCaption}
)}}\label{a00300_aa5294bf6351b905e0058e47f4a29a969}


Set the scale of an already added arrow. 

Scaling vector\+: width, length, height 
\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
{\em \+\_\+scale} & \hyperlink{a00298}{Arrow} scale \\
\hline
\end{DoxyParams}


Definition at line 580 of file Arrow\+Node.\+cc.

\hypertarget{a00300_aebd3724ab635f888c76e1340d2c60f14}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Start@{arrow\+Start}}
\index{arrow\+Start@{arrow\+Start}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Start}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec3f} A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Start (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D}
\end{DoxyParamCaption}
) const}}\label{a00300_aebd3724ab635f888c76e1340d2c60f14}


Return the start position of an arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Start position of the arrow 
\end{DoxyReturn}


Definition at line 540 of file Arrow\+Node.\+cc.

\hypertarget{a00300_a30ff9e59075d5d74631fe4a39b6027cf}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!arrow\+Start@{arrow\+Start}}
\index{arrow\+Start@{arrow\+Start}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{arrow\+Start}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::arrow\+Start (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+arrow\+I\+D, }
\item[{const {\bf Vec3f} \&}]{\+\_\+start}
\end{DoxyParamCaption}
)}}\label{a00300_a30ff9e59075d5d74631fe4a39b6027cf}


Set start point of an already added arrow. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+arrow\+I\+D} & I\+D of the arrow that was returned by \hyperlink{a00300_a65936c21fb23dc38cc72bf617b88b5f8}{add\+Arrow()} \\
\hline
{\em \+\_\+start} & Start position of the arrow \\
\hline
\end{DoxyParams}


Definition at line 545 of file Arrow\+Node.\+cc.

\hypertarget{a00300_a9e0826c754d0ba00a42cc7719f4d7940}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}!get\+Render\+Objects@{get\+Render\+Objects}}
\index{get\+Render\+Objects@{get\+Render\+Objects}!A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node}}
\subsubsection[{get\+Render\+Objects}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Arrow\+Node\+::get\+Render\+Objects (
\begin{DoxyParamCaption}
\item[{{\bf I\+Renderer} $\ast$}]{\+\_\+renderer, }
\item[{{\bf G\+L\+State} \&}]{\+\_\+state, }
\item[{const {\bf Draw\+Modes\+::\+Draw\+Mode} \&}]{\+\_\+draw\+Mode, }
\item[{const {\bf A\+C\+G\+::\+Scene\+Graph\+::\+Material} $\ast$}]{\+\_\+mat}
\end{DoxyParamCaption}
)}}\label{a00300_a9e0826c754d0ba00a42cc7719f4d7940}


Add the objects to the given renderer. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+renderer} & The renderer which will be used. Add your geometry into this class \\
\hline
{\em \+\_\+state} & The current G\+L State when this object is called \\
\hline
{\em \+\_\+draw\+Mode} & The active draw mode \\
\hline
{\em \+\_\+mat} & Current material \\
\hline
\end{DoxyParams}


Definition at line 272 of file Arrow\+Node.\+cc.



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