diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/class_NLMISC__CMatrix.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/class_NLMISC__CMatrix.html | 2730 |
1 files changed, 2730 insertions, 0 deletions
diff --git a/docs/doxygen/nel/class_NLMISC__CMatrix.html b/docs/doxygen/nel/class_NLMISC__CMatrix.html new file mode 100644 index 00000000..38c09600 --- /dev/null +++ b/docs/doxygen/nel/class_NLMISC__CMatrix.html @@ -0,0 +1,2730 @@ +<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> +<HTML> +<HEAD> + <TITLE>nevrax.org : docs</TITLE> + <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css"> + <link href="doxygen.css" rel="stylesheet" type="text/css"> +</HEAD> +<BODY MARGINHEIGHT="0" MARGINWIDTH="0"> + +<!-- uplinks --> +<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0> + <TR> + <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle> <A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A> </TD> + <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle> <A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A> </TD> + </TR> +</TABLE> + +<!-- banner Nevrax --> +<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%> + <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR> +</TABLE> + +<!-- main table --> +<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%> + <TR> + <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD> + <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT=""> + + <!------ Begin Box ------> + <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black> + <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF> + <TABLE cellspacing=0 cellpadding=1 border=0> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr> + <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-gpl.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="License">License</a></td></tr> + </TABLE> + </TD></TR></TABLE></TD></TR></TABLE> + <!------ End Box ------> + + </TD> + <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD> + <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT=""> + +<!-- title --> +<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td> +<A HREF="http://www.nevrax.org/docs/"><img src="http://www.nevrax.org/inc/img/t_docs.gif" ALT="Docs" HEIGHT=20 BORDER=0></A> +</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT=""> +</td></tr></table> + + +<!-- block --> +<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD> + <TD><B>Documentation</B></TD> + <TD ALIGN=RIGHT> </td> +</tr></table> +<!-- Generated by Doxygen 1.2.2 on Thu May 24 22:32:15 2001 --> +<center> +<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindexRef" doxygen="_cgi:http://www.nevrax.org/cgi-bin/nel-search.cgi" href="http://www.nevrax.org/cgi-bin/nel-search.cgi">Search</a> </center> +<hr><h1>NLMISC::CMatrix Class Reference</h1>A 4*4 Homogenous Matrix. +<a href="#_details">More...</a> +<p> +<code>#include <<a class="el" href="matrix_h-source.html">matrix.h</a>></code> +<p> +Collaboration diagram for NLMISC::CMatrix:<p><center><img src="class_NLMISC__CMatrix_coll_graph.gif" border="0" usemap="#NLMISC::CMatrix_coll_map" alt="Collaboration graph"></center> +<map name="NLMISC::CMatrix_coll_map"> +</map> +<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_NLMISC__CMatrix-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> +<tr><td colspan=2><br><h2>Public Types</h2></td></tr> +<tr><td nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> { <br> + <a class="el" href="class_NLMISC__CMatrix.html#s6s0">XYZ</a>, +<br> + <a class="el" href="class_NLMISC__CMatrix.html#s6s1">XZY</a>, +<br> + <a class="el" href="class_NLMISC__CMatrix.html#s6s2">YXZ</a>, +<br> + <a class="el" href="class_NLMISC__CMatrix.html#s6s3">YZX</a>, +<br> + <a class="el" href="class_NLMISC__CMatrix.html#s6s4">ZXY</a>, +<br> + <a class="el" href="class_NLMISC__CMatrix.html#s6s5">ZYX</a> +<br> + }</td></tr> +<tr><td> </td><td><font size=-1><em>Rotation Order.</em> <a href="#s6">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan=2><br><h2>Public Methods</h2></td></tr> +<tr><td colspan="2"><div class="groupHeader">Object</div></td></tr> +<tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a0">CMatrix</a> ()</td></tr> +<tr><td> </td><td><font size=-1><em>Constructor which init to <a class="el" href="class_NLMISC__CMatrix.html#a3">identity</a>().</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a1">CMatrix</a> (const CMatrix &)</td></tr> +<tr><td> </td><td><font size=-1><em>Copy Constructor.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>CMatrix& </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a2">operator=</a> (const CMatrix &)</td></tr> +<tr><td> </td><td><font size=-1><em>operator=.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Sets</div></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a3">identity</a> ()</td></tr> +<tr><td> </td><td><font size=-1><em>Reset the matrix to identity.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a4">setRot</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &i, const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &j, const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &k, bool hintNoScale=false)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Rotation/Scale matrix (base).</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a5">setRot</a> (const float m33[9], bool hintNoScale=false)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Rotation/Scale matrix (base).</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a6">setRot</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v, <a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> ro)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Rotation matrix (base) as a Euler rotation matrix.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a7">setRot</a> (const <a class="el" href="class_NLMISC__CQuat.html">CQuat</a> &quat)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Rotation matrix (base) as a Quaternion rotation matrix.</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a8">setRot</a> (const CMatrix &matrix)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Rotation/Scale matrix (base) with the rotation part of an other matrix.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a9">setPos</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Translation component.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a10">movePos</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v)</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit move the Translation component.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a11">setProj</a> (const float proj[4])</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the Projection component.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a12">resetProj</a> ()</td></tr> +<tr><td> </td><td><font size=-1><em>Reset the Projection component to 0 0 0 1.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a13">set</a> (const float m44[16])</td></tr> +<tr><td> </td><td><font size=-1><em>Explicit setup the 4*4 matrix.</em> <a href="#a13">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Gets.</div></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a14">getRot</a> (<a class="el" href="class_NLMISC__CVector.html">CVector</a> &i, <a class="el" href="class_NLMISC__CVector.html">CVector</a> &j, <a class="el" href="class_NLMISC__CVector.html">CVector</a> &k) const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Rotation/Scale matrix (base).</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a15">getRot</a> (float m33[9]) const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Rotation/Scale matrix (base).</em> <a href="#a15">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a16">getRot</a> (<a class="el" href="class_NLMISC__CQuat.html">CQuat</a> &quat) const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Rotation matrix (base).</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CQuat.html">CQuat</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a17">getRot</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Rotation matrix (base).</em> <a href="#a17">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a18">getPos</a> (<a class="el" href="class_NLMISC__CVector.html">CVector</a> &v) const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Translation component.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a19">getPos</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Translation component.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a20">getProj</a> (float proj[4]) const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the Projection component.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a21">getI</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the I vector of the Rotation/Scale matrix (base).</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a22">getJ</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the J vector of the Rotation/Scale matrix (base).</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a23">getK</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Get the K vector of the Rotation/Scale matrix (base).</em> <a href="#a23">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a24">get</a> (float m44[16]) const</td></tr> +<tr><td> </td><td><font size=-1><em>Get 4*4 matrix.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>const float* </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a25">get</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Get 4*4 matrix.</em> <a href="#a25">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">3D Operations.</div></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a26">translate</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a translation to the matrix. same as M=M*T.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a27">rotateX</a> (float a)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a rotation on axis X to the matrix.</em> <a href="#a27">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a28">rotateY</a> (float a)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a rotation on axis Y to the matrix.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a29">rotateZ</a> (float a)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a rotation on axis Z to the matrix.</em> <a href="#a29">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a30">rotate</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v, <a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> ro)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a euler rotation.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a31">rotate</a> (const <a class="el" href="class_NLMISC__CQuat.html">CQuat</a> &quat)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a quaternion rotation.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a32">scale</a> (float f)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a uniform scale to the matrix.</em> <a href="#a32">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a33">scale</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &scale)</td></tr> +<tr><td> </td><td><font size=-1><em>Apply a non-uniform scale to the matrix.</em> <a href="#a33">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Matrix Operations.</div></td></tr> +<tr><td nowrap align=right valign=top>CMatrix </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a34">operator *</a> (const CMatrix &) const</td></tr> +<tr><td nowrap align=right valign=top>CMatrix& </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a35">operator *=</a> (const CMatrix &)</td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a36">transpose3x3</a> ()</td></tr> +<tr><td> </td><td><font size=-1><em>transpose the rotation part only of the matrix (swap columns/lines).</em> <a href="#a36">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a37">transpose</a> ()</td></tr> +<tr><td> </td><td><font size=-1><em>transpose the matrix (swap columns/lines).</em> <a href="#a37">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a38">invert</a> ()</td></tr> +<tr><td> </td><td><font size=-1><em>Invert the matrix.</em> <a href="#a38">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>CMatrix </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a39">inverted</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>Return the matrix inverted.</em> <a href="#a39">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a40">normalize</a> (<a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> pref)</td></tr> +<tr><td> </td><td><font size=-1><em>Normalize the matrix so that the rotation part is now an orthonormal basis, ie a rotation with no scale.</em> <a href="#a40">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader"></div></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a41">mulVector</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v) const</td></tr> +<tr><td> </td><td><font size=-1><em>Multiply a normal. ie v.w=0 so the Translation component doesn't affect result. Projection doesn't affect result.</em> <a href="#a41">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a42">mulPoint</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v) const</td></tr> +<tr><td> </td><td><font size=-1><em>Multiply a point. ie v.w=1 so the Translation component do affect result. Projection doesn't affect result.</em> <a href="#a42">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVector.html">CVector</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a43">operator *</a> (const <a class="el" href="class_NLMISC__CVector.html">CVector</a> &v) const</td></tr> +<tr><td> </td><td><font size=-1><em>Multiply a point. <dl compact><dt> +<b>See also: </b><dd> + <a class="el" href="class_NLMISC__CMatrix.html#a42">mulPoint</a>().</dl></em> <a href="#a43">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CVectorH.html">CVectorH</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a44">operator *</a> (const <a class="el" href="class_NLMISC__CVectorH.html">CVectorH</a>& v) const</td></tr> +<tr><td> </td><td><font size=-1><em>Multiply with an homogenous vector.</em> <a href="#a44">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Misc</div></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a45">serial</a> (<a class="el" href="class_NLMISC__IStream.html">IStream</a> &f)</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a46">hasScalePart</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>return true if the matrix has a scale part (by <a class="el" href="class_NLMISC__CMatrix.html#a32">scale</a>(), by multiplication etc...).</em> <a href="#a46">More...</a><em></em></font><br><br></td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#a47">hasProjectionPart</a> () const</td></tr> +<tr><td> </td><td><font size=-1><em>return true if the matrix has a projection part (by <a class="el" href="class_NLMISC__CMatrix.html#a11">setProj</a>(), by multiplication etc...).</em> <a href="#a47">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr> +<tr><td nowrap align=right valign=top>const CMatrix </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#p0">Identity</a></td></tr> +<tr><td> </td><td><font size=-1><em>The identity matrix. Same as <a class="el" href="class_NLMISC__CMatrix.html#a0">CMatrix</a>().</em> <a href="#p0">More...</a><em></em></font><br><br></td></tr> +<tr><td colspan=2><br><h2>Private Methods</h2></td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c0">fastInvert33</a> (CMatrix &ret) const</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c1">slowInvert33</a> (CMatrix &ret) const</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c2">slowInvert44</a> (CMatrix &ret) const</td></tr> +<tr><td nowrap align=right valign=top>float& </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c3">mat</a> (<a class="el" href="types_nl_h.html#a12">sint</a> i, <a class="el" href="types_nl_h.html#a12">sint</a> j)</td></tr> +<tr><td nowrap align=right valign=top>const float& </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c4">mat</a> (<a class="el" href="types_nl_h.html#a12">sint</a> i, <a class="el" href="types_nl_h.html#a12">sint</a> j) const</td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c5">getCofactIndex</a> (<a class="el" href="types_nl_h.html#a12">sint</a> i, <a class="el" href="types_nl_h.html#a12">sint</a> &l1, <a class="el" href="types_nl_h.html#a12">sint</a> &l2, <a class="el" href="types_nl_h.html#a12">sint</a> &l3) const</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c6">hasRot</a> () const</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c7">hasTrans</a> () const</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c8">hasProj</a> () const</td></tr> +<tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c9">hasAll</a> () const</td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c10">testExpandRot</a> () const</td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c11">testExpandTrans</a> () const</td></tr> +<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#c12">testExpandProj</a> () const</td></tr> +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td nowrap align=right valign=top>float </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#o0">M</a> [16]</td></tr> +<tr><td nowrap align=right valign=top>float </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#o1">Scale33</a></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="types_nl_h.html#a9">uint32</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#o2">StateBit</a></td></tr> +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td nowrap align=right valign=top><a class="el" href="class_NLMISC__CPlane.html">CPlane</a> </td><td valign=bottom><a class="el" href="class_NLMISC__CMatrix.html#l0">operator *</a> (const <a class="el" href="class_NLMISC__CPlane.html">CPlane</a> &p, const CMatrix &m)</td></tr> +<tr><td> </td><td><font size=-1><em>Plane (line vector) multiplication.</em> <a href="#l0">More...</a><em></em></font><br><br></td></tr> +</table> +<hr><a name="_details"></a><h2>Detailed Description</h2> +A 4*4 Homogenous Matrix. +<p> +This is a column matrix, so operations like: <code>v1=A*B*C*v0</code>; applies C first , then B, then A to vector v0. <br> + Since it is a column matrix, the first column is the I vector of the base, 2nd is J, 3th is K. <br> + 4th column vector is T, the translation vector. +<p> +Angle orientation are: Xaxis: YtoZ. Yaxis: ZtoX. Zaxis: XtoY. +<p> +This matrix keep a matrix state to improve Matrix, vector and plane computing (matrix inversion, vector multiplication...). The internal matrix know if:<ul> +<li>matrix is identity<li>matrix has a translation component<li>matrix has a rotation component<li>matrix has a uniform scale component (scale which is the same along the 3 axis)<li>matrix has a non-uniform scale component<li>matrix has a projection component (4th line of the matrix is not 0 0 0 1).</ul> +An example of improvement is that <a class="el" href="class_NLMISC__CMatrix.html#a43">CMatrix::operator *</a>(const CVector &v) return v if the matrix is identity. +<p> +By default, a matrix is identity. But for a performance view, this is just a StateBit=0... <dl compact><dt> +<b>Author(s): </b><dd> + Lionel Berenguier , Nevrax France </dl><dl compact><dt> +<b>Date: </b><dd> + 2000 </dl> +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00066">66</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>.<hr><h2>Member Enumeration Documentation</h2> +<a name="s6" doxytag="NLMISC::CMatrix::TRotOrder"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +enum NLMISC::CMatrix::TRotOrder + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Rotation Order. +<p> +<dl compact><dt> +<b>Enumeration values:</b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><a name="s6s0" doxytag="XYZ"></a><em>XYZ</em> + </td><td> +</td></tr> +<tr><td valign=top><a name="s6s1" doxytag="XZY"></a><em>XZY</em> + </td><td> +</td></tr> +<tr><td valign=top><a name="s6s2" doxytag="YXZ"></a><em>YXZ</em> + </td><td> +</td></tr> +<tr><td valign=top><a name="s6s3" doxytag="YZX"></a><em>YZX</em> + </td><td> +</td></tr> +<tr><td valign=top><a name="s6s4" doxytag="ZXY"></a><em>ZXY</em> + </td><td> +</td></tr> +<tr><td valign=top><a name="s6s5" doxytag="ZYX"></a><em>ZYX</em> + </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00070">70</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a name="a0" doxytag="NLMISC::CMatrix::CMatrix"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +NLMISC::CMatrix::CMatrix ( + </b></td> + <td valign="bottom"><b> +)<code> [inline]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Constructor which init to <a class="el" href="class_NLMISC__CMatrix.html#a3">identity</a>(). +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00088">88</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="a1" doxytag="NLMISC::CMatrix::CMatrix"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +NLMISC::CMatrix::CMatrix ( + </b></td> + <td valign="bottom"><b> +const CMatrix & <em>m</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Copy Constructor. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00161">161</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a name="c0" doxytag="NLMISC::CMatrix::fastInvert33"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::fastInvert33 ( + </b></td> + <td valign="bottom"><b> +CMatrix & <em>ret</em> ) const<code> [private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00957">957</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a25" doxytag="NLMISC::CMatrix::get"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +const float * NLMISC::CMatrix::get ( + </b></td> + <td valign="bottom"><b> +) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get 4*4 matrix. +<p> +<dl compact><dt> +<b>Returns: </b><dd> + the matrix's 4*4 column matrix (4x4 matrix stored in column-major order as 16 consecutive values) </dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00471">471</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a24" doxytag="NLMISC::CMatrix::get"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::get ( + </b></td> + <td valign="bottom"><b> +float <em>m44</em>[16] ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get 4*4 matrix. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>m44</em> + </td><td> + the matrix's 4*4 column matrix (4x4 matrix stored in column-major order as 16 consecutive values) </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00462">462</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c5" doxytag="NLMISC::CMatrix::getCofactIndex"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::getCofactIndex ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="types_nl_h.html#a12">sint</a> <em>i</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="types_nl_h.html#a12">sint</a> & <em>l1</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="types_nl_h.html#a12">sint</a> & <em>l2</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="types_nl_h.html#a12">sint</a> & <em>l3</em> ) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00328">328</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="a21" doxytag="NLMISC::CMatrix::getI"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::getI ( + </b></td> + <td valign="bottom"><b> +) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the I vector of the Rotation/Scale matrix (base). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00438">438</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="quad_tree_h-source.html#l00848">NL3D::CQuadTree::selectSegment</a>(). </td> + </tr> +</table> +<a name="a22" doxytag="NLMISC::CMatrix::getJ"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::getJ ( + </b></td> + <td valign="bottom"><b> +) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the J vector of the Rotation/Scale matrix (base). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00446">446</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="quad_tree_h-source.html#l00817">NL3D::CQuadTree::selectRay</a>(), and <a class="el" href="quad_tree_h-source.html#l00848">NL3D::CQuadTree::selectSegment</a>(). </td> + </tr> +</table> +<a name="a23" doxytag="NLMISC::CMatrix::getK"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::getK ( + </b></td> + <td valign="bottom"><b> +void ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the K vector of the Rotation/Scale matrix (base). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00454">454</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="quad_tree_h-source.html#l00817">NL3D::CQuadTree::selectRay</a>(), and <a class="el" href="quad_tree_h-source.html#l00848">NL3D::CQuadTree::selectSegment</a>(). </td> + </tr> +</table> +<a name="a19" doxytag="NLMISC::CMatrix::getPos"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::getPos ( + </b></td> + <td valign="bottom"><b> +void ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Translation component. +<p> +<dl compact><dt> +<b>Returns: </b><dd> + the matrix's translation vector. </dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00412">412</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="trav_scene_h-source.html#l00139">NL3D::ITravCameraScene::update</a>(). </td> + </tr> +</table> +<a name="a18" doxytag="NLMISC::CMatrix::getPos"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::getPos ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Translation component. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>v</em> + </td><td> + the matrix's translation vector. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00404">404</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a20" doxytag="NLMISC::CMatrix::getProj"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::getProj ( + </b></td> + <td valign="bottom"><b> +float <em>proj</em>[4] ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Projection component. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>proj</em> + </td><td> + the matrix's projection vector. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00420">420</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a17" doxytag="NLMISC::CMatrix::getRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CQuat.html">CQuat</a> NLMISC::CMatrix::getRot ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Rotation matrix (base). +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>quat</em> + </td><td> + the return quaternion. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00179">179</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="a16" doxytag="NLMISC::CMatrix::getRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::getRot ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="class_NLMISC__CQuat.html">CQuat</a> & <em>quat</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Rotation matrix (base). +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>quat</em> + </td><td> + the return quaternion. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01377">1377</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a15" doxytag="NLMISC::CMatrix::getRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::getRot ( + </b></td> + <td valign="bottom"><b> +float <em>m33</em>[9] ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Rotation/Scale matrix (base). +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>m33</em> + </td><td> + the matrix's 3*3 column rotation matrix. (3x3 matrix stored in column-major order as 9 consecutive values) </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00372">372</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a14" doxytag="NLMISC::CMatrix::getRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::getRot ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>i</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>j</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>k</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the Rotation/Scale matrix (base). +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>i</em> + </td><td> + The matrix's I vector of the cartesian base. </td></tr> +<tr><td valign=top><em>j</em> + </td><td> + The matrix's J vector of the cartesian base. </td></tr> +<tr><td valign=top><em>k</em> + </td><td> + The matrix's K vector of the cartesian base. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00356">356</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c9" doxytag="NLMISC::CMatrix::hasAll"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::hasAll ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00114">114</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c8" doxytag="NLMISC::CMatrix::hasProj"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::hasProj ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00110">110</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a47" doxytag="NLMISC::CMatrix::hasProjectionPart"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::hasProjectionPart ( + </b></td> + <td valign="bottom"><b> +) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return true if the matrix has a projection part (by <a class="el" href="class_NLMISC__CMatrix.html#a11">setProj</a>(), by multiplication etc...). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00095">95</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c6" doxytag="NLMISC::CMatrix::hasRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::hasRot ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00102">102</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a46" doxytag="NLMISC::CMatrix::hasScalePart"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::hasScalePart ( + </b></td> + <td valign="bottom"><b> +) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +return true if the matrix has a scale part (by <a class="el" href="class_NLMISC__CMatrix.html#a32">scale</a>(), by multiplication etc...). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00091">91</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c7" doxytag="NLMISC::CMatrix::hasTrans"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::hasTrans ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00106">106</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a3" doxytag="NLMISC::CMatrix::identity"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::identity ( + </b></td> + <td valign="bottom"><b> +) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Reset the matrix to identity. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00200">200</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="quad_grid_h-source.html#l00332">NL3D::CQuadGrid::CQuadGrid</a>(), <a class="el" href="quad_tree_h-source.html#l00658">NL3D::CQuadTree::CQuadTree</a>(), <a class="el" href="trav_scene_h-source.html#l00126">NL3D::ITravCameraScene::ITravCameraScene</a>(), <a class="el" href="quad_tree_h-source.html#l00817">NL3D::CQuadTree::selectRay</a>(), and <a class="el" href="quad_tree_h-source.html#l00848">NL3D::CQuadTree::selectSegment</a>(). </td> + </tr> +</table> +<a name="a38" doxytag="NLMISC::CMatrix::invert"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::invert ( + </b></td> + <td valign="bottom"><b> +) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Invert the matrix. +<p> +if the matrix can't be inverted, it is set to identity. +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00904">904</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="track_tcb_h-source.html#l00429">CTrackKeyFramerTCB< CKeyTCBQuat,NLMISC::CAngleAxis >::compile</a>(). </td> + </tr> +</table> +<a name="a39" doxytag="NLMISC::CMatrix::inverted"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +CMatrix NLMISC::CMatrix::inverted ( + </b></td> + <td valign="bottom"><b> +) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the matrix inverted. +<p> +if the matrix can't be inverted, identity is returned. +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01078">1078</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="trav_scene_h-source.html#l00139">NL3D::ITravCameraScene::update</a>(). </td> + </tr> +</table> +<a name="c4" doxytag="NLMISC::CMatrix::mat"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +const float & NLMISC::CMatrix::mat ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="types_nl_h.html#a12">sint</a> <em>i</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="types_nl_h.html#a12">sint</a> <em>j</em> ) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00323">323</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="c3" doxytag="NLMISC::CMatrix::mat"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +float & NLMISC::CMatrix::mat ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="types_nl_h.html#a12">sint</a> <em>i</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="types_nl_h.html#a12">sint</a> <em>j</em> )<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00318">318</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="a10" doxytag="NLMISC::CMatrix::movePos"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::movePos ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit move the Translation component. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>v</em> + </td><td> + a vector to move the translation vector. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00276">276</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a42" doxytag="NLMISC::CMatrix::mulPoint"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::mulPoint ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Multiply a point. ie v.w=1 so the Translation component do affect result. Projection doesn't affect result. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01250">1250</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a41" doxytag="NLMISC::CMatrix::mulVector"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::mulVector ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Multiply a normal. ie v.w=0 so the Translation component doesn't affect result. Projection doesn't affect result. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01233">1233</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="ps_util_cpp-source.html#l00323">NL3D::CPSUtil::transformAABBox</a>(), and <a class="el" href="trav_scene_h-source.html#l00139">NL3D::ITravCameraScene::update</a>(). </td> + </tr> +</table> +<a name="a40" doxytag="NLMISC::CMatrix::normalize"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::normalize ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> <em>ro</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Normalize the matrix so that the rotation part is now an orthonormal basis, ie a rotation with no scale. +<p> +NB: projection part and translation part are not modified. <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>pref</em> + </td><td> + the preference axis order to normalize. ZYX means that K direction will be kept, and the plane JK will be used to lead the I vector. </td></tr> +</table> +</dl><dl compact><dt> +<b>Returns: </b><dd> + false if One of the vector basis is null. true otherwise. </dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01159">1159</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="quad_tree_h-source.html#l00817">NL3D::CQuadTree::selectRay</a>(), and <a class="el" href="quad_tree_h-source.html#l00848">NL3D::CQuadTree::selectSegment</a>(). </td> + </tr> +</table> +<a name="a44" doxytag="NLMISC::CMatrix::operator *"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVectorH.html">CVectorH</a> NLMISC::CMatrix::operator * ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVectorH.html">CVectorH</a> & <em>v</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Multiply with an homogenous vector. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01279">1279</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a43" doxytag="NLMISC::CMatrix::operator *"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CVector.html">CVector</a> NLMISC::CMatrix::operator * ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) const<code> [inline]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Multiply a point. <dl compact><dt> +<b>See also: </b><dd> + <a class="el" href="class_NLMISC__CMatrix.html#a42">mulPoint</a>().</dl> +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00285">285</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="a34" doxytag="NLMISC::CMatrix::operator *"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +CMatrix NLMISC::CMatrix::operator * ( + </b></td> + <td valign="bottom"><b> +const CMatrix & <em>m</em> ) const + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00728">728</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a35" doxytag="NLMISC::CMatrix::operator *="></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +CMatrix & NLMISC::CMatrix::operator *= ( + </b></td> + <td valign="bottom"><b> +const CMatrix & <em>m</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00896">896</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a2" doxytag="NLMISC::CMatrix::operator="></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +CMatrix & NLMISC::CMatrix::operator= ( + </b></td> + <td valign="bottom"><b> +const CMatrix & <em>m</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +operator=. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00166">166</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a12" doxytag="NLMISC::CMatrix::resetProj"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::resetProj ( + </b></td> + <td valign="bottom"><b> +) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Reset the Projection component to 0 0 0 1. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00309">309</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a31" doxytag="NLMISC::CMatrix::rotate"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::rotate ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CQuat.html">CQuat</a> & <em>quat</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a quaternion rotation. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00662">662</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a30" doxytag="NLMISC::CMatrix::rotate"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::rotate ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> <em>ro</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a euler rotation. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>v</em> + </td><td> + a vector of 3 angle (in radian), giving rotation around each axis (x,y,z) </td></tr> +<tr><td valign=top><em>ro</em> + </td><td> + the order of transformation applied. if ro==XYZ, then the transform is M=M*Rx*Ry*Rz </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00644">644</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a27" doxytag="NLMISC::CMatrix::rotateX"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::rotateX ( + </b></td> + <td valign="bottom"><b> +float <em>a</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a rotation on axis X to the matrix. +<p> +same as M=M*Rx <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>a</em> + </td><td> + angle (in radian). </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00524">524</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a28" doxytag="NLMISC::CMatrix::rotateY"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::rotateY ( + </b></td> + <td valign="bottom"><b> +float <em>a</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a rotation on axis Y to the matrix. +<p> +same as M=M*Ry <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>a</em> + </td><td> + angle (in radian). </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00564">564</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a29" doxytag="NLMISC::CMatrix::rotateZ"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::rotateZ ( + </b></td> + <td valign="bottom"><b> +float <em>a</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a rotation on axis Z to the matrix. +<p> +same as M=M*Rz <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>a</em> + </td><td> + angle (in radian). </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00604">604</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a33" doxytag="NLMISC::CMatrix::scale"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::scale ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a non-uniform scale to the matrix. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00695">695</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a32" doxytag="NLMISC::CMatrix::scale"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::scale ( + </b></td> + <td valign="bottom"><b> +float <em>f</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a uniform scale to the matrix. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00670">670</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a45" doxytag="NLMISC::CMatrix::serial"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::serial ( + </b></td> + <td valign="bottom"><b> +<a class="el" href="class_NLMISC__IStream.html">IStream</a> & <em>f</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01450">1450</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a13" doxytag="NLMISC::CMatrix::set"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::set ( + </b></td> + <td valign="bottom"><b> +const float <em>m44</em>[16] ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the 4*4 matrix. +<p> +Avoid it. It implies low compute since no check is done on rotation matrix to see what type of matrix it is (identity, rotation, scale, uniform scale). BUT check are made to see if it has translation or projection components. <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>m44</em> + </td><td> + the 4*4 column matrix (4x4 matrix stored in column-major order as 16 consecutive values) </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00320">320</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a9" doxytag="NLMISC::CMatrix::setPos"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setPos ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Translation component. +<p> +v==Null is tested to see if the matrix now have a translation component. <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>v</em> + </td><td> + the translation vector. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00261">261</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a11" doxytag="NLMISC::CMatrix::setProj"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setProj ( + </b></td> + <td valign="bottom"><b> +const float <em>proj</em>[4] ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Projection component. +<p> +Proj is tested to see if the matrix now have a projection component. <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>proj</em> + </td><td> + the 4th line of the matrix. Set it to 0 0 0 1 to reset it to default. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00291">291</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a8" doxytag="NLMISC::CMatrix::setRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setRot ( + </b></td> + <td valign="bottom"><b> +const CMatrix & <em>matrix</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Rotation/Scale matrix (base) with the rotation part of an other matrix. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>matrix</em> + </td><td> + the matrix to copy rot part. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00241">241</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a7" doxytag="NLMISC::CMatrix::setRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setRot ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CQuat.html">CQuat</a> & <em>quat</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Rotation matrix (base) as a Quaternion rotation matrix. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>quat</em> + </td><td> + a UNIT qauternion </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01338">1338</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a6" doxytag="NLMISC::CMatrix::setRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setRot ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +<a class="el" href="class_NLMISC__CMatrix.html#s6">TRotOrder</a> <em>ro</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Rotation matrix (base) as a Euler rotation matrix. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>v</em> + </td><td> + a vector of 3 angle (in radian), giving rotation around each axis (x,y,z) </td></tr> +<tr><td valign=top><em>ro</em> + </td><td> + the order of transformation applied. if ro==XYZ, then the transform is M=M*Rx*Ry*Rz </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00229">229</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a5" doxytag="NLMISC::CMatrix::setRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setRot ( + </b></td> + <td valign="bottom"><b> +const float <em>m33</em>[9], + </b></td> + </tr> + <tr> + <td></td> + <td><b> +bool <em>hintNoScale</em> = false ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Rotation/Scale matrix (base). +<p> +Avoid it. It implies low compute since no check is done on m33 to see what type of matrix it is (identity, raotation, scale, uniform scale) <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>m33</em> + </td><td> + the 3*3 column rotation matrix. (3x3 matrix stored in column-major order as 9 consecutive values) </td></tr> +<tr><td valign=top><em>hintNoScale</em> + </td><td> + set it to true if you are sure that your rot matrix is a pure rot matrix with no scale. If set to true and your rotation is not an orthonormal basis, unpredictable result are excepted. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00218">218</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a4" doxytag="NLMISC::CMatrix::setRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::setRot ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>i</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>j</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>k</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +bool <em>hintNoScale</em> = false ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Explicit setup the Rotation/Scale matrix (base). +<p> +Avoid it. It implies low compute since no check is done on base to see what type of matrix it is (identity, rotation, scale, uniform scale...) <dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>i</em> + </td><td> + The I vector of the cartesian base. </td></tr> +<tr><td valign=top><em>j</em> + </td><td> + The J vector of the cartesian base. </td></tr> +<tr><td valign=top><em>k</em> + </td><td> + The K vector of the cartesian base. </td></tr> +<tr><td valign=top><em>hintNoScale</em> + </td><td> + set it to true if you are sure that your rot matrix is a pure rot matrix with no scale. If set to true and your rotation is not an orthonormal basis, unpredictable result are excepted. </td></tr> +</table> +</dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00207">207</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. +<p> +Referenced by <a class="el" href="track_tcb_h-source.html#l00429">CTrackKeyFramerTCB< CKeyTCBQuat,NLMISC::CAngleAxis >::compile</a>(), <a class="el" href="quad_tree_h-source.html#l00817">NL3D::CQuadTree::selectRay</a>(), and <a class="el" href="quad_tree_h-source.html#l00848">NL3D::CQuadTree::selectSegment</a>(). </td> + </tr> +</table> +<a name="c1" doxytag="NLMISC::CMatrix::slowInvert33"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::slowInvert33 ( + </b></td> + <td valign="bottom"><b> +CMatrix & <em>ret</em> ) const<code> [private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00987">987</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c2" doxytag="NLMISC::CMatrix::slowInvert44"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +bool NLMISC::CMatrix::slowInvert44 ( + </b></td> + <td valign="bottom"><b> +CMatrix & <em>ret</em> ) const<code> [private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01020">1020</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c12" doxytag="NLMISC::CMatrix::testExpandProj"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::testExpandProj ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00147">147</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c10" doxytag="NLMISC::CMatrix::testExpandRot"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::testExpandRot ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00120">120</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="c11" doxytag="NLMISC::CMatrix::testExpandTrans"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::testExpandTrans ( + </b></td> + <td valign="bottom"><b> +) const<code> [inline, private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00134">134</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a26" doxytag="NLMISC::CMatrix::translate"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::translate ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CVector.html">CVector</a> & <em>v</em> ) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Apply a translation to the matrix. same as M=M*T. +<p> +<dl compact><dt> +<b>Parameters: </b><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em>ro</em> + </td><td> + the RotOrder which show how to get the euler. </td></tr> +</table> +</dl><dl compact><dt> +<b>Returns: </b><dd> + one solution of Euler angle. A <a class="el" href="class_NLMISC__CMatrix.html#a30">rotate</a>() with this value and the RotOrder ro will give the same matrix. </dl><dl compact><dt> +<b><a class="el" href="todo.html#_todo000010">Todo: </a></b><dd> + TODO. </dl> +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00491">491</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a37" doxytag="NLMISC::CMatrix::transpose"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::transpose ( + </b></td> + <td valign="bottom"><b> +) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +transpose the matrix (swap columns/lines). +<p> +NB: this transpose the 4*4 matrix entirely (even proj/translate part). +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00925">925</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="a36" doxytag="NLMISC::CMatrix::transpose3x3"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +void NLMISC::CMatrix::transpose3x3 ( + </b></td> + <td valign="bottom"><b> +) + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +transpose the rotation part only of the matrix (swap columns/lines). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00912">912</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a name="l0" doxytag="NLMISC::CMatrix::operator *"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="class_NLMISC__CPlane.html">CPlane</a> operator * ( + </b></td> + <td valign="bottom"><b> +const <a class="el" href="class_NLMISC__CPlane.html">CPlane</a> & <em>p</em>, + </b></td> + </tr> + <tr> + <td></td> + <td><b> +const CMatrix & <em>m</em> )<code> [friend]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Plane (line vector) multiplication. +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l01298">1298</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<hr><h2>Member Data Documentation</h2> +<a name="p0" doxytag="NLMISC::CMatrix::Identity"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +const CMatrix NLMISC::CMatrix::Identity<code> [static]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The identity matrix. Same as <a class="el" href="class_NLMISC__CMatrix.html#a0">CMatrix</a>(). +<p> + +<p> +Definition at line <a class="el" href="matrix_cpp-source.html#l00039">39</a> of file <a class="el" href="matrix_cpp-source.html">matrix.cpp</a>. </td> + </tr> +</table> +<a name="o0" doxytag="NLMISC::CMatrix::M"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +float NLMISC::CMatrix::M[16]<code> [private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00309">309</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="o1" doxytag="NLMISC::CMatrix::Scale33"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +float NLMISC::CMatrix::Scale33<code> [private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00310">310</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<a name="o2" doxytag="NLMISC::CMatrix::StateBit"></a><p> +<table width="100%" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td class="md"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td nowrap valign="top"><b> +<a class="el" href="types_nl_h.html#a9">uint32</a> NLMISC::CMatrix::StateBit<code> [private]</code> + </b></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="matrix_h-source.html#l00311">311</a> of file <a class="el" href="matrix_h-source.html">matrix.h</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="matrix_h-source.html">matrix.h</a><li><a class="el" href="matrix_cpp-source.html">matrix.cpp</a></ul> + + +<!-- footer --> +<BR><FONT Size=+5> </FONT> +</TD> +<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD> +</TR> +</TABLE> +</BODY> +</HTML> |