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


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




{\ttfamily \#include $<$A\+C\+G/\+Math/\+G\+L\+Matrix\+T.\+hh$>$}

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

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

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

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

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

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

\begin{DoxyCompactList}\small\item\em assignement from other matrix type \end{DoxyCompactList}\item 
\hypertarget{a00638_a0f47eb11ebbabff2109301c771c79a7f}{void \hyperlink{a00638_a0f47eb11ebbabff2109301c771c79a7f}{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{a00638_a0f47eb11ebbabff2109301c771c79a7f}

\begin{DoxyCompactList}\small\item\em multiply self with scaling matrix (x,y,z) \end{DoxyCompactList}\item 
\hypertarget{a00638_a55fc460d47a8665c40e328db96dbf9b1}{void \hyperlink{a00638_a55fc460d47a8665c40e328db96dbf9b1}{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{a00638_a55fc460d47a8665c40e328db96dbf9b1}

\begin{DoxyCompactList}\small\item\em multiply self with scaling matrix (x,y,z) \end{DoxyCompactList}\item 
\hypertarget{a00638_a9e16fcd910d4dcf64b801e249518288d}{void \hyperlink{a00638_a9e16fcd910d4dcf64b801e249518288d}{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{a00638_a9e16fcd910d4dcf64b801e249518288d}

\begin{DoxyCompactList}\small\item\em multiply self with translation matrix (x,y,z) \end{DoxyCompactList}\item 
\hypertarget{a00638_a58f3514e1cb21de67c5b93fc629081c3}{void \hyperlink{a00638_a58f3514e1cb21de67c5b93fc629081c3}{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{a00638_a58f3514e1cb21de67c5b93fc629081c3}

\begin{DoxyCompactList}\small\item\em multiply self with translation matrix (x,y,z) \end{DoxyCompactList}\item 
void \hyperlink{a00638_a00a5672ec60726a386be957ee9bd4312}{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{a00638_a7cd30ee58b220154b9f5d7414a362bee}{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{a00638_a33adf3931a134b3c0019dc4c124ee5ad}{void \hyperlink{a00638_a33adf3931a134b3c0019dc4c124ee5ad}{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{a00638_a33adf3931a134b3c0019dc4c124ee5ad}

\begin{DoxyCompactList}\small\item\em multiply self with a rotation matrix (angle in degree, x-\/axis) \end{DoxyCompactList}\item 
\hypertarget{a00638_a8bad76b1548884453a907eecd2cf4223}{void \hyperlink{a00638_a8bad76b1548884453a907eecd2cf4223}{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{a00638_a8bad76b1548884453a907eecd2cf4223}

\begin{DoxyCompactList}\small\item\em multiply self with a rotation matrix (angle in degree, y-\/axis) \end{DoxyCompactList}\item 
\hypertarget{a00638_abb57f30c97c8ff5df5a8cc47befcca38}{void \hyperlink{a00638_abb57f30c97c8ff5df5a8cc47befcca38}{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{a00638_abb57f30c97c8ff5df5a8cc47befcca38}

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

\begin{DoxyCompactList}\small\item\em multiply self from left with inverse look\+At matrix \end{DoxyCompactList}\item 
void \hyperlink{a00638_a94a91a351c96ce8c79d04c5293ec9ec1}{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{a00638_ac38d19ae0815471d361337719959eeea}{void \hyperlink{a00638_ac38d19ae0815471d361337719959eeea}{inverse\+\_\+perspective} (Scalar fov\+Y, Scalar aspect, Scalar near\+\_\+plane, Scalar far\+\_\+plane)}\label{a00638_ac38d19ae0815471d361337719959eeea}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Definition at line 85 of file G\+L\+Matrix\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00638_aa4cd528f4cc9b69cd56305491ef1417d}{\index{A\+C\+G\+::\+G\+L\+Matrix\+T@{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\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{G\+L\+Matrix\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf 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{a00638_aa4cd528f4cc9b69cd56305491ef1417d}
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 G\+L\+Matrix\+T.\+hh.

\hypertarget{a00638_af3714d439cc41cddaeee8ec0ce54d47e}{\index{A\+C\+G\+::\+G\+L\+Matrix\+T@{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\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{G\+L\+Matrix\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ {\bf 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{a00638_af3714d439cc41cddaeee8ec0ce54d47e}
Initialize an affine matrix from column vectors. 

Definition at line 108 of file G\+L\+Matrix\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00638_a8a3b535f32747eec560538a3afe98336}{\index{A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}!look\+At@{look\+At}}
\index{look\+At@{look\+At}!A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{look\+At}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Scalar $>$ void {\bf 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{a00638_a8a3b535f32747eec560538a3afe98336}
multiply self with a viewing transformation given by eye position, reference point (center) and an up vector. (similar to glu\+Look\+At) 

Definition at line 222 of file G\+L\+Matrix\+T.\+cc.

\hypertarget{a00638_a94a91a351c96ce8c79d04c5293ec9ec1}{\index{A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}!perspective@{perspective}}
\index{perspective@{perspective}!A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{perspective}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Scalar$>$ void {\bf 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{a00638_a94a91a351c96ce8c79d04c5293ec9ec1}


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}


Definition at line 283 of file G\+L\+Matrix\+T.\+cc.

\hypertarget{a00638_a00a5672ec60726a386be957ee9bd4312}{\index{A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}!rotate@{rotate}}
\index{rotate@{rotate}!A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{rotate}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Scalar$>$ void {\bf 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{a00638_a00a5672ec60726a386be957ee9bd4312}
multiply self with a rotation matrix (angle in degree, arbitrary axis given by xyz) 

Definition at line 161 of file G\+L\+Matrix\+T.\+cc.

\hypertarget{a00638_a7cd30ee58b220154b9f5d7414a362bee}{\index{A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}!rotate@{rotate}}
\index{rotate@{rotate}!A\+C\+G\+::\+G\+L\+Matrix\+T@{A\+C\+G\+::\+G\+L\+Matrix\+T}}
\subsubsection[{rotate}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Scalar$>$ void {\bf 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{a00638_a7cd30ee58b220154b9f5d7414a362bee}
multiply self with a rotation matrix (angle in degree, arbitrary axis given by xyz) 

Definition at line 185 of file G\+L\+Matrix\+T.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
A\+C\+G/\+Math/G\+L\+Matrix\+T.\+hh\item 
A\+C\+G/\+Math/G\+L\+Matrix\+T.\+cc\end{DoxyCompactItemize}
