<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<script src="../../list.js"></script>
		<script src="../../page.js"></script>
		<link type="text/css" rel="stylesheet" href="../../page.css" />
	</head>
	<body>
		<h1>[name]</h1>

		<div class="desc">2D vector.</div>

		<h2>Example</h2>

		<code>var a = new THREE.Vector2( 0, 1 );
		var b = new THREE.Vector2( 1, 0 );

		var d = a.distanceTo( b );
		</code>


		<h2>Constructor</h2>


		<h3>[name]( [page:Float x], [page:Float y] )</h3>
		<div>
		x -- [page:Float] representing the x value of the vector <br />
		y -- [page:Float] representing the y value of the vector
		</div>
		<div>
		A vector in 2 dimensional space
		</div>


		<h2>Properties</h2>

		<h3>[property:Float x]</h3>

		<h3>[property:Float y]</h3>


		<h2>Methods</h2>

		<h3>[method:Vector2 set]( [page:Float x], [page:Float y] ) [page:Vector2 this]</h3>
		<div>
		Sets value of this vector.
		</div>

		<h3>[method:Vector2 copy]( [page:Vector2 v] ) [page:Vector2 this]</h3>
		<div>
		Copies value of *v* to this vector.
		</div>

		<h3>[method:Vector2 add]( [page:Vector2 v] ) [page:Vector2 this]</h3>
		<div>
		Adds *v* to this vector.
		</div>

		<h3>[method:Vector2 addVectors]( [page:Vector2 a], [page:Vector2 b] ) [page:Vector2 this]</h3>
		<div>
		Sets this vector to *a + b*.
		</div>

		<h3>[method:Vector2 sub]( [page:Vector2 v] ) [page:Vector2 this]</h3>
		<div>
		Subtracts *v* from this vector.
		</div>

		<h3>[method:Vector2 subVectors]( [page:Vector2 a], [page:Vector2 b] ) [page:Vector2 this]</h3>
		<div>
		Sets this vector to *a - b*.
		</div>

		<h3>[method:Vector2 multiplyScalar]( [page:Float s] ) [page:Vector2 this]</h3>
		<div>
		Multiplies this vector by scalar *s*.
		</div>

		<h3>[method:Vector2 divideScalar]( [page:Float s] ) [page:Vector2 this]</h3>
		<div>
		Divides this vector by scalar *s*.<br />
		Set vector to *( 0, 0 )* if *s == 0*.
		</div>

		<h3>[method:Vector2 negate]() [page:Vector2 this]</h3>
		<div>
		Inverts this vector.
		</div>

		<h3>[method:Float dot]( [page:Vector2 v] )</h3>
		<div>
		Computes dot product of this vector and *v*.
		</div>

		<h3>[method:Float lengthSq]()</h3>
		<div>
		Computes squared length of this vector.
		</div>

		<h3>[method:Float length]()</h3>
		<div>
		Computes length of this vector.
		</div>

		<h3>[method:Vector2 normalize]() [page:Vector2 this]</h3>
		<div>
		Normalizes this vector.
		</div>

		<h3>[method:Float distanceTo]( [page:Vector2 v] )</h3>
		<div>
		Computes distance of this vector to *v*.
		</div>

		<h3>[method:Float distanceToSquared]( [page:Vector2 v] )</h3>
		<div>
		Computes squared distance of this vector to *v*.
		</div>

		<h3>[method:Vector2 setLength]( [page:Float l] ) [page:Vector2 this]</h3>
		<div>
		Normalizes this vector and multiplies it by *l*.
		</div>

		<h3>[method:Boolean equals]( [page:Vector2 v] )</h3>
		<div>
		Checks for strict equality of this vector and *v*.
		</div>

		<h3>[method:Vector2 clone]()</h3>
		<div>
		Clones this vector.
		</div>


		<h3>[method:Vector2 clamp]([page:Vector2 min], [page:Vector2 max]) [page:Vector2 this]</h3>
		<div>
		min -- [page:Vector2] containing the min x and y values in the desired range <br />
		max -- [page:Vector2] containing the max x and y values in the desired range
		</div>
		<div>
		If this vector's x or y value is greater than the max vector's x or y value, it is replaced by the corresponding value. <br />	If this vector's x or y value is less than the min vector's x or y value, it is replace by the corresponding value.
		</div>

		<h3>[method:Vector2 clampScalar]([page:Float min], [page:Float max]) [page:Vector2 this]</h3>
		<div>
		min -- [page:Float] the minimum value the components will be clamped to <br />
		max -- [page:Float] the maximum value the components will be clamped to
		</div>
		<div>
		If this vector's x or y values are greater than the max value, they are replaced by the max value. <br />  If this vector's x or y values are less than the min value, they are replace by the min value.
		</div>

		<h3>[method:Vector2 floor]()</h3>
		<div>
		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
		</div>

		<h3>[method:Vector2 ceil]()</h3>
		<div>
		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
		</div>

		<h3>[method:Vector2 round]()</h3>
		<div>
		The components of the vector are rounded towards the nearest integer value.
		</div>

		<h3>[method:Vector2 roundToZero]()</h3>
		<div>
		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
		</div>

		<h3>[method:Vector2 lerp]([page:Vector2 v], [page:Float alpha]) [page:Vector2 this]</h3>
		<div>
		v -- [page:Vector2] <br />
		alpha -- [page:Float] between 0 and 1;
		</div>
		<div>
		Linear interpolation between this vector and v, where alpha is the percent along the line.
		</div>

		<h3>[method:Vector2 lerpVectors]([page:Vector2 v1], [page:Vector2 v2], [page:Float alpha]) [page:Vector2 this]</h3>
		<div>
		v1 -- [page:Vector2] <br />
		v2 -- [page:Vector2] <br />
		alpha -- [page:Float] between 0 and 1.
		</div>
		<div>
		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
		</div>

		<h3>[method:undefined setComponent]([page:Integer index], [page:Float value])</h3>
		<div>
		index -- 0 or 1 <br />
		value -- [page:Float]
		</div>
		<div>
		if index equals 0 method replaces this.x with value. <br />
		if index equals 1 method replaces this.y with value.
		</div>

		<h3>[method:Vector2 addScalar]([page:Float s]) [page:Vector2 this]</h3>
		<div>
		s -- [page:Float]
		</div>
		<div>
		Add the scalar value s to this vector's x and y values.
		</div>

		<h3>[method:Float getComponent]([page:Integer index])</h3>
		<div>
		index -- 0 or 1
		</div>
		<div>
		if index equals 0 returns the x value. <br />
		if index equals 1 returns the y value.
		</div>

		<h3>[method:Vector2 fromArray]([page:Array array]) [page:Vector2 this]</h3>
		<div>
		array -- [page:Array] of length 2
		</div>
		<div>
		Sets this vector's x value to be array[0] and y value to be array[1].
		</div>

		<h3>[method:Array toArray]( [page:Array array] )</h3>
		<div>
		array -- Optional array to store the vector.
		</div>
		<div>
		Returns an array [x, y].
		</div>

		<h3>[method:Vector2 min]([page:Vector2 v]) [page:Vector2 this]</h3>
		<div>
		v -- [page:Vector2]
		</div>
		<div>
		If this vector's x or y value is less than v's x or y value, replace that value with the corresponding min value.
		</div>

		<h3>[method:Vector2 max]([page:Vector2 v]) [page:Vector2 this]</h3>
		<div>
		v -- [page:Vector2]
		</div>
		<div>
		If this vector's x or y value is greater than v's x or y value, replace that value with the corresponding max value.
		</div>

		<h3>[method:Vector2 setX]([page:Float x]) [page:Vector2 this]</h3>
		<div>
		x -- [page:Float]
		</div>
		<div>
		replace this vector's x value with x.
		</div>

		<h3>[method:Vector2 setY]([page:Float y]) [page:Vector2 this]</h3>
		<div>
		y -- [page:Float]
		</div>
		<div>
		replace this vector's y value with y.
		</div>

		<h2>Source</h2>

		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
	</body>
</html>