/Godot 3.1

# Vector3

Category: Built-In Types

## Brief Description

Vector class, which performs basic 3D vector math operations.

## Properties

 float x float y float z

## Methods

 Vector3 Vector3 ( float x, float y, float z ) Vector3 abs ( ) float angle_to ( Vector3 to ) Vector3 bounce ( Vector3 n ) Vector3 ceil ( ) Vector3 cross ( Vector3 b ) Vector3 cubic_interpolate ( Vector3 b, Vector3 pre_a, Vector3 post_b, float t ) Vector3 direction_to ( Vector3 b ) float distance_squared_to ( Vector3 b ) float distance_to ( Vector3 b ) float dot ( Vector3 b ) Vector3 floor ( ) Vector3 inverse ( ) bool is_normalized ( ) float length ( ) float length_squared ( ) Vector3 linear_interpolate ( Vector3 b, float t ) int max_axis ( ) int min_axis ( ) Vector3 normalized ( ) Basis outer ( Vector3 b ) Vector3 project ( Vector3 b ) Vector3 reflect ( Vector3 n ) Vector3 rotated ( Vector3 axis, float phi ) Vector3 round ( ) Vector3 slerp ( Vector3 b, float t ) Vector3 slide ( Vector3 n ) Vector3 snapped ( Vector3 by ) Basis to_diagonal_matrix ( )

## Constants

• AXIS_X = 0 — Enumerated value for the X axis. Returned by max_axis and min_axis.
• AXIS_Y = 1 — Enumerated value for the Y axis.
• AXIS_Z = 2 — Enumerated value for the Z axis.
• ZERO = Vector3( 0, 0, 0 ) — Zero vector.
• ONE = Vector3( 1, 1, 1 ) — One vector.
• INF = Vector3( inf, inf, inf ) — Infinite vector.
• LEFT = Vector3( -1, 0, 0 ) — Left unit vector.
• RIGHT = Vector3( 1, 0, 0 ) — Right unit vector.
• UP = Vector3( 0, 1, 0 ) — Up unit vector.
• DOWN = Vector3( 0, -1, 0 ) — Down unit vector.
• FORWARD = Vector3( 0, 0, -1 ) — Forward unit vector.
• BACK = Vector3( 0, 0, 1 ) — Back unit vector.

## Description

Vector3 is one of the core classes of the engine, and includes several built-in helper functions to perform basic vector math operations.

## Property Descriptions

### float x

The vector’s x component. Also accessible by using the index position `[0]`.

### float y

The vector’s y component. Also accessible by using the index position `[1]`.

### float z

The vector’s z component. Also accessible by using the index position `[2]`.

## Method Descriptions

### Vector3 Vector3 ( float x, float y, float z )

Returns a Vector3 with the given components.

### Vector3 abs ( )

Returns a new vector with all components in absolute values (i.e. positive).

### float angle_to ( Vector3 to )

Returns the minimum angle to the given vector.

### Vector3 bounce ( Vector3 n )

Returns the vector “bounced off” from a plane defined by the given normal.

### Vector3 ceil ( )

Returns a new vector with all components rounded up.

### Vector3 cross ( Vector3 b )

Returns the cross product with `b`.

### Vector3 cubic_interpolate ( Vector3 b, Vector3 pre_a, Vector3 post_b, float t )

Performs a cubic interpolation between vectors `pre_a`, `a`, `b`, `post_b` (`a` is current), by the given amount `t`. `t` is in the range of `0.0 - 1.0`, representing the amount of interpolation.

### Vector3 direction_to ( Vector3 b )

Returns the normalized vector pointing from this vector to `b`.

### float distance_squared_to ( Vector3 b )

Returns the squared distance to `b`. Prefer this function over distance_to if you need to sort vectors or need the squared distance for some formula.

### float distance_to ( Vector3 b )

Returns the distance to `b`.

### float dot ( Vector3 b )

Returns the dot product with `b`.

### Vector3 floor ( )

Returns a new vector with all components rounded down.

### Vector3 inverse ( )

Returns the inverse of the vector. This is the same as `Vector3( 1.0 / v.x, 1.0 / v.y, 1.0 / v.z )`.

### bool is_normalized ( )

Returns `true` if the vector is normalized.

### float length ( )

Returns the vector’s length.

### float length_squared ( )

Returns the vector’s length squared. Prefer this function over length if you need to sort vectors or need the squared length for some formula.

### Vector3 linear_interpolate ( Vector3 b, float t )

Returns the result of the linear interpolation between this vector and `b` by amount `t`. `t` is in the range of `0.0 - 1.0`, representing the amount of interpolation..

### int max_axis ( )

Returns the axis of the vector’s largest value. See `AXIS_*` constants.

### int min_axis ( )

Returns the axis of the vector’s smallest value. See `AXIS_*` constants.

### Vector3 normalized ( )

Returns the vector scaled to unit length. Equivalent to `v / v.length()`.

### Basis outer ( Vector3 b )

Returns the outer product with `b`.

### Vector3 project ( Vector3 b )

Returns the vector projected onto the vector `b`.

### Vector3 reflect ( Vector3 n )

Returns the vector reflected from a plane defined by the given normal.

### Vector3 rotated ( Vector3 axis, float phi )

Rotates the vector around a given axis by `phi` radians. The axis must be a normalized vector.

### Vector3 round ( )

Returns the vector with all components rounded to the nearest integer, with halfway cases rounded away from zero.

### Vector3 slerp ( Vector3 b, float t )

Returns the result of SLERP between this vector and `b`, by amount `t`. `t` is in the range of `0.0 - 1.0`, representing the amount of interpolation.

Both vectors need to be normalized.

### Vector3 slide ( Vector3 n )

Returns the component of the vector along a plane defined by the given normal.

### Vector3 snapped ( Vector3 by )

Returns a copy of the vector, snapped to the lowest neared multiple.

### Basis to_diagonal_matrix ( )

Returns a diagonal matrix with the vector as main diagonal.

© 2014–2019 Juan Linietsky, Ariel Manzur, Godot Engine contributors