Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > contrib-release > by-pkgid > 58828b263d8f56d90ac336dea07a4586 > files > 341

irrlicht-doc-1.6.1-1mdv2010.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Irrlicht Engine: irr::core::CMatrix4&lt; T &gt; Class Template Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table class="irrlicht" >
  <tr valign="middle"> 
    <td><font size="2"><a class="qindex" href="index.html"><font color="#FFFFFF">Home</font></a> 
      | <a class="qindex" href="namespaces.html"><font color="#FFFFFF">Namespaces</font></a> 
      | <a class="qindex" href="hierarchy.html"><font color="#FFFFFF">Hierarchy</font></a> 
      | <a class="qindex" href="classes.html"><font color="#FFFFFF">Alphabetical 
      List</font></a> | <a class="qindex" href="annotated.html"><font color="#FFFFFF"> 
      Class list</font></a> | <a class="qindex" href="files.html"><font color="#FFFFFF">Files</font></a> 
      | <a class="qindex" href="namespacemembers.html"><font color="#FFFFFF"> 
      Namespace&nbsp;Members</font></a> | <a class="qindex" href="functions.html"><font color="#FFFFFF">Class 
      members</font></a> | <a class="qindex" href="globals.html"><font color="#FFFFFF">File 
      members</font></a> | <a class="qindex" href="pages.html"><font color="#FFFFFF">Tutorials</font></a></font> </td>
  </tr>
</table>
<!-- Generated by Doxygen 1.5.6 -->
  <div class="navpath"><a class="el" href="namespaceirr.html">irr</a>::<a class="el" href="namespaceirr_1_1core.html">core</a>::<a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>
  </div>
<div class="contents">
<h1>irr::core::CMatrix4&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="irr::core::CMatrix4" -->4x4 matrix. Mostly used as transformation matrix for 3d calculations.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="matrix4_8h-source.html">matrix4.h</a>&gt;</code>
<p>

<p>
<a href="classirr_1_1core_1_1_c_matrix4-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">eConstructor</a> { <br>
&nbsp;&nbsp;<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe3566901f796f109f56c30a682ec132b3">EM4CONST_NOTHING</a> =  0, 
<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4feb61ca9be4d8fcd46a77ea3a3f6112c28">EM4CONST_COPY</a>, 
<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4febe4fda38ad4e2e186bd0b12e776ad71f">EM4CONST_IDENTITY</a>, 
<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe6d05daa023ea476dea59533ce3d07d23">EM4CONST_TRANSPOSED</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe4d69cdac3d8daf867fcaa1ec889f2c09">EM4CONST_INVERSE</a>, 
<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fedff480a8b2060068f8c0971dcb8c9e6b">EM4CONST_INVERSE_TRANSPOSED</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor Flags.  <a href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#d2dc80f2aed15900839389cf52f9e798">buildAxisAlignedBillboard</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;camPos, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;center, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;translation, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;axis, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;from)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a matrix which rotates a source vector to a look vector over an arbitrary axis.  <a href="#d2dc80f2aed15900839389cf52f9e798"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#78e15297c806006898df58498755ecd4">buildCameraLookAtMatrixLH</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;position, const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;target, const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;upVector)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a left-handed look-at matrix.  <a href="#78e15297c806006898df58498755ecd4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#62ebd6002a5018c1096ac368f6be271a">buildCameraLookAtMatrixRH</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;position, const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;target, const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;upVector)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a right-handed look-at matrix.  <a href="#62ebd6002a5018c1096ac368f6be271a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#88a7d2f56d4ce637823379de308f673a">buildNDCToDCMatrix</a> (const <a class="el" href="classirr_1_1core_1_1rect.html">core::rect</a>&lt; <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a> &gt; &amp;area, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zScale)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a matrix which transforms a normalized Device Coordinate to Device Coordinates.  <a href="#88a7d2f56d4ce637823379de308f673a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#e4a0618e2da724a26a5d8a201a63d8a5">buildProjectionMatrixOrthoLH</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> widthOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> heightOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zNear, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zFar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a left-handed orthogonal projection matrix.  <a href="#e4a0618e2da724a26a5d8a201a63d8a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#e7a837a3b2d86bfc830d25c6144b7a46">buildProjectionMatrixOrthoRH</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> widthOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> heightOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zNear, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zFar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a right-handed orthogonal projection matrix.  <a href="#e7a837a3b2d86bfc830d25c6144b7a46"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#1895b967a8f8c9d7ad90fe5434f2499f">buildProjectionMatrixPerspectiveFovLH</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> fieldOfViewRadians, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> aspectRatio, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zNear, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zFar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a left-handed perspective projection matrix based on a field of view.  <a href="#1895b967a8f8c9d7ad90fe5434f2499f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#5bea6c6f5479720841cea61651e35879">buildProjectionMatrixPerspectiveFovRH</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> fieldOfViewRadians, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> aspectRatio, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zNear, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zFar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a right-handed perspective projection matrix based on a field of view.  <a href="#5bea6c6f5479720841cea61651e35879"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8306f02451b06f8e6710f23631654086">buildProjectionMatrixPerspectiveLH</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> widthOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> heightOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zNear, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zFar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a left-handed perspective projection matrix.  <a href="#8306f02451b06f8e6710f23631654086"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#649a29922f622503399bcb16c97b78b4">buildProjectionMatrixPerspectiveRH</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> widthOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> heightOfViewVolume, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zNear, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> zFar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a right-handed perspective projection matrix.  <a href="#649a29922f622503399bcb16c97b78b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#4802c6a89ad813e2919f68f512fb320f">buildRotateFromTo</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;from, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;to)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a matrix that rotates from one vector to another.  <a href="#4802c6a89ad813e2919f68f512fb320f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#583d0ece1d80f69101660e1cbe441768">buildShadowMatrix</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;light, <a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3df</a> plane, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> point=1.0f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a matrix that flattens geometry into a plane.  <a href="#583d0ece1d80f69101660e1cbe441768"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#fc72faaf2c883d9c0fdc1e0940d1acde">buildTextureTransform</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> rotateRad, const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;rotatecenter, const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;translate, const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;scale)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set to a texture transformation matrix with the given parameters.  <a href="#fc72faaf2c883d9c0fdc1e0940d1acde"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#cdb7afc2248d97a7e882cd1bdeed07b7">CMatrix4</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other, <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">eConstructor</a> constructor=EM4CONST_COPY)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#cdb7afc2248d97a7e882cd1bdeed07b7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#f771bfde63cdaa3baa4d9f6121e56411">CMatrix4</a> (<a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">eConstructor</a> constructor=EM4CONST_IDENTITY)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor.  <a href="#f771bfde63cdaa3baa4d9f6121e56411"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#b91cb550bdacbc7b79a47d5b4ee5f4fa">getDefinitelyIdentityMatrix</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets if the matrix is definitely identity matrix.  <a href="#b91cb550bdacbc7b79a47d5b4ee5f4fa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#33c110cd75fdddb840a990ab52f10900">getInverse</a> (<a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;out) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the inversed matrix of this one.  <a href="#33c110cd75fdddb840a990ab52f10900"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#f8c024c494998296fc7ed63603d7cb62">getInversePrimitive</a> (<a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;out) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inverts a primitive matrix which only contains a translation and a rotation.  <a href="#f8c024c494998296fc7ed63603d7cb62"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3d</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#a348817a724b49816da5c181ba672e1d">getRotationDegrees</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the rotation, as set by setRotation().  <a href="#a348817a724b49816da5c181ba672e1d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3d</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#a29f46680cea92b6d38886d1e9759cdd">getScale</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Scale.  <a href="#a29f46680cea92b6d38886d1e9759cdd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#ec84b278e87611352b75298238e54006">getTranslation</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the current translation.  <a href="#ec84b278e87611352b75298238e54006"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#bc4f641ad798591424020e38efe21636">getTransposed</a> (<a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;dest) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets transposed matrix.  <a href="#bc4f641ad798591424020e38efe21636"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#83e8a629180ab12262d2e2cf52c7991b">getTransposed</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets transposed matrix.  <a href="#83e8a629180ab12262d2e2cf52c7991b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#0c9ed4a87ab8a1340e075490cd9de309">interpolate</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::CMatrix4</a>&lt; T &gt; &amp;b, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> time) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new matrix as interpolated matrix from two other ones.  <a href="#0c9ed4a87ab8a1340e075490cd9de309"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7996bee0d3056d6647dc9cc840ed0ad8">inverseRotateVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;vect) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate a vector by the inverse of the rotation part of this matrix.  <a href="#7996bee0d3056d6647dc9cc840ed0ad8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#83bf069639e0538f047041ae51042907">inverseTranslateVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;vect) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a vector by the inverse of the translation part of this matrix.  <a href="#83bf069639e0538f047041ae51042907"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#24e7bc5d302f6c0cb11bad0771a40826">isIdentity</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the matrix is the identity matrix.  <a href="#24e7bc5d302f6c0cb11bad0771a40826"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#b4b515a697bb3749a8e1dd9fc31342bd">isIdentity_integer_base</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the matrix is the identity matrix.  <a href="#b4b515a697bb3749a8e1dd9fc31342bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#fc4fe0bdfb771b15eff91264c0ed37f9">isOrthogonal</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the matrix is orthogonal.  <a href="#fc4fe0bdfb771b15eff91264c0ed37f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#45f876ed1aed2c3c98b87fee6d938604">makeIdentity</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set matrix to identity.  <a href="#45f876ed1aed2c3c98b87fee6d938604"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#3fbface2cb6b959af64f82a5bb17540e">makeInverse</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates inverse of matrix. Slow.  <a href="#3fbface2cb6b959af64f82a5bb17540e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#1e1f04cdf57dc76be2875427498a0d62">multiplyWith1x4Matrix</a> (T *matrix) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiplies this matrix by a 1x4 matrix.  <a href="#1e1f04cdf57dc76be2875427498a0d62"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#99b4c127f31033b5f7314b98164b99ed">operator!=</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if other matrix is not equal to this matrix.  <a href="#99b4c127f31033b5f7314b98164b99ed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#370e3a1ed88e95011125d09943b50e3b">operator()</a> (const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a> row, const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a> col) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple operator for directly accessing every element of the matrix.  <a href="#370e3a1ed88e95011125d09943b50e3b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#aede6824ed3ee05b928815d52e1834d1">operator()</a> (const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a> row, const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a> col)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple operator for directly accessing every element of the matrix.  <a href="#aede6824ed3ee05b928815d52e1834d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#2695d5d90aa8cf55e06649fc83752466">operator*</a> (const T &amp;scalar) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply by scalar.  <a href="#2695d5d90aa8cf55e06649fc83752466"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#4173ab9beecf99940ba2eb01081f1613">operator*</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply by another matrix.  <a href="#4173ab9beecf99940ba2eb01081f1613"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#e78879a3d7f0113ba5208d5476c3af9c">operator*=</a> (const T &amp;scalar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply by scalar.  <a href="#e78879a3d7f0113ba5208d5476c3af9c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c3d29f86c91d9d095ab155ecb8870f87">operator*=</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply by another matrix.  <a href="#c3d29f86c91d9d095ab155ecb8870f87"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c2192a7d9dd89dcd23fe2f9ded3252bf">operator+</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add another matrix.  <a href="#c2192a7d9dd89dcd23fe2f9ded3252bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#f91c5be0562ce4be3f8feedd3d017ba1">operator+=</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add another matrix.  <a href="#f91c5be0562ce4be3f8feedd3d017ba1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#ee45563e7f9fdf3d4ef7f5a9d63d87c0">operator-</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Subtract another matrix.  <a href="#ee45563e7f9fdf3d4ef7f5a9d63d87c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#24eb7faa1418765ba87d3f02f27d643f">operator-=</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Subtract another matrix.  <a href="#24eb7faa1418765ba87d3f02f27d643f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#a77c0ec30f4e42f7281392440898e9e3">operator=</a> (const T &amp;scalar)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets all elements of this matrix to the value.  <a href="#a77c0ec30f4e42f7281392440898e9e3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#47571eb3acae9a6aa330a03edcea7896">operator=</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets this matrix equal to the other matrix.  <a href="#47571eb3acae9a6aa330a03edcea7896"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#81029252a2a83ef4647f5d8a02cf62b5">operator==</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if other matrix is equal to this matrix.  <a href="#81029252a2a83ef4647f5d8a02cf62b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#1c7a81521e81280c31b8ae3397d1fffe">operator[]</a> (<a class="el" href="namespaceirr.html#0416a53257075833e7002efd0a18e804">u32</a> index) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple operator for linearly accessing every element of the matrix.  <a href="#1c7a81521e81280c31b8ae3397d1fffe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">T &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#ead4909f8bb2ab40875af175caf0085f">operator[]</a> (<a class="el" href="namespaceirr.html#0416a53257075833e7002efd0a18e804">u32</a> index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple operator for linearly accessing every element of the matrix.  <a href="#ead4909f8bb2ab40875af175caf0085f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#2d9b231425d1b8abddb9e1e997fbf2ea">pointer</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const T *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#11a3ffa3eb0987030e7a8758dee8965a">pointer</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns pointer to internal <a class="el" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">array</a>.  <a href="#11a3ffa3eb0987030e7a8758dee8965a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#a188488f489118e4daafd3b2ebab5119">rotateVect</a> (T *out, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;in) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An alternate transform vector method, writing into an <a class="el" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">array</a> of 3 floats.  <a href="#a188488f489118e4daafd3b2ebab5119"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#592d57581118b651a24dc68b17b99ff6">rotateVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;out, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;in) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An alternate transform vector method, writing into a second vector.  <a href="#592d57581118b651a24dc68b17b99ff6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8abcfbf972b19946c3022db380c6d153">rotateVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;vect) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate a vector by the rotation part of this matrix.  <a href="#8abcfbf972b19946c3022db380c6d153"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8503c58913ba9407ba00b173d8a3e25c">setbyproduct</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other_a, const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other_b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set this matrix to the product of two matrices  <a href="#8503c58913ba9407ba00b173d8a3e25c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#526a2a11dcd8b18c9e77deb84094778d">setbyproduct_nocheck</a> (const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other_a, const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;other_b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set this matrix to the product of two matrices.  <a href="#526a2a11dcd8b18c9e77deb84094778d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#87f7195337a2bf7a49978c2ec1100c0a">setDefinitelyIdentityMatrix</a> (bool isDefinitelyIdentityMatrix)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets if the matrix is definitely identity matrix.  <a href="#87f7195337a2bf7a49978c2ec1100c0a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#fd84b9c93b4c8e9dc2abefa4a28057f9">setInverseRotationDegrees</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;rotation)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make an inverted rotation matrix from Euler angles.  <a href="#fd84b9c93b4c8e9dc2abefa4a28057f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#1a15d7b55769678512144f0fb7e15a92">setInverseRotationRadians</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;rotation)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make an inverted rotation matrix from Euler angles.  <a href="#1a15d7b55769678512144f0fb7e15a92"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#258e103fcb6ce1564978624280ecb7fe">setInverseTranslation</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;translation)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the inverse translation of the current matrix. Will erase any previous values.  <a href="#258e103fcb6ce1564978624280ecb7fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#e59fb2248865eba3026d13b9756ba1e1">setM</a> (const T *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets all matrix data members at once.  <a href="#e59fb2248865eba3026d13b9756ba1e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8117628146ce654b3b292af7c49e25e2">setRotationCenter</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;center, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;translate)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a combined matrix which translates to a center before rotation and translates from origin afterwards.  <a href="#8117628146ce654b3b292af7c49e25e2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8ee5ef8619d4b0f56d72ac84495ed644">setRotationDegrees</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;rotation)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a rotation matrix from Euler angles. The 4th row and column are unmodified.  <a href="#8ee5ef8619d4b0f56d72ac84495ed644"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#05aac7bd2e7651369fc813a51258afbe">setRotationRadians</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;rotation)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a rotation matrix from Euler angles. The 4th row and column are unmodified.  <a href="#05aac7bd2e7651369fc813a51258afbe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#18af980e2bc3575f60576b6d4b4cc0f3">setScale</a> (const T scale)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Scale.  <a href="#18af980e2bc3575f60576b6d4b4cc0f3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#47117d44419af87e70084c01ab852049">setScale</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;scale)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Scale.  <a href="#47117d44419af87e70084c01ab852049"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#445a7653292ae4ffb0baa50032a8674e">setTextureRotationCenter</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> radAngle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set texture transformation rotation.  <a href="#445a7653292ae4ffb0baa50032a8674e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#ed32a7a8da9c4cee5babe8f6b4aa7dd4">setTextureScale</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> sx, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> sy)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set texture transformation scale.  <a href="#ed32a7a8da9c4cee5babe8f6b4aa7dd4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#dbd668867d117dc9331e68abef0af221">setTextureScaleCenter</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> sx, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> sy)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set texture transformation scale, and recenter at (0.5,0.5).  <a href="#dbd668867d117dc9331e68abef0af221"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#2bab9633697a892f08d89c7aeee6daf6">setTextureTranslate</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> x, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> y)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set texture transformation translation.  <a href="#2bab9633697a892f08d89c7aeee6daf6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7d999210cc7427e9d744271e50d26c3c">setTextureTranslateTransposed</a> (<a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> x, <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> y)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set texture transformation translation, using a transposed representation.  <a href="#7d999210cc7427e9d744271e50d26c3c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c04a3b341cbfbb7986be682691655622">setTranslation</a> (const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;translation)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the translation of the current matrix. Will erase any previous values.  <a href="#c04a3b341cbfbb7986be682691655622"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c12468d698fbf6cd545e8b3fbf2a0042">transformBox</a> (<a class="el" href="classirr_1_1core_1_1aabbox3d.html">core::aabbox3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;box) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms a axis aligned bounding box.  <a href="#c12468d698fbf6cd545e8b3fbf2a0042"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#87451aea9c07b71d1a8b6091b8cefa63">transformBoxEx</a> (<a class="el" href="classirr_1_1core_1_1aabbox3d.html">core::aabbox3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;box) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms a axis aligned bounding box.  <a href="#87451aea9c07b71d1a8b6091b8cefa63"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#949042276c2025189cc568c8080d7579">transformPlane</a> (const <a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;in, <a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;out) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms a plane by this matrix.  <a href="#949042276c2025189cc568c8080d7579"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c4f0d4156d573d8b73eb51dce76e094e">transformPlane</a> (<a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;plane) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms a plane by this matrix.  <a href="#c4f0d4156d573d8b73eb51dce76e094e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#ad3d6e0c59e2d5709a534abc2b86dbd3">transformVect</a> (T *out, const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;in) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An alternate transform vector method, writing into an <a class="el" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">array</a> of 4 floats.  <a href="#ad3d6e0c59e2d5709a534abc2b86dbd3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7f630ed6811ab36921c2fe6f63f7f426">transformVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;out, const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;in) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms input vector by this matrix and stores result in output vector.  <a href="#7f630ed6811ab36921c2fe6f63f7f426"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#a6bb8b39114749d70e51bd1b90bce0a1">transformVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;vect) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms the vector by this matrix.  <a href="#a6bb8b39114749d70e51bd1b90bce0a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#587cb77fd7de7a13771c96a90c4f3de0">translateVect</a> (<a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;vect) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate a vector by the translation part of this matrix.  <a href="#587cb77fd7de7a13771c96a90c4f3de0"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class T&gt;<br>
 class irr::core::CMatrix4&lt; T &gt;</h3>

4x4 matrix. Mostly used as transformation matrix for 3d calculations. 
<p>
The matrix is a D3D style matrix, row major with translations in the 4th row. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00046">46</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="7bb79712227617f706ed57a34f3eb4fe"></a><!-- doxytag: member="irr::core::CMatrix4::eConstructor" ref="7bb79712227617f706ed57a34f3eb4fe" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">irr::core::CMatrix4::eConstructor</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor Flags. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="7bb79712227617f706ed57a34f3eb4fe3566901f796f109f56c30a682ec132b3"></a><!-- doxytag: member="EM4CONST_NOTHING" ref="7bb79712227617f706ed57a34f3eb4fe3566901f796f109f56c30a682ec132b3" args="" -->EM4CONST_NOTHING</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="7bb79712227617f706ed57a34f3eb4feb61ca9be4d8fcd46a77ea3a3f6112c28"></a><!-- doxytag: member="EM4CONST_COPY" ref="7bb79712227617f706ed57a34f3eb4feb61ca9be4d8fcd46a77ea3a3f6112c28" args="" -->EM4CONST_COPY</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="7bb79712227617f706ed57a34f3eb4febe4fda38ad4e2e186bd0b12e776ad71f"></a><!-- doxytag: member="EM4CONST_IDENTITY" ref="7bb79712227617f706ed57a34f3eb4febe4fda38ad4e2e186bd0b12e776ad71f" args="" -->EM4CONST_IDENTITY</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="7bb79712227617f706ed57a34f3eb4fe6d05daa023ea476dea59533ce3d07d23"></a><!-- doxytag: member="EM4CONST_TRANSPOSED" ref="7bb79712227617f706ed57a34f3eb4fe6d05daa023ea476dea59533ce3d07d23" args="" -->EM4CONST_TRANSPOSED</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="7bb79712227617f706ed57a34f3eb4fe4d69cdac3d8daf867fcaa1ec889f2c09"></a><!-- doxytag: member="EM4CONST_INVERSE" ref="7bb79712227617f706ed57a34f3eb4fe4d69cdac3d8daf867fcaa1ec889f2c09" args="" -->EM4CONST_INVERSE</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="7bb79712227617f706ed57a34f3eb4fedff480a8b2060068f8c0971dcb8c9e6b"></a><!-- doxytag: member="EM4CONST_INVERSE_TRANSPOSED" ref="7bb79712227617f706ed57a34f3eb4fedff480a8b2060068f8c0971dcb8c9e6b" args="" -->EM4CONST_INVERSE_TRANSPOSED</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00051">51</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="f771bfde63cdaa3baa4d9f6121e56411"></a><!-- doxytag: member="irr::core::CMatrix4::CMatrix4" ref="f771bfde63cdaa3baa4d9f6121e56411" args="(eConstructor constructor=EM4CONST_IDENTITY)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::<a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">eConstructor</a>&nbsp;</td>
          <td class="paramname"> <em>constructor</em> = <code>EM4CONST_IDENTITY</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default constructor. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>constructor</em>&nbsp;</td><td>Choose the initialization style </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00403">403</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="cdb7afc2248d97a7e882cd1bdeed07b7"></a><!-- doxytag: member="irr::core::CMatrix4::CMatrix4" ref="cdb7afc2248d97a7e882cd1bdeed07b7" args="(const CMatrix4&lt; T &gt; &amp;other, eConstructor constructor=EM4CONST_COPY)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::<a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html#7bb79712227617f706ed57a34f3eb4fe">eConstructor</a>&nbsp;</td>
          <td class="paramname"> <em>constructor</em> = <code>EM4CONST_COPY</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>other</em>&nbsp;</td><td>Other matrix to copy from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>constructor</em>&nbsp;</td><td>Choose the initialization style </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00426">426</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l01222">irr::core::CMatrix4&lt; T &gt;::getInverse()</a>, and <a class="el" href="matrix4_8h-source.html#l01753">irr::core::CMatrix4&lt; T &gt;::getTransposed()</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="d2dc80f2aed15900839389cf52f9e798"></a><!-- doxytag: member="irr::core::CMatrix4::buildAxisAlignedBillboard" ref="d2dc80f2aed15900839389cf52f9e798" args="(const core::vector3df &amp;camPos, const core::vector3df &amp;center, const core::vector3df &amp;translation, const core::vector3df &amp;axis, const core::vector3df &amp;from)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildAxisAlignedBillboard           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>camPos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>translation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>from</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a matrix which rotates a source vector to a look vector over an arbitrary axis. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>camPos,:</em>&nbsp;</td><td>viewer position in world coo </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>center,:</em>&nbsp;</td><td>object position in world-coo and rotation pivot </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>translation,:</em>&nbsp;</td><td>object final translation from center </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>axis,:</em>&nbsp;</td><td>axis to rotate about </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>from,:</em>&nbsp;</td><td>source vector to rotate from</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>camPos,:</em>&nbsp;</td><td>viewer position in world coo </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>center,:</em>&nbsp;</td><td>object position in world-coo and rotation pivot </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>translation,:</em>&nbsp;</td><td>object final translation from center </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>axis,:</em>&nbsp;</td><td>axis to rotate about </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>from,:</em>&nbsp;</td><td>source vector to rotate from </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01869">1869</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00120">irr::core::vector3d&lt; T &gt;::crossProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00098">irr::core::vector3d&lt; T &gt;::dotProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00141">irr::core::vector3d&lt; T &gt;::normalize()</a>, <a class="el" href="matrix4_8h-source.html#l01926">irr::core::CMatrix4&lt; T &gt;::setRotationCenter()</a>, <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="78e15297c806006898df58498755ecd4"></a><!-- doxytag: member="irr::core::CMatrix4::buildCameraLookAtMatrixLH" ref="78e15297c806006898df58498755ecd4" args="(const vector3df &amp;position, const vector3df &amp;target, const vector3df &amp;upVector)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildCameraLookAtMatrixLH           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>upVector</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a left-handed look-at matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01654">1654</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00120">irr::core::vector3d&lt; T &gt;::crossProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00098">irr::core::vector3d&lt; T &gt;::dotProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00141">irr::core::vector3d&lt; T &gt;::normalize()</a>, <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="62ebd6002a5018c1096ac368f6be271a"></a><!-- doxytag: member="irr::core::CMatrix4::buildCameraLookAtMatrixRH" ref="62ebd6002a5018c1096ac368f6be271a" args="(const vector3df &amp;position, const vector3df &amp;target, const vector3df &amp;upVector)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildCameraLookAtMatrixRH           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>upVector</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a right-handed look-at matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01695">1695</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00120">irr::core::vector3d&lt; T &gt;::crossProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00098">irr::core::vector3d&lt; T &gt;::dotProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00141">irr::core::vector3d&lt; T &gt;::normalize()</a>, <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="88a7d2f56d4ce637823379de308f673a"></a><!-- doxytag: member="irr::core::CMatrix4::buildNDCToDCMatrix" ref="88a7d2f56d4ce637823379de308f673a" args="(const core::rect&lt; s32 &gt; &amp;area, f32 zScale)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildNDCToDCMatrix           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1rect.html">core::rect</a>&lt; <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>area</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zScale</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a matrix which transforms a normalized Device Coordinate to Device Coordinates. 
<p>
Used to scale &lt;-1,-1&gt;&lt;1,1&gt; to viewport, for example from von &lt;-1,-1&gt; &lt;1,1&gt; to the viewport &lt;0,0&gt;&lt;0,640&gt; 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01792">1792</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="rect_8h-source.html#l00190">irr::core::rect&lt; T &gt;::getHeight()</a>, <a class="el" href="rect_8h-source.html#l00184">irr::core::rect&lt; T &gt;::getWidth()</a>, <a class="el" href="rect_8h-source.html#l00267">irr::core::rect&lt; T &gt;::LowerRightCorner</a>, <a class="el" href="matrix4_8h-source.html#l00919">irr::core::CMatrix4&lt; T &gt;::makeIdentity()</a>, <a class="el" href="matrix4_8h-source.html#l00761">irr::core::CMatrix4&lt; T &gt;::setScale()</a>, and <a class="el" href="rect_8h-source.html#l00265">irr::core::rect&lt; T &gt;::UpperLeftCorner</a>.</p>

</div>
</div><p>
<a class="anchor" name="e4a0618e2da724a26a5d8a201a63d8a5"></a><!-- doxytag: member="irr::core::CMatrix4::buildProjectionMatrixOrthoLH" ref="e4a0618e2da724a26a5d8a201a63d8a5" args="(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildProjectionMatrixOrthoLH           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>widthOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>heightOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zFar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a left-handed orthogonal projection matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01483">1483</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_types_8h-source.html#l00153">_IRR_DEBUG_BREAK_IF</a>.</p>

</div>
</div><p>
<a class="anchor" name="e7a837a3b2d86bfc830d25c6144b7a46"></a><!-- doxytag: member="irr::core::CMatrix4::buildProjectionMatrixOrthoRH" ref="e7a837a3b2d86bfc830d25c6144b7a46" args="(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildProjectionMatrixOrthoRH           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>widthOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>heightOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zFar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a right-handed orthogonal projection matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01518">1518</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_types_8h-source.html#l00153">_IRR_DEBUG_BREAK_IF</a>.</p>

</div>
</div><p>
<a class="anchor" name="1895b967a8f8c9d7ad90fe5434f2499f"></a><!-- doxytag: member="irr::core::CMatrix4::buildProjectionMatrixPerspectiveFovLH" ref="1895b967a8f8c9d7ad90fe5434f2499f" args="(f32 fieldOfViewRadians, f32 aspectRatio, f32 zNear, f32 zFar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildProjectionMatrixPerspectiveFovLH           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>fieldOfViewRadians</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>aspectRatio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zFar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a left-handed perspective projection matrix based on a field of view. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01446">1446</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_types_8h-source.html#l00153">_IRR_DEBUG_BREAK_IF</a>, and <a class="el" href="irr_math_8h-source.html#l00451">irr::core::reciprocal()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5bea6c6f5479720841cea61651e35879"></a><!-- doxytag: member="irr::core::CMatrix4::buildProjectionMatrixPerspectiveFovRH" ref="5bea6c6f5479720841cea61651e35879" args="(f32 fieldOfViewRadians, f32 aspectRatio, f32 zNear, f32 zFar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildProjectionMatrixPerspectiveFovRH           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>fieldOfViewRadians</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>aspectRatio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zFar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a right-handed perspective projection matrix based on a field of view. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01407">1407</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_types_8h-source.html#l00153">_IRR_DEBUG_BREAK_IF</a>, and <a class="el" href="irr_math_8h-source.html#l00451">irr::core::reciprocal()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8306f02451b06f8e6710f23631654086"></a><!-- doxytag: member="irr::core::CMatrix4::buildProjectionMatrixPerspectiveLH" ref="8306f02451b06f8e6710f23631654086" args="(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildProjectionMatrixPerspectiveLH           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>widthOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>heightOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zFar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a left-handed perspective projection matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01588">1588</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_types_8h-source.html#l00153">_IRR_DEBUG_BREAK_IF</a>.</p>

</div>
</div><p>
<a class="anchor" name="649a29922f622503399bcb16c97b78b4"></a><!-- doxytag: member="irr::core::CMatrix4::buildProjectionMatrixPerspectiveRH" ref="649a29922f622503399bcb16c97b78b4" args="(f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildProjectionMatrixPerspectiveRH           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>widthOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>heightOfViewVolume</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zNear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>zFar</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a right-handed perspective projection matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01553">1553</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_types_8h-source.html#l00153">_IRR_DEBUG_BREAK_IF</a>.</p>

</div>
</div><p>
<a class="anchor" name="4802c6a89ad813e2919f68f512fb320f"></a><!-- doxytag: member="irr::core::CMatrix4::buildRotateFromTo" ref="4802c6a89ad813e2919f68f512fb320f" args="(const core::vector3df &amp;from, const core::vector3df &amp;to)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildRotateFromTo           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a matrix that rotates from one vector to another. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>from,:</em>&nbsp;</td><td>vector to rotate from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to,:</em>&nbsp;</td><td>vector to rotate to</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>from,:</em>&nbsp;</td><td>vector to rotate from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>to,:</em>&nbsp;</td><td>vector to rotate to</td></tr>
  </table>
</dl>
<a href="http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToMatrix/index.htm">http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToMatrix/index.htm</a> 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01813">1813</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00120">irr::core::vector3d&lt; T &gt;::crossProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00098">irr::core::vector3d&lt; T &gt;::dotProduct()</a>, <a class="el" href="vector3d_8h-source.html#l00141">irr::core::vector3d&lt; T &gt;::normalize()</a>, <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="583d0ece1d80f69101660e1cbe441768"></a><!-- doxytag: member="irr::core::CMatrix4::buildShadowMatrix" ref="583d0ece1d80f69101660e1cbe441768" args="(const core::vector3df &amp;light, core::plane3df plane, f32 point=1.0f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildShadowMatrix           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>light</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3df</a>&nbsp;</td>
          <td class="paramname"> <em>plane</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>point</em> = <code>1.0f</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a matrix that flattens geometry into a plane. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>light,:</em>&nbsp;</td><td>light source </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plane,:</em>&nbsp;</td><td>plane into which the geometry if flattened into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>point,:</em>&nbsp;</td><td>value between 0 and 1, describing the light source. If this is 1, it is a point light, if it is 0, it is a directional light. </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01622">1622</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="plane3d_8h-source.html#l00226">irr::core::plane3d&lt; T &gt;::D</a>, <a class="el" href="plane3d_8h-source.html#l00223">irr::core::plane3d&lt; T &gt;::Normal</a>, <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="fc72faaf2c883d9c0fdc1e0940d1acde"></a><!-- doxytag: member="irr::core::CMatrix4::buildTextureTransform" ref="fc72faaf2c883d9c0fdc1e0940d1acde" args="(f32 rotateRad, const core::vector2df &amp;rotatecenter, const core::vector2df &amp;translate, const core::vector2df &amp;scale)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::buildTextureTransform           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>rotateRad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rotatecenter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>translate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector2d.html">core::vector2df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>scale</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set to a texture transformation matrix with the given parameters. 
<p>
Generate texture coordinates as linear functions so that: u = Ux*x + Uy*y + Uz*z + Uw v = Vx*x + Vy*y + Vz*z + Vw The matrix M for this case is: Ux Vx 0 0 Uy Vy 0 0 Uz Vz 0 0 Uw Vw 0 0 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01950">1950</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector2d_8h-source.html#l00291">irr::core::vector2d&lt; T &gt;::X</a>, and <a class="el" href="vector2d_8h-source.html#l00294">irr::core::vector2d&lt; T &gt;::Y</a>.</p>

</div>
</div><p>
<a class="anchor" name="b91cb550bdacbc7b79a47d5b4ee5f4fa"></a><!-- doxytag: member="irr::core::CMatrix4::getDefinitelyIdentityMatrix" ref="b91cb550bdacbc7b79a47d5b4ee5f4fa" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getDefinitelyIdentityMatrix           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets if the matrix is definitely identity matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02083">2083</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="33c110cd75fdddb840a990ab52f10900"></a><!-- doxytag: member="irr::core::CMatrix4::getInverse" ref="33c110cd75fdddb840a990ab52f10900" args="(CMatrix4&lt; T &gt; &amp;out) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getInverse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the inversed matrix of this one. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>out,:</em>&nbsp;</td><td>where result matrix is written to. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns false if there is no inverse matrix. </dd></dl>

<p>
Calculates the inverse of this Matrix The inverse is calculated using Cramers rule. If no inverse exists then 'false' is returned. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01222">1222</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00935">irr::core::CMatrix4&lt; T &gt;::isIdentity()</a>, <a class="el" href="irr_math_8h-source.html#l00202">irr::core::iszero()</a>, and <a class="el" href="irr_math_8h-source.html#l00484">irr::core::reciprocal()</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l00426">irr::core::CMatrix4&lt; T &gt;::CMatrix4()</a>, and <a class="el" href="matrix4_8h-source.html#l01339">irr::core::CMatrix4&lt; T &gt;::makeInverse()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f8c024c494998296fc7ed63603d7cb62"></a><!-- doxytag: member="irr::core::CMatrix4::getInversePrimitive" ref="f8c024c494998296fc7ed63603d7cb62" args="(CMatrix4&lt; T &gt; &amp;out) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getInversePrimitive           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Inverts a primitive matrix which only contains a translation and a rotation. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>out,:</em>&nbsp;</td><td>where result matrix is written to.</td></tr>
  </table>
</dl>
Inverts a primitive matrix which only contains a translation and a rotation <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>out,:</em>&nbsp;</td><td>where result matrix is written to. </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01308">1308</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00389">irr::core::CMatrix4&lt; T &gt;::M</a>.</p>

</div>
</div><p>
<a class="anchor" name="a348817a724b49816da5c181ba672e1d"></a><!-- doxytag: member="irr::core::CMatrix4::getRotationDegrees" ref="a348817a724b49816da5c181ba672e1d" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3d</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getRotationDegrees           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the rotation, as set by setRotation(). 
<p>
Returns a rotation that is equivalent to that set by <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8ee5ef8619d4b0f56d72ac84495ed644" title="Make a rotation matrix from Euler angles. The 4th row and column are unmodified.">setRotationDegrees()</a>.<p>
This code was orginally written by by Chev.<p>
This code was sent in by Chev. Note that it does not necessarily return the *same* Euler angles as those set by <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#8ee5ef8619d4b0f56d72ac84495ed644" title="Make a rotation matrix from Euler angles. The 4th row and column are unmodified.">setRotationDegrees()</a>, but the rotation will be equivalent, i.e. will have the same result when used to rotate a vector or node. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00846">846</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00076">irr::core::RADTODEG64</a>, and <a class="el" href="irr_math_8h-source.html#l00043">irr::core::ROUNDING_ERROR_f64</a>.</p>

</div>
</div><p>
<a class="anchor" name="a29f46680cea92b6d38886d1e9759cdd"></a><!-- doxytag: member="irr::core::CMatrix4::getScale" ref="a29f46680cea92b6d38886d1e9759cdd" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getScale           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get Scale. 
<p>
Returns the absolute values of the scales of the matrix.<p>
Note that this always returns the absolute (positive) values. Unfortunately it does not appear to be possible to extract any original negative values. The best that we could do would be to arbitrarily make one scale negative if one or three of them were negative. FIXME - return the original values. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00781">781</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00202">irr::core::iszero()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ec84b278e87611352b75298238e54006"></a><!-- doxytag: member="irr::core::CMatrix4::getTranslation" ref="ec84b278e87611352b75298238e54006" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getTranslation           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the current translation. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00730">730</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>Referenced by <a class="el" href="_i_scene_node_8h-source.html#l00507">irr::scene::ISceneNode::getAbsolutePosition()</a>.</p>

</div>
</div><p>
<a class="anchor" name="bc4f641ad798591424020e38efe21636"></a><!-- doxytag: member="irr::core::CMatrix4::getTransposed" ref="bc4f641ad798591424020e38efe21636" args="(CMatrix4&lt; T &gt; &amp;dest) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getTransposed           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>dest</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transposed matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01763">1763</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="83e8a629180ab12262d2e2cf52c7991b"></a><!-- doxytag: member="irr::core::CMatrix4::getTransposed" ref="83e8a629180ab12262d2e2cf52c7991b" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::getTransposed           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets transposed matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01753">1753</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l00426">irr::core::CMatrix4&lt; T &gt;::CMatrix4()</a>.</p>

</div>
</div><p>
<a class="anchor" name="0c9ed4a87ab8a1340e075490cd9de309"></a><!-- doxytag: member="irr::core::CMatrix4::interpolate" ref="0c9ed4a87ab8a1340e075490cd9de309" args="(const core::CMatrix4&lt; T &gt; &amp;b, f32 time) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::interpolate           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">core::CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>time</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new matrix as interpolated matrix from two other ones. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>b,:</em>&nbsp;</td><td>other matrix to interpolate with </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>time,:</em>&nbsp;</td><td>Must be a value between 0 and 1. </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01736">1736</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>, and <a class="el" href="matrix4_8h-source.html#l00389">irr::core::CMatrix4&lt; T &gt;::M</a>.</p>

</div>
</div><p>
<a class="anchor" name="7996bee0d3056d6647dc9cc840ed0ad8"></a><!-- doxytag: member="irr::core::CMatrix4::inverseRotateVect" ref="7996bee0d3056d6647dc9cc840ed0ad8" args="(vector3df &amp;vect) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::inverseRotateVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vect</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Rotate a vector by the inverse of the rotation part of this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01051">1051</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="83bf069639e0538f047041ae51042907"></a><!-- doxytag: member="irr::core::CMatrix4::inverseTranslateVect" ref="83bf069639e0538f047041ae51042907" args="(vector3df &amp;vect) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::inverseTranslateVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vect</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Translate a vector by the inverse of the translation part of this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01205">1205</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="24e7bc5d302f6c0cb11bad0771a40826"></a><!-- doxytag: member="irr::core::CMatrix4::isIdentity" ref="24e7bc5d302f6c0cb11bad0771a40826" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::isIdentity           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if the matrix is the identity matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00935">935</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00165">irr::core::equals()</a>, and <a class="el" href="irr_math_8h-source.html#l00202">irr::core::iszero()</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l01222">irr::core::CMatrix4&lt; T &gt;::getInverse()</a>, <a class="el" href="matrix4_8h-source.html#l00691">irr::core::CMatrix4&lt; T &gt;::operator*()</a>, <a class="el" href="matrix4_8h-source.html#l00612">irr::core::CMatrix4&lt; T &gt;::operator*=()</a>, <a class="el" href="matrix4_8h-source.html#l00674">irr::core::CMatrix4&lt; T &gt;::setbyproduct()</a>, <a class="el" href="matrix4_8h-source.html#l01118">irr::core::CMatrix4&lt; T &gt;::transformBox()</a>, and <a class="el" href="matrix4_8h-source.html#l01132">irr::core::CMatrix4&lt; T &gt;::transformBoxEx()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b4b515a697bb3749a8e1dd9fc31342bd"></a><!-- doxytag: member="irr::core::CMatrix4::isIdentity_integer_base" ref="b4b515a697bb3749a8e1dd9fc31342bd" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::isIdentity_integer_base           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if the matrix is the identity matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00990">990</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00268">F32_VALUE_1</a>, and <a class="el" href="irr_math_8h-source.html#l00277">irr::core::IR()</a>.</p>

</div>
</div><p>
<a class="anchor" name="fc4fe0bdfb771b15eff91264c0ed37f9"></a><!-- doxytag: member="irr::core::CMatrix4::isOrthogonal" ref="fc4fe0bdfb771b15eff91264c0ed37f9" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::isOrthogonal           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if the matrix is orthogonal. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00961">961</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00202">irr::core::iszero()</a>.</p>

</div>
</div><p>
<a class="anchor" name="45f876ed1aed2c3c98b87fee6d938604"></a><!-- doxytag: member="irr::core::CMatrix4::makeIdentity" ref="45f876ed1aed2c3c98b87fee6d938604" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::makeIdentity           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set matrix to identity. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00919">919</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l01792">irr::core::CMatrix4&lt; T &gt;::buildNDCToDCMatrix()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3fbface2cb6b959af64f82a5bb17540e"></a><!-- doxytag: member="irr::core::CMatrix4::makeInverse" ref="3fbface2cb6b959af64f82a5bb17540e" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::makeInverse           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculates inverse of matrix. Slow. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns false if there is no inverse matrix. </dd></dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01339">1339</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>, and <a class="el" href="matrix4_8h-source.html#l01222">irr::core::CMatrix4&lt; T &gt;::getInverse()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1e1f04cdf57dc76be2875427498a0d62"></a><!-- doxytag: member="irr::core::CMatrix4::multiplyWith1x4Matrix" ref="1e1f04cdf57dc76be2875427498a0d62" args="(T *matrix) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::multiplyWith1x4Matrix           </td>
          <td>(</td>
          <td class="paramtype">T *&nbsp;</td>
          <td class="paramname"> <em>matrix</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiplies this matrix by a 1x4 matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01183">1183</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="99b4c127f31033b5f7314b98164b99ed"></a><!-- doxytag: member="irr::core::CMatrix4::operator!=" ref="99b4c127f31033b5f7314b98164b99ed" args="(const CMatrix4&lt; T &gt; &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator!=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if other matrix is not equal to this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01399">1399</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="370e3a1ed88e95011125d09943b50e3b"></a><!-- doxytag: member="irr::core::CMatrix4::operator()" ref="370e3a1ed88e95011125d09943b50e3b" args="(const s32 row, const s32 col) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator()           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td>
          <td class="paramname"> <em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td>
          <td class="paramname"> <em>col</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Simple operator for directly accessing every element of the matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00079">79</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="aede6824ed3ee05b928815d52e1834d1"></a><!-- doxytag: member="irr::core::CMatrix4::operator()" ref="aede6824ed3ee05b928815d52e1834d1" args="(const s32 row, const s32 col)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator()           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td>
          <td class="paramname"> <em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespaceirr.html#c66849b7a6ed16e30ebede579f9b47c6">s32</a>&nbsp;</td>
          <td class="paramname"> <em>col</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Simple operator for directly accessing every element of the matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00070">70</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="2695d5d90aa8cf55e06649fc83752466"></a><!-- doxytag: member="irr::core::CMatrix4::operator*" ref="2695d5d90aa8cf55e06649fc83752466" args="(const T &amp;scalar) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator*           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>scalar</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply by scalar. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00562">562</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>.</p>

</div>
</div><p>
<a class="anchor" name="4173ab9beecf99940ba2eb01081f1613"></a><!-- doxytag: member="irr::core::CMatrix4::operator*" ref="4173ab9beecf99940ba2eb01081f1613" args="(const CMatrix4&lt; T &gt; &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator*           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply by another matrix. 
<p>
multiply by another matrix 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00691">691</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>, and <a class="el" href="matrix4_8h-source.html#l00935">irr::core::CMatrix4&lt; T &gt;::isIdentity()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e78879a3d7f0113ba5208d5476c3af9c"></a><!-- doxytag: member="irr::core::CMatrix4::operator*=" ref="e78879a3d7f0113ba5208d5476c3af9c" args="(const T &amp;scalar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator*=           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>scalar</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply by scalar. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00588">588</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c3d29f86c91d9d095ab155ecb8870f87"></a><!-- doxytag: member="irr::core::CMatrix4::operator*=" ref="c3d29f86c91d9d095ab155ecb8870f87" args="(const CMatrix4&lt; T &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator*=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply by another matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00612">612</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00935">irr::core::CMatrix4&lt; T &gt;::isIdentity()</a>, and <a class="el" href="matrix4_8h-source.html#l00639">irr::core::CMatrix4&lt; T &gt;::setbyproduct_nocheck()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c2192a7d9dd89dcd23fe2f9ded3252bf"></a><!-- doxytag: member="irr::core::CMatrix4::operator+" ref="c2192a7d9dd89dcd23fe2f9ded3252bf" args="(const CMatrix4&lt; T &gt; &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator+           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add another matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00462">462</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>.</p>

</div>
</div><p>
<a class="anchor" name="f91c5be0562ce4be3f8feedd3d017ba1"></a><!-- doxytag: member="irr::core::CMatrix4::operator+=" ref="f91c5be0562ce4be3f8feedd3d017ba1" args="(const CMatrix4&lt; T &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator+=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add another matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00488">488</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ee45563e7f9fdf3d4ef7f5a9d63d87c0"></a><!-- doxytag: member="irr::core::CMatrix4::operator-" ref="ee45563e7f9fdf3d4ef7f5a9d63d87c0" args="(const CMatrix4&lt; T &gt; &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator-           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Subtract another matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00512">512</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00053">irr::core::CMatrix4&lt; T &gt;::EM4CONST_NOTHING</a>.</p>

</div>
</div><p>
<a class="anchor" name="24eb7faa1418765ba87d3f02f27d643f"></a><!-- doxytag: member="irr::core::CMatrix4::operator-=" ref="24eb7faa1418765ba87d3f02f27d643f" args="(const CMatrix4&lt; T &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator-=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Subtract another matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00538">538</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a77c0ec30f4e42f7281392440898e9e3"></a><!-- doxytag: member="irr::core::CMatrix4::operator=" ref="a77c0ec30f4e42f7281392440898e9e3" args="(const T &amp;scalar)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator=           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>scalar</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets all elements of this matrix to the value. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01371">1371</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="47571eb3acae9a6aa330a03edcea7896"></a><!-- doxytag: member="irr::core::CMatrix4::operator=" ref="47571eb3acae9a6aa330a03edcea7896" args="(const CMatrix4&lt; T &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets this matrix equal to the other matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01358">1358</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00389">irr::core::CMatrix4&lt; T &gt;::M</a>.</p>

</div>
</div><p>
<a class="anchor" name="81029252a2a83ef4647f5d8a02cf62b5"></a><!-- doxytag: member="irr::core::CMatrix4::operator==" ref="81029252a2a83ef4647f5d8a02cf62b5" args="(const CMatrix4&lt; T &gt; &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator==           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if other matrix is equal to this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01384">1384</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00389">irr::core::CMatrix4&lt; T &gt;::M</a>.</p>

</div>
</div><p>
<a class="anchor" name="1c7a81521e81280c31b8ae3397d1fffe"></a><!-- doxytag: member="irr::core::CMatrix4::operator[]" ref="1c7a81521e81280c31b8ae3397d1fffe" args="(u32 index) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator[]           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0416a53257075833e7002efd0a18e804">u32</a>&nbsp;</td>
          <td class="paramname"> <em>index</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Simple operator for linearly accessing every element of the matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00091">91</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ead4909f8bb2ab40875af175caf0085f"></a><!-- doxytag: member="irr::core::CMatrix4::operator[]" ref="ead4909f8bb2ab40875af175caf0085f" args="(u32 index)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::operator[]           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0416a53257075833e7002efd0a18e804">u32</a>&nbsp;</td>
          <td class="paramname"> <em>index</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Simple operator for linearly accessing every element of the matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00082">82</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="2d9b231425d1b8abddb9e1e997fbf2ea"></a><!-- doxytag: member="irr::core::CMatrix4::pointer" ref="2d9b231425d1b8abddb9e1e997fbf2ea" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::pointer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00101">101</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="11a3ffa3eb0987030e7a8758dee8965a"></a><!-- doxytag: member="irr::core::CMatrix4::pointer" ref="11a3ffa3eb0987030e7a8758dee8965a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T* <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::pointer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns pointer to internal <a class="el" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">array</a>. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00100">100</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>Referenced by <a class="el" href="quaternion_8h-source.html#l00300">irr::core::quaternion::getMatrix()</a>, and <a class="el" href="quaternion_8h-source.html#l00342">irr::core::quaternion::getMatrixCenter()</a>.</p>

</div>
</div><p>
<a class="anchor" name="a188488f489118e4daafd3b2ebab5119"></a><!-- doxytag: member="irr::core::CMatrix4::rotateVect" ref="a188488f489118e4daafd3b2ebab5119" args="(T *out, const core::vector3df &amp;in) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::rotateVect           </td>
          <td>(</td>
          <td class="paramtype">T *&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An alternate transform vector method, writing into an <a class="el" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">array</a> of 3 floats. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01043">1043</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="592d57581118b651a24dc68b17b99ff6"></a><!-- doxytag: member="irr::core::CMatrix4::rotateVect" ref="592d57581118b651a24dc68b17b99ff6" args="(core::vector3df &amp;out, const core::vector3df &amp;in) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::rotateVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An alternate transform vector method, writing into a second vector. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01034">1034</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="8abcfbf972b19946c3022db380c6d153"></a><!-- doxytag: member="irr::core::CMatrix4::rotateVect" ref="8abcfbf972b19946c3022db380c6d153" args="(vector3df &amp;vect) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::rotateVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vect</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Rotate a vector by the rotation part of this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01024">1024</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="8503c58913ba9407ba00b173d8a3e25c"></a><!-- doxytag: member="irr::core::CMatrix4::setbyproduct" ref="8503c58913ba9407ba00b173d8a3e25c" args="(const CMatrix4&lt; T &gt; &amp;other_a, const CMatrix4&lt; T &gt; &amp;other_b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setbyproduct           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other_b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
set this matrix to the product of two matrices 
<p>
multiply by another matrix 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00674">674</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00935">irr::core::CMatrix4&lt; T &gt;::isIdentity()</a>, and <a class="el" href="matrix4_8h-source.html#l00639">irr::core::CMatrix4&lt; T &gt;::setbyproduct_nocheck()</a>.</p>

</div>
</div><p>
<a class="anchor" name="526a2a11dcd8b18c9e77deb84094778d"></a><!-- doxytag: member="irr::core::CMatrix4::setbyproduct_nocheck" ref="526a2a11dcd8b18c9e77deb84094778d" args="(const CMatrix4&lt; T &gt; &amp;other_a, const CMatrix4&lt; T &gt; &amp;other_b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setbyproduct_nocheck           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other_b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set this matrix to the product of two matrices. 
<p>
multiply by another matrix<p>
no optimization used, use it if you know you never have a identity matrix 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00639">639</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00389">irr::core::CMatrix4&lt; T &gt;::M</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l00612">irr::core::CMatrix4&lt; T &gt;::operator*=()</a>, and <a class="el" href="matrix4_8h-source.html#l00674">irr::core::CMatrix4&lt; T &gt;::setbyproduct()</a>.</p>

</div>
</div><p>
<a class="anchor" name="87f7195337a2bf7a49978c2ec1100c0a"></a><!-- doxytag: member="irr::core::CMatrix4::setDefinitelyIdentityMatrix" ref="87f7195337a2bf7a49978c2ec1100c0a" args="(bool isDefinitelyIdentityMatrix)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setDefinitelyIdentityMatrix           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>isDefinitelyIdentityMatrix</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets if the matrix is definitely identity matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02073">2073</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>Referenced by <a class="el" href="quaternion_8h-source.html#l00300">irr::core::quaternion::getMatrix()</a>, and <a class="el" href="quaternion_8h-source.html#l00367">irr::core::quaternion::getMatrix_transposed()</a>.</p>

</div>
</div><p>
<a class="anchor" name="fd84b9c93b4c8e9dc2abefa4a28057f9"></a><!-- doxytag: member="irr::core::CMatrix4::setInverseRotationDegrees" ref="fd84b9c93b4c8e9dc2abefa4a28057f9" args="(const vector3d&lt; T &gt; &amp;rotation)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setInverseRotationDegrees           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>rotation</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make an inverted rotation matrix from Euler angles. 
<p>
The 4th row and column are unmodified. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00805">805</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00067">irr::core::DEGTORAD</a>, and <a class="el" href="matrix4_8h-source.html#l00886">irr::core::CMatrix4&lt; T &gt;::setInverseRotationRadians()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1a15d7b55769678512144f0fb7e15a92"></a><!-- doxytag: member="irr::core::CMatrix4::setInverseRotationRadians" ref="1a15d7b55769678512144f0fb7e15a92" args="(const vector3d&lt; T &gt; &amp;rotation)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setInverseRotationRadians           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>rotation</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make an inverted rotation matrix from Euler angles. 
<p>
The 4th row and column are unmodified. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00886">886</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l00805">irr::core::CMatrix4&lt; T &gt;::setInverseRotationDegrees()</a>.</p>

</div>
</div><p>
<a class="anchor" name="258e103fcb6ce1564978624280ecb7fe"></a><!-- doxytag: member="irr::core::CMatrix4::setInverseTranslation" ref="258e103fcb6ce1564978624280ecb7fe" args="(const vector3d&lt; T &gt; &amp;translation)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setInverseTranslation           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>translation</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the inverse translation of the current matrix. Will erase any previous values. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00749">749</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="e59fb2248865eba3026d13b9756ba1e1"></a><!-- doxytag: member="irr::core::CMatrix4::setM" ref="e59fb2248865eba3026d13b9756ba1e1" args="(const T *data)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setM           </td>
          <td>(</td>
          <td class="paramtype">const T *&nbsp;</td>
          <td class="paramname"> <em>data</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets all matrix data members at once. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02060">2060</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8117628146ce654b3b292af7c49e25e2"></a><!-- doxytag: member="irr::core::CMatrix4::setRotationCenter" ref="8117628146ce654b3b292af7c49e25e2" args="(const core::vector3df &amp;center, const core::vector3df &amp;translate)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setRotationCenter           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>translate</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a combined matrix which translates to a center before rotation and translates from origin afterwards. 
<p>
Builds a combined matrix which translate to a center before rotation and translate afterwards.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>center</em>&nbsp;</td><td>Position to rotate around </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>translate</em>&nbsp;</td><td>Translation applied after the rotation </td></tr>
  </table>
</dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01926">1926</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l01869">irr::core::CMatrix4&lt; T &gt;::buildAxisAlignedBillboard()</a>, and <a class="el" href="quaternion_8h-source.html#l00342">irr::core::quaternion::getMatrixCenter()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8ee5ef8619d4b0f56d72ac84495ed644"></a><!-- doxytag: member="irr::core::CMatrix4::setRotationDegrees" ref="8ee5ef8619d4b0f56d72ac84495ed644" args="(const vector3d&lt; T &gt; &amp;rotation)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setRotationDegrees           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>rotation</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make a rotation matrix from Euler angles. The 4th row and column are unmodified. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00799">799</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="irr_math_8h-source.html#l00067">irr::core::DEGTORAD</a>, and <a class="el" href="matrix4_8h-source.html#l00811">irr::core::CMatrix4&lt; T &gt;::setRotationRadians()</a>.</p>

<p>Referenced by <a class="el" href="_i_scene_node_8h-source.html#l00194">irr::scene::ISceneNode::getRelativeTransformation()</a>.</p>

</div>
</div><p>
<a class="anchor" name="05aac7bd2e7651369fc813a51258afbe"></a><!-- doxytag: member="irr::core::CMatrix4::setRotationRadians" ref="05aac7bd2e7651369fc813a51258afbe" args="(const vector3d&lt; T &gt; &amp;rotation)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setRotationRadians           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>rotation</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make a rotation matrix from Euler angles. The 4th row and column are unmodified. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00811">811</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l00799">irr::core::CMatrix4&lt; T &gt;::setRotationDegrees()</a>.</p>

</div>
</div><p>
<a class="anchor" name="18af980e2bc3575f60576b6d4b4cc0f3"></a><!-- doxytag: member="irr::core::CMatrix4::setScale" ref="18af980e2bc3575f60576b6d4b4cc0f3" args="(const T scale)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt;T&gt;&amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setScale           </td>
          <td>(</td>
          <td class="paramtype">const T&nbsp;</td>
          <td class="paramname"> <em>scale</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set Scale. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00190">190</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00761">irr::core::CMatrix4&lt; T &gt;::setScale()</a>.</p>

</div>
</div><p>
<a class="anchor" name="47117d44419af87e70084c01ab852049"></a><!-- doxytag: member="irr::core::CMatrix4::setScale" ref="47117d44419af87e70084c01ab852049" args="(const vector3d&lt; T &gt; &amp;scale)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setScale           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>scale</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set Scale. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00761">761</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

<p>Referenced by <a class="el" href="matrix4_8h-source.html#l01792">irr::core::CMatrix4&lt; T &gt;::buildNDCToDCMatrix()</a>, <a class="el" href="_i_scene_node_8h-source.html#l00194">irr::scene::ISceneNode::getRelativeTransformation()</a>, and <a class="el" href="matrix4_8h-source.html#l00190">irr::core::CMatrix4&lt; T &gt;::setScale()</a>.</p>

</div>
</div><p>
<a class="anchor" name="445a7653292ae4ffb0baa50032a8674e"></a><!-- doxytag: member="irr::core::CMatrix4::setTextureRotationCenter" ref="445a7653292ae4ffb0baa50032a8674e" args="(f32 radAngle)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setTextureRotationCenter           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>radAngle</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set texture transformation rotation. 
<p>
Rotate about z axis, recenter at (0.5,0.5). Doesn't clear other elements than those affected <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>radAngle</em>&nbsp;</td><td>Angle in radians </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Altered matrix </dd></dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01986">1986</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ed32a7a8da9c4cee5babe8f6b4aa7dd4"></a><!-- doxytag: member="irr::core::CMatrix4::setTextureScale" ref="ed32a7a8da9c4cee5babe8f6b4aa7dd4" args="(f32 sx, f32 sy)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setTextureScale           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>sy</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set texture transformation scale. 
<p>
Doesn't clear other elements than those affected. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sx</em>&nbsp;</td><td>Scale factor on x axis </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sy</em>&nbsp;</td><td>Scale factor on y axis </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Altered matrix. </dd></dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02032">2032</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="dbd668867d117dc9331e68abef0af221"></a><!-- doxytag: member="irr::core::CMatrix4::setTextureScaleCenter" ref="dbd668867d117dc9331e68abef0af221" args="(f32 sx, f32 sy)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setTextureScaleCenter           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>sy</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set texture transformation scale, and recenter at (0.5,0.5). 
<p>
Doesn't clear other elements than those affected. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sx</em>&nbsp;</td><td>Scale factor on x axis </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sy</em>&nbsp;</td><td>Scale factor on y axis </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Altered matrix. </dd></dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02044">2044</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="2bab9633697a892f08d89c7aeee6daf6"></a><!-- doxytag: member="irr::core::CMatrix4::setTextureTranslate" ref="2bab9633697a892f08d89c7aeee6daf6" args="(f32 x, f32 y)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setTextureTranslate           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set texture transformation translation. 
<p>
Doesn't clear other elements than those affected. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>Offset on x axis </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Offset on y axis </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Altered matrix </dd></dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02007">2007</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7d999210cc7427e9d744271e50d26c3c"></a><!-- doxytag: member="irr::core::CMatrix4::setTextureTranslateTransposed" ref="7d999210cc7427e9d744271e50d26c3c" args="(f32 x, f32 y)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setTextureTranslateTransposed           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a>&nbsp;</td>
          <td class="paramname"> <em>y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set texture transformation translation, using a transposed representation. 
<p>
Doesn't clear other elements than those affected. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>Offset on x axis </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Offset on y axis </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Altered matrix </dd></dl>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l02020">2020</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c04a3b341cbfbb7986be682691655622"></a><!-- doxytag: member="irr::core::CMatrix4::setTranslation" ref="c04a3b341cbfbb7986be682691655622" args="(const vector3d&lt; T &gt; &amp;translation)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classirr_1_1core_1_1_c_matrix4.html">CMatrix4</a>&lt; T &gt; &amp; <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::setTranslation           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3d</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>translation</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the translation of the current matrix. Will erase any previous values. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l00737">737</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

<p>Referenced by <a class="el" href="_i_scene_node_8h-source.html#l00194">irr::scene::ISceneNode::getRelativeTransformation()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c12468d698fbf6cd545e8b3fbf2a0042"></a><!-- doxytag: member="irr::core::CMatrix4::transformBox" ref="c12468d698fbf6cd545e8b3fbf2a0042" args="(core::aabbox3d&lt; f32 &gt; &amp;box) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformBox           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1aabbox3d.html">core::aabbox3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms a axis aligned bounding box. 
<p>
The result box of this operation may not be accurate at all. For correct results, use <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#87451aea9c07b71d1a8b6091b8cefa63" title="Transforms a axis aligned bounding box.">transformBoxEx()</a> 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01118">1118</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00935">irr::core::CMatrix4&lt; T &gt;::isIdentity()</a>, <a class="el" href="aabbox3d_8h-source.html#l00321">irr::core::aabbox3d&lt; T &gt;::MaxEdge</a>, <a class="el" href="aabbox3d_8h-source.html#l00318">irr::core::aabbox3d&lt; T &gt;::MinEdge</a>, <a class="el" href="aabbox3d_8h-source.html#l00280">irr::core::aabbox3d&lt; T &gt;::repair()</a>, and <a class="el" href="matrix4_8h-source.html#l01060">irr::core::CMatrix4&lt; T &gt;::transformVect()</a>.</p>

</div>
</div><p>
<a class="anchor" name="87451aea9c07b71d1a8b6091b8cefa63"></a><!-- doxytag: member="irr::core::CMatrix4::transformBoxEx" ref="87451aea9c07b71d1a8b6091b8cefa63" args="(core::aabbox3d&lt; f32 &gt; &amp;box) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformBoxEx           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1aabbox3d.html">core::aabbox3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>box</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms a axis aligned bounding box. 
<p>
Transforms a axis aligned bounding box more accurately than <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c12468d698fbf6cd545e8b3fbf2a0042" title="Transforms a axis aligned bounding box.">transformBox()</a>.<p>
The result box of this operation should by accurate, but this operation is slower than <a class="el" href="classirr_1_1core_1_1_c_matrix4.html#c12468d698fbf6cd545e8b3fbf2a0042" title="Transforms a axis aligned bounding box.">transformBox()</a>. 
<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01132">1132</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00935">irr::core::CMatrix4&lt; T &gt;::isIdentity()</a>, <a class="el" href="aabbox3d_8h-source.html#l00321">irr::core::aabbox3d&lt; T &gt;::MaxEdge</a>, and <a class="el" href="aabbox3d_8h-source.html#l00318">irr::core::aabbox3d&lt; T &gt;::MinEdge</a>.</p>

<p>Referenced by <a class="el" href="_i_scene_node_8h-source.html#l00173">irr::scene::ISceneNode::getTransformedBoundingBox()</a>.</p>

</div>
</div><p>
<a class="anchor" name="949042276c2025189cc568c8080d7579"></a><!-- doxytag: member="irr::core::CMatrix4::transformPlane" ref="949042276c2025189cc568c8080d7579" args="(const core::plane3d&lt; f32 &gt; &amp;in, core::plane3d&lt; f32 &gt; &amp;out) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformPlane           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms a plane by this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01110">1110</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l01094">irr::core::CMatrix4&lt; T &gt;::transformPlane()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c4f0d4156d573d8b73eb51dce76e094e"></a><!-- doxytag: member="irr::core::CMatrix4::transformPlane" ref="c4f0d4156d573d8b73eb51dce76e094e" args="(core::plane3d&lt; f32 &gt; &amp;plane) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformPlane           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1plane3d.html">core::plane3d</a>&lt; <a class="el" href="namespaceirr.html#0277be98d67dc26ff93b1a6a1d086b07">f32</a> &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>plane</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms a plane by this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01094">1094</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="matrix4_8h-source.html#l00058">irr::core::CMatrix4&lt; T &gt;::EM4CONST_INVERSE_TRANSPOSED</a>, <a class="el" href="plane3d_8h-source.html#l00150">irr::core::plane3d&lt; T &gt;::getMemberPoint()</a>, <a class="el" href="plane3d_8h-source.html#l00223">irr::core::plane3d&lt; T &gt;::Normal</a>, <a class="el" href="plane3d_8h-source.html#l00053">irr::core::plane3d&lt; T &gt;::setPlane()</a>, and <a class="el" href="matrix4_8h-source.html#l01060">irr::core::CMatrix4&lt; T &gt;::transformVect()</a>.</p>

<p>Referenced by <a class="el" href="_s_view_frustum_8h-source.html#l00136">irr::scene::SViewFrustum::transform()</a>, and <a class="el" href="matrix4_8h-source.html#l01110">irr::core::CMatrix4&lt; T &gt;::transformPlane()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ad3d6e0c59e2d5709a534abc2b86dbd3"></a><!-- doxytag: member="irr::core::CMatrix4::transformVect" ref="ad3d6e0c59e2d5709a534abc2b86dbd3" args="(T *out, const core::vector3df &amp;in) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformVect           </td>
          <td>(</td>
          <td class="paramtype">T *&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">core::vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An alternate transform vector method, writing into an <a class="el" href="classirr_1_1core_1_1array.html" title="Self reallocating template array (like stl vector) with additional features.">array</a> of 4 floats. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01083">1083</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="7f630ed6811ab36921c2fe6f63f7f426"></a><!-- doxytag: member="irr::core::CMatrix4::transformVect" ref="7f630ed6811ab36921c2fe6f63f7f426" args="(vector3df &amp;out, const vector3df &amp;in) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>in</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms input vector by this matrix and stores result in output vector. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01074">1074</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<a class="anchor" name="a6bb8b39114749d70e51bd1b90bce0a1"></a><!-- doxytag: member="irr::core::CMatrix4::transformVect" ref="a6bb8b39114749d70e51bd1b90bce0a1" args="(vector3df &amp;vect) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::transformVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vect</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms the vector by this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01060">1060</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

<p>Referenced by <a class="el" href="_s_view_frustum_8h-source.html#l00136">irr::scene::SViewFrustum::transform()</a>, <a class="el" href="matrix4_8h-source.html#l01118">irr::core::CMatrix4&lt; T &gt;::transformBox()</a>, and <a class="el" href="matrix4_8h-source.html#l01094">irr::core::CMatrix4&lt; T &gt;::transformPlane()</a>.</p>

</div>
</div><p>
<a class="anchor" name="587cb77fd7de7a13771c96a90c4f3de0"></a><!-- doxytag: member="irr::core::CMatrix4::translateVect" ref="587cb77fd7de7a13771c96a90c4f3de0" args="(vector3df &amp;vect) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classirr_1_1core_1_1_c_matrix4.html">irr::core::CMatrix4</a>&lt; T &gt;::translateVect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classirr_1_1core_1_1vector3d.html">vector3df</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vect</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Translate a vector by the translation part of this matrix. 
<p>

<p>Definition at line <a class="el" href="matrix4_8h-source.html#l01213">1213</a> of file <a class="el" href="matrix4_8h-source.html">matrix4.h</a>.</p>

<p>References <a class="el" href="vector3d_8h-source.html#l00346">irr::core::vector3d&lt; T &gt;::X</a>, <a class="el" href="vector3d_8h-source.html#l00349">irr::core::vector3d&lt; T &gt;::Y</a>, and <a class="el" href="vector3d_8h-source.html#l00352">irr::core::vector3d&lt; T &gt;::Z</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="matrix4_8h-source.html">matrix4.h</a></ul>
</div>
<hr size="1">
<address style="align: right;">
<small> </small>
</address>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr> 
    <td width="0"> <div align="left"><small><a href="http://irrlicht.sourceforge.net" target="_blank"><img src="irrlicht.png" alt="The Irrlicht Engine" align="middle" border=0 width=88 height=31></a></small></div></td>
    <td> <div align="left"><small><em><font size="2">The <a href="http://irrlicht.sourceforge.net" target="_blank">Irrlicht 
        Engine</a> Documentation &copy; 2003-2009 by Nikolaus Gebhardt. Generated 
        on Sun Jan 10 09:24:09 2010 by <a href="http://www.doxygen.org" target="_blank">Doxygen</a> 
        (1.5.6)</font></em></small></div></td>
  </tr>
</table>
<address style="align: right;">
</address>
</body>
</html>