\hypertarget{a00637}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:A\+C\+G\+:\+:G\+L\+Matrix\+T$<$ Scalar $>$ Class Template Reference}
\label{a00637}\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T$<$ Scalar $>$@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T$<$ Scalar $>$}}
}


4x4 matrix implementing Open\+G\+L commands.  


Inheritance diagram for A\+C\+G\+:\+:Scene\+Graph\+:\+:A\+C\+G\+:\+:G\+L\+Matrix\+T$<$ Scalar $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00637}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00637_a12836c7005d1503d6623e40b4e1f6d7d}{typedef \hyperlink{a01409}{Vector\+T}$<$ Scalar, 3 $>$ {\bfseries Vec3}}\label{a00637_a12836c7005d1503d6623e40b4e1f6d7d}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00637_a679d79b2bf0cee55750557f04614e843}{\hyperlink{a00637_a679d79b2bf0cee55750557f04614e843}{G\+L\+Matrix\+T} ()}\label{a00637_a679d79b2bf0cee55750557f04614e843}

\begin{DoxyCompactList}\small\item\em constructor\+: uninitialized values \end{DoxyCompactList}\item 
\hypertarget{a00637_ad4cf81a8c030ac72cbdd5908be7183cf}{{\footnotesize template$<$class Other\+Scalar $>$ }\\\hyperlink{a00637_ad4cf81a8c030ac72cbdd5908be7183cf}{G\+L\+Matrix\+T} (const \hyperlink{a00637}{G\+L\+Matrix\+T}$<$ Other\+Scalar $>$ \&\+\_\+rhs)}\label{a00637_ad4cf81a8c030ac72cbdd5908be7183cf}

\begin{DoxyCompactList}\small\item\em construct from other matrix type \end{DoxyCompactList}\item 
\hyperlink{a00637_a3d4e66b038afde3d1dd182d80db27c29}{G\+L\+Matrix\+T} (const Scalar \+\_\+array\mbox{[}16\mbox{]})
\item 
\hyperlink{a00637_a3329953f12449d8512b2b4dcb8a41948}{G\+L\+Matrix\+T} (const \hyperlink{a01409}{Vec3} \&col1, const \hyperlink{a01409}{Vec3} \&col2, const \hyperlink{a01409}{Vec3} \&col3)
\item 
\hypertarget{a00637_a503f5b79ceae7a472c0e430ee4c13d9a}{\hyperlink{a00637_a503f5b79ceae7a472c0e430ee4c13d9a}{$\sim$\+G\+L\+Matrix\+T} ()}\label{a00637_a503f5b79ceae7a472c0e430ee4c13d9a}

\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\hypertarget{a00637_a297109567bd1370c83b8ad3977e05057}{{\footnotesize template$<$typename other\+Scalar $>$ }\\\hyperlink{a00637}{G\+L\+Matrix\+T}$<$ Scalar $>$ \& \hyperlink{a00637_a297109567bd1370c83b8ad3977e05057}{operator=} (const \hyperlink{a00637}{G\+L\+Matrix\+T}$<$ other\+Scalar $>$ \&\+\_\+rhs)}\label{a00637_a297109567bd1370c83b8ad3977e05057}

\begin{DoxyCompactList}\small\item\em assignement from other matrix type \end{DoxyCompactList}\item 
\hypertarget{a00637_afbff8abadc4ddca48d11d4adb623ef43}{{\footnotesize template$<$typename other\+Scalar $>$ }\\\hyperlink{a00637}{G\+L\+Matrix\+T}$<$ Scalar $>$ \& \hyperlink{a00637_afbff8abadc4ddca48d11d4adb623ef43}{operator=} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ other\+Scalar $>$ \&\+\_\+rhs)}\label{a00637_afbff8abadc4ddca48d11d4adb623ef43}

\begin{DoxyCompactList}\small\item\em assignement from other matrix type \end{DoxyCompactList}\item 
\hypertarget{a00637_aed360339d498922dfb69068facb8a293}{void \hyperlink{a00637_aed360339d498922dfb69068facb8a293}{scale} (Scalar \+\_\+x, Scalar \+\_\+y, Scalar \+\_\+z, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_aed360339d498922dfb69068facb8a293}

\begin{DoxyCompactList}\small\item\em multiply self with scaling matrix (x,y,z) \end{DoxyCompactList}\item 
\hypertarget{a00637_aeaa8643dacac9458ac770069037ac551}{void \hyperlink{a00637_aeaa8643dacac9458ac770069037ac551}{scale} (const \hyperlink{a01409}{Vec3} \&\+\_\+v, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_aeaa8643dacac9458ac770069037ac551}

\begin{DoxyCompactList}\small\item\em multiply self with scaling matrix (x,y,z) \end{DoxyCompactList}\item 
\hypertarget{a00637_a8b474c55fbead93b322f23954b086032}{void \hyperlink{a00637_a8b474c55fbead93b322f23954b086032}{translate} (Scalar \+\_\+x, Scalar \+\_\+y, Scalar \+\_\+z, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_a8b474c55fbead93b322f23954b086032}

\begin{DoxyCompactList}\small\item\em multiply self with translation matrix (x,y,z) \end{DoxyCompactList}\item 
\hypertarget{a00637_ab5651bf659b139062f429c2f94a0ec97}{void \hyperlink{a00637_ab5651bf659b139062f429c2f94a0ec97}{translate} (const \hyperlink{a01409}{Vec3} \&\+\_\+v, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_ab5651bf659b139062f429c2f94a0ec97}

\begin{DoxyCompactList}\small\item\em multiply self with translation matrix (x,y,z) \end{DoxyCompactList}\item 
void \hyperlink{a00637_a729020c7169f50fd5f6193966207684d}{rotate} (Scalar angle, Scalar x, Scalar y, Scalar z, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)
\item 
void \hyperlink{a00637_ae40854b1f36f031cb2ea03f72d66b78e}{rotate} (Scalar \+\_\+angle, const \hyperlink{a01409}{Vec3} \&\+\_\+axis, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)
\item 
\hypertarget{a00637_ab392f9c54551af169588362b3abe6ca0}{void \hyperlink{a00637_ab392f9c54551af169588362b3abe6ca0}{rotate\+X} (Scalar \+\_\+angle, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_ab392f9c54551af169588362b3abe6ca0}

\begin{DoxyCompactList}\small\item\em multiply self with a rotation matrix (angle in degree, x-\/axis) \end{DoxyCompactList}\item 
\hypertarget{a00637_a4483d776dca3e86d4937f44fa993043d}{void \hyperlink{a00637_a4483d776dca3e86d4937f44fa993043d}{rotate\+Y} (Scalar \+\_\+angle, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_a4483d776dca3e86d4937f44fa993043d}

\begin{DoxyCompactList}\small\item\em multiply self with a rotation matrix (angle in degree, y-\/axis) \end{DoxyCompactList}\item 
\hypertarget{a00637_af4c80daba26fd4f77750247bcc61d7d1}{void \hyperlink{a00637_af4c80daba26fd4f77750247bcc61d7d1}{rotate\+Z} (Scalar \+\_\+angle, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00637_af4c80daba26fd4f77750247bcc61d7d1}

\begin{DoxyCompactList}\small\item\em multiply self with a rotation matrix (angle in degree, z-\/axis) \end{DoxyCompactList}\item 
void \hyperlink{a00637_a9d9bf7cb0bca54aa00898417b271e3b4}{look\+At} (const \hyperlink{a01409}{Vec3} \&eye, const \hyperlink{a01409}{Vec3} \&center, const \hyperlink{a01409}{Vec3} \&up)
\item 
\hypertarget{a00637_a8df3e1fb4735f8ce03a0685318f46773}{void \hyperlink{a00637_a8df3e1fb4735f8ce03a0685318f46773}{inverse\+\_\+look\+At} (const \hyperlink{a01409}{Vec3} \&eye, const \hyperlink{a01409}{Vec3} \&center, const \hyperlink{a01409}{Vec3} \&up)}\label{a00637_a8df3e1fb4735f8ce03a0685318f46773}

\begin{DoxyCompactList}\small\item\em multiply self from left with inverse look\+At matrix \end{DoxyCompactList}\item 
void \hyperlink{a00637_aeaba4e795972aff3a37975202a3718ef}{perspective} (Scalar fov\+Y, Scalar aspect, Scalar near\+\_\+plane, Scalar far\+\_\+plane)
\begin{DoxyCompactList}\small\item\em multiply self with a perspective projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_abe6d7ece282dcaaa581760ffe5dd3df0}{void \hyperlink{a00637_abe6d7ece282dcaaa581760ffe5dd3df0}{inverse\+\_\+perspective} (Scalar fov\+Y, Scalar aspect, Scalar near\+\_\+plane, Scalar far\+\_\+plane)}\label{a00637_abe6d7ece282dcaaa581760ffe5dd3df0}

\begin{DoxyCompactList}\small\item\em multiply self from left with inverse of perspective projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_ac7dd9510381786530d7f3046388554e0}{void \hyperlink{a00637_ac7dd9510381786530d7f3046388554e0}{frustum} (Scalar left, Scalar right, Scalar bottom, Scalar top, Scalar near\+\_\+plane, Scalar far\+\_\+plane)}\label{a00637_ac7dd9510381786530d7f3046388554e0}

\begin{DoxyCompactList}\small\item\em multiply self with a perspective projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a8110d12ab0619d3be127d3cbebc648b0}{void \hyperlink{a00637_a8110d12ab0619d3be127d3cbebc648b0}{inverse\+\_\+frustum} (Scalar left, Scalar right, Scalar bottom, Scalar top, Scalar near\+\_\+plane, Scalar far\+\_\+plane)}\label{a00637_a8110d12ab0619d3be127d3cbebc648b0}

\begin{DoxyCompactList}\small\item\em multiply self from left with inverse of perspective projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_aff838d685ccf2e7ff53bff5d021f2428}{void \hyperlink{a00637_aff838d685ccf2e7ff53bff5d021f2428}{ortho} (Scalar left, Scalar right, Scalar bottom, Scalar top, Scalar near\+\_\+plane, Scalar far\+\_\+plane)}\label{a00637_aff838d685ccf2e7ff53bff5d021f2428}

\begin{DoxyCompactList}\small\item\em multiply self with orthographic projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a79fa6d9ee33d6b2829e24b77bf68ba6c}{void \hyperlink{a00637_a79fa6d9ee33d6b2829e24b77bf68ba6c}{inverse\+\_\+ortho} (Scalar left, Scalar right, Scalar bottom, Scalar top, Scalar near\+\_\+plane, Scalar far\+\_\+plane)}\label{a00637_a79fa6d9ee33d6b2829e24b77bf68ba6c}

\begin{DoxyCompactList}\small\item\em multiply self from left with inverse orthographic projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a0219175f5407b16e514b93343322dafe}{\hyperlink{a01409}{Vector\+T}$<$ Scalar, 2 $>$ \hyperlink{a00637_a0219175f5407b16e514b93343322dafe}{extract\+\_\+planes\+\_\+perspective} () const }\label{a00637_a0219175f5407b16e514b93343322dafe}

\begin{DoxyCompactList}\small\item\em extract near and far clipping planes from a perspective projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a1259a01b6bd68cfed2b8608c881dfc17}{\hyperlink{a01409}{Vector\+T}$<$ Scalar, 2 $>$ \hyperlink{a00637_a1259a01b6bd68cfed2b8608c881dfc17}{extract\+\_\+planes\+\_\+ortho} () const }\label{a00637_a1259a01b6bd68cfed2b8608c881dfc17}

\begin{DoxyCompactList}\small\item\em extract near and far clipping planes from an orthographic projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a7fb9a86e18b357aa3ec6758325db7c6c}{bool \hyperlink{a00637_a7fb9a86e18b357aa3ec6758325db7c6c}{is\+Perspective} () const }\label{a00637_a7fb9a86e18b357aa3ec6758325db7c6c}

\begin{DoxyCompactList}\small\item\em check if the matrix is a perspective projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a6f0deb6da05b37a7bbe3baef26f4fb2b}{bool \hyperlink{a00637_a6f0deb6da05b37a7bbe3baef26f4fb2b}{is\+Ortho} () const }\label{a00637_a6f0deb6da05b37a7bbe3baef26f4fb2b}

\begin{DoxyCompactList}\small\item\em check if the matrix is an orthographic projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00637_a622307380b0cb942642f2c185ddfadee}{\hyperlink{a01409}{Vector\+T}$<$ Scalar, 2 $>$ \hyperlink{a00637_a622307380b0cb942642f2c185ddfadee}{extract\+\_\+planes} () const }\label{a00637_a622307380b0cb942642f2c185ddfadee}

\begin{DoxyCompactList}\small\item\em detect type of projection matrix and extract near and far clipping planes \end{DoxyCompactList}\item 
\hypertarget{a00637_a7b73eb688559bb7c9200412abbdf8629}{\hyperlink{a00637}{G\+L\+Matrix\+T} \& {\bfseries operator+=} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs)}\label{a00637_a7b73eb688559bb7c9200412abbdf8629}

\item 
\hypertarget{a00637_a3de60a37c73f62b310d2d1ce77c9d6ec}{\hyperlink{a00637}{G\+L\+Matrix\+T} \& {\bfseries operator-\/=} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs)}\label{a00637_a3de60a37c73f62b310d2d1ce77c9d6ec}

\item 
\hypertarget{a00637_affccc707e42b423a2e96738a80b61d21}{\hyperlink{a00637}{G\+L\+Matrix\+T} \& {\bfseries operator$\ast$=} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs)}\label{a00637_affccc707e42b423a2e96738a80b61d21}

\item 
\hypertarget{a00637_aeaec387496eb38d604159d20a8013cbf}{\hyperlink{a00637}{G\+L\+Matrix\+T} \& {\bfseries left\+Mult} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs)}\label{a00637_aeaec387496eb38d604159d20a8013cbf}

\item 
\hypertarget{a00637_a16fec52ce69c1f88342205923529c4d0}{\hyperlink{a00637}{G\+L\+Matrix\+T} {\bfseries operator+} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs) const }\label{a00637_a16fec52ce69c1f88342205923529c4d0}

\item 
\hypertarget{a00637_a2f4b9c1bab26a28b90f0c9df664421c4}{\hyperlink{a00637}{G\+L\+Matrix\+T} {\bfseries operator-\/} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs) const }\label{a00637_a2f4b9c1bab26a28b90f0c9df664421c4}

\item 
\hypertarget{a00637_a52380745c5de403ef6f180f3b976fa5b}{\hyperlink{a00637}{G\+L\+Matrix\+T} {\bfseries operator$\ast$} (const \hyperlink{a00796}{Matrix4x4\+T}$<$ Scalar $>$ \&\+\_\+rhs) const }\label{a00637_a52380745c5de403ef6f180f3b976fa5b}

\item 
\hypertarget{a00637_ac2a6e46fec9702abc9aa32a62e8b4edb}{{\footnotesize template$<$typename T $>$ }\\\hyperlink{a01409}{Vector\+T}$<$ T, 4 $>$ {\bfseries operator$\ast$} (const \hyperlink{a01409}{Vector\+T}$<$ T, 4 $>$ \&\+\_\+v) const }\label{a00637_ac2a6e46fec9702abc9aa32a62e8b4edb}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00637_ad444923605665a5a4029c82e020d97c7}{enum {\bfseries Axis} \{ {\bfseries X}, 
{\bfseries Y}, 
{\bfseries Z}
 \}}\label{a00637_ad444923605665a5a4029c82e020d97c7}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00637_a9f296cb3fa4a308b7d3c9e466b86629e}{void {\bfseries rotate\+X\+Y\+Z} (Axis \+\_\+axis, Scalar \+\_\+angle, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from)}\label{a00637_a9f296cb3fa4a308b7d3c9e466b86629e}

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


\subsection{Detailed Description}
\subsubsection*{template$<$class Scalar$>$class A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T$<$ Scalar $>$}

4x4 matrix implementing Open\+G\+L commands. 

Definition at line 85 of file Mesh\+Node2\+T.\+cc.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00637_a3d4e66b038afde3d1dd182d80db27c29}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}!G\+L\+Matrix\+T@{G\+L\+Matrix\+T}}
\index{G\+L\+Matrix\+T@{G\+L\+Matrix\+T}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{G\+L\+Matrix\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}$<$ Scalar $>$\+::{\bf G\+L\+Matrix\+T} (
\begin{DoxyParamCaption}
\item[{const Scalar}]{\+\_\+array\mbox{[}16\mbox{]}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00637_a3d4e66b038afde3d1dd182d80db27c29}
setup matrix using an array of N$\ast$\+N scalar values. elements are ordered 'column first' (like Open\+G\+L) 

Definition at line 103 of file Mesh\+Node2\+T.\+cc.

\hypertarget{a00637_a3329953f12449d8512b2b4dcb8a41948}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}!G\+L\+Matrix\+T@{G\+L\+Matrix\+T}}
\index{G\+L\+Matrix\+T@{G\+L\+Matrix\+T}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{G\+L\+Matrix\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}$<$ Scalar $>$\+::{\bf G\+L\+Matrix\+T} (
\begin{DoxyParamCaption}
\item[{const {\bf Vec3} \&}]{col1, }
\item[{const {\bf Vec3} \&}]{col2, }
\item[{const {\bf Vec3} \&}]{col3}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00637_a3329953f12449d8512b2b4dcb8a41948}
Initialize an affine matrix from column vectors. 

Definition at line 108 of file Mesh\+Node2\+T.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00637_a9d9bf7cb0bca54aa00898417b271e3b4}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}!look\+At@{look\+At}}
\index{look\+At@{look\+At}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{look\+At}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}$<$ Scalar $>$\+::look\+At (
\begin{DoxyParamCaption}
\item[{const {\bf Vec3} \&}]{eye, }
\item[{const {\bf Vec3} \&}]{center, }
\item[{const {\bf Vec3} \&}]{up}
\end{DoxyParamCaption}
)}}\label{a00637_a9d9bf7cb0bca54aa00898417b271e3b4}
multiply self with a viewing transformation given by eye position, reference point (center) and an up vector. (similar to glu\+Look\+At) \hypertarget{a00637_aeaba4e795972aff3a37975202a3718ef}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}!perspective@{perspective}}
\index{perspective@{perspective}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{perspective}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}$<$ Scalar $>$\+::perspective (
\begin{DoxyParamCaption}
\item[{Scalar}]{fov\+Y, }
\item[{Scalar}]{aspect, }
\item[{Scalar}]{near\+\_\+plane, }
\item[{Scalar}]{far\+\_\+plane}
\end{DoxyParamCaption}
)}}\label{a00637_aeaba4e795972aff3a37975202a3718ef}


multiply self with a perspective projection matrix 

The specified perspective projection will be multiplied with the matrix already stored in this matix.


\begin{DoxyParams}{Parameters}
{\em fov\+Y} & Half of the Field of View in y direction angle (Degree) \\
\hline
{\em aspect} & aspect ratio\+: x = y $\ast$ aspect \\
\hline
{\em near\+\_\+plane} & Distance to near plane ( $>$ 0 ) \\
\hline
{\em far\+\_\+plane} & Distance to far plane ( $>$ near\+\_\+plane $>$ 0 ) \\
\hline
\end{DoxyParams}
\hypertarget{a00637_a729020c7169f50fd5f6193966207684d}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}!rotate@{rotate}}
\index{rotate@{rotate}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{rotate}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}$<$ Scalar $>$\+::rotate (
\begin{DoxyParamCaption}
\item[{Scalar}]{angle, }
\item[{Scalar}]{x, }
\item[{Scalar}]{y, }
\item[{Scalar}]{z, }
\item[{{\bf Multiply\+From}}]{\+\_\+mult\+\_\+from = {\ttfamily MULT\+\_\+FROM\+\_\+RIGHT}}
\end{DoxyParamCaption}
)}}\label{a00637_a729020c7169f50fd5f6193966207684d}
multiply self with a rotation matrix (angle in degree, arbitrary axis given by xyz) \hypertarget{a00637_ae40854b1f36f031cb2ea03f72d66b78e}{\index{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}!rotate@{rotate}}
\index{rotate@{rotate}!A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{rotate}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ void {\bf A\+C\+G\+::\+Scene\+Graph\+::\+A\+C\+G\+::\+G\+L\+Matrix\+T}$<$ Scalar $>$\+::rotate (
\begin{DoxyParamCaption}
\item[{Scalar}]{\+\_\+angle, }
\item[{const {\bf Vec3} \&}]{\+\_\+axis, }
\item[{{\bf Multiply\+From}}]{\+\_\+mult\+\_\+from = {\ttfamily MULT\+\_\+FROM\+\_\+RIGHT}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00637_ae40854b1f36f031cb2ea03f72d66b78e}
multiply self with a rotation matrix (angle in degree, arbitrary axis given by xyz) 

Definition at line 185 of file Mesh\+Node2\+T.\+cc.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
A\+C\+G/\+Scenegraph/Mesh\+Node2\+T.\+cc\end{DoxyCompactItemize}
