# Vector¶

Vector Struct Reference

The Vector struct represents a three-component mathematical vector or point such as a direction or position in three-dimensional space. More...

Inherits IEquatable< Vector >.

## Public Member Functions

float AngleTo (Vector other)
The angle between this vector and the specified vector in radians. More...

Vector Cross (Vector other)
The cross product of this vector and the specified vector. More...

float DistanceTo (Vector other)
The distance between the point represented by this Vector object and a point represented by the specified Vector object. More...

float Dot (Vector other)
The dot product of this vector with another vector. More...

bool Equals (Vector v)
Compare Vector equality component-wise. More...

bool IsValid ()
Returns true if all of the vector's components are finite. More...

float[] ToFloatArray ()
Convert this vector to an array of three float values: [x,y,z]. More...

override string ToString ()
Returns a string containing this vector in a human readable format: (x, y, z). More...

Vector (float x, float y, float z)
Creates a new Vector with the specified component values. More...

Vector (Vector vector)
Copies the specified Vector. More...

## Static Public Member Functions

static bool operator!= (Vector v1, Vector v2)
Compare two vectors for equality. More...

static Vector operator* (Vector v1, float scalar)
Multiply vector by a scalar. More...

static Vector operator* (float scalar, Vector v1)
Multiply vector by a scalar on the left-hand side. More...

static Vector operator+ (Vector v1, Vector v2)

static Vector operator- (Vector v1, Vector v2)
Subtract vectors component-wise. More...

static Vector operator- (Vector v1)
Negate a vector. More...

static Vector operator/ (Vector v1, float scalar)
Divide vector by a scalar. More...

static bool operator== (Vector v1, Vector v2)
Compare two vectors for equality. More...

## Public Attributes

float x
The horizontal component. More...

float y
The vertical component. More...

float z
The depth component. More...

## Static Public Attributes

static readonly Vector Backward = new Vector(0, 0, 1)
The unit vector pointing backward along the positive z-axis: (0, 0, 1) More...

static readonly Vector Down = new Vector(0, -1, 0)
The unit vector pointing down along the negative y-axis: (0, -1, 0) More...

static readonly Vector Forward = new Vector(0, 0, -1)
The unit vector pointing forward along the negative z-axis: (0, 0, -1) More...

static readonly Vector Left = new Vector(-1, 0, 0)
The unit vector pointing left along the negative x-axis: (-1, 0, 0) More...

static readonly Vector Ones = new Vector(1, 1, 1)
The ones vector: (1, 1, 1) More...

static readonly Vector Right = new Vector(1, 0, 0)
The unit vector pointing right along the positive x-axis: (1, 0, 0) More...

static readonly Vector Up = new Vector(0, 1, 0)
The unit vector pointing up along the positive y-axis: (0, 1, 0) More...

static readonly Vector XAxis = new Vector(1, 0, 0)
The x-axis unit vector: (1, 0, 0) More...

static readonly Vector YAxis = new Vector(0, 1, 0)
The y-axis unit vector: (0, 1, 0) More...

static readonly Vector ZAxis = new Vector(0, 0, 1)
The z-axis unit vector: (0, 0, 1) More...

static readonly Vector Zero = new Vector(0, 0, 0)
The zero vector: (0, 0, 0) More...

## Properties

float Magnitude [get]
The magnitude, or length, of this vector. More...

float MagnitudeSquared [get]
The square of the magnitude, or length, of this vector. More...

Vector Normalized [get]
A normalized copy of this vector. More...

float Pitch [get]
The pitch angle in radians. More...

float Roll [get]
The roll angle in radians. More...

float Yaw [get]
The yaw angle in radians. More...

## Detailed Description

The Vector struct represents a three-component mathematical vector or point such as a direction or position in three-dimensional space.

The Leap Motion software employs a right-handed Cartesian coordinate system. Values given are in units of real-world millimeters. The origin is centered at the center of the Leap Motion Controller. The x- and z-axes lie in the horizontal plane, with the x-axis running parallel to the long edge of the device. The y-axis is vertical, with positive values increasing upwards (in contrast to the downward orientation of most computer graphics coordinate systems). The z-axis has positive values increasing away from the computer screen.

Since
1.0

## Constructor & Destructor Documentation

 Vector ( float x, float y, float z )

Creates a new Vector with the specified component values.

Vector newVector = new Vector (0.5f, 200.3f, 67f);
Since
1.0
 Vector ( Vector vector )

Copies the specified Vector.

Vector copiedVector = new Vector (otherVector);
Since
1.0

## Member Function Documentation

 float AngleTo ( Vector other )

The angle between this vector and the specified vector in radians.

The angle is measured in the plane formed by the two vectors. The angle returned is always the smaller of the two conjugate angles. Thus A.angleTo(B) == B.angleTo(A) and is always a positive value less than or equal to pi radians (180 degrees).

If either vector has zero length, then this function returns zero.

// angleInRadians = PI/2 (90 degrees)
Parameters
 other A Vector object.
Returns
The angle between this vector and the specified vector in radians.
Since
1.0
 Vector Cross ( Vector other )

The cross product of this vector and the specified vector.

The cross product is a vector orthogonal to both original vectors. It has a magnitude equal to the area of a parallelogram having the two vectors as sides. The direction of the returned vector is determined by the right-hand rule. Thus A.cross(B) == -B.cross(A).

Vector crossProduct = thisVector.Cross (thatVector);
Parameters
 other A Vector object.
Returns
The cross product of this vector and the specified vector.
Since
1.0
 float DistanceTo ( Vector other )

The distance between the point represented by this Vector object and a point represented by the specified Vector object.

Vector aPoint = new Vector (10f, 0f, 0f);
Vector origin = Vector.Zero;
float distance = origin.DistanceTo (aPoint); // distance = 10
Parameters
 other A Vector object.
Returns
The distance from this point to the specified point.
Since
1.0
 float Dot ( Vector other )

The dot product of this vector with another vector.

The dot product is the magnitude of the projection of this vector onto the specified vector.

float dotProduct = thisVector.Dot (thatVector);
Parameters
 other A Vector object.
Returns
The dot product of this vector and the specified vector.
Since
1.0
 bool Equals ( Vector v )

Compare Vector equality component-wise.

bool vectorsAreEqual = thisVector == thatVector;
Since
1.0
 bool IsValid ( )

Returns true if all of the vector's components are finite.

If any component is NaN or infinite, then this returns false.

bool vectorIsValid = thisVector.IsValid ();
Since
1.0
 static bool operator!= ( Vector v1, Vector v2 )
static

Compare two vectors for equality.

 static Vector operator* ( Vector v1, float scalar )
static

Multiply vector by a scalar.

 static Vector operator* ( float scalar, Vector v1 )
static

Multiply vector by a scalar on the left-hand side.

 static Vector operator+ ( Vector v1, Vector v2 )
static

 static Vector operator- ( Vector v1, Vector v2 )
static

Subtract vectors component-wise.

 static Vector operator- ( Vector v1 )
static

Negate a vector.

 static Vector operator/ ( Vector v1, float scalar )
static

Divide vector by a scalar.

 static bool operator== ( Vector v1, Vector v2 )
static

Compare two vectors for equality.

 float [] ToFloatArray ( )

Convert this vector to an array of three float values: [x,y,z].

 override string ToString ( )

Returns a string containing this vector in a human readable format: (x, y, z).

Since
1.0

## Member Data Documentation

 readonly Vector Backward = new Vector(0, 0, 1)
static

The unit vector pointing backward along the positive z-axis: (0, 0, 1)

Vector backwardVector = Vector.Backward;
Since
1.0
 readonly Vector Down = new Vector(0, -1, 0)
static

The unit vector pointing down along the negative y-axis: (0, -1, 0)

Vector downVector = Vector.Down;
Since
1.0
 readonly Vector Forward = new Vector(0, 0, -1)
static

The unit vector pointing forward along the negative z-axis: (0, 0, -1)

Vector forwardVector = Vector.Forward;
Since
1.0
 readonly Vector Left = new Vector(-1, 0, 0)
static

The unit vector pointing left along the negative x-axis: (-1, 0, 0)

Vector leftVector = Vector.Left;
Since
1.0
 readonly Vector Ones = new Vector(1, 1, 1)
static

The ones vector: (1, 1, 1)

 readonly Vector Right = new Vector(1, 0, 0)
static

The unit vector pointing right along the positive x-axis: (1, 0, 0)

Vector rightVector = Vector.Right;
Since
1.0
 readonly Vector Up = new Vector(0, 1, 0)
static

The unit vector pointing up along the positive y-axis: (0, 1, 0)

Vector upVector = Vector.Up;
Since
1.0
 float x

The horizontal component.

Since
1.0
 readonly Vector XAxis = new Vector(1, 0, 0)
static

The x-axis unit vector: (1, 0, 0)

Vector xAxisVector = Vector.XAxis;
Since
1.0
 float y

The vertical component.

Since
1.0
 readonly Vector YAxis = new Vector(0, 1, 0)
static

The y-axis unit vector: (0, 1, 0)

Vector yAxisVector = Vector.YAxis;
Since
1.0
 float z

The depth component.

Since
1.0
 readonly Vector ZAxis = new Vector(0, 0, 1)
static

The z-axis unit vector: (0, 0, 1)

Vector zAxisVector = Vector.ZAxis;
Since
1.0
 readonly Vector Zero = new Vector(0, 0, 0)
static

The zero vector: (0, 0, 0)

Vector zeroVector = Vector.Zero;
Since
1.0

## Property Documentation

 float Magnitude
get

The magnitude, or length, of this vector.

The magnitude is the L2 norm, or Euclidean distance between the origin and the point represented by the (x, y, z) components of this Vector object.

float length = thisVector.Magnitude;
Returns
The length of this vector.
Since
1.0
 float MagnitudeSquared
get

The square of the magnitude, or length, of this vector.

float lengthSquared = thisVector.MagnitudeSquared;
Returns
The square of the length of this vector.
Since
1.0
 Vector Normalized
get

A normalized copy of this vector.

A normalized vector has the same direction as the original vector, but with a length of one.

Vector normalizedVector = otherVector.Normalized;
Returns
A Vector object with a length of one, pointing in the same direction as this Vector object.
Since
1.0
 float Pitch
get

Pitch is the angle between the negative z-axis and the projection of the vector onto the y-z plane. In other words, pitch represents rotation around the x-axis. If the vector points upward, the returned angle is between 0 and pi radians (180 degrees); if it points downward, the angle is between 0 and -pi radians.

Returns
The angle of this vector above or below the horizon (x-z plane).
Since
1.0
 float Roll
get

Roll is the angle between the y-axis and the projection of the vector onto the x-y plane. In other words, roll represents rotation around the z-axis. If the vector points to the left of the y-axis, then the returned angle is between 0 and pi radians (180 degrees); if it points to the right, the angle is between 0 and -pi radians.

Use this function to get roll angle of the plane to which this vector is a normal. For example, if this vector represents the normal to the palm, then this function returns the tilt or roll of the palm plane compared to the horizontal (x-z) plane.

Returns
The angle of this vector to the right or left of the y-axis.
Since
1.0
 float Yaw
get