Sophie

Sophie

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

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: csVector4T&lt; T &gt; Class Template 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>csVector4T&lt; T &gt; Class Template Reference<br>
<small>
[<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small>
</h1><!-- doxytag: class="csVector4T" -->A 4D vector with variable type components.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="vector4_8h-source.html">csgeom/vector4.h</a>&gt;</code>
<p>

<p>
<a href="classcsVector4T-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">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#cd0a31461660b38ad8acc264d8138701">Cross</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take cross product of two vectors and put result in this vector.  <a href="#cd0a31461660b38ad8acc264d8138701"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#0d18a9fad938fdc0897051b902634f6a">csVector4T</a> (const <a class="el" href="classcsVector3.html">csVector3</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert from a three-component vector. w is set to 1.  <a href="#0d18a9fad938fdc0897051b902634f6a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#f1d446c37e2058dbb1ad23d5a88e3f08">csVector4T</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy Constructor.  <a href="#f1d446c37e2058dbb1ad23d5a88e3f08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#913a2a976d9bf7547576889f81ddeb72">csVector4T</a> (const T &amp;ix, const T &amp;iy, const T &amp;iz=T(0), const T &amp;iw=T(1))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a new vector and initialize with the given values.  <a href="#913a2a976d9bf7547576889f81ddeb72"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#94c2b58b5ca3bfa2efbe7c91b40c0104">csVector4T</a> (const T &amp;<a class="el" href="classcsVector4T.html#24eec8bc27192ba645f549fd42f19a35">m</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a new initialized vector.  <a href="#94c2b58b5ca3bfa2efbe7c91b40c0104"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#a0e0607fa98a65601e3f02fdc0cb7f90">csVector4T</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a new vector.  <a href="#a0e0607fa98a65601e3f02fdc0cb7f90"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsString.html">csString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#672ffa5f9c4da6b48e803873666fa6d0">Description</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a textual representation of the vector in the form "x,y,z,w".  <a href="#672ffa5f9c4da6b48e803873666fa6d0"></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="classcsVector4T.html#90e16d37e3c9d87468ccc474bd250ecb">Get</a> (T *v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value of this vector.  <a href="#90e16d37e3c9d87468ccc474bd250ecb"></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="classcsVector4T.html#e0846e2cd9648f89142c2c4860592f80">IsZero</a> (T precision=SMALL_EPSILON) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query if the vector is zero.  <a href="#e0846e2cd9648f89142c2c4860592f80"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#a49d212f1f0031f55527f8edf2b823f2">Norm</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the norm of this vector.  <a href="#a49d212f1f0031f55527f8edf2b823f2"></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="classcsVector4T.html#e53da8f320f68f27090925eec714adce">Normalize</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale this vector to length = 1.0;.  <a href="#e53da8f320f68f27090925eec714adce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#d8fdd8d1a4285723722677cd40aa5326">operator *=</a> (T f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply this vector by a scalar.  <a href="#d8fdd8d1a4285723722677cd40aa5326"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#b9cfb5b6e3b7afe75e67b9d668227b9c">operator+</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unary + operator.  <a href="#b9cfb5b6e3b7afe75e67b9d668227b9c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#4a78b04e910129aa1ebbff9167020127">operator+=</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add another vector to this vector.  <a href="#4a78b04e910129aa1ebbff9167020127"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#c28c7b0b230a2544ffb15b2432e97795">operator-</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unary - operator.  <a href="#c28c7b0b230a2544ffb15b2432e97795"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#11c34397104aed750fdcf7e9125f32e4">operator-=</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Subtract another vector from this vector.  <a href="#11c34397104aed750fdcf7e9125f32e4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#120595b59a389df6453a0cbd26d75f75">operator/=</a> (T f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Divide this vector by a scalar.  <a href="#120595b59a389df6453a0cbd26d75f75"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename T2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a> &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#4df477f1e650a98ca866e29efb1cc147">operator=</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T2 &gt; &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator.  <a href="#4df477f1e650a98ca866e29efb1cc147"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#5b3e2bcbd130cdb3f18efbe4391d8250">operator[]</a> (size_t n)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns n-th component of the vector.  <a href="#5b3e2bcbd130cdb3f18efbe4391d8250"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#bbe782097f807029822153f394393773">operator[]</a> (size_t n) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns n-th component of the vector.  <a href="#bbe782097f807029822153f394393773"></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="classcsVector4T.html#a7e42d5d82912183e34bb5c1b8e563ca">Set</a> (T v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of this vector so that all components are the same.  <a href="#a7e42d5d82912183e34bb5c1b8e563ca"></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="classcsVector4T.html#e2fb28ec38119f57e968d8497117669d">Set</a> (T const *v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of this vector.  <a href="#e2fb28ec38119f57e968d8497117669d"></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="classcsVector4T.html#494174dcc21b589cf869ebfe63d92c95">Set</a> (<a class="el" href="classcsVector4T.html">csVector4T</a> const &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of this vector.  <a href="#494174dcc21b589cf869ebfe63d92c95"></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="classcsVector4T.html#99a82ef60b11e8e95f642851a097d414">Set</a> (T sx, T sy, T sz, T sw)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of this vector.  <a href="#99a82ef60b11e8e95f642851a097d414"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#85cc1ab68f21c1ee31e681cb129c8533">SquaredNorm</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the squared norm (magnitude) of this vector.  <a href="#85cc1ab68f21c1ee31e681cb129c8533"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#e61b5ae7f6935a0ef614449d3d176505">Unit</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the unit vector in the direction of this vector.  <a href="#e61b5ae7f6935a0ef614449d3d176505"></a><br></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 T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#3bd3b3fcb5952430ce50eaba6b6b6a5e">Norm</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the norm (magnitude) of a vector.  <a href="#3bd3b3fcb5952430ce50eaba6b6b6a5e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#e111f7359e4050770fc83c418dd7c475">Unit</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Normalizes a vector to a unit vector.  <a href="#e111f7359e4050770fc83c418dd7c475"></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="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#a05ea5663ab003bdf0ba8fae6a71b8cd">operator *</a> (int f, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a vector and a scalar int.  <a href="#a05ea5663ab003bdf0ba8fae6a71b8cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#c5f3ad8fefd56caedb0f83e0809939b8">operator *</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v, int f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a vector and a scalar int.  <a href="#c5f3ad8fefd56caedb0f83e0809939b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#34c75e2c8c0f0a8ed8b64fabb1b7142c">operator *</a> (float f, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a vector and a scalar.  <a href="#34c75e2c8c0f0a8ed8b64fabb1b7142c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#b40645cee5f89cdeffd36c6019c688bd">operator *</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v, T f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply a vector and a scalar.  <a href="#b40645cee5f89cdeffd36c6019c688bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#29425f68c0983120c21853dae3144992">operator *</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take the dot product of two vectors.  <a href="#29425f68c0983120c21853dae3144992"></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="classcsVector4T.html#f863d2cb1288f08476261778aa5f6522">operator!=</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if two vectors are not equal.  <a href="#f863d2cb1288f08476261778aa5f6522"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#d23b4c8ebb1c0f505485961cacae73da">operator%</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take the cross product of two vectors.  <a href="#d23b4c8ebb1c0f505485961cacae73da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#978dc93ce5b64ce2d19f45aff2f471a7">operator+</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add two vectors.  <a href="#978dc93ce5b64ce2d19f45aff2f471a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#e6baca786d1b6d6a6c4509d3f9072063">operator-</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Subtract two vectors.  <a href="#e6baca786d1b6d6a6c4509d3f9072063"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#4c42d576d88bad4bb529d5731efe2669">operator/</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v, int f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Divide a vector by a scalar int.  <a href="#4c42d576d88bad4bb529d5731efe2669"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#e01017d17157828443819441c1e9617b">operator/</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v, T f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Divide a vector by a scalar.  <a href="#e01017d17157828443819441c1e9617b"></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="classcsVector4T.html#bda9f87e324c693d6ee2707a39512a08">operator&lt;</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v, float f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if each component of a vector is less than a small epsilon value.  <a href="#bda9f87e324c693d6ee2707a39512a08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#ba4f8ba13e94b34d75584713adacd7cd">operator&lt;&lt;</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project one vector onto another.  <a href="#ba4f8ba13e94b34d75584713adacd7cd"></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="classcsVector4T.html#b788cd74ef690138930b369baa853282">operator==</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if two vectors are equal.  <a href="#b788cd74ef690138930b369baa853282"></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="classcsVector4T.html#58a82c38fff37566c2bdee763a7a47cb">operator&gt;</a> (float f, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if each component of a vector is less than a small epsilon value.  <a href="#58a82c38fff37566c2bdee763a7a47cb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4T.html">csVector4T</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsVector4T.html#63f74ff252fa4b89e55d9bfc9509b39e">operator&gt;&gt;</a> (const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v1, const <a class="el" href="classcsVector4T.html">csVector4T</a> &amp;v2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Project one vector onto another.  <a href="#63f74ff252fa4b89e55d9bfc9509b39e"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename T&gt;<br>
 class csVector4T&lt; T &gt;</h3>

A 4D vector with variable type components. 
<p>Definition at line <a class="el" href="vector4_8h-source.html#l00040">40</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a0e0607fa98a65601e3f02fdc0cb7f90"></a><!-- doxytag: member="csVector4T::csVector4T" ref="a0e0607fa98a65601e3f02fdc0cb7f90" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html">csVector4T</a>           </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>
Make a new vector. 
<p>
The vector is not initialized. This makes the code slightly faster. 
<p>Definition at line <a class="el" href="vector4_8h-source.html#l00073">73</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="94c2b58b5ca3bfa2efbe7c91b40c0104"></a><!-- doxytag: member="csVector4T::csVector4T" ref="94c2b58b5ca3bfa2efbe7c91b40c0104" args="(const T &amp;m)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html">csVector4T</a>           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make a new initialized vector. 
<p>
Creates a new vector and initializes it to m*&lt;1,1,1,1&gt;. To create a vector initialized to the zero vector, use csVector4(0) 
<p>Definition at line <a class="el" href="vector4_8h-source.html#l00080">80</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="913a2a976d9bf7547576889f81ddeb72"></a><!-- doxytag: member="csVector4T::csVector4T" ref="913a2a976d9bf7547576889f81ddeb72" args="(const T &amp;ix, const T &amp;iy, const T &amp;iz=T(0), const T &amp;iw=T(1))" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html">csVector4T</a>           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>ix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>iy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>iz</em> = <code>T(0)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>iw</em> = <code>T(1)</code></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>
Make a new vector and initialize with the given values. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00083">83</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f1d446c37e2058dbb1ad23d5a88e3f08"></a><!-- doxytag: member="csVector4T::csVector4T" ref="f1d446c37e2058dbb1ad23d5a88e3f08" args="(const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html">csVector4T</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &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>
Copy Constructor. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00088">88</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="0d18a9fad938fdc0897051b902634f6a"></a><!-- doxytag: member="csVector4T::csVector4T" ref="0d18a9fad938fdc0897051b902634f6a" args="(const csVector3 &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html">csVector4T</a>           </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>
Convert from a three-component vector. w is set to 1. 
<p>

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

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="cd0a31461660b38ad8acc264d8138701"></a><!-- doxytag: member="csVector4T::Cross" ref="cd0a31461660b38ad8acc264d8138701" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Cross           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Take cross product of two vectors and put result in this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00140">140</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="672ffa5f9c4da6b48e803873666fa6d0"></a><!-- doxytag: member="csVector4T::Description" ref="672ffa5f9c4da6b48e803873666fa6d0" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsString.html">csString</a> <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Description           </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>
Return a textual representation of the vector in the form "x,y,z,w". 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00105">105</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="90e16d37e3c9d87468ccc474bd250ecb"></a><!-- doxytag: member="csVector4T::Get" ref="90e16d37e3c9d87468ccc474bd250ecb" args="(T *v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Get           </td>
          <td>(</td>
          <td class="paramtype">T *&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>
Get the value of this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00262">262</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e0846e2cd9648f89142c2c4860592f80"></a><!-- doxytag: member="csVector4T::IsZero" ref="e0846e2cd9648f89142c2c4860592f80" args="(T precision=SMALL_EPSILON) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::IsZero           </td>
          <td>(</td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>precision</em> = <code>SMALL_EPSILON</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query if the vector is zero. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00296">296</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3bd3b3fcb5952430ce50eaba6b6b6a5e"></a><!-- doxytag: member="csVector4T::Norm" ref="3bd3b3fcb5952430ce50eaba6b6b6a5e" args="(const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Norm           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the norm (magnitude) of a vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00279">279</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a49d212f1f0031f55527f8edf2b823f2"></a><!-- doxytag: member="csVector4T::Norm" ref="a49d212f1f0031f55527f8edf2b823f2" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Norm           </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 the norm of this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00265">265</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00279">csVector4T&lt; float &gt;::Norm()</a>, and <a class="el" href="vector4_8h-source.html#l00276">csVector4T&lt; float &gt;::Unit()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e53da8f320f68f27090925eec714adce"></a><!-- doxytag: member="csVector4T::Normalize" ref="e53da8f320f68f27090925eec714adce" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Normalize           </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>
Scale this vector to length = 1.0;. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00285">285</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="d8fdd8d1a4285723722677cd40aa5326"></a><!-- doxytag: member="csVector4T::operator *=" ref="d8fdd8d1a4285723722677cd40aa5326" args="(T f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&amp; <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator *=           </td>
          <td>(</td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>f</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply this vector by a scalar. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00235">235</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b9cfb5b6e3b7afe75e67b9d668227b9c"></a><!-- doxytag: member="csVector4T::operator+" ref="b9cfb5b6e3b7afe75e67b9d668227b9c" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator+           </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>
Unary + operator. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00243">243</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4a78b04e910129aa1ebbff9167020127"></a><!-- doxytag: member="csVector4T::operator+=" ref="4a78b04e910129aa1ebbff9167020127" args="(const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&amp; <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator+=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &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>
Add another vector to this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00213">213</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c28c7b0b230a2544ffb15b2432e97795"></a><!-- doxytag: member="csVector4T::operator-" ref="c28c7b0b230a2544ffb15b2432e97795" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator-           </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>
Unary - operator. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00246">246</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="11c34397104aed750fdcf7e9125f32e4"></a><!-- doxytag: member="csVector4T::operator-=" ref="11c34397104aed750fdcf7e9125f32e4" args="(const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&amp; <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator-=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &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>
Subtract another vector from this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00224">224</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="120595b59a389df6453a0cbd26d75f75"></a><!-- doxytag: member="csVector4T::operator/=" ref="120595b59a389df6453a0cbd26d75f75" args="(T f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&amp; <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator/=           </td>
          <td>(</td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>f</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Divide this vector by a scalar. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00239">239</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4df477f1e650a98ca866e29efb1cc147"></a><!-- doxytag: member="csVector4T::operator=" ref="4df477f1e650a98ca866e29efb1cc147" args="(const csVector4T&lt; T2 &gt; &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<div class="memtemplate">
template&lt;typename T2&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a>&amp; <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T2 &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Assignment operator. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00095">95</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5b3e2bcbd130cdb3f18efbe4391d8250"></a><!-- doxytag: member="csVector4T::operator[]" ref="5b3e2bcbd130cdb3f18efbe4391d8250" args="(size_t n)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">float&amp; <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator[]           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns n-th component of the vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00209">209</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="bbe782097f807029822153f394393773"></a><!-- doxytag: member="csVector4T::operator[]" ref="bbe782097f807029822153f394393773" args="(size_t n) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::operator[]           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns n-th component of the vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00201">201</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a7e42d5d82912183e34bb5c1b8e563ca"></a><!-- doxytag: member="csVector4T::Set" ref="a7e42d5d82912183e34bb5c1b8e563ca" args="(T v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Set           </td>
          <td>(</td>
          <td class="paramtype">T&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 the value of this vector so that all components are the same. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00259">259</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e2fb28ec38119f57e968d8497117669d"></a><!-- doxytag: member="csVector4T::Set" ref="e2fb28ec38119f57e968d8497117669d" args="(T const *v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Set           </td>
          <td>(</td>
          <td class="paramtype">T const *&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 the value of this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00256">256</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="494174dcc21b589cf869ebfe63d92c95"></a><!-- doxytag: member="csVector4T::Set" ref="494174dcc21b589cf869ebfe63d92c95" args="(csVector4T const &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Set           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; const &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 the value of this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00253">253</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="99a82ef60b11e8e95f642851a097d414"></a><!-- doxytag: member="csVector4T::Set" ref="99a82ef60b11e8e95f642851a097d414" args="(T sx, T sy, T sz, T sw)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Set           </td>
          <td>(</td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>sx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>sy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>sz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>sw</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>
Set the value of this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00249">249</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="85cc1ab68f21c1ee31e681cb129c8533"></a><!-- doxytag: member="csVector4T::SquaredNorm" ref="85cc1ab68f21c1ee31e681cb129c8533" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::SquaredNorm           </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>
Return the squared norm (magnitude) of this vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00268">268</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e111f7359e4050770fc83c418dd7c475"></a><!-- doxytag: member="csVector4T::Unit" ref="e111f7359e4050770fc83c418dd7c475" args="(const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classcsVector4T.html">csVector4T</a> <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Unit           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Normalizes a vector to a unit vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00282">282</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e61b5ae7f6935a0ef614449d3d176505"></a><!-- doxytag: member="csVector4T::Unit" ref="e61b5ae7f6935a0ef614449d3d176505" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::Unit           </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 the unit vector in the direction of this vector. 
<p>
Attempting to normalize a zero-vector will result in a divide by zero error. This is as it should be... fix the calling code. 
<p>Definition at line <a class="el" href="vector4_8h-source.html#l00276">276</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00282">csVector4T&lt; float &gt;::Unit()</a>.</p>

</div>
</div><p>
<hr><h2>Friends And Related Function Documentation</h2>
<a class="anchor" name="a05ea5663ab003bdf0ba8fae6a71b8cd"></a><!-- doxytag: member="csVector4T::operator *" ref="a05ea5663ab003bdf0ba8fae6a71b8cd" args="(int f, const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &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>
Multiply a vector and a scalar int. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00161">161</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c5f3ad8fefd56caedb0f83e0809939b8"></a><!-- doxytag: member="csVector4T::operator *" ref="c5f3ad8fefd56caedb0f83e0809939b8" args="(const csVector4T &amp;v, int f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>f</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 vector and a scalar int. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00157">157</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="34c75e2c8c0f0a8ed8b64fabb1b7142c"></a><!-- doxytag: member="csVector4T::operator *" ref="34c75e2c8c0f0a8ed8b64fabb1b7142c" args="(float f, const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &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>
Multiply a vector and a scalar. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00153">153</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b40645cee5f89cdeffd36c6019c688bd"></a><!-- doxytag: member="csVector4T::operator *" ref="b40645cee5f89cdeffd36c6019c688bd" args="(const csVector4T &amp;v, T f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>f</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 vector and a scalar. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00149">149</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="29425f68c0983120c21853dae3144992"></a><!-- doxytag: member="csVector4T::operator *" ref="29425f68c0983120c21853dae3144992" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">float operator *           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Take the dot product of two vectors. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00124">124</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f863d2cb1288f08476261778aa5f6522"></a><!-- doxytag: member="csVector4T::operator!=" ref="f863d2cb1288f08476261778aa5f6522" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool operator!=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Check if two vectors are not equal. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00177">177</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="d23b4c8ebb1c0f505485961cacae73da"></a><!-- doxytag: member="csVector4T::operator%" ref="d23b4c8ebb1c0f505485961cacae73da" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator%           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Take the cross product of two vectors. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00129">129</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="978dc93ce5b64ce2d19f45aff2f471a7"></a><!-- doxytag: member="csVector4T::operator+" ref="978dc93ce5b64ce2d19f45aff2f471a7" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator+           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Add two vectors. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00113">113</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e6baca786d1b6d6a6c4509d3f9072063"></a><!-- doxytag: member="csVector4T::operator-" ref="e6baca786d1b6d6a6c4509d3f9072063" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator-           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Subtract two vectors. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00118">118</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4c42d576d88bad4bb529d5731efe2669"></a><!-- doxytag: member="csVector4T::operator/" ref="4c42d576d88bad4bb529d5731efe2669" args="(const csVector4T &amp;v, int f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator/           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>f</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>
Divide a vector by a scalar int. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00169">169</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e01017d17157828443819441c1e9617b"></a><!-- doxytag: member="csVector4T::operator/" ref="e01017d17157828443819441c1e9617b" args="(const csVector4T &amp;v, T f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator/           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>f</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>
Divide a vector by a scalar. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00165">165</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="bda9f87e324c693d6ee2707a39512a08"></a><!-- doxytag: member="csVector4T::operator&lt;" ref="bda9f87e324c693d6ee2707a39512a08" args="(const csVector4T &amp;v, float f)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool operator&lt;           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>f</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>
Test if each component of a vector is less than a small epsilon value. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00189">189</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ba4f8ba13e94b34d75584713adacd7cd"></a><!-- doxytag: member="csVector4T::operator&lt;&lt;" ref="ba4f8ba13e94b34d75584713adacd7cd" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator&lt;&lt;           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Project one vector onto another. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00185">185</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b788cd74ef690138930b369baa853282"></a><!-- doxytag: member="csVector4T::operator==" ref="b788cd74ef690138930b369baa853282" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool operator==           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Check if two vectors are equal. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00173">173</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="58a82c38fff37566c2bdee763a7a47cb"></a><!-- doxytag: member="csVector4T::operator&gt;" ref="58a82c38fff37566c2bdee763a7a47cb" args="(float f, const csVector4T &amp;v)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool operator&gt;           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &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>
Test if each component of a vector is less than a small epsilon value. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00193">193</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="63f74ff252fa4b89e55d9bfc9509b39e"></a><!-- doxytag: member="csVector4T::operator&gt;&gt;" ref="63f74ff252fa4b89e55d9bfc9509b39e" args="(const csVector4T &amp;v1, const csVector4T &amp;v2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4T.html">csVector4T</a> operator&gt;&gt;           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>v2</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>
Project one vector onto another. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00181">181</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="24eec8bc27192ba645f549fd42f19a35"></a><!-- doxytag: member="csVector4T::m" ref="24eec8bc27192ba645f549fd42f19a35" args="[4]" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html#24eec8bc27192ba645f549fd42f19a35">m</a>[4]          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
All components. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00060">60</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00201">csVector4T&lt; float &gt;::operator[]()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c29bd016ab27d5052b7f56429b586f9f"></a><!-- doxytag: member="csVector4T::w" ref="c29bd016ab27d5052b7f56429b586f9f" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html#c29bd016ab27d5052b7f56429b586f9f">w</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The W component of the vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00056">56</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00140">csVector4T&lt; float &gt;::Cross()</a>, <a class="el" href="vector4_8h-source.html#l00105">csVector4T&lt; float &gt;::Description()</a>, <a class="el" href="vector4_8h-source.html#l00262">csVector4T&lt; float &gt;::Get()</a>, <a class="el" href="vector4_8h-source.html#l00296">csVector4T&lt; float &gt;::IsZero()</a>, <a class="el" href="vector4_8h-source.html#l00265">csVector4T&lt; float &gt;::Norm()</a>, <a class="el" href="vector4_8h-source.html#l00285">csVector4T&lt; float &gt;::Normalize()</a>, <a class="el" href="vector4_8h-source.html#l00235">csVector4T&lt; float &gt;::operator *=()</a>, <a class="el" href="vector4_8h-source.html#l00213">csVector4T&lt; float &gt;::operator+=()</a>, <a class="el" href="vector4_8h-source.html#l00246">csVector4T&lt; float &gt;::operator-()</a>, <a class="el" href="vector4_8h-source.html#l00224">csVector4T&lt; float &gt;::operator-=()</a>, <a class="el" href="vector4_8h-source.html#l00239">csVector4T&lt; float &gt;::operator/=()</a>, <a class="el" href="vector4_8h-source.html#l00336">csVector4::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00095">csVector4T&lt; float &gt;::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00249">csVector4T&lt; float &gt;::Set()</a>, <a class="el" href="shadervar_8h-source.html#l00388">csShaderVariable::SetValue()</a>, and <a class="el" href="vector4_8h-source.html#l00268">csVector4T&lt; float &gt;::SquaredNorm()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ad1a8ada36cb80143840af37a73b2407"></a><!-- doxytag: member="csVector4T::x" ref="ad1a8ada36cb80143840af37a73b2407" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html#ad1a8ada36cb80143840af37a73b2407">x</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The X component of the vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00050">50</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00140">csVector4T&lt; float &gt;::Cross()</a>, <a class="el" href="vector4_8h-source.html#l00105">csVector4T&lt; float &gt;::Description()</a>, <a class="el" href="vector4_8h-source.html#l00262">csVector4T&lt; float &gt;::Get()</a>, <a class="el" href="vector4_8h-source.html#l00296">csVector4T&lt; float &gt;::IsZero()</a>, <a class="el" href="vector4_8h-source.html#l00265">csVector4T&lt; float &gt;::Norm()</a>, <a class="el" href="vector4_8h-source.html#l00285">csVector4T&lt; float &gt;::Normalize()</a>, <a class="el" href="vector4_8h-source.html#l00235">csVector4T&lt; float &gt;::operator *=()</a>, <a class="el" href="vector4_8h-source.html#l00213">csVector4T&lt; float &gt;::operator+=()</a>, <a class="el" href="vector4_8h-source.html#l00246">csVector4T&lt; float &gt;::operator-()</a>, <a class="el" href="vector4_8h-source.html#l00224">csVector4T&lt; float &gt;::operator-=()</a>, <a class="el" href="vector4_8h-source.html#l00239">csVector4T&lt; float &gt;::operator/=()</a>, <a class="el" href="vector4_8h-source.html#l00336">csVector4::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00095">csVector4T&lt; float &gt;::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00249">csVector4T&lt; float &gt;::Set()</a>, <a class="el" href="shadervar_8h-source.html#l00388">csShaderVariable::SetValue()</a>, and <a class="el" href="vector4_8h-source.html#l00268">csVector4T&lt; float &gt;::SquaredNorm()</a>.</p>

</div>
</div><p>
<a class="anchor" name="a41eca09f79d2ca88992c2f2afb57010"></a><!-- doxytag: member="csVector4T::y" ref="a41eca09f79d2ca88992c2f2afb57010" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html#a41eca09f79d2ca88992c2f2afb57010">y</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The Y component of the vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00052">52</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00140">csVector4T&lt; float &gt;::Cross()</a>, <a class="el" href="vector4_8h-source.html#l00105">csVector4T&lt; float &gt;::Description()</a>, <a class="el" href="vector4_8h-source.html#l00262">csVector4T&lt; float &gt;::Get()</a>, <a class="el" href="vector4_8h-source.html#l00296">csVector4T&lt; float &gt;::IsZero()</a>, <a class="el" href="vector4_8h-source.html#l00265">csVector4T&lt; float &gt;::Norm()</a>, <a class="el" href="vector4_8h-source.html#l00285">csVector4T&lt; float &gt;::Normalize()</a>, <a class="el" href="vector4_8h-source.html#l00235">csVector4T&lt; float &gt;::operator *=()</a>, <a class="el" href="vector4_8h-source.html#l00213">csVector4T&lt; float &gt;::operator+=()</a>, <a class="el" href="vector4_8h-source.html#l00246">csVector4T&lt; float &gt;::operator-()</a>, <a class="el" href="vector4_8h-source.html#l00224">csVector4T&lt; float &gt;::operator-=()</a>, <a class="el" href="vector4_8h-source.html#l00239">csVector4T&lt; float &gt;::operator/=()</a>, <a class="el" href="vector4_8h-source.html#l00336">csVector4::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00095">csVector4T&lt; float &gt;::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00249">csVector4T&lt; float &gt;::Set()</a>, <a class="el" href="shadervar_8h-source.html#l00388">csShaderVariable::SetValue()</a>, and <a class="el" href="vector4_8h-source.html#l00268">csVector4T&lt; float &gt;::SquaredNorm()</a>.</p>

</div>
</div><p>
<a class="anchor" name="16541cfffe9b0916819c50255a03250d"></a><!-- doxytag: member="csVector4T::z" ref="16541cfffe9b0916819c50255a03250d" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classcsVector4T.html">csVector4T</a>&lt; T &gt;::<a class="el" href="classcsVector4T.html#16541cfffe9b0916819c50255a03250d">z</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The Z component of the vector. 
<p>

<p>Definition at line <a class="el" href="vector4_8h-source.html#l00054">54</a> of file <a class="el" href="vector4_8h-source.html">vector4.h</a>.</p>

<p>Referenced by <a class="el" href="vector4_8h-source.html#l00140">csVector4T&lt; float &gt;::Cross()</a>, <a class="el" href="vector4_8h-source.html#l00105">csVector4T&lt; float &gt;::Description()</a>, <a class="el" href="vector4_8h-source.html#l00262">csVector4T&lt; float &gt;::Get()</a>, <a class="el" href="vector4_8h-source.html#l00296">csVector4T&lt; float &gt;::IsZero()</a>, <a class="el" href="vector4_8h-source.html#l00265">csVector4T&lt; float &gt;::Norm()</a>, <a class="el" href="vector4_8h-source.html#l00285">csVector4T&lt; float &gt;::Normalize()</a>, <a class="el" href="vector4_8h-source.html#l00235">csVector4T&lt; float &gt;::operator *=()</a>, <a class="el" href="vector4_8h-source.html#l00213">csVector4T&lt; float &gt;::operator+=()</a>, <a class="el" href="vector4_8h-source.html#l00246">csVector4T&lt; float &gt;::operator-()</a>, <a class="el" href="vector4_8h-source.html#l00224">csVector4T&lt; float &gt;::operator-=()</a>, <a class="el" href="vector4_8h-source.html#l00239">csVector4T&lt; float &gt;::operator/=()</a>, <a class="el" href="vector4_8h-source.html#l00336">csVector4::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00095">csVector4T&lt; float &gt;::operator=()</a>, <a class="el" href="vector4_8h-source.html#l00249">csVector4T&lt; float &gt;::Set()</a>, <a class="el" href="shadervar_8h-source.html#l00388">csShaderVariable::SetValue()</a>, and <a class="el" href="vector4_8h-source.html#l00268">csVector4T&lt; float &gt;::SquaredNorm()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csgeom/<a class="el" href="vector4_8h-source.html">vector4.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>