<!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 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 Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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 <<a class="el" href="transfrm_8h-source.html">csgeom/transfrm.h</a>></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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#5e0ff99eda1b2e313b62cdfae53df4af">csTransform</a> (const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &other2this, const <a class="el" href="classcsVector3.html">csVector3</a> &origin_pos)</td></tr> <tr><td class="mdescLeft"> </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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#1b862dc9f2a33edd0db4814b71c26860">csTransform</a> ()</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#d3c66a270ea801b216ad4fd096607a78">GetFront</a> () const </td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#6b9dc087bd425a9bc8fe1c35a127e7b3">GetO2T</a> () const </td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#ddaca558caeb0026f10074a43192a6b3">GetO2TTranslation</a> () const </td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#913ab986883038d0a450f07448d47c7d">GetOrigin</a> () const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4d6a7a7feb09461be10b3f003eea9a6d">GetRight</a> () const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#c4538999b1a4c4f22a5b6e609bad6dbd">GetUp</a> () const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#5a15bd122c990b1c1883ffd7321de32a">Identity</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#f126b287ca50a248475390d123872382">IsIdentity</a> () const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#3d4b13e4504f1a917ef4aabdacdc9916">Other2This</a> (const <a class="el" href="classcsSphere.html">csSphere</a> &s) const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#073728682a239d575fced5eda66d3582">Other2This</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &p, const <a class="el" href="classcsVector3.html">csVector3</a> &point, <a class="el" href="classcsPlane3.html">csPlane3</a> &result) const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7e7e86a7be53eeb199b64535a9bf966d">Other2This</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &p) const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#463655d40948540a2a5b2a867d5ba03c">Other2This</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &v) const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#9f8c8186b0ae8be90a0d5833613e6034">Other2ThisRelative</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &p) const </td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7a1a4a71f1a2406bca35ac678d53f92e">Other2ThisRelative</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &v) const </td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#8982b8df6c6260a98fbf9ac18ec0a681">SetO2T</a> (const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &m)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#1630a99216c2b2a39116f4c42ffbf649">SetO2TTranslation</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &v)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#5a12e267771bda04fee9a37c7d13d016">SetOrigin</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &v)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#23206c158aa7582116460d126a427df0">Translate</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &v)</td></tr> <tr><td class="mdescLeft"> </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 </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4db0685dce38c26fd1d73899ad1c71ea">GetReflect</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &pl)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7f5f51248980a3ebf56744520e6a3825">m_o2t</a></td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#155b35f82b56b9b7bbc8a0b2921d3c17">v_o2t</a></td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#60e6ee8df1d444d14fc1f56f6e3fdbc7">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &t1, const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &t2)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#ac27b926e132de1016e6c0fbf2751908">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &t, const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &m)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#7c812230b45e50d0b8c0bdd7aaf30686">operator *</a> (const <a class="el" href="classcsMatrix3.html">csMatrix3</a> &m, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#c492e12d914cb8d241d9826a1cd082e4">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &t, const <a class="el" href="classcsSphere.html">csSphere</a> &p)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#5eef825b283e9638612bb880eb533081">operator *</a> (const <a class="el" href="classcsSphere.html">csSphere</a> &p, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#09cc12cc1117311062f19c57540f84f1">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &t, const <a class="el" href="classcsPlane3.html">csPlane3</a> &p)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4b49e8b85eb6e85d6440a36cdbc0db72">operator *</a> (const <a class="el" href="classcsPlane3.html">csPlane3</a> &p, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#03a996bce11473e0ff5454e4091be6e6">operator *</a> (const <a class="el" href="classcsTransform.html">csTransform</a> &t, const <a class="el" href="classcsVector3.html">csVector3</a> &v)</td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#fadac80549823159cf11614e6ab6f787">operator *</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &v, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#cce593c44987783f7fdbfbe77da7c76a">operator *=</a> (<a class="el" href="classcsMatrix3.html">csMatrix3</a> &m, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#4f17b110048cdf0f6209f315808fb909">operator *=</a> (<a class="el" href="classcsSphere.html">csSphere</a> &p, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#13c128c30a8455bb524303a997d24364">operator *=</a> (<a class="el" href="classcsPlane3.html">csPlane3</a> &p, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsTransform.html#b04a64e3f3584c1aefac242cb7ec2e2d">operator *=</a> (<a class="el" href="classcsVector3.html">csVector3</a> &v, const <a class="el" href="classcsTransform.html">csTransform</a> &t)</td></tr> <tr><td class="mdescLeft"> </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 & 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> ) </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 &other2this, const csVector3 &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> & </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> & </td> <td class="paramname"> <em>origin_pos</em></td><td> </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> ) </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>& csTransform::GetO2T </td> <td>(</td> <td class="paramname"> </td> <td> ) </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>& csTransform::GetO2TTranslation </td> <td>(</td> <td class="paramname"> </td> <td> ) </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>& csTransform::GetOrigin </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 'other' space v to a vector in 'this' space.">Other2This()</a>. This is equivalent to calling <a class="el" href="classcsTransform.html#ddaca558caeb0026f10074a43192a6b3" title="Get 'other' to 'this' 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 &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> & </td> <td class="paramname"> <em>pl</em> </td> <td> ) </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> ) </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> ) </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> ) </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> ) </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 &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> & </td> <td class="paramname"> <em>s</em> </td> <td> ) </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 &p, const csVector3 &point, csPlane3 &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> & </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> & </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> & </td> <td class="paramname"> <em>result</em></td><td> </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 &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> & </td> <td class="paramname"> <em>p</em> </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> 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 &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> & </td> <td class="paramname"> <em>v</em> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>p</em> </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 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 &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> & </td> <td class="paramname"> <em>v</em> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>m</em> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>v</em> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>v</em> </td> <td> ) </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 'world' to 'this' 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 &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> & </td> <td class="paramname"> <em>v</em> </td> <td> ) </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 &t1, const csReversibleTransform &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> & </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> & </td> <td class="paramname"> <em>t2</em></td><td> </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 &t, const csMatrix3 &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> & </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> & </td> <td class="paramname"> <em>m</em></td><td> </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 &m, const csTransform &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> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &t, const csSphere &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> & </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> & </td> <td class="paramname"> <em>p</em></td><td> </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 &p, const csTransform &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> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &t, const csPlane3 &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> & </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> & </td> <td class="paramname"> <em>p</em></td><td> </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 &p, const csTransform &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> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &t, const csVector3 &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> & </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> & </td> <td class="paramname"> <em>v</em></td><td> </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 &v, const csTransform &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> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &m, const csTransform &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"><a class="el" href="classcsMatrix3.html">csMatrix3</a> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &p, const csTransform &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"><a class="el" href="classcsSphere.html">csSphere</a> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &p, const csTransform &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"><a class="el" href="classcsPlane3.html">csPlane3</a> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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 &v, const csTransform &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"><a class="el" href="classcsVector3.html">csVector3</a> & </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> & </td> <td class="paramname"> <em>t</em></td><td> </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>