Skip to content

Class: MockVector ​

Mock of the X-Ray engine 3D vector class for jest/node.

Pure-JS implementation of the subset of vector behaviour used by shared utilities, so code that calls new vector() can run under jest when vector is bound to this mock.

Implements ​

  • vector

Constructors ​

Constructor ​

ts
new MockVector(): MockVector;

Returns ​

MockVector

Methods ​

abs() ​

ts
abs(vector: TReadonlyVector): MockVector;

Set this vector to absolute component values of another vector.

Parameters ​

ParameterTypeDescription
vectorTReadonlyVectorSource vector.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.abs

add() ​

ts
add(first: number | Readonly<vector>, second?: number | Readonly<vector>): MockVector;

Add a scalar to every component.

Parameters ​

ParameterType
firstnumber | Readonly<vector>
second?number | Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.add

align() ​

ts
align(): MockVector;

Snap components to the engine alignment grid.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.align

asMock() ​

ts
asMock(): vector;

Returns ​

vector


average() ​

ts
average(first: TReadonlyVector, second?: Readonly<vector>): MockVector;

Set this vector to the midpoint between two vectors.

Parameters ​

ParameterType
firstTReadonlyVector
second?Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.average

clamp() ​

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

Clamp this vector between two bounds.

Parameters ​

ParameterTypeDescription
minTReadonlyVectorMinimum components.
max?Readonly<vector>Maximum components.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.clamp

crossproduct() ​

ts
crossproduct(first: TReadonlyVector, second: TReadonlyVector): MockVector;

Set this vector to a cross product.

Parameters ​

ParameterType
firstTReadonlyVector
secondTReadonlyVector

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.crossproduct

distance_to() ​

Call Signature ​

ts
distance_to(target: TReadonlyVector): number;

Get 3D distance to another vector.

Parameters ​
ParameterType
targetTReadonlyVector
Returns ​

number

Distance.

Implementation of ​
ts
vector.distance_to

Call Signature ​

ts
distance_to(): number;
Returns ​

number

Implementation of ​
ts
vector.distance_to

distance_to_sqr() ​

Call Signature ​

ts
distance_to_sqr(target: TReadonlyVector): number;

Get squared 3D distance to another vector.

Parameters ​
ParameterType
targetTReadonlyVector
Returns ​

number

Squared distance.

Implementation of ​
ts
vector.distance_to_sqr

Call Signature ​

ts
distance_to_sqr(): number;
Returns ​

number

Implementation of ​
ts
vector.distance_to_sqr

distance_to_xz() ​

ts
distance_to_xz(target: TReadonlyVector): number;

Get distance to another vector on the XZ plane.

Parameters ​

ParameterType
targetTReadonlyVector

Returns ​

number

XZ-plane distance.

Implementation of ​

ts
vector.distance_to_xz

div() ​

ts
div(first: number | Readonly<vector>, second?: number | Readonly<vector>): MockVector;

Divide every component by a scalar.

Parameters ​

ParameterType
firstnumber | Readonly<vector>
second?number | Readonly<vector>

Returns ​

MockVector

This vector.

Remarks ​

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

Implementation of ​

ts
vector.div

dotproduct() ​

ts
dotproduct(target: TReadonlyVector): number;

Get dot product with another vector.

Parameters ​

ParameterType
targetTReadonlyVector

Returns ​

number

Dot product.

Implementation of ​

ts
vector.dotproduct

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.

Implementation of ​

ts
vector.getH

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.

Implementation of ​

ts
vector.getP

inertion() ​

ts
inertion(vector: TReadonlyVector, value: number): MockVector;

Smooth this vector toward another vector.

Parameters ​

ParameterTypeDescription
vectorTReadonlyVectorTarget vector.
valuenumberBlend factor.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.inertion

invert() ​

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

Negate this vector.

Parameters ​

ParameterType
vector?Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.invert

lerp() ​

ts
lerp(
   from: TReadonlyVector, 
   to: TReadonlyVector, 
   factor: number): MockVector;

Linearly interpolate between two vectors.

Parameters ​

ParameterTypeDescription
fromTReadonlyVectorStart vector.
toTReadonlyVectorEnd vector.
factornumberInterpolation factor.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.lerp

mad() ​

ts
mad(
   first: TReadonlyVector, 
   second: number | Readonly<vector>, 
   third?: number | Readonly<vector>): MockVector;

Add two vectors and store the result.

Parameters ​

ParameterType
firstTReadonlyVector
secondnumber | Readonly<vector>
third?number | Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.mad

magnitude() ​

ts
magnitude(): number;

Get vector length.

Returns ​

number

3D vector magnitude.

Implementation of ​

ts
vector.magnitude

max() ​

ts
max(first: TReadonlyVector, second?: Readonly<vector>): MockVector;

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

Parameters ​

ParameterType
firstTReadonlyVector
second?Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.max

min() ​

ts
min(first: TReadonlyVector, second?: Readonly<vector>): MockVector;

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

Parameters ​

ParameterType
firstTReadonlyVector
second?Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.min

mul() ​

ts
mul(first: number | Readonly<vector>, second?: number | Readonly<vector>): MockVector;

Multiply every component by a scalar.

Parameters ​

ParameterType
firstnumber | Readonly<vector>
second?number | Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.mul

normalize() ​

ts
normalize(): MockVector;

Normalize this vector safely.

Returns ​

MockVector

This vector.

Remarks ​

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

Implementation of ​

ts
vector.normalize

normalize_safe() ​

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

Normalize this vector safely.

Parameters ​

ParameterType
vector?Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.normalize_safe

reflect() ​

ts
reflect(direction: TReadonlyVector, normal: TReadonlyVector): MockVector;

Reflect a direction vector around a normal.

Parameters ​

ParameterTypeDescription
directionTReadonlyVectorIncoming direction.
normalTReadonlyVectorSurface normal.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.reflect

set() ​

Call Signature ​

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

Copy another vector.

Parameters ​
ParameterType
xnumber
ynumber
znumber
Returns ​

MockVector

This vector.

Implementation of ​
ts
vector.set

Call Signature ​

ts
set(x: TReadonlyVector): MockVector;

Set components.

Parameters ​
ParameterTypeDescription
xTReadonlyVectorX component.
Returns ​

MockVector

This vector.

Implementation of ​
ts
vector.set

set_length() ​

ts
set_length(value: number): MockVector;

Change vector length while keeping direction.

Parameters ​

ParameterTypeDescription
valuenumberNew length.

Returns ​

MockVector

This vector.

Remarks ​

Use on a vector that already has a meaningful direction.

Implementation of ​

ts
vector.set_length

setHP() ​

ts
setHP(h: number, p: number): MockVector;

Set direction from heading and pitch.

Parameters ​

ParameterType
hnumber
pnumber

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.setHP

similar() ​

ts
similar(vector: TReadonlyVector, epsilon: number): boolean;

Compare vectors with tolerance.

Parameters ​

ParameterTypeDescription
vectorTReadonlyVectorVector to compare.
epsilonnumberAllowed component difference.

Returns ​

boolean

Whether vectors are similar.

Implementation of ​

ts
vector.similar

slide() ​

ts
slide(direction: TReadonlyVector, normal: TReadonlyVector): MockVector;

Slide a direction along a surface normal.

Parameters ​

ParameterTypeDescription
directionTReadonlyVectorDirection vector.
normalTReadonlyVectorSurface normal.

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.slide

sub() ​

ts
sub(first: number | Readonly<vector>, second?: number | Readonly<vector>): MockVector;

Subtract a scalar from every component.

Parameters ​

ParameterType
firstnumber | Readonly<vector>
second?number | Readonly<vector>

Returns ​

MockVector

This vector.

Implementation of ​

ts
vector.sub

create() ​

ts
static create(
   x?: number, 
   y?: number, 
   z?: number): MockVector;

Parameters ​

ParameterTypeDefault value
xnumber0
ynumber0
znumber0

Returns ​

MockVector


mock() ​

ts
static mock(
   x?: number, 
   y?: number, 
   z?: number): vector;

Parameters ​

ParameterTypeDefault value
xnumber0
ynumber0
znumber0

Returns ​

vector

Properties ​

x ​

ts
x: number = 0;

X component.

Implementation of ​

ts
vector.x

y ​

ts
y: number = 0;

Y component.

Implementation of ​

ts
vector.y

z ​

ts
z: number = 0;

Z component.

Implementation of ​

ts
vector.z

DEFAULT_DISTANCE ​

ts
static DEFAULT_DISTANCE: number = 20;