\hypertarget{class_ogre_1_1_matrix3}{}\section{Ogre\+:\+:Matrix3 Class Reference}
\label{class_ogre_1_1_matrix3}\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}


A 3x3 matrix which can represent rotations around axes.  




{\ttfamily \#include $<$Ogre\+Matrix3.\+h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_matrix3_a0ecaa32a22cc18ca76dc74377005e7e1}{Matrix3} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_matrix3_a705a22877d9f0a33724887e577486b41}{Matrix3} (const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} arr\mbox{[}3\mbox{]}\mbox{[}3\mbox{]})
\item 
\hyperlink{class_ogre_1_1_matrix3_a3653fb657419f82d71f7ae06df0dd9f5}{Matrix3} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry00, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry01, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry02, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry10, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry11, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry12, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry20, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry21, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Entry22)
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_matrix3_a14cdac95b9c0c688bbeacdf63128fa90}{Determinant} () const
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_matrix3_a1c30dfe97a436d47c83f5c9bf603a5bb}{determinant} () const
\item 
void \hyperlink{class_ogre_1_1_matrix3_a7894ad662322338045ae796e418e9df2}{Eigen\+Solve\+Symmetric} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} af\+Eigenvalue\mbox{[}3\mbox{]}, \hyperlink{class_ogre_1_1_vector3}{Vector3} ak\+Eigenvector\mbox{[}3\mbox{]}) const
\begin{DoxyCompactList}\small\item\em Eigensolver, matrix must be symmetric. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_matrix3_ab96e7684e128659752ec94031357e6ff}{From\+Angle\+Axis} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rk\+Axis, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Radians)
\item 
void \hyperlink{class_ogre_1_1_matrix3_ad904362ff107e91ed2881a9802d11979}{From\+Axes} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&x\+Axis, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&y\+Axis, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&z\+Axis)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a3f5abdecf648a54b164df112c7037ed7}{From\+Euler\+Angles\+X\+YZ} (const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Y\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+P\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+R\+Angle)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a209f31aa2e25d9b3d55d64d2d8304382}{From\+Euler\+Angles\+X\+ZY} (const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Y\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+P\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+R\+Angle)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a2e0ccd0f22689072aa4a64c7a441f694}{From\+Euler\+Angles\+Y\+XZ} (const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Y\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+P\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+R\+Angle)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a94b0b7264cc1572fff22f491ac6cc664}{From\+Euler\+Angles\+Y\+ZX} (const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Y\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+P\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+R\+Angle)
\item 
void \hyperlink{class_ogre_1_1_matrix3_ac0148ffb86f185d7de044fd83e9647ce}{From\+Euler\+Angles\+Z\+XY} (const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Y\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+P\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+R\+Angle)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a8308f99c3c13e067f016a45f26f15389}{From\+Euler\+Angles\+Z\+YX} (const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+Y\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+P\+Angle, const \hyperlink{class_ogre_1_1_radian}{Radian} \&f\+R\+Angle)
\item 
\hyperlink{class_ogre_1_1_vector3}{Vector3} \hyperlink{class_ogre_1_1_matrix3_a06269d2ba63c85aea763595e44738f79}{Get\+Column} (size\+\_\+t i\+Col) const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_ae707b42e202609b8aa86fe461ba0f1c2}{has\+Negative\+Scale} () const
\begin{DoxyCompactList}\small\item\em Determines if this matrix involves a negative scaling. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_matrix3_adfc89d0edf39f55d9c8e30a8287efcb7}{has\+Scale} () const
\begin{DoxyCompactList}\small\item\em Determines if this matrix involves a scaling. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_matrix3_a7b0263cfd61328e44e787b3b8993cc50}{Inverse} (\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Inverse, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Tolerance=1e-\/06) const
\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_aca904f75f2f148933ea4dcbd26fcc2c9}{Inverse} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Tolerance=1e-\/06) const
\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_ad0d1a7e8a8b84df6dfd4ea1eba09b9e2}{inverse} () const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_a2142d22152cd57c522b6936fd523324f}{operator!=} (const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix) const
\begin{DoxyCompactList}\small\item\em Tests 2 matrices for inequality. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_aa6e3e20bdf0a5ff536511c968ed5e3d5}{operator$\ast$} (const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix) const
\begin{DoxyCompactList}\small\item\em Matrix concatenation using \textquotesingle{}$\ast$\textquotesingle{}. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_a711f681fcd524fe130f651bc819adf0e}{operator$\ast$} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Scalar) const
\begin{DoxyCompactList}\small\item\em Matrix $\ast$ scalar. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_ae3ce939cbbd12eefa0e33933eb2a20cd}{operator+} (const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix) const
\begin{DoxyCompactList}\small\item\em Matrix addition. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_ae2e8712b996aab5c818418978b1796d2}{operator-\/} (const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix) const
\begin{DoxyCompactList}\small\item\em Matrix subtraction. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_abaa901cecc2dce7aacd5dfcc6f5d4f78}{operator-\/} () const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_a0589b1275b7822abd410b13477156d4d}{operator==} (const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix) const
\begin{DoxyCompactList}\small\item\em Tests 2 matrices for equality. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} $\ast$ \hyperlink{class_ogre_1_1_matrix3_a8043454ea50049c6849d60ead7dbd7a7}{operator\mbox{[}$\,$\mbox{]}} (size\+\_\+t i\+Row) const
\begin{DoxyCompactList}\small\item\em Member access, allows use of construct mat\mbox{[}r\mbox{]}\mbox{[}c\mbox{]}. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} $\ast$ \hyperlink{class_ogre_1_1_matrix3_a05c722c341f21dd2ffc36fb1414e284b}{operator\mbox{[}$\,$\mbox{]}} (size\+\_\+t i\+Row)
\item 
void \hyperlink{class_ogre_1_1_matrix3_add64f270c75286c4cafa3b242778573f}{Orthonormalize} ()
\begin{DoxyCompactList}\small\item\em Gram-\/\+Schmidt orthonormalization (applied to columns of rotation matrix) \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_matrix3_a67d582443cb581c5deda833897452701}{Q\+D\+U\+Decomposition} (\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rkQ, \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rkD, \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rkU) const
\begin{DoxyCompactList}\small\item\em Orthogonal Q, diagonal D, upper triangular U stored as (u01,u02,u12) \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_matrix3_ab5f04bc27bc68152b92123ac2d14afd5}{Set\+Column} (size\+\_\+t i\+Col, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&vec)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a1efb2981c1a759e607e1431321d95524}{Singular\+Value\+Composition} (const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rkL, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rkS, const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rkR)
\item 
void \hyperlink{class_ogre_1_1_matrix3_a9c4cbf94ffb5400519b60dd4620b595a}{Singular\+Value\+Decomposition} (\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rkL, \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rkS, \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rkR) const
\begin{DoxyCompactList}\small\item\em Singular value decomposition. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_matrix3_adca9be180377c51c05a608df576a8e86}{Spectral\+Norm} () const
\item 
void \hyperlink{class_ogre_1_1_matrix3_a383f39c81d80a866ca76594be498a251}{To\+Angle\+Axis} (\hyperlink{class_ogre_1_1_vector3}{Vector3} \&rk\+Axis, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Angle) const
\begin{DoxyCompactList}\small\item\em Note\+: Matrix must be orthonormal. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_matrix3_a392575c590b0d95a1422d1a8fb23260d}{To\+Angle\+Axis} (\hyperlink{class_ogre_1_1_vector3}{Vector3} \&rk\+Axis, \hyperlink{class_ogre_1_1_degree}{Degree} \&rf\+Angle) const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_abd75bf95ae6a7c4294ea710769a77a32}{To\+Euler\+Angles\+X\+YZ} (\hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Y\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+P\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+R\+Angle) const
\begin{DoxyCompactList}\small\item\em The matrix must be orthonormal. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_matrix3_a157ff70e8bd3a611389182497988e3f2}{To\+Euler\+Angles\+X\+ZY} (\hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Y\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+P\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+R\+Angle) const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_a799bda89a5b5e774aaeb6ba5197e61ba}{To\+Euler\+Angles\+Y\+XZ} (\hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Y\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+P\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+R\+Angle) const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_a458ebd34fea7df1eb987fee96b5ca2df}{To\+Euler\+Angles\+Y\+ZX} (\hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Y\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+P\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+R\+Angle) const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_ab76be51256dd3773aaaeba380f7969a8}{To\+Euler\+Angles\+Z\+XY} (\hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Y\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+P\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+R\+Angle) const
\item 
bool \hyperlink{class_ogre_1_1_matrix3_ab1a1b9969db6acbb91178e9c25cfd28d}{To\+Euler\+Angles\+Z\+YX} (\hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+Y\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+P\+Angle, \hyperlink{class_ogre_1_1_radian}{Radian} \&rf\+R\+Angle) const
\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_aec1cee52b2574f50b4e98ead1266308b}{Transpose} () const
\item 
\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_ad340a987162fcf0cb9f4be9ce90996c1}{transpose} () const
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{class_ogre_1_1_matrix3_af1d217c48e8894227fa2cf2a7952cccc}{Tensor\+Product} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rkU, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rkV, \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Product)
\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_matrix3_a5bf17bf2239af2516e359dc6de22bf3d}{E\+P\+S\+I\+L\+ON}
\item 
static const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_adcb2945d4f9b8995236be5a27dcfe343}{I\+D\+E\+N\+T\+I\+TY}
\item 
static const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_a4561d62d4d2c088ce2a3b6c3ec3d09af}{Z\+E\+RO}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_matrix3_aed2829d86d2df8f9333d4c0087455880}{Matrix4}
\item 
\+\_\+\+Ogre\+Export friend \hyperlink{class_ogre_1_1_vector3}{Vector3} \hyperlink{class_ogre_1_1_matrix3_a9bc849d4891efcbb40253e790d8f5837}{operator$\ast$} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&rk\+Vector, const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix)
\begin{DoxyCompactList}\small\item\em Vector $\ast$ matrix \mbox{[}1x3 $\ast$ 3x3 = 1x3\mbox{]}. \end{DoxyCompactList}\item 
\+\_\+\+Ogre\+Export friend \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \hyperlink{class_ogre_1_1_matrix3_a475a485a770084ade97b8fd310b60011}{operator$\ast$} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} f\+Scalar, const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&rk\+Matrix)
\begin{DoxyCompactList}\small\item\em Scalar $\ast$ matrix. \end{DoxyCompactList}\item 
std\+::ostream \& \hyperlink{class_ogre_1_1_matrix3_a82d787d8c98830db8a518a140e7ebbda}{operator$<$$<$} (std\+::ostream \&o, const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&mat)
\begin{DoxyCompactList}\small\item\em Function for writing to a stream. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A 3x3 matrix which can represent rotations around axes. 

\begin{DoxyNote}{Note}
{\bfseries All the code is adapted from the Wild Magic 0.\+2 Matrix library (\href{http://www.geometrictools.com/}{\tt http\+://www.\+geometrictools.\+com/}).} 
\end{DoxyNote}
\begin{DoxyParagraph}{}
The coordinate system is assumed to be {\bfseries right-\/handed}. 
\end{DoxyParagraph}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_matrix3_a0ecaa32a22cc18ca76dc74377005e7e1}\label{class_ogre_1_1_matrix3_a0ecaa32a22cc18ca76dc74377005e7e1}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Matrix3@{Matrix3}}
\index{Matrix3@{Matrix3}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Matrix3()}{Matrix3()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily Ogre\+::\+Matrix3\+::\+Matrix3 (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Default constructor. 

\begin{DoxyNote}{Note}
It does {\bfseries N\+OT} initialize the matrix for efficiency. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_matrix3_a705a22877d9f0a33724887e577486b41}\label{class_ogre_1_1_matrix3_a705a22877d9f0a33724887e577486b41}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Matrix3@{Matrix3}}
\index{Matrix3@{Matrix3}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Matrix3()}{Matrix3()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily Ogre\+::\+Matrix3\+::\+Matrix3 (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{arr\mbox{[}3\mbox{]}\mbox{[}3\mbox{]} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a3653fb657419f82d71f7ae06df0dd9f5}\label{class_ogre_1_1_matrix3_a3653fb657419f82d71f7ae06df0dd9f5}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Matrix3@{Matrix3}}
\index{Matrix3@{Matrix3}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Matrix3()}{Matrix3()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily Ogre\+::\+Matrix3\+::\+Matrix3 (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry00,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry01,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry02,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry10,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry11,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry12,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry20,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry21,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Entry22 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_matrix3_a8043454ea50049c6849d60ead7dbd7a7}\label{class_ogre_1_1_matrix3_a8043454ea50049c6849d60ead7dbd7a7}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}$\ast$ Ogre\+::\+Matrix3\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{i\+Row }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Member access, allows use of construct mat\mbox{[}r\mbox{]}\mbox{[}c\mbox{]}. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a05c722c341f21dd2ffc36fb1414e284b}\label{class_ogre_1_1_matrix3_a05c722c341f21dd2ffc36fb1414e284b}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator[]()}{operator[]()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}$\ast$ Ogre\+::\+Matrix3\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{i\+Row }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References Ogre\+::operator==().

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a06269d2ba63c85aea763595e44738f79}\label{class_ogre_1_1_matrix3_a06269d2ba63c85aea763595e44738f79}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Get\+Column@{Get\+Column}}
\index{Get\+Column@{Get\+Column}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Get\+Column()}{GetColumn()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_vector3}{Vector3} Ogre\+::\+Matrix3\+::\+Get\+Column (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{i\+Col }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ab5f04bc27bc68152b92123ac2d14afd5}\label{class_ogre_1_1_matrix3_ab5f04bc27bc68152b92123ac2d14afd5}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Set\+Column@{Set\+Column}}
\index{Set\+Column@{Set\+Column}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Set\+Column()}{SetColumn()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+Set\+Column (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{i\+Col,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{vec }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ad904362ff107e91ed2881a9802d11979}\label{class_ogre_1_1_matrix3_ad904362ff107e91ed2881a9802d11979}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Axes@{From\+Axes}}
\index{From\+Axes@{From\+Axes}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Axes()}{FromAxes()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Axes (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{x\+Axis,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{y\+Axis,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{z\+Axis }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a0589b1275b7822abd410b13477156d4d}\label{class_ogre_1_1_matrix3_a0589b1275b7822abd410b13477156d4d}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator==@{operator==}}
\index{operator==@{operator==}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::operator== (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption}) const}



Tests 2 matrices for equality. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a2142d22152cd57c522b6936fd523324f}\label{class_ogre_1_1_matrix3_a2142d22152cd57c522b6936fd523324f}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::operator!= (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Tests 2 matrices for inequality. 



References Ogre\+::operator$\ast$(), Ogre\+::operator+(), Ogre\+::operator-\/(), and Ogre\+::operator==().

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ae3ce939cbbd12eefa0e33933eb2a20cd}\label{class_ogre_1_1_matrix3_ae3ce939cbbd12eefa0e33933eb2a20cd}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator+@{operator+}}
\index{operator+@{operator+}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator+()}{operator+()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::operator+ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption}) const}



Matrix addition. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ae2e8712b996aab5c818418978b1796d2}\label{class_ogre_1_1_matrix3_ae2e8712b996aab5c818418978b1796d2}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::operator-\/ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption}) const}



Matrix subtraction. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_aa6e3e20bdf0a5ff536511c968ed5e3d5}\label{class_ogre_1_1_matrix3_aa6e3e20bdf0a5ff536511c968ed5e3d5}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption}) const}



Matrix concatenation using \textquotesingle{}$\ast$\textquotesingle{}. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_abaa901cecc2dce7aacd5dfcc6f5d4f78}\label{class_ogre_1_1_matrix3_abaa901cecc2dce7aacd5dfcc6f5d4f78}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::operator-\/ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a711f681fcd524fe130f651bc819adf0e}\label{class_ogre_1_1_matrix3_a711f681fcd524fe130f651bc819adf0e}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Scalar }\end{DoxyParamCaption}) const}



Matrix $\ast$ scalar. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_aec1cee52b2574f50b4e98ead1266308b}\label{class_ogre_1_1_matrix3_aec1cee52b2574f50b4e98ead1266308b}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Transpose@{Transpose}}
\index{Transpose@{Transpose}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Transpose()}{Transpose()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::\+Transpose (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a7b0263cfd61328e44e787b3b8993cc50}\label{class_ogre_1_1_matrix3_a7b0263cfd61328e44e787b3b8993cc50}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Inverse@{Inverse}}
\index{Inverse@{Inverse}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Inverse()}{Inverse()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+Inverse (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Inverse,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Tolerance = {\ttfamily 1e-\/06} }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_aca904f75f2f148933ea4dcbd26fcc2c9}\label{class_ogre_1_1_matrix3_aca904f75f2f148933ea4dcbd26fcc2c9}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Inverse@{Inverse}}
\index{Inverse@{Inverse}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Inverse()}{Inverse()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::\+Inverse (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Tolerance = {\ttfamily 1e-\/06} }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a14cdac95b9c0c688bbeacdf63128fa90}\label{class_ogre_1_1_matrix3_a14cdac95b9c0c688bbeacdf63128fa90}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Determinant@{Determinant}}
\index{Determinant@{Determinant}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Determinant()}{Determinant()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Matrix3\+::\+Determinant (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ad340a987162fcf0cb9f4be9ce90996c1}\label{class_ogre_1_1_matrix3_ad340a987162fcf0cb9f4be9ce90996c1}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!transpose@{transpose}}
\index{transpose@{transpose}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{transpose()}{transpose()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::transpose (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ad0d1a7e8a8b84df6dfd4ea1eba09b9e2}\label{class_ogre_1_1_matrix3_ad0d1a7e8a8b84df6dfd4ea1eba09b9e2}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!inverse@{inverse}}
\index{inverse@{inverse}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{inverse()}{inverse()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::inverse (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a1c30dfe97a436d47c83f5c9bf603a5bb}\label{class_ogre_1_1_matrix3_a1c30dfe97a436d47c83f5c9bf603a5bb}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!determinant@{determinant}}
\index{determinant@{determinant}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{determinant()}{determinant()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Matrix3\+::determinant (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ae707b42e202609b8aa86fe461ba0f1c2}\label{class_ogre_1_1_matrix3_ae707b42e202609b8aa86fe461ba0f1c2}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!has\+Negative\+Scale@{has\+Negative\+Scale}}
\index{has\+Negative\+Scale@{has\+Negative\+Scale}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{has\+Negative\+Scale()}{hasNegativeScale()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::has\+Negative\+Scale (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Determines if this matrix involves a negative scaling. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a9c4cbf94ffb5400519b60dd4620b595a}\label{class_ogre_1_1_matrix3_a9c4cbf94ffb5400519b60dd4620b595a}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Singular\+Value\+Decomposition@{Singular\+Value\+Decomposition}}
\index{Singular\+Value\+Decomposition@{Singular\+Value\+Decomposition}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Singular\+Value\+Decomposition()}{SingularValueDecomposition()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+Singular\+Value\+Decomposition (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rkL,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rkS,  }\item[{\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rkR }\end{DoxyParamCaption}) const}



Singular value decomposition. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a1efb2981c1a759e607e1431321d95524}\label{class_ogre_1_1_matrix3_a1efb2981c1a759e607e1431321d95524}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Singular\+Value\+Composition@{Singular\+Value\+Composition}}
\index{Singular\+Value\+Composition@{Singular\+Value\+Composition}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Singular\+Value\+Composition()}{SingularValueComposition()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+Singular\+Value\+Composition (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rkL,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rkS,  }\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rkR }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_add64f270c75286c4cafa3b242778573f}\label{class_ogre_1_1_matrix3_add64f270c75286c4cafa3b242778573f}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Orthonormalize@{Orthonormalize}}
\index{Orthonormalize@{Orthonormalize}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Orthonormalize()}{Orthonormalize()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+Orthonormalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Gram-\/\+Schmidt orthonormalization (applied to columns of rotation matrix) 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a67d582443cb581c5deda833897452701}\label{class_ogre_1_1_matrix3_a67d582443cb581c5deda833897452701}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Q\+D\+U\+Decomposition@{Q\+D\+U\+Decomposition}}
\index{Q\+D\+U\+Decomposition@{Q\+D\+U\+Decomposition}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Q\+D\+U\+Decomposition()}{QDUDecomposition()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+Q\+D\+U\+Decomposition (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rkQ,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rkD,  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rkU }\end{DoxyParamCaption}) const}



Orthogonal Q, diagonal D, upper triangular U stored as (u01,u02,u12) 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_adca9be180377c51c05a608df576a8e86}\label{class_ogre_1_1_matrix3_adca9be180377c51c05a608df576a8e86}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Spectral\+Norm@{Spectral\+Norm}}
\index{Spectral\+Norm@{Spectral\+Norm}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Spectral\+Norm()}{SpectralNorm()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Matrix3\+::\+Spectral\+Norm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a383f39c81d80a866ca76594be498a251}\label{class_ogre_1_1_matrix3_a383f39c81d80a866ca76594be498a251}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Angle\+Axis@{To\+Angle\+Axis}}
\index{To\+Angle\+Axis@{To\+Angle\+Axis}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Angle\+Axis()}{ToAngleAxis()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+To\+Angle\+Axis (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rk\+Axis,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Angle }\end{DoxyParamCaption}) const}



Note\+: Matrix must be orthonormal. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a392575c590b0d95a1422d1a8fb23260d}\label{class_ogre_1_1_matrix3_a392575c590b0d95a1422d1a8fb23260d}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Angle\+Axis@{To\+Angle\+Axis}}
\index{To\+Angle\+Axis@{To\+Angle\+Axis}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Angle\+Axis()}{ToAngleAxis()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+To\+Angle\+Axis (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rk\+Axis,  }\item[{\hyperlink{class_ogre_1_1_degree}{Degree} \&}]{rf\+Angle }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ab96e7684e128659752ec94031357e6ff}\label{class_ogre_1_1_matrix3_ab96e7684e128659752ec94031357e6ff}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Angle\+Axis@{From\+Angle\+Axis}}
\index{From\+Angle\+Axis@{From\+Angle\+Axis}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Angle\+Axis()}{FromAngleAxis()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Angle\+Axis (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rk\+Axis,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Radians }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_abd75bf95ae6a7c4294ea710769a77a32}\label{class_ogre_1_1_matrix3_abd75bf95ae6a7c4294ea710769a77a32}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Euler\+Angles\+X\+YZ@{To\+Euler\+Angles\+X\+YZ}}
\index{To\+Euler\+Angles\+X\+YZ@{To\+Euler\+Angles\+X\+YZ}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Euler\+Angles\+X\+Y\+Z()}{ToEulerAnglesXYZ()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+To\+Euler\+Angles\+X\+YZ (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Y\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+P\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+R\+Angle }\end{DoxyParamCaption}) const}



The matrix must be orthonormal. 

The decomposition is yaw$\ast$pitch$\ast$roll where yaw is rotation about the Up vector, pitch is rotation about the Right axis, and roll is rotation about the Direction axis. \mbox{\Hypertarget{class_ogre_1_1_matrix3_a157ff70e8bd3a611389182497988e3f2}\label{class_ogre_1_1_matrix3_a157ff70e8bd3a611389182497988e3f2}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Euler\+Angles\+X\+ZY@{To\+Euler\+Angles\+X\+ZY}}
\index{To\+Euler\+Angles\+X\+ZY@{To\+Euler\+Angles\+X\+ZY}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Euler\+Angles\+X\+Z\+Y()}{ToEulerAnglesXZY()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+To\+Euler\+Angles\+X\+ZY (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Y\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+P\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+R\+Angle }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a799bda89a5b5e774aaeb6ba5197e61ba}\label{class_ogre_1_1_matrix3_a799bda89a5b5e774aaeb6ba5197e61ba}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Euler\+Angles\+Y\+XZ@{To\+Euler\+Angles\+Y\+XZ}}
\index{To\+Euler\+Angles\+Y\+XZ@{To\+Euler\+Angles\+Y\+XZ}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Euler\+Angles\+Y\+X\+Z()}{ToEulerAnglesYXZ()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+To\+Euler\+Angles\+Y\+XZ (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Y\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+P\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+R\+Angle }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a458ebd34fea7df1eb987fee96b5ca2df}\label{class_ogre_1_1_matrix3_a458ebd34fea7df1eb987fee96b5ca2df}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Euler\+Angles\+Y\+ZX@{To\+Euler\+Angles\+Y\+ZX}}
\index{To\+Euler\+Angles\+Y\+ZX@{To\+Euler\+Angles\+Y\+ZX}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Euler\+Angles\+Y\+Z\+X()}{ToEulerAnglesYZX()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+To\+Euler\+Angles\+Y\+ZX (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Y\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+P\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+R\+Angle }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ab76be51256dd3773aaaeba380f7969a8}\label{class_ogre_1_1_matrix3_ab76be51256dd3773aaaeba380f7969a8}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Euler\+Angles\+Z\+XY@{To\+Euler\+Angles\+Z\+XY}}
\index{To\+Euler\+Angles\+Z\+XY@{To\+Euler\+Angles\+Z\+XY}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Euler\+Angles\+Z\+X\+Y()}{ToEulerAnglesZXY()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+To\+Euler\+Angles\+Z\+XY (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Y\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+P\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+R\+Angle }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ab1a1b9969db6acbb91178e9c25cfd28d}\label{class_ogre_1_1_matrix3_ab1a1b9969db6acbb91178e9c25cfd28d}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!To\+Euler\+Angles\+Z\+YX@{To\+Euler\+Angles\+Z\+YX}}
\index{To\+Euler\+Angles\+Z\+YX@{To\+Euler\+Angles\+Z\+YX}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{To\+Euler\+Angles\+Z\+Y\+X()}{ToEulerAnglesZYX()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::\+To\+Euler\+Angles\+Z\+YX (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+Y\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+P\+Angle,  }\item[{\hyperlink{class_ogre_1_1_radian}{Radian} \&}]{rf\+R\+Angle }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a3f5abdecf648a54b164df112c7037ed7}\label{class_ogre_1_1_matrix3_a3f5abdecf648a54b164df112c7037ed7}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Euler\+Angles\+X\+YZ@{From\+Euler\+Angles\+X\+YZ}}
\index{From\+Euler\+Angles\+X\+YZ@{From\+Euler\+Angles\+X\+YZ}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Euler\+Angles\+X\+Y\+Z()}{FromEulerAnglesXYZ()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Euler\+Angles\+X\+YZ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Y\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+P\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+R\+Angle }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a209f31aa2e25d9b3d55d64d2d8304382}\label{class_ogre_1_1_matrix3_a209f31aa2e25d9b3d55d64d2d8304382}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Euler\+Angles\+X\+ZY@{From\+Euler\+Angles\+X\+ZY}}
\index{From\+Euler\+Angles\+X\+ZY@{From\+Euler\+Angles\+X\+ZY}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Euler\+Angles\+X\+Z\+Y()}{FromEulerAnglesXZY()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Euler\+Angles\+X\+ZY (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Y\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+P\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+R\+Angle }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a2e0ccd0f22689072aa4a64c7a441f694}\label{class_ogre_1_1_matrix3_a2e0ccd0f22689072aa4a64c7a441f694}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Euler\+Angles\+Y\+XZ@{From\+Euler\+Angles\+Y\+XZ}}
\index{From\+Euler\+Angles\+Y\+XZ@{From\+Euler\+Angles\+Y\+XZ}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Euler\+Angles\+Y\+X\+Z()}{FromEulerAnglesYXZ()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Euler\+Angles\+Y\+XZ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Y\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+P\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+R\+Angle }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a94b0b7264cc1572fff22f491ac6cc664}\label{class_ogre_1_1_matrix3_a94b0b7264cc1572fff22f491ac6cc664}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Euler\+Angles\+Y\+ZX@{From\+Euler\+Angles\+Y\+ZX}}
\index{From\+Euler\+Angles\+Y\+ZX@{From\+Euler\+Angles\+Y\+ZX}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Euler\+Angles\+Y\+Z\+X()}{FromEulerAnglesYZX()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Euler\+Angles\+Y\+ZX (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Y\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+P\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+R\+Angle }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_ac0148ffb86f185d7de044fd83e9647ce}\label{class_ogre_1_1_matrix3_ac0148ffb86f185d7de044fd83e9647ce}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Euler\+Angles\+Z\+XY@{From\+Euler\+Angles\+Z\+XY}}
\index{From\+Euler\+Angles\+Z\+XY@{From\+Euler\+Angles\+Z\+XY}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Euler\+Angles\+Z\+X\+Y()}{FromEulerAnglesZXY()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Euler\+Angles\+Z\+XY (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Y\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+P\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+R\+Angle }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a8308f99c3c13e067f016a45f26f15389}\label{class_ogre_1_1_matrix3_a8308f99c3c13e067f016a45f26f15389}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!From\+Euler\+Angles\+Z\+YX@{From\+Euler\+Angles\+Z\+YX}}
\index{From\+Euler\+Angles\+Z\+YX@{From\+Euler\+Angles\+Z\+YX}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{From\+Euler\+Angles\+Z\+Y\+X()}{FromEulerAnglesZYX()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+From\+Euler\+Angles\+Z\+YX (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+Y\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+P\+Angle,  }\item[{const \hyperlink{class_ogre_1_1_radian}{Radian} \&}]{f\+R\+Angle }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a7894ad662322338045ae796e418e9df2}\label{class_ogre_1_1_matrix3_a7894ad662322338045ae796e418e9df2}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Eigen\+Solve\+Symmetric@{Eigen\+Solve\+Symmetric}}
\index{Eigen\+Solve\+Symmetric@{Eigen\+Solve\+Symmetric}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Eigen\+Solve\+Symmetric()}{EigenSolveSymmetric()}}
{\footnotesize\ttfamily void Ogre\+::\+Matrix3\+::\+Eigen\+Solve\+Symmetric (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{af\+Eigenvalue\mbox{[}3\mbox{]},  }\item[{\hyperlink{class_ogre_1_1_vector3}{Vector3}}]{ak\+Eigenvector\mbox{[}3\mbox{]} }\end{DoxyParamCaption}) const}



Eigensolver, matrix must be symmetric. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_af1d217c48e8894227fa2cf2a7952cccc}\label{class_ogre_1_1_matrix3_af1d217c48e8894227fa2cf2a7952cccc}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Tensor\+Product@{Tensor\+Product}}
\index{Tensor\+Product@{Tensor\+Product}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Tensor\+Product()}{TensorProduct()}}
{\footnotesize\ttfamily static void Ogre\+::\+Matrix3\+::\+Tensor\+Product (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rkU,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rkV,  }\item[{\hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Product }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_adfc89d0edf39f55d9c8e30a8287efcb7}\label{class_ogre_1_1_matrix3_adfc89d0edf39f55d9c8e30a8287efcb7}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!has\+Scale@{has\+Scale}}
\index{has\+Scale@{has\+Scale}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{has\+Scale()}{hasScale()}}
{\footnotesize\ttfamily bool Ogre\+::\+Matrix3\+::has\+Scale (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Determines if this matrix involves a scaling. 



References Ogre\+::\+Math\+::\+Real\+Equal().



\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_matrix3_aed2829d86d2df8f9333d4c0087455880}\label{class_ogre_1_1_matrix3_aed2829d86d2df8f9333d4c0087455880}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Matrix4@{Matrix4}}
\index{Matrix4@{Matrix4}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Matrix4}{Matrix4}}
{\footnotesize\ttfamily friend class \hyperlink{class_ogre_1_1_matrix4}{Matrix4}\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a9bc849d4891efcbb40253e790d8f5837}\label{class_ogre_1_1_matrix3_a9bc849d4891efcbb40253e790d8f5837}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator$\ast$}{operator*}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \+\_\+\+Ogre\+Export friend \hyperlink{class_ogre_1_1_vector3}{Vector3} operator$\ast$ (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{rk\+Vector,  }\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}



Vector $\ast$ matrix \mbox{[}1x3 $\ast$ 3x3 = 1x3\mbox{]}. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a475a485a770084ade97b8fd310b60011}\label{class_ogre_1_1_matrix3_a475a485a770084ade97b8fd310b60011}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator$\ast$@{operator$\ast$}}
\index{operator$\ast$@{operator$\ast$}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator$\ast$}{operator*}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \+\_\+\+Ogre\+Export friend \hyperlink{class_ogre_1_1_matrix3}{Matrix3} operator$\ast$ (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{f\+Scalar,  }\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{rk\+Matrix }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}



Scalar $\ast$ matrix. 

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a82d787d8c98830db8a518a140e7ebbda}\label{class_ogre_1_1_matrix3_a82d787d8c98830db8a518a140e7ebbda}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
{\footnotesize\ttfamily std\+::ostream\& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{o,  }\item[{const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} \&}]{mat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}



Function for writing to a stream. 



\subsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_matrix3_a5bf17bf2239af2516e359dc6de22bf3d}\label{class_ogre_1_1_matrix3_a5bf17bf2239af2516e359dc6de22bf3d}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!E\+P\+S\+I\+L\+ON@{E\+P\+S\+I\+L\+ON}}
\index{E\+P\+S\+I\+L\+ON@{E\+P\+S\+I\+L\+ON}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{E\+P\+S\+I\+L\+ON}{EPSILON}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Matrix3\+::\+E\+P\+S\+I\+L\+ON\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_a4561d62d4d2c088ce2a3b6c3ec3d09af}\label{class_ogre_1_1_matrix3_a4561d62d4d2c088ce2a3b6c3ec3d09af}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!Z\+E\+RO@{Z\+E\+RO}}
\index{Z\+E\+RO@{Z\+E\+RO}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{Z\+E\+RO}{ZERO}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::\+Z\+E\+RO\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{class_ogre_1_1_matrix3_adcb2945d4f9b8995236be5a27dcfe343}\label{class_ogre_1_1_matrix3_adcb2945d4f9b8995236be5a27dcfe343}} 
\index{Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}!I\+D\+E\+N\+T\+I\+TY@{I\+D\+E\+N\+T\+I\+TY}}
\index{I\+D\+E\+N\+T\+I\+TY@{I\+D\+E\+N\+T\+I\+TY}!Ogre\+::\+Matrix3@{Ogre\+::\+Matrix3}}
\subsubsection{\texorpdfstring{I\+D\+E\+N\+T\+I\+TY}{IDENTITY}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_matrix3}{Matrix3} Ogre\+::\+Matrix3\+::\+I\+D\+E\+N\+T\+I\+TY\hspace{0.3cm}{\ttfamily [static]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_matrix3_8h}{Ogre\+Matrix3.\+h}\end{DoxyCompactItemize}
