Up to date

This page is up to date for Godot `4.1`. If you still find outdated information, please open an issue.

Vector4¶

A 4D vector using floating point coordinates.

Description¶

A 4-element structure that can be used to represent 4D coordinates or any other quadruplet of numeric values.

It uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike float which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.

See Vector4i for its integer counterpart.

Note: In a boolean context, a Vector4 will evaluate to `false` if it's equal to `Vector4(0, 0, 0, 0)`. Otherwise, a Vector4 will always evaluate to `true`.

Properties¶

 float w `0.0` float x `0.0` float y `0.0` float z `0.0`

Constructors¶

 Vector4 Vector4 ( ) Vector4 Vector4 ( Vector4 from ) Vector4 Vector4 ( Vector4i from ) Vector4 Vector4 ( float x, float y, float z, float w )

Methods¶

 Vector4 abs ( ) const Vector4 ceil ( ) const Vector4 clamp ( Vector4 min, Vector4 max ) const Vector4 cubic_interpolate ( Vector4 b, Vector4 pre_a, Vector4 post_b, float weight ) const Vector4 cubic_interpolate_in_time ( Vector4 b, Vector4 pre_a, Vector4 post_b, float weight, float b_t, float pre_a_t, float post_b_t ) const Vector4 direction_to ( Vector4 to ) const float distance_squared_to ( Vector4 to ) const float distance_to ( Vector4 to ) const float dot ( Vector4 with ) const Vector4 floor ( ) const Vector4 inverse ( ) const bool is_equal_approx ( Vector4 to ) const bool is_finite ( ) const bool is_normalized ( ) const bool is_zero_approx ( ) const float length ( ) const float length_squared ( ) const Vector4 lerp ( Vector4 to, float weight ) const int max_axis_index ( ) const int min_axis_index ( ) const Vector4 normalized ( ) const Vector4 posmod ( float mod ) const Vector4 posmodv ( Vector4 modv ) const Vector4 round ( ) const Vector4 sign ( ) const Vector4 snapped ( Vector4 step ) const

Operators¶

 bool operator != ( Vector4 right ) Vector4 operator * ( Projection right ) Vector4 operator * ( Vector4 right ) Vector4 operator * ( float right ) Vector4 operator * ( int right ) Vector4 operator + ( Vector4 right ) Vector4 operator - ( Vector4 right ) Vector4 operator / ( Vector4 right ) Vector4 operator / ( float right ) Vector4 operator / ( int right ) bool operator < ( Vector4 right ) bool operator <= ( Vector4 right ) bool operator == ( Vector4 right ) bool operator > ( Vector4 right ) bool operator >= ( Vector4 right ) float operator [] ( int index ) Vector4 Vector4

Constants¶

AXIS_X = `0`

Enumerated value for the X axis. Returned by max_axis_index and min_axis_index.

AXIS_Y = `1`

Enumerated value for the Y axis. Returned by max_axis_index and min_axis_index.

AXIS_Z = `2`

Enumerated value for the Z axis. Returned by max_axis_index and min_axis_index.

AXIS_W = `3`

Enumerated value for the W axis. Returned by max_axis_index and min_axis_index.

ZERO = `Vector4(0, 0, 0, 0)`

Zero vector, a vector with all components set to `0`.

ONE = `Vector4(1, 1, 1, 1)`

One vector, a vector with all components set to `1`.

INF = `Vector4(inf, inf, inf, inf)`

Infinity vector, a vector with all components set to @GDScript.INF.

Property Descriptions¶

float w = `0.0`

The vector's W component. Also accessible by using the index position `[3]`.

float x = `0.0`

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

float y = `0.0`

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

float z = `0.0`

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

Constructor Descriptions¶

Vector4 Vector4 ( )

Constructs a default-initialized Vector4 with all components set to `0`.

Vector4 Vector4 ( Vector4 from )

Constructs a Vector4 as a copy of the given Vector4.

Vector4 Vector4 ( Vector4i from )

Constructs a new Vector4 from the given Vector4i.

Vector4 Vector4 ( float x, float y, float z, float w )

Returns a Vector4 with the given components.

Method Descriptions¶

Vector4 abs ( ) const

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

Vector4 ceil ( ) const

Returns a new vector with all components rounded up (towards positive infinity).

Vector4 clamp ( Vector4 min, Vector4 max ) const

Returns a new vector with all components clamped between the components of `min` and `max`, by running @GlobalScope.clamp on each component.

Vector4 cubic_interpolate ( Vector4 b, Vector4 pre_a, Vector4 post_b, float weight ) const

Performs a cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.

Vector4 cubic_interpolate_in_time ( Vector4 b, Vector4 pre_a, Vector4 post_b, float weight, float b_t, float pre_a_t, float post_b_t ) const

Performs a cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.

It can perform smoother interpolation than `cubic_interpolate()` by the time values.

Vector4 direction_to ( Vector4 to ) const

Returns the normalized vector pointing from this vector to