Skip to content

Class: vector ​

Mutable 3D float vector.

Most operations mutate the receiver and return it for chaining.

Source ​

C++ class XR_vector

Custom Constructor ​

vector

Remarks ​

Use set() first when you need a known value; script-created native vectors expose their fields directly.

Constructors ​

Constructor ​

ts
new vector(): vector;

Create a zero vector.

Returns ​

vector

Methods ​

abs() ​

ts
abs(vector: Readonly<vector>): vector;

Set this vector to absolute component values of another vector.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Source vector.

Returns ​

vector

This vector.


add() ​

Call Signature ​

ts
add(value: number): vector;

Add a scalar to every component.

Parameters ​
ParameterTypeDescription
valuenumberScalar value.
Returns ​

vector

This vector.

Call Signature ​

ts
add(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to left + right.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>Left vector.
rightReadonly<vector>Right vector.
Returns ​

vector

This vector.

Call Signature ​

ts
add(vector: Readonly<vector>): vector;

Add another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Vector to add.
Returns ​

vector

This vector.

Call Signature ​

ts
add(vector: Readonly<vector>, value: number): vector;

Set this vector to vector + value.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
valuenumberScalar value.
Returns ​

vector

This vector.


align() ​

ts
align(): vector;

Snap components to the engine alignment grid.

Returns ​

vector

This vector.


average() ​

Call Signature ​

ts
average(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to the midpoint between two vectors.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>First vector.
rightReadonly<vector>Second vector.
Returns ​

vector

This vector.

Call Signature ​

ts
average(vector: Readonly<vector>): vector;

Move this vector halfway toward another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Other vector.
Returns ​

vector

This vector.


clamp() ​

Call Signature ​

ts
clamp(min: Readonly<vector>, max: Readonly<vector>): vector;

Clamp this vector between two bounds.

Parameters ​
ParameterTypeDescription
minReadonly<vector>Minimum components.
maxReadonly<vector>Maximum components.
Returns ​

vector

This vector.

Call Signature ​

ts
clamp(vector: Readonly<vector>): vector;

Clamp this vector to symmetric component bounds.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Bound vector.
Returns ​

vector

This vector.


crossproduct() ​

ts
crossproduct(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to a cross product.

Parameters ​

ParameterTypeDescription
leftReadonly<vector>Left vector.
rightReadonly<vector>Right vector.

Returns ​

vector

This vector.


distance_to() ​

ts
distance_to(vector: Readonly<vector>): number;

Get 3D distance to another vector.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Target vector.

Returns ​

number

Distance.


distance_to_sqr() ​

ts
distance_to_sqr(vector: Readonly<vector>): number;

Get squared 3D distance to another vector.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Target vector.

Returns ​

number

Squared distance.


distance_to_xz() ​

ts
distance_to_xz(vector: Readonly<vector>): number;

Get distance to another vector on the XZ plane.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Target vector.

Returns ​

number

XZ-plane distance.


div() ​

Call Signature ​

ts
div(value: number): vector;

Divide every component by a scalar.

Parameters ​
ParameterTypeDescription
valuenumberScalar divisor.
Returns ​

vector

This vector.

Remarks ​

The binding performs raw division. Pass a non-zero divisor.

Call Signature ​

ts
div(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to component-wise left / right.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>Left vector.
rightReadonly<vector>Right vector.
Returns ​

vector

This vector.

Remarks ​

The binding performs raw component division. Divisor components must be non-zero.

Call Signature ​

ts
div(vector: Readonly<vector>): vector;

Divide this vector component-wise by another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Divisor vector.
Returns ​

vector

This vector.

Remarks ​

The binding performs raw component division. Divisor components must be non-zero.

Call Signature ​

ts
div(vector: Readonly<vector>, value: number): vector;

Set this vector to vector / value.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
valuenumberScalar divisor.
Returns ​

vector

This vector.

Remarks ​

The binding performs raw division. Pass a non-zero divisor.


dotproduct() ​

ts
dotproduct(vector: Readonly<vector>): number;

Get dot product with another vector.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Other vector.

Returns ​

number

Dot product.


getH() ​

ts
getH(): number;

Get heading angle for this direction vector.

Returns ​

number

Heading angle in radians.

Remarks ​

Intended for direction vectors. For arbitrary points, the result is just the angle of that vector from origin.


getP() ​

ts
getP(): number;

Get pitch angle for this direction vector.

Returns ​

number

Pitch angle in radians.

Remarks ​

Intended for direction vectors. For arbitrary points, the result is just the angle of that vector from origin.


inertion() ​

ts
inertion(vector: Readonly<vector>, value: number): vector;

Smooth this vector toward another vector.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Target vector.
valuenumberBlend factor.

Returns ​

vector

This vector.


invert() ​

Call Signature ​

ts
invert(): vector;

Negate this vector.

Returns ​

vector

This vector.

Call Signature ​

ts
invert(vector: Readonly<vector>): vector;

Set this vector to negated source vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
Returns ​

vector

This vector.


lerp() ​

ts
lerp(
   from: Readonly<vector>, 
   to: Readonly<vector>, 
   factor: number): vector;

Linearly interpolate between two vectors.

Parameters ​

ParameterTypeDescription
fromReadonly<vector>Start vector.
toReadonly<vector>End vector.
factornumberInterpolation factor.

Returns ​

vector

This vector.


mad() ​

Call Signature ​

ts
mad(left: Readonly<vector>, right: Readonly<vector>): vector;

Add two vectors and store the result.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>Left vector.
rightReadonly<vector>Right vector.
Returns ​

vector

This vector.

Call Signature ​

ts
mad(
   base: Readonly<vector>, 
   direction: Readonly<vector>, 
   scale: number): vector;

Add a scaled vector and store the result.

Parameters ​
ParameterTypeDescription
baseReadonly<vector>Base vector.
directionReadonly<vector>Direction vector.
scalenumberDirection scale.
Returns ​

vector

This vector.

Call Signature ​

ts
mad(
   base: Readonly<vector>, 
   left: Readonly<vector>, 
   right: Readonly<vector>): vector;

Add two vectors component-wise and scale by a third vector.

Parameters ​
ParameterTypeDescription
baseReadonly<vector>Base vector.
leftReadonly<vector>First multiplier vector.
rightReadonly<vector>Second multiplier vector.
Returns ​

vector

This vector.

Call Signature ​

ts
mad(vector: Readonly<vector>, scale: number): vector;

Add a scaled vector to this vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Vector to add.
scalenumberVector scale.
Returns ​

vector

This vector.


magnitude() ​

ts
magnitude(): number;

Get vector length.

Returns ​

number

3D vector magnitude.


max() ​

Call Signature ​

ts
max(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to component-wise maximum of two vectors.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>First vector.
rightReadonly<vector>Second vector.
Returns ​

vector

This vector.

Call Signature ​

ts
max(vector: Readonly<vector>): vector;

Clamp this vector upward by another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Minimum components.
Returns ​

vector

This vector.


min() ​

Call Signature ​

ts
min(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to component-wise minimum of two vectors.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>First vector.
rightReadonly<vector>Second vector.
Returns ​

vector

This vector.

Call Signature ​

ts
min(vector: Readonly<vector>): vector;

Clamp this vector downward by another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Maximum components.
Returns ​

vector

This vector.


mul() ​

Call Signature ​

ts
mul(value: number): vector;

Multiply every component by a scalar.

Parameters ​
ParameterTypeDescription
valuenumberScalar multiplier.
Returns ​

vector

This vector.

Call Signature ​

ts
mul(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to component-wise left * right.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>Left vector.
rightReadonly<vector>Right vector.
Returns ​

vector

This vector.

Call Signature ​

ts
mul(vector: Readonly<vector>): vector;

Multiply this vector component-wise by another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Multiplier vector.
Returns ​

vector

This vector.

Call Signature ​

ts
mul(vector: Readonly<vector>, value: number): vector;

Set this vector to vector * value.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
valuenumberScalar multiplier.
Returns ​

vector

This vector.


normalize() ​

Call Signature ​

ts
normalize(): vector;

Normalize this vector safely.

Returns ​

vector

This vector.

Remarks ​

The script binding routes normalize() through the same safe native path as normalize_safe().

Call Signature ​

ts
normalize(vector: Readonly<vector>): vector;

Set this vector to normalized source vector safely.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
Returns ​

vector

This vector.

Remarks ​

The script binding routes normalize(vector) through the same safe native path as normalize_safe(vector).


normalize_safe() ​

Call Signature ​

ts
normalize_safe(): vector;

Normalize this vector safely.

Returns ​

vector

This vector.

Call Signature ​

ts
normalize_safe(vector: Readonly<vector>): vector;

Set this vector to normalized source vector safely.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
Returns ​

vector

This vector.


reflect() ​

ts
reflect(direction: Readonly<vector>, normal: Readonly<vector>): vector;

Reflect a direction vector around a normal.

Parameters ​

ParameterTypeDescription
directionReadonly<vector>Incoming direction.
normalReadonly<vector>Surface normal.

Returns ​

vector

This vector.


set() ​

Call Signature ​

ts
set(vector: Readonly<vector>): vector;

Copy another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
Returns ​

vector

This vector.

Call Signature ​

ts
set(
   x: number, 
   y: number, 
   z: number): vector;

Set components.

Parameters ​
ParameterTypeDescription
xnumberX component.
ynumberY component.
znumberZ component.
Returns ​

vector

This vector.


set_length() ​

ts
set_length(value: number): vector;

Change vector length while keeping direction.

Parameters ​

ParameterTypeDescription
valuenumberNew length.

Returns ​

vector

This vector.

Remarks ​

Use on a vector that already has a meaningful direction.


setHP() ​

ts
setHP(heading: number, pitch: number): vector;

Set direction from heading and pitch.

Parameters ​

ParameterTypeDescription
headingnumberHeading angle in radians.
pitchnumberPitch angle in radians.

Returns ​

vector

This vector.


similar() ​

ts
similar(vector: Readonly<vector>, epsilon: number): boolean;

Compare vectors with tolerance.

Parameters ​

ParameterTypeDescription
vectorReadonly<vector>Vector to compare.
epsilonnumberAllowed component difference.

Returns ​

boolean

Whether vectors are similar.


slide() ​

ts
slide(direction: Readonly<vector>, normal: Readonly<vector>): vector;

Slide a direction along a surface normal.

Parameters ​

ParameterTypeDescription
directionReadonly<vector>Direction vector.
normalReadonly<vector>Surface normal.

Returns ​

vector

This vector.


sub() ​

Call Signature ​

ts
sub(value: number): vector;

Subtract a scalar from every component.

Parameters ​
ParameterTypeDescription
valuenumberScalar value.
Returns ​

vector

This vector.

Call Signature ​

ts
sub(left: Readonly<vector>, right: Readonly<vector>): vector;

Set this vector to left - right.

Parameters ​
ParameterTypeDescription
leftReadonly<vector>Left vector.
rightReadonly<vector>Right vector.
Returns ​

vector

This vector.

Call Signature ​

ts
sub(vector: Readonly<vector>): vector;

Subtract another vector.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Vector to subtract.
Returns ​

vector

This vector.

Call Signature ​

ts
sub(vector: Readonly<vector>, value: number): vector;

Set this vector to vector - value.

Parameters ​
ParameterTypeDescription
vectorReadonly<vector>Source vector.
valuenumberScalar value.
Returns ​

vector

This vector.

Properties ​

x ​

ts
x: number;

X component.


y ​

ts
y: number;

Y component.


z ​

ts
z: number;

Z component.