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;