# vec2

## vec2

2 Dimensional Vector

## Constructor

Source:

### Methods

#### #(static) add(out, a, b) → {vec2}

Source:

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec2

#### #(static) clone(a) → {vec2}

Source:

Creates a new vec2 initialized with values from an existing vector

##### Parameters:
Name Type Description
`a` vec2

vector to clone

a new 2D vector

Type
vec2

#### #(static) copy(out, a) → {vec2}

Source:

Copy the values from one vec2 to another

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the source vector

out

Type
vec2

#### #(static) create() → {vec2}

Source:

Creates a new, empty vec2

a new 2D vector

Type
vec2

#### #(static) cross(out, a, b) → {vec3}

Source:

Computes the cross product of two vec2's Note that the cross product must by definition produce a 3D vector

##### Parameters:
Name Type Description
`out` vec3

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec3

#### #(static) dist()

Source:

Alias for vec2.distance

#### #(static) distance(a, b) → {Number}

Source:

Calculates the euclidian distance between two vec2's

##### Parameters:
Name Type Description
`a` vec2

the first operand

`b` vec2

the second operand

##### Returns:

distance between a and b

Type
Number

#### #(static) div()

Source:

Alias for vec2.divide

#### #(static) divide(out, a, b) → {vec2}

Source:

Divides two vec2's

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec2

#### #(static) dot(a, b) → {Number}

Source:

Calculates the dot product of two vec2's

##### Parameters:
Name Type Description
`a` vec2

the first operand

`b` vec2

the second operand

##### Returns:

dot product of a and b

Type
Number

#### #(static) forEach(a, stride, offset, count, fn, argopt) → {Array}

Source:

Perform some operation over an array of vec2s.

##### Parameters:
Name Type Attributes Description
`a` Array

the array of vectors to iterate over

`stride` Number

Number of elements between the start of each vec2. If 0 assumes tightly packed

`offset` Number

Number of elements to skip at the beginning of the array

`count` Number

Number of vec2s to iterate over. If 0 iterates over entire array

`fn` function

Function to call for each vector in the array

`arg` Object <optional>

additional argument to pass to fn

a

Type
Array

#### #(static) fromValues(x, y) → {vec2}

Source:

Creates a new vec2 initialized with the given values

##### Parameters:
Name Type Description
`x` Number

X component

`y` Number

Y component

a new 2D vector

Type
vec2

#### #(static) inverse(out, a) → {vec2}

Source:

Returns the inverse of the components of a vec2

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

vector to invert

out

Type
vec2

#### #(static) len()

Source:

Alias for vec2.length

#### #(static) length(a) → {Number}

Source:

Calculates the length of a vec2

##### Parameters:
Name Type Description
`a` vec2

vector to calculate length of

length of a

Type
Number

#### #(static) lerp(out, a, b, t) → {vec2}

Source:

Performs a linear interpolation between two vec2's

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

`t` Number

interpolation amount between the two inputs

out

Type
vec2

#### #(static) max(out, a, b) → {vec2}

Source:

Returns the maximum of two vec2's

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec2

#### #(static) min(out, a, b) → {vec2}

Source:

Returns the minimum of two vec2's

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec2

#### #(static) mul()

Source:

Alias for vec2.multiply

#### #(static) multiply(out, a, b) → {vec2}

Source:

Multiplies two vec2's

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec2

#### #(static) negate(out, a) → {vec2}

Source:

Negates the components of a vec2

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

vector to negate

out

Type
vec2

#### #(static) normalize(out, a) → {vec2}

Source:

Normalize a vec2

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

vector to normalize

out

Type
vec2

#### #(static) random(out, scaleopt) → {vec2}

Source:

Generates a random vector with the given scale

##### Parameters:
Name Type Attributes Description
`out` vec2

the receiving vector

`scale` Number <optional>

Length of the resulting vector. If ommitted, a unit vector will be returned

out

Type
vec2

#### #(static) scale(out, a, b) → {vec2}

Source:

Scales a vec2 by a scalar number

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the vector to scale

`b` Number

amount to scale the vector by

out

Type
vec2

#### #(static) scaleAndAdd(out, a, b, scale) → {vec2}

Source:

Adds two vec2's after scaling the second operand by a scalar value

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

`scale` Number

the amount to scale b by before adding

out

Type
vec2

#### #(static) set(out, x, y) → {vec2}

Source:

Set the components of a vec2 to the given values

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`x` Number

X component

`y` Number

Y component

out

Type
vec2

Source:

#### #(static) sqrLen()

Source:

Alias for vec2.squaredLength

#### #(static) squaredDistance(a, b) → {Number}

Source:

Calculates the squared euclidian distance between two vec2's

##### Parameters:
Name Type Description
`a` vec2

the first operand

`b` vec2

the second operand

##### Returns:

squared distance between a and b

Type
Number

#### #(static) squaredLength(a) → {Number}

Source:

Calculates the squared length of a vec2

##### Parameters:
Name Type Description
`a` vec2

vector to calculate squared length of

##### Returns:

squared length of a

Type
Number

#### #(static) sub()

Source:

Alias for vec2.subtract

#### #(static) subtract(out, a, b) → {vec2}

Source:

Subtracts vector b from vector a

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the first operand

`b` vec2

the second operand

out

Type
vec2

#### #(static) transformMat2(out, a, m) → {vec2}

Source:

Transforms the vec2 with a mat2

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the vector to transform

`m` mat2

matrix to transform with

out

Type
vec2

#### #(static) transformMat2d(out, a, m) → {vec2}

Source:

Transforms the vec2 with a mat2d

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the vector to transform

`m` mat2d

matrix to transform with

out

Type
vec2

#### #(static) transformMat3(out, a, m) → {vec2}

Source:

Transforms the vec2 with a mat3 3rd vector component is implicitly '1'

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the vector to transform

`m` mat3

matrix to transform with

out

Type
vec2

#### #(static) transformMat4(out, a, m) → {vec2}

Source:

Transforms the vec2 with a mat4 3rd vector component is implicitly '0' 4th vector component is implicitly '1'

##### Parameters:
Name Type Description
`out` vec2

the receiving vector

`a` vec2

the vector to transform

`m` mat4

matrix to transform with

out

Type
vec2