<head>
<title>SFML - Simple and Fast Multimedia Library</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<link rel="stylesheet" type="text/css" href="doxygen.css" title="default" media="screen,print" />
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">SFML</span>
</div>
</div>
<div id="content">
<!-- Generated by Doxygen 1.8.2 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.htm"><span>Main Page</span></a></li>
<li><a href="modules.htm"><span>Modules</span></a></li>
<li class="current"><a href="annotated.htm"><span>Classes</span></a></li>
<li><a href="files.htm"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.htm"><span>Class List</span></a></li>
<li><a href="classes.htm"><span>Class Index</span></a></li>
<li><a href="hierarchy.htm"><span>Class Hierarchy</span></a></li>
<li><a href="functions.htm"><span>Class Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>sf</b></li><li class="navelem"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-attribs">Public Attributes</a> |
<a href="#related">Related Functions</a> |
<a href="classsf_1_1Vector2-members.htm">List of all members</a> </div>
<div class="headertitle">
<div class="title">sf::Vector2< T > Class Template Reference<div class="ingroups"><a class="el" href="group__system.htm">System module</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Utility template class for manipulating 2-dimensional vectors.
<a href="classsf_1_1Vector2.htm#details">More...</a></p>
<p><code>#include <<a class="el" href="Vector2_8hpp_source.htm">Vector2.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a58c32383b5291380db4b43a289f75988"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a58c32383b5291380db4b43a289f75988">Vector2</a> ()</td></tr>
<tr class="memdesc:a58c32383b5291380db4b43a289f75988"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a58c32383b5291380db4b43a289f75988"></a><br/></td></tr>
<tr class="separator:a58c32383b5291380db4b43a289f75988"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aed26a72164e59e8a4a0aeee2049568f1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#aed26a72164e59e8a4a0aeee2049568f1">Vector2</a> (T X, T Y)</td></tr>
<tr class="memdesc:aed26a72164e59e8a4a0aeee2049568f1"><td class="mdescLeft"> </td><td class="mdescRight">Construct the vector from its coordinates. <a href="#aed26a72164e59e8a4a0aeee2049568f1"></a><br/></td></tr>
<tr class="separator:aed26a72164e59e8a4a0aeee2049568f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="memTemplParams" colspan="2">template<typename U > </td></tr>
<tr class="memitem:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a3da455e0ae3f8ff6d2fe36d10b332d10">Vector2</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< U > &vector)</td></tr>
<tr class="memdesc:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="mdescLeft"> </td><td class="mdescRight">Construct the vector from another type of vector. <a href="#a3da455e0ae3f8ff6d2fe36d10b332d10"></a><br/></td></tr>
<tr class="separator:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a18a61144d6839c5658b62ebb49c9eb68"><td class="memTemplParams" colspan="2"><a class="anchor" id="a18a61144d6839c5658b62ebb49c9eb68"></a>
template<typename T > </td></tr>
<tr class="memitem:a18a61144d6839c5658b62ebb49c9eb68"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><b>Vector2</b> (T X, T Y)</td></tr>
<tr class="separator:a18a61144d6839c5658b62ebb49c9eb68"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3da455e0ae3f8ff6d2fe36d10b332d10"></a>
template<typename U > </td></tr>
<tr class="memitem:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><b>Vector2</b> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< U > &vector)</td></tr>
<tr class="separator:a3da455e0ae3f8ff6d2fe36d10b332d10"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a1e6ad77fa155f3753bfb92699bd28141"><td class="memItemLeft" align="right" valign="top">T </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a1e6ad77fa155f3753bfb92699bd28141">x</a></td></tr>
<tr class="memdesc:a1e6ad77fa155f3753bfb92699bd28141"><td class="mdescLeft"> </td><td class="mdescRight">X coordinate of the vector. <a href="#a1e6ad77fa155f3753bfb92699bd28141"></a><br/></td></tr>
<tr class="separator:a1e6ad77fa155f3753bfb92699bd28141"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a420f2481b015f4eb929c75f2af564299"><td class="memItemLeft" align="right" valign="top">T </td><td class="memItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a420f2481b015f4eb929c75f2af564299">y</a></td></tr>
<tr class="memdesc:a420f2481b015f4eb929c75f2af564299"><td class="mdescLeft"> </td><td class="mdescRight">Y coordinate of the vector. <a href="#a420f2481b015f4eb929c75f2af564299"></a><br/></td></tr>
<tr class="separator:a420f2481b015f4eb929c75f2af564299"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p>(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:a3885c2e66dc427cec7eaa178d59d8e8b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a3885c2e66dc427cec7eaa178d59d8e8b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a3885c2e66dc427cec7eaa178d59d8e8b">operator-</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:a3885c2e66dc427cec7eaa178d59d8e8b"><td class="mdescLeft"> </td><td class="mdescRight">Overload of unary operator -. <a href="#a3885c2e66dc427cec7eaa178d59d8e8b"></a><br/></td></tr>
<tr class="separator:a3885c2e66dc427cec7eaa178d59d8e8b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad4b7a9d355d57790bfc7df0ade8bb628"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:ad4b7a9d355d57790bfc7df0ade8bb628"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#ad4b7a9d355d57790bfc7df0ade8bb628">operator+=</a> (<a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:ad4b7a9d355d57790bfc7df0ade8bb628"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator +=. <a href="#ad4b7a9d355d57790bfc7df0ade8bb628"></a><br/></td></tr>
<tr class="separator:ad4b7a9d355d57790bfc7df0ade8bb628"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a30a5a12ad03c9a3a982a0a313bf84e6f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a30a5a12ad03c9a3a982a0a313bf84e6f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a30a5a12ad03c9a3a982a0a313bf84e6f">operator-=</a> (<a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:a30a5a12ad03c9a3a982a0a313bf84e6f"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator -=. <a href="#a30a5a12ad03c9a3a982a0a313bf84e6f"></a><br/></td></tr>
<tr class="separator:a30a5a12ad03c9a3a982a0a313bf84e6f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a72421239823c38a6b780c86a710ead07"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a72421239823c38a6b780c86a710ead07"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a72421239823c38a6b780c86a710ead07">operator+</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:a72421239823c38a6b780c86a710ead07"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator +. <a href="#a72421239823c38a6b780c86a710ead07"></a><br/></td></tr>
<tr class="separator:a72421239823c38a6b780c86a710ead07"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad027adae53ec547a86c20deeb05c9e85"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:ad027adae53ec547a86c20deeb05c9e85"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#ad027adae53ec547a86c20deeb05c9e85">operator-</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:ad027adae53ec547a86c20deeb05c9e85"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator -. <a href="#ad027adae53ec547a86c20deeb05c9e85"></a><br/></td></tr>
<tr class="separator:ad027adae53ec547a86c20deeb05c9e85"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5f48ca928995b41c89f155afe8d16b02"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a5f48ca928995b41c89f155afe8d16b02"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a5f48ca928995b41c89f155afe8d16b02">operator*</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, T right)</td></tr>
<tr class="memdesc:a5f48ca928995b41c89f155afe8d16b02"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator *. <a href="#a5f48ca928995b41c89f155afe8d16b02"></a><br/></td></tr>
<tr class="separator:a5f48ca928995b41c89f155afe8d16b02"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad8b3e1cf7b156a984bc1427539ca8605"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:ad8b3e1cf7b156a984bc1427539ca8605"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#ad8b3e1cf7b156a984bc1427539ca8605">operator*</a> (T left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:ad8b3e1cf7b156a984bc1427539ca8605"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator *. <a href="#ad8b3e1cf7b156a984bc1427539ca8605"></a><br/></td></tr>
<tr class="separator:ad8b3e1cf7b156a984bc1427539ca8605"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abea24cb28c0d6e2957e259ba4e65d70e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:abea24cb28c0d6e2957e259ba4e65d70e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#abea24cb28c0d6e2957e259ba4e65d70e">operator*=</a> (<a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, T right)</td></tr>
<tr class="memdesc:abea24cb28c0d6e2957e259ba4e65d70e"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator *=. <a href="#abea24cb28c0d6e2957e259ba4e65d70e"></a><br/></td></tr>
<tr class="separator:abea24cb28c0d6e2957e259ba4e65d70e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7409dd89cb3aad6c3bc6622311107311"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a7409dd89cb3aad6c3bc6622311107311"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a7409dd89cb3aad6c3bc6622311107311">operator/</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, T right)</td></tr>
<tr class="memdesc:a7409dd89cb3aad6c3bc6622311107311"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator /. <a href="#a7409dd89cb3aad6c3bc6622311107311"></a><br/></td></tr>
<tr class="separator:a7409dd89cb3aad6c3bc6622311107311"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac4d293c9dc7954ccfd5e373972f38b03"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:ac4d293c9dc7954ccfd5e373972f38b03"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#ac4d293c9dc7954ccfd5e373972f38b03">operator/=</a> (<a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, T right)</td></tr>
<tr class="memdesc:ac4d293c9dc7954ccfd5e373972f38b03"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator /=. <a href="#ac4d293c9dc7954ccfd5e373972f38b03"></a><br/></td></tr>
<tr class="separator:ac4d293c9dc7954ccfd5e373972f38b03"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9a7b2d36c3850828fdb651facfd25136"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a9a7b2d36c3850828fdb651facfd25136"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a9a7b2d36c3850828fdb651facfd25136">operator==</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:a9a7b2d36c3850828fdb651facfd25136"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator ==. <a href="#a9a7b2d36c3850828fdb651facfd25136"></a><br/></td></tr>
<tr class="separator:a9a7b2d36c3850828fdb651facfd25136"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a01673da35ef9c52d0e54b8263549a956"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
<tr class="memitem:a01673da35ef9c52d0e54b8263549a956"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classsf_1_1Vector2.htm#a01673da35ef9c52d0e54b8263549a956">operator!=</a> (const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &left, const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > &right)</td></tr>
<tr class="memdesc:a01673da35ef9c52d0e54b8263549a956"><td class="mdescLeft"> </td><td class="mdescRight">Overload of binary operator !=. <a href="#a01673da35ef9c52d0e54b8263549a956"></a><br/></td></tr>
<tr class="separator:a01673da35ef9c52d0e54b8263549a956"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template<typename T><br/>
class sf::Vector2< T ></h3>
<p>Utility template class for manipulating 2-dimensional vectors. </p>
<p><a class="el" href="classsf_1_1Vector2.htm" title="Utility template class for manipulating 2-dimensional vectors.">sf::Vector2</a> is a simple class that defines a mathematical vector with two coordinates (x and y).</p>
<p>It can be used to represent anything that has two dimensions: a size, a point, a velocity, etc.</p>
<p>The template parameter T is the type of the coordinates. It can be any type that supports arithmetic operations (+, -, /, *) and comparisons (==, !=), for example int or float.</p>
<p>You generally don't have to care about the templated form (sf::Vector2<T>), the most common specializations have special typedefs: </p>
<ul>
<li>sf::Vector2<float> is sf::Vector2f </li>
<li>sf::Vector2<int> is sf::Vector2i </li>
<li>sf::Vector2<unsigned int> is sf::Vector2u</li>
</ul>
<p>The <a class="el" href="classsf_1_1Vector2.htm" title="Utility template class for manipulating 2-dimensional vectors.">sf::Vector2</a> class has a small and simple interface, its x and y members can be accessed directly (there's no accessor like setX(), getX()) and it contains no mathematical function like dot product, cross product, length, etc.</p>
<p>Usage example: </p>
<div class="fragment"><div class="line"><a class="code" href="classsf_1_1Vector2.htm">sf::Vector2f</a> v1(16.5f, 24.f);</div>
<div class="line">v1.x = 18.2f;</div>
<div class="line"><span class="keywordtype">float</span> <a class="code" href="classsf_1_1Vector2.htm#a420f2481b015f4eb929c75f2af564299" title="Y coordinate of the vector.">y</a> = v1.y;</div>
<div class="line"></div>
<div class="line"><a class="code" href="classsf_1_1Vector2.htm">sf::Vector2f</a> v2 = v1 * 5.f;</div>
<div class="line"><a class="code" href="classsf_1_1Vector2.htm">sf::Vector2f</a> v3;</div>
<div class="line">v3 = v1 + v2;</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">bool</span> different = (v2 != v3);</div>
</div><!-- fragment --><p>Note: for 3-dimensional vectors, see <a class="el" href="classsf_1_1Vector3.htm" title="Utility template class for manipulating 3-dimensional vectors.">sf::Vector3</a>. </p>
<p>Definition at line <a class="el" href="Vector2_8hpp_source.htm#l00037">37</a> of file <a class="el" href="Vector2_8hpp_source.htm">Vector2.hpp</a>.</p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a class="anchor" id="a58c32383b5291380db4b43a289f75988"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T> </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">sf::Vector2</a>< T >::<a class="el" href="classsf_1_1Vector2.htm">Vector2</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<p>Creates a Vector2(0, 0). </p>
</div>
</div>
<a class="anchor" id="aed26a72164e59e8a4a0aeee2049568f1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T> </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">sf::Vector2</a>< T >::<a class="el" href="classsf_1_1Vector2.htm">Vector2</a> </td>
<td>(</td>
<td class="paramtype">T </td>
<td class="paramname"><em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T </td>
<td class="paramname"><em>Y</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the vector from its coordinates. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">X</td><td>X coordinate </td></tr>
<tr><td class="paramname">Y</td><td>Y coordinate </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a3da455e0ae3f8ff6d2fe36d10b332d10"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T> </div>
<div class="memtemplate">
template<typename U > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">sf::Vector2</a>< T >::<a class="el" href="classsf_1_1Vector2.htm">Vector2</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< U > & </td>
<td class="paramname"><em>vector</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the vector from another type of vector. </p>
<p>This constructor doesn't replace the copy constructor, it's called only when U != T. A call to this constructor will fail to compile if U is not convertible to T.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">vector</td><td>Vector to convert </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a01673da35ef9c52d0e54b8263549a956"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operator!= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator !=. </p>
<p>This operator compares strict difference between two vectors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if <em>left</em> is not equal to <em>right</em> </dd></dl>
</div>
</div>
<a class="anchor" id="a5f48ca928995b41c89f155afe8d16b02"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator *. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a scalar value)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Memberwise multiplication by <em>right</em> </dd></dl>
</div>
</div>
<a class="anchor" id="ad8b3e1cf7b156a984bc1427539ca8605"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > operator* </td>
<td>(</td>
<td class="paramtype">T </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator *. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a scalar value) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Memberwise multiplication by <em>left</em> </dd></dl>
</div>
</div>
<a class="anchor" id="abea24cb28c0d6e2957e259ba4e65d70e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & operator*= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator *=. </p>
<p>This operator performs a memberwise multiplication by <em>right</em>, and assigns the result to <em>left</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a scalar value)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to <em>left</em> </dd></dl>
</div>
</div>
<a class="anchor" id="a72421239823c38a6b780c86a710ead07"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > operator+ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator +. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Memberwise addition of both vectors </dd></dl>
</div>
</div>
<a class="anchor" id="ad4b7a9d355d57790bfc7df0ade8bb628"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & operator+= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator +=. </p>
<p>This operator performs a memberwise addition of both vectors, and assigns the result to <em>left</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to <em>left</em> </dd></dl>
</div>
</div>
<a class="anchor" id="a3885c2e66dc427cec7eaa178d59d8e8b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of unary operator -. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">right</td><td>Vector to negate</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Memberwise opposite of the vector </dd></dl>
</div>
</div>
<a class="anchor" id="ad027adae53ec547a86c20deeb05c9e85"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator -. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Memberwise subtraction of both vectors </dd></dl>
</div>
</div>
<a class="anchor" id="a30a5a12ad03c9a3a982a0a313bf84e6f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & operator-= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator -=. </p>
<p>This operator performs a memberwise subtraction of both vectors, and assigns the result to <em>left</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to <em>left</em> </dd></dl>
</div>
</div>
<a class="anchor" id="a7409dd89cb3aad6c3bc6622311107311"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > operator/ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator /. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a scalar value)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Memberwise division by <em>right</em> </dd></dl>
</div>
</div>
<a class="anchor" id="ac4d293c9dc7954ccfd5e373972f38b03"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & operator/= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator /=. </p>
<p>This operator performs a memberwise division by <em>right</em>, and assigns the result to <em>left</em>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a scalar value)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to <em>left</em> </dd></dl>
</div>
</div>
<a class="anchor" id="a9a7b2d36c3850828fdb651facfd25136"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool operator== </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classsf_1_1Vector2.htm">Vector2</a>< T > & </td>
<td class="paramname"><em>right</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Overload of binary operator ==. </p>
<p>This operator compares strict equality between two vectors.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">left</td><td>Left operand (a vector) </td></tr>
<tr><td class="paramname">right</td><td>Right operand (a vector)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if <em>left</em> is equal to <em>right</em> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a1e6ad77fa155f3753bfb92699bd28141"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T> </div>
<table class="memname">
<tr>
<td class="memname">T <a class="el" href="classsf_1_1Vector2.htm">sf::Vector2</a>< T >::x</td>
</tr>
</table>
</div><div class="memdoc">
<p>X coordinate of the vector. </p>
<p>Definition at line <a class="el" href="Vector2_8hpp_source.htm#l00075">75</a> of file <a class="el" href="Vector2_8hpp_source.htm">Vector2.hpp</a>.</p>
</div>
</div>
<a class="anchor" id="a420f2481b015f4eb929c75f2af564299"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T> </div>
<table class="memname">
<tr>
<td class="memname">T <a class="el" href="classsf_1_1Vector2.htm">sf::Vector2</a>< T >::y</td>
</tr>
</table>
</div><div class="memdoc">
<p>Y coordinate of the vector. </p>
<p>Definition at line <a class="el" href="Vector2_8hpp_source.htm#l00076">76</a> of file <a class="el" href="Vector2_8hpp_source.htm">Vector2.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="Vector2_8hpp_source.htm">Vector2.hpp</a></li>
<li><a class="el" href="Vector2_8inl_source.htm">Vector2.inl</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
Copyright � Laurent Gomila ::
</div>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-41898676-1', 'srchub.org');
ga('send', 'pageview');