> For the complete documentation index, see [llms.txt](https://docs.overthereality.ai/over-sdk-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overthereality.ai/over-sdk-manual/over-visual-scripting-legacy/nodes/operations/vector.md).

# Vector

### Description

The Vector nodes provide several operations, specifically used for handling vectors.

#### Vector Exposer

This node is used to expose certain parameters and attributes of a given input Unity 3D [Vector3](https://docs.unity3d.com/ScriptReference/Vector3.html), which are:

<table><thead><tr><th>Name</th><th width="204.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>x</td><td>Float</td><td>X component of the vector</td></tr><tr><td>y</td><td>Float</td><td>Y component of the vector</td></tr><tr><td>z</td><td>Float</td><td>Z component of the vector</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/Ks9gg5Z3U9X62qhjOaeM/vec_expo.png" alt=""><figcaption></figcaption></figure>

#### Base

This collection of Nodes are responsible for performing basic useful operations with vectors.

<table><thead><tr><th width="204">Node</th><th>Description</th></tr></thead><tbody><tr><td>Angle</td><td>Calculates the angle, in degrees, between two vectors</td></tr><tr><td>Distance</td><td>Returns the distance between two vectors</td></tr><tr><td>Dot</td><td>Dot Product of two vectors</td></tr><tr><td>Normalize</td><td>Makes this vector have a magnitude of 1</td></tr><tr><td>Cross</td><td>Cross Product of two vectors</td></tr><tr><td>Magnitude</td><td>Returns the length of this vector</td></tr><tr><td>Max</td><td>Returns a vector that is made from the largest components of two vectors</td></tr><tr><td>Min</td><td>Returns a vector that is made from the smallest components of two vectors</td></tr><tr><td>Scale</td><td>Multiplies two vectors component-wise</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/3HMwmZ9ANvzby4ayFS8X/vec_base.png" alt=""><figcaption></figcaption></figure>

#### Interpolation

This collection of Nodes allows for the implementation of interpolation between vectors.

<table><thead><tr><th width="204">Node</th><th>Description</th></tr></thead><tbody><tr><td>Lerp</td><td>Linearly interpolates between two points</td></tr><tr><td>Sphere Lerp</td><td>Spherically interpolates between two vectors</td></tr></tbody></table>

In both cases, the value `T` represents the value used for interpolation: if `T = 0` the result will be the first point, if `T = 1` the second.

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/d10fNu0NFkh2wft3zT0u/vec_lerp.png" alt=""><figcaption></figcaption></figure>

#### Math

This collection of Nodes allows for simple mathematical operations between vectors.

<table><thead><tr><th width="204">Node</th><th>Description</th></tr></thead><tbody><tr><td>Vector Sum</td><td>Returns the sum of two vectors</td></tr><tr><td>Vector Subtraction</td><td>Returns the subtraction of two vectors</td></tr><tr><td>Vector Multiply</td><td>Returns the multiplication between a vector and a float scalar</td></tr><tr><td>Vector Divide</td><td>Returns the division between a vector and a float scalar</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/HFlquAYrmMdkrt2KcSOB/vec_math.png" alt=""><figcaption></figcaption></figure>
