 # B.Math.Vector4()

Represents a 4D vector.

To create the object use B.Math.makeVector4().

## CONSTANTS:

ZERO = {x: 0.0, y: 0.0, z: 0.0, w: 0.0}

Zero vector.

{number} x

X component.

{number} y

Y component.

{number} z

Z component.

{number} w

W component.

## METHODS:

clone()

Clones this vector to a new vector.

### RETURNS:

this

copy(v)

Copies a given vector into this vector.

### RETURNS:

this

set(x, y, z, w)

Sets this vector from separated components.

{number} x

{number} y

{number} z

{number} w

### RETURNS:

this

get(index)

Gets an element by its index.

{number} index

{number}

### THROWS:

{Error}

if the index is out of range

fromArray(array, offset)

Sets this vector from a part of array.

### PARAMETERS:

{Array.<number>} array

{number} [offset] = 0

### RETURNS:

{number}

new offset

toArray(array, offset)

Sets this vector to a part of array.

### PARAMETERS:

{Array.<number>} array

{number} [offset] = 0

### RETURNS:

{number}

new offset

length()

Calculates the length of this vector.

### RETURNS:

{number}

length

lengthSq()

Calculates the squared length of this vector.

### RETURNS:

{number}

squared length

normalize()

Normalizes this vector.

### RETURNS:

this

negate()

Inverts this vector.

### RETURNS:

this

clamp(minVal, maxVal)

Clamps components of this vector.

### PARAMETERS:

{number} [minVal] = 0.0

{number} [maxVal] = 1.0

### RETURNS:

this

Adds a vector or a scalar to this vector.

### PARAMETERS:

{number | B.Math.Vector4} v

### RETURNS:

this

Adds two given vectors and sets the result to this.

### RETURNS:

this

sub(v)

Subtracts a vector or a scalar from this vector.

### PARAMETERS:

{number | B.Math.Vector4} v

### RETURNS:

this

subVectors(a, b)

Subtracts two given vectors and sets the result to this.

### RETURNS:

this

mul(v)

Multiplies this vector by a given vector or a scalar.

### PARAMETERS:

{number | B.Math.Vector4} v

### RETURNS:

this

mulVectors(a, b)

Multiplies two given vectors and sets the result to this.

### RETURNS:

this

div(v)

Divides this vector by a given vector or a scalar.

### PARAMETERS:

{number | B.Math.Vector4} v

### RETURNS:

this

divVectors(a, b)

Divides two given vectors and sets the result to this.

### RETURNS:

this

transform(matrix)

Transforms this vector by a 4x4 matrix.

matrix

### RETURNS:

this

dot(v)

Calculates the dot product of this vector and another vector.

### RETURNS:

{number}

dot product

equal(v)

Checks for strict equality of this vector and another vector.

{boolean}