Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 1108

crystalspace-doc-1.2.1-5mdv2010.0.i586.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>Crystal Space 1.2.1: csTransform Class Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csTransform Class Reference<br>
<small>
[<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small>
</h1><!-- doxytag: class="csTransform" -->A class which defines a transformation from one coordinate system to another.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="transfrm_8h-source.html">csgeom/transfrm.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for csTransform:</div>
<div class="dynsection">
<p><center><img src="classcsTransform__inherit__graph.png" border="0" usemap="#csTransform__inherit__map" alt="Inheritance graph"></center>
<map name="csTransform__inherit__map">
<area shape="rect" href="classcsReversibleTransform.html" title="A class which defines a reversible transformation from one coordinate system to another..." alt="" coords="5,84,171,111"><area shape="rect" href="classcsOrthoTransform.html" title="A class which defines a reversible transformation from one coordinate system to another..." alt="" coords="20,161,156,188"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classcsTransform-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 Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#5e0ff99eda1b2e313b62cdfae53df4af">csTransform</a> (const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;other2this, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;origin_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize with the given transformation.  <a href="#5e0ff99eda1b2e313b62cdfae53df4af"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#1b862dc9f2a33edd0db4814b71c26860">csTransform</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize with the identity transformation.  <a href="#1b862dc9f2a33edd0db4814b71c26860"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#d3c66a270ea801b216ad4fd096607a78">GetFront</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the front vector in 'other' space.  <a href="#d3c66a270ea801b216ad4fd096607a78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#6b9dc087bd425a9bc8fe1c35a127e7b3">GetO2T</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get 'other' to 'this' transformation matrix.  <a href="#6b9dc087bd425a9bc8fe1c35a127e7b3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#ddaca558caeb0026f10074a43192a6b3">GetO2TTranslation</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get 'other' to 'this' translation.  <a href="#ddaca558caeb0026f10074a43192a6b3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#913ab986883038d0a450f07448d47c7d">GetOrigin</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get origin of transformed coordinate system.  <a href="#913ab986883038d0a450f07448d47c7d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4d6a7a7feb09461be10b3f003eea9a6d">GetRight</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the right vector in 'other' space.  <a href="#4d6a7a7feb09461be10b3f003eea9a6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#c4538999b1a4c4f22a5b6e609bad6dbd">GetUp</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the up vector in 'other' space.  <a href="#c4538999b1a4c4f22a5b6e609bad6dbd"></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="classcsTransform.html#5a15bd122c990b1c1883ffd7321de32a">Identity</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset this transform to the identity transform.  <a href="#5a15bd122c990b1c1883ffd7321de32a"></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="classcsTransform.html#f126b287ca50a248475390d123872382">IsIdentity</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this transform is an identity transform.  <a href="#f126b287ca50a248475390d123872382"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsSphere.html">csSphere</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#3d4b13e4504f1a917ef4aabdacdc9916">Other2This</a> (const <a class="el" href="classcsSphere.html">csSphere</a> &amp;s) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a sphere in 'other' space to 'this' space.  <a href="#3d4b13e4504f1a917ef4aabdacdc9916"></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="classcsTransform.html#073728682a239d575fced5eda66d3582">Other2This</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;p, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;point, <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;result) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a plane in 'other' space to 'this' space.  <a href="#073728682a239d575fced5eda66d3582"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7e7e86a7be53eeb199b64535a9bf966d">Other2This</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;p) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a plane in 'other' space to 'this' space.  <a href="#7e7e86a7be53eeb199b64535a9bf966d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#463655d40948540a2a5b2a867d5ba03c">Other2This</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transform vector in 'other' space v to a vector in 'this' space.  <a href="#463655d40948540a2a5b2a867d5ba03c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#9f8c8186b0ae8be90a0d5833613e6034">Other2ThisRelative</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;p) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a plane in 'other' space to 'this' space.  <a href="#9f8c8186b0ae8be90a0d5833613e6034"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7a1a4a71f1a2406bca35ac678d53f92e">Other2ThisRelative</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert vector v in 'other' space to a vector in 'this' space.  <a href="#7a1a4a71f1a2406bca35ac678d53f92e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#8982b8df6c6260a98fbf9ac18ec0a681">SetO2T</a> (const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set 'other' to 'this' transformation matrix.  <a href="#8982b8df6c6260a98fbf9ac18ec0a681"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#1630a99216c2b2a39116f4c42ffbf649">SetO2TTranslation</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set 'world' to 'this' translation.  <a href="#1630a99216c2b2a39116f4c42ffbf649"></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="classcsTransform.html#5a12e267771bda04fee9a37c7d13d016">SetOrigin</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set origin of transformed coordinate system.  <a href="#5a12e267771bda04fee9a37c7d13d016"></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="classcsTransform.html#23206c158aa7582116460d126a427df0">Translate</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move the 'other' to 'this' translation by a specified amount.  <a href="#23206c158aa7582116460d126a427df0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dbc1a9a00f3be8ac0b8e753a12f3949f"></a><!-- doxytag: member="csTransform::~csTransform" ref="dbc1a9a00f3be8ac0b8e753a12f3949f" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#dbc1a9a00f3be8ac0b8e753a12f3949f">~csTransform</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classcsTransform.html">csTransform</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4db0685dce38c26fd1d73899ad1c71ea">GetReflect</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;pl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a transform that represents a mirroring across a plane.  <a href="#4db0685dce38c26fd1d73899ad1c71ea"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsMatrix3.html">csMatrix3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7f5f51248980a3ebf56744520e6a3825">m_o2t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transformation matrix from 'other' space to 'this' space.  <a href="#7f5f51248980a3ebf56744520e6a3825"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#155b35f82b56b9b7bbc8a0b2921d3c17">v_o2t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Location of the origin for 'this' space.  <a href="#155b35f82b56b9b7bbc8a0b2921d3c17"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsTransform.html">csTransform</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#60e6ee8df1d444d14fc1f56f6e3fdbc7">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t1, const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;t2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two transforms, rightmost first.  <a href="#60e6ee8df1d444d14fc1f56f6e3fdbc7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsMatrix3.html">csMatrix3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#ac27b926e132de1016e6c0fbf2751908">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t, const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a matrix with the transformation matrix.  <a href="#ac27b926e132de1016e6c0fbf2751908"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsMatrix3.html">csMatrix3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7c812230b45e50d0b8c0bdd7aaf30686">operator *</a> (const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;m, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a matrix with the transformation matrix.  <a href="#7c812230b45e50d0b8c0bdd7aaf30686"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsSphere.html">csSphere</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#c492e12d914cb8d241d9826a1cd082e4">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t, const <a class="el" href="classcsSphere.html">csSphere</a> &amp;p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a sphere.  <a href="#c492e12d914cb8d241d9826a1cd082e4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsSphere.html">csSphere</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#5eef825b283e9638612bb880eb533081">operator *</a> (const <a class="el" href="classcsSphere.html">csSphere</a> &amp;p, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a sphere.  <a href="#5eef825b283e9638612bb880eb533081"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#09cc12cc1117311062f19c57540f84f1">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t, const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a Plane.  <a href="#09cc12cc1117311062f19c57540f84f1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4b49e8b85eb6e85d6440a36cdbc0db72">operator *</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;p, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a Plane.  <a href="#4b49e8b85eb6e85d6440a36cdbc0db72"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#03a996bce11473e0ff5454e4091be6e6">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t, const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a 3D vector.  <a href="#03a996bce11473e0ff5454e4091be6e6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#fadac80549823159cf11614e6ab6f787">operator *</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a 3D vector.  <a href="#fadac80549823159cf11614e6ab6f787"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#cce593c44987783f7fdbfbe77da7c76a">operator *=</a> (<a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;m, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a matrix with the transformation matrix.  <a href="#cce593c44987783f7fdbfbe77da7c76a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsSphere.html">csSphere</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4f17b110048cdf0f6209f315808fb909">operator *=</a> (<a class="el" href="classcsSphere.html">csSphere</a> &amp;p, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a sphere.  <a href="#4f17b110048cdf0f6209f315808fb909"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#13c128c30a8455bb524303a997d24364">operator *=</a> (<a class="el" href="classcsPlane3.html">csPlane3</a> &amp;p, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a Plane.  <a href="#13c128c30a8455bb524303a997d24364"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#b04a64e3f3584c1aefac242cb7ec2e2d">operator *=</a> (<a class="el" href="classcsVector3.html">csVector3</a> &amp;v, const <a class="el" href="classcsTransform.html">csTransform</a> &amp;t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a transformation to a 3D vector.  <a href="#b04a64e3f3584c1aefac242cb7ec2e2d"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A class which defines a transformation from one coordinate system to another. 
<p>
The two coordinate systems are refered to as 'other' and 'this'. The transform defines a transformation from 'other' to 'this'. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00047">47</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="1b862dc9f2a33edd0db4814b71c26860"></a><!-- doxytag: member="csTransform::csTransform" ref="1b862dc9f2a33edd0db4814b71c26860" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csTransform::csTransform           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize with the identity transformation. 
<p>

<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00062">62</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5e0ff99eda1b2e313b62cdfae53df4af"></a><!-- doxytag: member="csTransform::csTransform" ref="5e0ff99eda1b2e313b62cdfae53df4af" args="(const csMatrix3 &amp;other2this, const csVector3 &amp;origin_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">csTransform::csTransform           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other2this</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>origin_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize with the given transformation. 
<p>
The transformation is given as a 3x3 matrix and a vector. The transformation is defined to mean T=M*(O-V) with T the vector in 'this' space, O the vector in 'other' space, M the transformation matrix and V the transformation vector. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00071">71</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="d3c66a270ea801b216ad4fd096607a78"></a><!-- doxytag: member="csTransform::GetFront" ref="d3c66a270ea801b216ad4fd096607a78" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csTransform::GetFront           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the front vector in 'other' space. 
<p>
This is basically equivalent to doing: tr.This2OtherRelative (<a class="el" href="classcsVector3.html" title="A 3D vector.">csVector3</a> (0, 0, 1)) but it is more efficient. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00307">307</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="6b9dc087bd425a9bc8fe1c35a127e7b3"></a><!-- doxytag: member="csTransform::GetO2T" ref="6b9dc087bd425a9bc8fe1c35a127e7b3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsMatrix3.html">csMatrix3</a>&amp; csTransform::GetO2T           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get 'other' to 'this' transformation matrix. 
<p>
This is the 3x3 matrix M from the transform equation T=M*(O-V). 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00108">108</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

<p>Referenced by <a class="el" href="glhelper_8h-source.html#l00035">makeGLMatrix()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ddaca558caeb0026f10074a43192a6b3"></a><!-- doxytag: member="csTransform::GetO2TTranslation" ref="ddaca558caeb0026f10074a43192a6b3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsVector3.html">csVector3</a>&amp; csTransform::GetO2TTranslation           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get 'other' to 'this' translation. 
<p>
This is the vector V from the transform equation T=M*(O-V). This is equivalent to calling <a class="el" href="classcsTransform.html#913ab986883038d0a450f07448d47c7d" title="Get origin of transformed coordinate system.">GetOrigin()</a>. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00115">115</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

<p>Referenced by <a class="el" href="glhelper_8h-source.html#l00035">makeGLMatrix()</a>.</p>

</div>
</div><p>
<a class="anchor" name="913ab986883038d0a450f07448d47c7d"></a><!-- doxytag: member="csTransform::GetOrigin" ref="913ab986883038d0a450f07448d47c7d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsVector3.html">csVector3</a>&amp; csTransform::GetOrigin           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get origin of transformed coordinate system. 
<p>
In other words, the vector that gets 0,0,0 after transforming with <a class="el" href="classcsTransform.html#463655d40948540a2a5b2a867d5ba03c" title="Transform vector in &#39;other&#39; space v to a vector in &#39;this&#39; space.">Other2This()</a>. This is equivalent to calling <a class="el" href="classcsTransform.html#ddaca558caeb0026f10074a43192a6b3" title="Get &#39;other&#39; to &#39;this&#39; translation.">GetO2TTranslation()</a>. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00122">122</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4db0685dce38c26fd1d73899ad1c71ea"></a><!-- doxytag: member="csTransform::GetReflect" ref="4db0685dce38c26fd1d73899ad1c71ea" args="(const csPlane3 &amp;pl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classcsTransform.html">csTransform</a> csTransform::GetReflect           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pl</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a transform that represents a mirroring across a plane. 
<p>
This function will return a <a class="el" href="classcsTransform.html" title="A class which defines a transformation from one coordinate system to another.">csTransform</a> which represents a reflection across the plane pl. 
</div>
</div><p>
<a class="anchor" name="4d6a7a7feb09461be10b3f003eea9a6d"></a><!-- doxytag: member="csTransform::GetRight" ref="4d6a7a7feb09461be10b3f003eea9a6d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csTransform::GetRight           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the right vector in 'other' space. 
<p>
This is basically equivalent to doing: tr.This2OtherRelative (<a class="el" href="classcsVector3.html" title="A 3D vector.">csVector3</a> (1, 0, 0)) but it is more efficient. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00327">327</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c4538999b1a4c4f22a5b6e609bad6dbd"></a><!-- doxytag: member="csTransform::GetUp" ref="c4538999b1a4c4f22a5b6e609bad6dbd" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csTransform::GetUp           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the up vector in 'other' space. 
<p>
This is basically equivalent to doing: tr.This2OtherRelative (<a class="el" href="classcsVector3.html" title="A 3D vector.">csVector3</a> (0, 1, 0)) but it is more efficient. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00317">317</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5a15bd122c990b1c1883ffd7321de32a"></a><!-- doxytag: member="csTransform::Identity" ref="5a15bd122c990b1c1883ffd7321de32a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csTransform::Identity           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reset this transform to the identity transform. 
<p>

<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00077">77</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f126b287ca50a248475390d123872382"></a><!-- doxytag: member="csTransform::IsIdentity" ref="f126b287ca50a248475390d123872382" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csTransform::IsIdentity           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns true if this transform is an identity transform. 
<p>
This tests all fields so don't call this before every operation. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00087">87</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

<p>References <a class="el" href="math3d__d_8h-source.html#l00036">ABS</a>.</p>

</div>
</div><p>
<a class="anchor" name="3d4b13e4504f1a917ef4aabdacdc9916"></a><!-- doxytag: member="csTransform::Other2This" ref="3d4b13e4504f1a917ef4aabdacdc9916" args="(const csSphere &amp;s) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsSphere.html">csSphere</a> csTransform::Other2This           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsSphere.html">csSphere</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a sphere in 'other' space to 'this' space. 
<p>

</div>
</div><p>
<a class="anchor" name="073728682a239d575fced5eda66d3582"></a><!-- doxytag: member="csTransform::Other2This" ref="073728682a239d575fced5eda66d3582" args="(const csPlane3 &amp;p, const csVector3 &amp;point, csPlane3 &amp;result) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csTransform::Other2This           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a plane in 'other' space to 'this' space. 
<p>
This is an optimized version for which a point on the new plane is known (point). The result is stored in 'result'. If 'p' is expressed as (N,D) (with N a vector for the A,B,C components of 'p') then this will return a new plane in 'result' which looks like (M*N,-(M*N)*point). 
</div>
</div><p>
<a class="anchor" name="7e7e86a7be53eeb199b64535a9bf966d"></a><!-- doxytag: member="csTransform::Other2This" ref="7e7e86a7be53eeb199b64535a9bf966d" args="(const csPlane3 &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a> csTransform::Other2This           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a plane in 'other' space to 'this' space. 
<p>
If 'p' is expressed as (N,D) (with N a vector for the A,B,C components of 'p') then this will return a new plane which looks like (M*N,D+(M*N)*(M*V)). 
</div>
</div><p>
<a class="anchor" name="463655d40948540a2a5b2a867d5ba03c"></a><!-- doxytag: member="csTransform::Other2This" ref="463655d40948540a2a5b2a867d5ba03c" args="(const csVector3 &amp;v) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csTransform::Other2This           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transform vector in 'other' space v to a vector in 'this' space. 
<p>
This is the basic transform function. This will calculate and return M*(v-V). 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00155">155</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="9f8c8186b0ae8be90a0d5833613e6034"></a><!-- doxytag: member="csTransform::Other2ThisRelative" ref="9f8c8186b0ae8be90a0d5833613e6034" args="(const csPlane3 &amp;p) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a> csTransform::Other2ThisRelative           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a plane in 'other' space to 'this' space. 
<p>
This version ignores translation. If 'p' is expressed as (N,D) (with N a vector for the A,B,C components of 'p') then this will return a new plane which looks like (M*N,D). 
</div>
</div><p>
<a class="anchor" name="7a1a4a71f1a2406bca35ac678d53f92e"></a><!-- doxytag: member="csTransform::Other2ThisRelative" ref="7a1a4a71f1a2406bca35ac678d53f92e" args="(const csVector3 &amp;v) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> csTransform::Other2ThisRelative           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert vector v in 'other' space to a vector in 'this' space. 
<p>
Use the origin of 'other' space. This will calculate and return M*v (so the translation or V of this transform is ignored). 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00165">165</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8982b8df6c6260a98fbf9ac18ec0a681"></a><!-- doxytag: member="csTransform::SetO2T" ref="8982b8df6c6260a98fbf9ac18ec0a681" args="(const csMatrix3 &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void csTransform::SetO2T           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set 'other' to 'this' transformation matrix. 
<p>
This is the 3x3 matrix M from the transform equation T=M*(O-V). 
<p>Reimplemented in <a class="el" href="classcsReversibleTransform.html#7adc3d305ab65cd54d4360d5fcf8c0f1">csReversibleTransform</a>, and <a class="el" href="classcsOrthoTransform.html#2c075ede84fdeddac05480eb5a39b85d">csOrthoTransform</a>.</p>

<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00128">128</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="1630a99216c2b2a39116f4c42ffbf649"></a><!-- doxytag: member="csTransform::SetO2TTranslation" ref="1630a99216c2b2a39116f4c42ffbf649" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void csTransform::SetO2TTranslation           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set 'world' to 'this' translation. 
<p>
This is the vector V from the transform equation T=M*(O-V). This is equivalent to calling <a class="el" href="classcsTransform.html#5a12e267771bda04fee9a37c7d13d016" title="Set origin of transformed coordinate system.">SetOrigin()</a>. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00135">135</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5a12e267771bda04fee9a37c7d13d016"></a><!-- doxytag: member="csTransform::SetOrigin" ref="5a12e267771bda04fee9a37c7d13d016" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csTransform::SetOrigin           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set origin of transformed coordinate system. 
<p>
This is equivalent to calling <a class="el" href="classcsTransform.html#1630a99216c2b2a39116f4c42ffbf649" title="Set &#39;world&#39; to &#39;this&#39; translation.">SetO2TTranslation()</a>. 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00141">141</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="23206c158aa7582116460d126a427df0"></a><!-- doxytag: member="csTransform::Translate" ref="23206c158aa7582116460d126a427df0" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csTransform::Translate           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Move the 'other' to 'this' translation by a specified amount. 
<p>
Basically this will add 'v' to the origin or translation of this transform so that the new transform looks like T=M*(O-(V+v)). 
<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00148">148</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="60e6ee8df1d444d14fc1f56f6e3fdbc7"></a><!-- doxytag: member="csTransform::operator *" ref="60e6ee8df1d444d14fc1f56f6e3fdbc7" args="(const csTransform &amp;t1, const csReversibleTransform &amp;t2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsTransform.html">csTransform</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Combine two transforms, rightmost first. 
<p>
Given the following definitions:<ul>
<li>'t1' expressed as T=t1.M*(O-t1.V)</li><li>'t2' expressed as T=t2.M*(O-t2.V)</li><li>t2.Minv is the inverse of t2.M</li></ul>
<p>
Then this will return a new transform T=(t1.M*t2.M)*(O-(t2.V+t2.Minv*t1.V)). 
<p>Reimplemented in <a class="el" href="classcsReversibleTransform.html#60e6ee8df1d444d14fc1f56f6e3fdbc7">csReversibleTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="ac27b926e132de1016e6c0fbf2751908"></a><!-- doxytag: member="csTransform::operator *" ref="ac27b926e132de1016e6c0fbf2751908" args="(const csTransform &amp;t, const csMatrix3 &amp;m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsMatrix3.html">csMatrix3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply a matrix with the transformation matrix. 
<p>
This will calculate and return M*m. 
</div>
</div><p>
<a class="anchor" name="7c812230b45e50d0b8c0bdd7aaf30686"></a><!-- doxytag: member="csTransform::operator *" ref="7c812230b45e50d0b8c0bdd7aaf30686" args="(const csMatrix3 &amp;m, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsMatrix3.html">csMatrix3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply a matrix with the transformation matrix. 
<p>
This will calculate and return m*M. 
</div>
</div><p>
<a class="anchor" name="c492e12d914cb8d241d9826a1cd082e4"></a><!-- doxytag: member="csTransform::operator *" ref="c492e12d914cb8d241d9826a1cd082e4" args="(const csTransform &amp;t, const csSphere &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsSphere.html">csSphere</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsSphere.html">csSphere</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a sphere. 
<p>
This corresponds exactly to calling t.Other2This(p). 
</div>
</div><p>
<a class="anchor" name="5eef825b283e9638612bb880eb533081"></a><!-- doxytag: member="csTransform::operator *" ref="5eef825b283e9638612bb880eb533081" args="(const csSphere &amp;p, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsSphere.html">csSphere</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsSphere.html">csSphere</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a sphere. 
<p>
This corresponds exactly to calling t.Other2This(p). 
</div>
</div><p>
<a class="anchor" name="09cc12cc1117311062f19c57540f84f1"></a><!-- doxytag: member="csTransform::operator *" ref="09cc12cc1117311062f19c57540f84f1" args="(const csTransform &amp;t, const csPlane3 &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a Plane. 
<p>
This corresponds exactly to calling t.Other2This(p). 
</div>
</div><p>
<a class="anchor" name="4b49e8b85eb6e85d6440a36cdbc0db72"></a><!-- doxytag: member="csTransform::operator *" ref="4b49e8b85eb6e85d6440a36cdbc0db72" args="(const csPlane3 &amp;p, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a Plane. 
<p>
This corresponds exactly to calling t.Other2This(p). 
</div>
</div><p>
<a class="anchor" name="03a996bce11473e0ff5454e4091be6e6"></a><!-- doxytag: member="csTransform::operator *" ref="03a996bce11473e0ff5454e4091be6e6" args="(const csTransform &amp;t, const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a 3D vector. 
<p>
This corresponds exactly to calling t.Other2This (v). 
</div>
</div><p>
<a class="anchor" name="fadac80549823159cf11614e6ab6f787"></a><!-- doxytag: member="csTransform::operator *" ref="fadac80549823159cf11614e6ab6f787" args="(const csVector3 &amp;v, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a 3D vector. 
<p>
This corresponds exactly to calling t.Other2This (v). 
</div>
</div><p>
<a class="anchor" name="cce593c44987783f7fdbfbe77da7c76a"></a><!-- doxytag: member="csTransform::operator *=" ref="cce593c44987783f7fdbfbe77da7c76a" args="(csMatrix3 &amp;m, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsMatrix3.html">csMatrix3</a>&amp; operator *=           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsMatrix3.html">csMatrix3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply a matrix with the transformation matrix. 
<p>
This corresponds exactly to m*=M. 
</div>
</div><p>
<a class="anchor" name="4f17b110048cdf0f6209f315808fb909"></a><!-- doxytag: member="csTransform::operator *=" ref="4f17b110048cdf0f6209f315808fb909" args="(csSphere &amp;p, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsSphere.html">csSphere</a>&amp; operator *=           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsSphere.html">csSphere</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a sphere. 
<p>
This corresponds exactly to calling p = t.Other2This(p). 
</div>
</div><p>
<a class="anchor" name="13c128c30a8455bb524303a997d24364"></a><!-- doxytag: member="csTransform::operator *=" ref="13c128c30a8455bb524303a997d24364" args="(csPlane3 &amp;p, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPlane3.html">csPlane3</a>&amp; operator *=           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsPlane3.html">csPlane3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a Plane. 
<p>
This corresponds exactly to calling p = t.Other2This(p). 
</div>
</div><p>
<a class="anchor" name="b04a64e3f3584c1aefac242cb7ec2e2d"></a><!-- doxytag: member="csTransform::operator *=" ref="b04a64e3f3584c1aefac242cb7ec2e2d" args="(csVector3 &amp;v, const csTransform &amp;t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a>&amp; operator *=           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsVector3.html">csVector3</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsTransform.html">csTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply a transformation to a 3D vector. 
<p>
This corresponds exactly to calling v = t.Other2This(v). 
</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="7f5f51248980a3ebf56744520e6a3825"></a><!-- doxytag: member="csTransform::m_o2t" ref="7f5f51248980a3ebf56744520e6a3825" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsMatrix3.html">csMatrix3</a> <a class="el" href="classcsTransform.html#7f5f51248980a3ebf56744520e6a3825">csTransform::m_o2t</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transformation matrix from 'other' space to 'this' space. 
<p>

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

<p>Referenced by <a class="el" href="transfrm_8h-source.html#l00658">csOrthoTransform::SetO2T()</a>, and <a class="el" href="transfrm_8h-source.html#l00666">csOrthoTransform::SetT2O()</a>.</p>

</div>
</div><p>
<a class="anchor" name="155b35f82b56b9b7bbc8a0b2921d3c17"></a><!-- doxytag: member="csTransform::v_o2t" ref="155b35f82b56b9b7bbc8a0b2921d3c17" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector3.html">csVector3</a> <a class="el" href="classcsTransform.html#155b35f82b56b9b7bbc8a0b2921d3c17">csTransform::v_o2t</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Location of the origin for 'this' space. 
<p>

<p>Definition at line <a class="el" href="transfrm_8h-source.html#l00053">53</a> of file <a class="el" href="transfrm_8h-source.html">transfrm.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csgeom/<a class="el" href="transfrm_8h-source.html">transfrm.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>