[gs-longan](../README.md) / Vector4

# Class: Vector4

## Implements

- `IVector4Like`

## Table of contents

### Constructors

- [constructor](Vector4.md#constructor)

### Properties

- [\_data](Vector4.md#_data)

### Accessors

- [data](Vector4.md#data)
- [w](Vector4.md#w)
- [x](Vector4.md#x)
- [y](Vector4.md#y)
- [z](Vector4.md#z)

### Methods

- [add](Vector4.md#add)
- [clone](Vector4.md#clone)
- [dot](Vector4.md#dot)
- [equals](Vector4.md#equals)
- [length](Vector4.md#length)
- [lengthSquared](Vector4.md#lengthsquared)
- [multiply](Vector4.md#multiply)
- [normalize](Vector4.md#normalize)
- [scaleAndAdd](Vector4.md#scaleandadd)
- [set](Vector4.md#set)
- [setAll](Vector4.md#setall)
- [FromArray](Vector4.md#fromarray)
- [One](Vector4.md#one)
- [Zero](Vector4.md#zero)

## Constructors

### constructor

• **new Vector4**(`x?`, `y?`, `z?`, `w?`): [`Vector4`](Vector4.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `x?` | `number` |
| `y?` | `number` |
| `z?` | `number` |
| `w?` | `number` |

#### Returns

[`Vector4`](Vector4.md)

## Properties

### \_data

• **\_data**: `number`[]

## Accessors

### data

• `get` **data**(): `number`[]

#### Returns

`number`[]

#### Implementation of

IVector4Like.data

___

### w

• `get` **w**(): `number`

#### Returns

`number`

#### Implementation of

IVector4Like.w

• `set` **w**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `number` |

#### Returns

`void`

#### Implementation of

IVector4Like.w

___

### x

• `get` **x**(): `number`

#### Returns

`number`

#### Implementation of

IVector4Like.x

• `set` **x**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `number` |

#### Returns

`void`

#### Implementation of

IVector4Like.x

___

### y

• `get` **y**(): `number`

#### Returns

`number`

#### Implementation of

IVector4Like.y

• `set` **y**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `number` |

#### Returns

`void`

#### Implementation of

IVector4Like.y

___

### z

• `get` **z**(): `number`

#### Returns

`number`

#### Implementation of

IVector4Like.z

• `set` **z**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `number` |

#### Returns

`void`

#### Implementation of

IVector4Like.z

## Methods

### add

▸ **add**(`vector`): [`Vector4`](Vector4.md)

Returns a new Vector4 as the result of the addition of the current Vector4 and the given one.

#### Parameters

| Name | Type |
| :------ | :------ |
| `vector` | `IVector4Like` |

#### Returns

[`Vector4`](Vector4.md)

the resulting vector

___

### clone

▸ **clone**(): [`Vector4`](Vector4.md)

#### Returns

[`Vector4`](Vector4.md)

___

### dot

▸ **dot**(`vector`): `number`

Gets the dot product of the current vector and the vector "vector"

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `vector` | `IVector4Like` | defines second vector |

#### Returns

`number`

the dot product (float)

___

### equals

▸ **equals**(`otherVector`): `boolean`

#### Parameters

| Name | Type |
| :------ | :------ |
| `otherVector` | [`Vector4`](Vector4.md) |

#### Returns

`boolean`

___

### length

▸ **length**(): `number`

Gets the length of the Vector4
Example Playground https://playground.babylonjs.com/#R1F8YU#25

#### Returns

`number`

the length of the Vector4

___

### lengthSquared

▸ **lengthSquared**(): `number`

Gets the squared length of the Vector3
Example Playground https://playground.babylonjs.com/#R1F8YU#26

#### Returns

`number`

squared length of the Vector3

___

### multiply

▸ **multiply**(`vector`): [`Vector4`](Vector4.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `vector` | `IVector4Like` |

#### Returns

[`Vector4`](Vector4.md)

___

### normalize

▸ **normalize**(): `this`

#### Returns

`this`

___

### scaleAndAdd

▸ **scaleAndAdd**(`scale`): [`Vector4`](Vector4.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `scale` | `number` |

#### Returns

[`Vector4`](Vector4.md)

___

### set

▸ **set**(`x`, `y`, `z`, `w`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
| `z` | `number` |
| `w` | `number` |

#### Returns

`void`

___

### setAll

▸ **setAll**(`v`): `this`

#### Parameters

| Name | Type |
| :------ | :------ |
| `v` | `number` |

#### Returns

`this`

___

### FromArray

▸ **FromArray**(`array`, `offset?`): [`Vector4`](Vector4.md)

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `array` | `ArrayLike`\<`number`\> | `undefined` |
| `offset` | `number` | `0` |

#### Returns

[`Vector4`](Vector4.md)

___

### One

▸ **One**(): [`Vector4`](Vector4.md)

Returns a new Vector4 set to (1.0, 1.0, 1.0, 1.0)

#### Returns

[`Vector4`](Vector4.md)

a new Vector4

___

### Zero

▸ **Zero**(): [`Vector4`](Vector4.md)

Returns a new Vector4 set to (0.0, 0.0, 0.0, 0.0)

#### Returns

[`Vector4`](Vector4.md)

a new empty Vector4
