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
new vector(): vector;Create a zero vector.
Returns
vector
Methods
abs()
abs(vector: Readonly<vector>): vector;Set this vector to absolute component values of another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
Returns
vector
This vector.
add()
Call Signature
add(value: number): vector;Add a scalar to every component.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | number | Scalar value. |
Returns
vector
This vector.
Call Signature
add(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to left + right.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | Left vector. |
right | Readonly<vector> | Right vector. |
Returns
vector
This vector.
Call Signature
add(vector: Readonly<vector>): vector;Add another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Vector to add. |
Returns
vector
This vector.
Call Signature
add(vector: Readonly<vector>, value: number): vector;Set this vector to vector + value.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
value | number | Scalar value. |
Returns
vector
This vector.
align()
align(): vector;Snap components to the engine alignment grid.
Returns
vector
This vector.
average()
Call Signature
average(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to the midpoint between two vectors.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | First vector. |
right | Readonly<vector> | Second vector. |
Returns
vector
This vector.
Call Signature
average(vector: Readonly<vector>): vector;Move this vector halfway toward another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Other vector. |
Returns
vector
This vector.
clamp()
Call Signature
clamp(min: Readonly<vector>, max: Readonly<vector>): vector;Clamp this vector between two bounds.
Parameters
| Parameter | Type | Description |
|---|---|---|
min | Readonly<vector> | Minimum components. |
max | Readonly<vector> | Maximum components. |
Returns
vector
This vector.
Call Signature
clamp(vector: Readonly<vector>): vector;Clamp this vector to symmetric component bounds.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Bound vector. |
Returns
vector
This vector.
crossproduct()
crossproduct(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to a cross product.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | Left vector. |
right | Readonly<vector> | Right vector. |
Returns
vector
This vector.
distance_to()
distance_to(vector: Readonly<vector>): number;Get 3D distance to another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Target vector. |
Returns
number
Distance.
distance_to_sqr()
distance_to_sqr(vector: Readonly<vector>): number;Get squared 3D distance to another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Target vector. |
Returns
number
Squared distance.
distance_to_xz()
distance_to_xz(vector: Readonly<vector>): number;Get distance to another vector on the XZ plane.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Target vector. |
Returns
number
XZ-plane distance.
div()
Call Signature
div(value: number): vector;Divide every component by a scalar.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | number | Scalar divisor. |
Returns
vector
This vector.
Remarks
The binding performs raw division. Pass a non-zero divisor.
Call Signature
div(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to component-wise left / right.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | Left vector. |
right | Readonly<vector> | Right vector. |
Returns
vector
This vector.
Remarks
The binding performs raw component division. Divisor components must be non-zero.
Call Signature
div(vector: Readonly<vector>): vector;Divide this vector component-wise by another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Divisor vector. |
Returns
vector
This vector.
Remarks
The binding performs raw component division. Divisor components must be non-zero.
Call Signature
div(vector: Readonly<vector>, value: number): vector;Set this vector to vector / value.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
value | number | Scalar divisor. |
Returns
vector
This vector.
Remarks
The binding performs raw division. Pass a non-zero divisor.
dotproduct()
dotproduct(vector: Readonly<vector>): number;Get dot product with another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Other vector. |
Returns
number
Dot product.
getH()
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()
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()
inertion(vector: Readonly<vector>, value: number): vector;Smooth this vector toward another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Target vector. |
value | number | Blend factor. |
Returns
vector
This vector.
invert()
Call Signature
invert(): vector;Negate this vector.
Returns
vector
This vector.
Call Signature
invert(vector: Readonly<vector>): vector;Set this vector to negated source vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
Returns
vector
This vector.
lerp()
lerp(
from: Readonly<vector>,
to: Readonly<vector>,
factor: number): vector;Linearly interpolate between two vectors.
Parameters
| Parameter | Type | Description |
|---|---|---|
from | Readonly<vector> | Start vector. |
to | Readonly<vector> | End vector. |
factor | number | Interpolation factor. |
Returns
vector
This vector.
mad()
Call Signature
mad(left: Readonly<vector>, right: Readonly<vector>): vector;Add two vectors and store the result.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | Left vector. |
right | Readonly<vector> | Right vector. |
Returns
vector
This vector.
Call Signature
mad(
base: Readonly<vector>,
direction: Readonly<vector>,
scale: number): vector;Add a scaled vector and store the result.
Parameters
| Parameter | Type | Description |
|---|---|---|
base | Readonly<vector> | Base vector. |
direction | Readonly<vector> | Direction vector. |
scale | number | Direction scale. |
Returns
vector
This vector.
Call Signature
mad(
base: Readonly<vector>,
left: Readonly<vector>,
right: Readonly<vector>): vector;Add two vectors component-wise and scale by a third vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
base | Readonly<vector> | Base vector. |
left | Readonly<vector> | First multiplier vector. |
right | Readonly<vector> | Second multiplier vector. |
Returns
vector
This vector.
Call Signature
mad(vector: Readonly<vector>, scale: number): vector;Add a scaled vector to this vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Vector to add. |
scale | number | Vector scale. |
Returns
vector
This vector.
magnitude()
magnitude(): number;Get vector length.
Returns
number
3D vector magnitude.
max()
Call Signature
max(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to component-wise maximum of two vectors.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | First vector. |
right | Readonly<vector> | Second vector. |
Returns
vector
This vector.
Call Signature
max(vector: Readonly<vector>): vector;Clamp this vector upward by another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Minimum components. |
Returns
vector
This vector.
min()
Call Signature
min(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to component-wise minimum of two vectors.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | First vector. |
right | Readonly<vector> | Second vector. |
Returns
vector
This vector.
Call Signature
min(vector: Readonly<vector>): vector;Clamp this vector downward by another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Maximum components. |
Returns
vector
This vector.
mul()
Call Signature
mul(value: number): vector;Multiply every component by a scalar.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | number | Scalar multiplier. |
Returns
vector
This vector.
Call Signature
mul(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to component-wise left * right.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | Left vector. |
right | Readonly<vector> | Right vector. |
Returns
vector
This vector.
Call Signature
mul(vector: Readonly<vector>): vector;Multiply this vector component-wise by another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Multiplier vector. |
Returns
vector
This vector.
Call Signature
mul(vector: Readonly<vector>, value: number): vector;Set this vector to vector * value.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
value | number | Scalar multiplier. |
Returns
vector
This vector.
normalize()
Call Signature
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
normalize(vector: Readonly<vector>): vector;Set this vector to normalized source vector safely.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<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
normalize_safe(): vector;Normalize this vector safely.
Returns
vector
This vector.
Call Signature
normalize_safe(vector: Readonly<vector>): vector;Set this vector to normalized source vector safely.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
Returns
vector
This vector.
reflect()
reflect(direction: Readonly<vector>, normal: Readonly<vector>): vector;Reflect a direction vector around a normal.
Parameters
| Parameter | Type | Description |
|---|---|---|
direction | Readonly<vector> | Incoming direction. |
normal | Readonly<vector> | Surface normal. |
Returns
vector
This vector.
set()
Call Signature
set(vector: Readonly<vector>): vector;Copy another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
Returns
vector
This vector.
Call Signature
set(
x: number,
y: number,
z: number): vector;Set components.
Parameters
| Parameter | Type | Description |
|---|---|---|
x | number | X component. |
y | number | Y component. |
z | number | Z component. |
Returns
vector
This vector.
set_length()
set_length(value: number): vector;Change vector length while keeping direction.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | number | New length. |
Returns
vector
This vector.
Remarks
Use on a vector that already has a meaningful direction.
setHP()
setHP(heading: number, pitch: number): vector;Set direction from heading and pitch.
Parameters
| Parameter | Type | Description |
|---|---|---|
heading | number | Heading angle in radians. |
pitch | number | Pitch angle in radians. |
Returns
vector
This vector.
similar()
similar(vector: Readonly<vector>, epsilon: number): boolean;Compare vectors with tolerance.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Vector to compare. |
epsilon | number | Allowed component difference. |
Returns
boolean
Whether vectors are similar.
slide()
slide(direction: Readonly<vector>, normal: Readonly<vector>): vector;Slide a direction along a surface normal.
Parameters
| Parameter | Type | Description |
|---|---|---|
direction | Readonly<vector> | Direction vector. |
normal | Readonly<vector> | Surface normal. |
Returns
vector
This vector.
sub()
Call Signature
sub(value: number): vector;Subtract a scalar from every component.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | number | Scalar value. |
Returns
vector
This vector.
Call Signature
sub(left: Readonly<vector>, right: Readonly<vector>): vector;Set this vector to left - right.
Parameters
| Parameter | Type | Description |
|---|---|---|
left | Readonly<vector> | Left vector. |
right | Readonly<vector> | Right vector. |
Returns
vector
This vector.
Call Signature
sub(vector: Readonly<vector>): vector;Subtract another vector.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Vector to subtract. |
Returns
vector
This vector.
Call Signature
sub(vector: Readonly<vector>, value: number): vector;Set this vector to vector - value.
Parameters
| Parameter | Type | Description |
|---|---|---|
vector | Readonly<vector> | Source vector. |
value | number | Scalar value. |
Returns
vector
This vector.
Properties
x
x: number;X component.
y
y: number;Y component.
z
z: number;Z component.