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.