<html> <head><title>ClanLib Reference: CL_Vector</title></head> <body text=black link=blue vlink=#800080 bgcolor=white topmargin=0 leftmargin=0> <table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td><img border=0 src="../images/eyeheader-main-purple-a.gif" alt="ClanSoft logo" width=525 height=96></td></tr> <tr bgcolor=#dadada><td align=left valign=top><img border=0 src="../images/eyeheader-main-purple-b.gif" alt="ClanSoft logo" width=190 height=14></td><td align=right valign=top><img border=0 src="../images/clanlib_light.gif" width=42 height=14></td></tr></table> <table align=center border=0 cellspacing=10> <tr> <td><a href="entire_class_index.html">Entire Class Index</a></td> <td><a href="class_index.html">Main Class Index</a></td> <td><a href="cross_index.html">Cross Index</a></td> <td><a href="global_index.html">Global Index</a></td> </table><h1 align=center>Class CL_Vector</h1><p> <b> Vector class</b><br> Contained in: <a href="global_index.html">global</a><br> Derived from: <i>none</i> <br> Derived by: <i>none</i> <br>Group: Core (Math) <p> #include <ClanLib/core.h> <p> <hr noshade> <table border=0> <tr><td colspan=3><h3>public function member index:</h3></td> <tr valign=top><td align=left><h3>Construction:</h3></td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Vector.html#687"><tt><font color=blue><b>CL_Vector</b></font></tt></a></td><td><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>x</font></tt> = 0.0, <tt><font color=purple>float</font></tt> <tt><font color=blue>y</font></tt> = 0.0, <tt><font color=purple>float</font></tt> <tt><font color=blue>z</font></tt> = 0.0, <tt><font color=purple>float</font></tt> <tt><font color=blue>w</font></tt> = 1.0)</tt>;</td> <tr valign=top><td align=right><tt></tt> </td><td align=right><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>other</font></tt>)</tt>;</td> <tr valign=top><td align=left><h3>Attributes:</h3></td> <tr valign=top><td align=right><tt><tt><font color=purple>float</font></tt></tt> </td><td align=right><a href="CL_Vector.html#689"><tt><font color=blue><b>norm</b></font></tt></a></td><td><tt>() <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Vector.html#690"><tt><font color=blue><b>normalize</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>float</font></tt></tt> </td><td align=right><a href="CL_Vector.html#691"><tt><font color=blue><b>dot</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>float</font></tt></tt> </td><td align=right><a href="CL_Vector.html#692"><tt><font color=blue><b>angle</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> </td><td align=right><a href="CL_Vector.html#693"><tt><font color=blue><b>cross</b></font></tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> </td><td align=right><a href="CL_Vector.html#694"><tt><font color=blue><b>rotate</b></font></tt></a></td><td><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>angle</font></tt>, <tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>a</font></tt>) <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Vector.html#695"><tt><font color=blue><b>round</b></font></tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=left><h3>Operators:</h3></td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> </td><td align=right><a href="CL_Vector.html#696"><tt><font color=black><b>operator</b></font></tt><tt> * </tt></a></td><td><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>s</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Vector.html#698"><tt><font color=black><b>operator</b></font></tt><tt> += </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Vector.html#699"><tt><font color=black><b>operator</b></font></tt><tt> -= </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>void</font></tt></tt> </td><td align=right><a href="CL_Vector.html#700"><tt><font color=black><b>operator</b></font></tt><tt> * = </tt></a></td><td><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>s</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> </td><td align=right><a href="CL_Vector.html#701"><tt><font color=black><b>operator</b></font></tt><tt> + </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> </td><td align=right><a href="CL_Vector.html#702"><tt><font color=black><b>operator</b></font></tt><tt> - </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> </td><td align=right><a href="CL_Vector.html#703"><tt><font color=black><b>operator</b></font></tt><tt> - </tt></a></td><td><tt>()</tt>;</td> <tr valign=top><td align=right><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>&</tt> </td><td align=right><a href="CL_Vector.html#704"><tt><font color=black><b>operator</b></font></tt><tt> = </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Vector.html#705"><tt><font color=black><b>operator</b></font></tt><tt> == </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>int</font></tt></tt> </td><td align=right><a href="CL_Vector.html#706"><tt><font color=black><b>operator</b></font></tt><tt> != </tt></a></td><td><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;</td> <tr valign=top><td align=right><tt><tt><font color=purple>float</font></tt>&</tt> </td><td align=right><a href="CL_Vector.html#707"><tt><font color=black><b>operator</b></font></tt><tt> [] </tt></a></td><td><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>n</font></tt>)</tt>;</td> <tr><td> </td></table> <hr noshade> <h2>Description:</h2> This class provides basic functions and operators for working with vectors<br><p> <hr noshade> <h2>Function Member Descriptions:</h2> <a name="687"><font size=+1><b>CL_Vector::CL_Vector</b></font></a> - Constructor that initializes a vector<br><tt></tt> <a href="CL_Vector.html#687"><tt><font color=blue><b>CL_Vector</b></font></tt></a><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>x</font></tt> = 0.0, <tt><font color=purple>float</font></tt> <tt><font color=blue>y</font></tt> = 0.0, <tt><font color=purple>float</font></tt> <tt><font color=blue>z</font></tt> = 0.0, <tt><font color=purple>float</font></tt> <tt><font color=blue>w</font></tt> = 1.0)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="688"><font size=+1><b>CL_Vector::CL_Vector</b></font></a> - Copy Constructor<br><tt></tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>other</font></tt>)</tt>;<br><blockquote> other - vector to copy</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="692"><font size=+1><b>CL_Vector::angle</b></font></a> - Returns the angle between the current vector and v<br><tt><tt><font color=purple>float</font></tt></tt> <a href="CL_Vector.html#692"><tt><font color=blue><b>angle</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;<br><blockquote> v - other vector <br> Returns - the angle between the two vectors</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="693"><font size=+1><b>CL_Vector::cross</b></font></a> - Returns the cross product of the current vector and v<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> <a href="CL_Vector.html#693"><tt><font color=blue><b>cross</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;<br><blockquote> v - other vector <br> Returns - the cross product of the two vectors</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="691"><font size=+1><b>CL_Vector::dot</b></font></a> - Returns the dot product of the current vector and v<br><tt><tt><font color=purple>float</font></tt></tt> <a href="CL_Vector.html#691"><tt><font color=blue><b>dot</b></font></tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;<br><blockquote> v - other vector <br> Returns - the dot product of the two vectors</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="689"><font size=+1><b>CL_Vector::norm</b></font></a> - Returns the (euclid) norm of the vector. It only uses the x,y,z ordinates! <br><tt><tt><font color=purple>float</font></tt></tt> <a href="CL_Vector.html#689"><tt><font color=blue><b>norm</b></font></tt></a><tt>() <tt>const</tt></tt>;<br><blockquote> Returns - the euclid norm of the vector (in R^3)</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="690"><font size=+1><b>CL_Vector::normalize</b></font></a> - Normalizes the vector (not taking into account the w ordinate!)<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Vector.html#690"><tt><font color=blue><b>normalize</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="706"><font size=+1><b>CL_Vector::operator != </b></font></a> - Returns false if current vector equals v<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Vector.html#706"><tt><font color=black><b>operator</b></font></tt><tt> != </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;<br><blockquote> v - other vector<br> Returns - false if v equals the current vector, true otherwise</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="696"><font size=+1><b>CL_Vector::operator * </b></font></a> - Scalar product (vector * scalar)<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> <a href="CL_Vector.html#696"><tt><font color=black><b>operator</b></font></tt><tt> * </tt></a><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>s</font></tt>)</tt>;<br><blockquote> Returns - the scalar product</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="700"><font size=+1><b>CL_Vector::operator * = </b></font></a> - *= operator (scalar multiplication)<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Vector.html#700"><tt><font color=black><b>operator</b></font></tt><tt> * = </tt></a><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>s</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="701"><font size=+1><b>CL_Vector::operator + </b></font></a> - + operator<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> <a href="CL_Vector.html#701"><tt><font color=black><b>operator</b></font></tt><tt> + </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="698"><font size=+1><b>CL_Vector::operator += </b></font></a> - += operator<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Vector.html#698"><tt><font color=black><b>operator</b></font></tt><tt> += </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="702"><font size=+1><b>CL_Vector::operator - </b></font></a> - - operator<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> <a href="CL_Vector.html#702"><tt><font color=black><b>operator</b></font></tt><tt> - </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="703"><font size=+1><b>CL_Vector::operator - </b></font></a> - unary - operator<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> <a href="CL_Vector.html#703"><tt><font color=black><b>operator</b></font></tt><tt> - </tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="699"><font size=+1><b>CL_Vector::operator -= </b></font></a> - -= operator<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Vector.html#699"><tt><font color=black><b>operator</b></font></tt><tt> -= </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="704"><font size=+1><b>CL_Vector::operator = </b></font></a> - assignment operator<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>&</tt> <a href="CL_Vector.html#704"><tt><font color=black><b>operator</b></font></tt><tt> = </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>)</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="705"><font size=+1><b>CL_Vector::operator == </b></font></a> - Returns true if current vector equals v<br><tt><tt><font color=purple>int</font></tt></tt> <a href="CL_Vector.html#705"><tt><font color=black><b>operator</b></font></tt><tt> == </tt></a><tt>(<tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>v</font></tt>) <tt>const</tt></tt>;<br><blockquote> v - other vector<br> Returns - true if v equals the current vector, false otherwise</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="707"><font size=+1><b>CL_Vector::operator [] </b></font></a> - Returns reference to n-th ordinate (0. == x, 1. == y, ...)<br><tt><tt><font color=purple>float</font></tt>&</tt> <a href="CL_Vector.html#707"><tt><font color=black><b>operator</b></font></tt><tt> [] </tt></a><tt>(<tt><font color=purple>int</font></tt> <tt><font color=blue>n</font></tt>)</tt>;<br><blockquote> n - number of ordinate (starting with 0)<br> Returns - reference to the n-th ordinate</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="694"><font size=+1><b>CL_Vector::rotate</b></font></a> - Returns the current vector rotated around vector a and angle angle<br><tt><a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a></tt> <a href="CL_Vector.html#694"><tt><font color=blue><b>rotate</b></font></tt></a><tt>(<tt><font color=purple>float</font></tt> <tt><font color=blue>angle</font></tt>, <tt>const</tt> <a href="CL_Vector.html#688"><tt><font color=blue><b>CL_Vector</b></font></tt></a>& <tt><font color=blue>a</font></tt>) <tt>const</tt></tt>;<br><blockquote> angle - angle to rotate<br> a - rotation axis<br> Returns - the rotated vector</blockquote> <hr size="1" width="70%" align="left" noshade="noshade"><br><br> <a name="695"><font size=+1><b>CL_Vector::round</b></font></a> - rounds all components<br><tt><tt><font color=purple>void</font></tt></tt> <a href="CL_Vector.html#695"><tt><font color=blue><b>round</b></font></tt></a><tt>()</tt>;<hr size="1" width="70%" align="left" noshade="noshade"><br><br> <hr noshade> <h2>Variable Member Descriptions:</h2> <a name="686"><font size=+1><b>CL_Vector::w</b></font></a> - w coordinate<br> <tt><tt><font color=purple>float</font></tt> </tt> <tt><a href="CL_Vector.html#686"><tt><font color=blue>w</font></tt></a>;</tt><hr size="1" width="70%" align="left" noshade="noshade"><br> <a name="683"><font size=+1><b>CL_Vector::x</b></font></a> - x coordinate<br> <tt><tt><font color=purple>float</font></tt> </tt> <tt><a href="CL_Vector.html#683"><tt><font color=blue>x</font></tt></a>;</tt><hr size="1" width="70%" align="left" noshade="noshade"><br> <a name="684"><font size=+1><b>CL_Vector::y</b></font></a> - y coordinate<br> <tt><tt><font color=purple>float</font></tt> </tt> <tt><a href="CL_Vector.html#684"><tt><font color=blue>y</font></tt></a>;</tt><hr size="1" width="70%" align="left" noshade="noshade"><br> <a name="685"><font size=+1><b>CL_Vector::z</b></font></a> - z coordinate<br> <tt><tt><font color=purple>float</font></tt> </tt> <tt><a href="CL_Vector.html#685"><tt><font color=blue>z</font></tt></a>;</tt><hr size="1" width="70%" align="left" noshade="noshade"><br> <hr noshade> </body> </html>