Files
Rex-EMoolator-docs/docs/en/reference/VECTOR.md
Patryk Gensch 198d9cf477 Finished automatically generated docs
Time to correct it by itself
2026-05-20 22:49:46 +02:00

3.1 KiB

VECTOR

An N-dimensional vector of floating-point numbers. In practice, used for two- or three-dimensional coordinates — engine games use vectors mostly in physics-flavoured minigames (reflection, movement-direction normalisation).

The variable's value is the vector's Euclidean length, i.e. sqrt(x1² + x2² + … + xN²).

Fields

SIZE

INTEGER SIZE

The number of vector components. Typical values in shipping games are 2 or 3.

VALUE

DOUBLE, DOUBLE, [DOUBLE...] VALUE

Initial values of each component. The number of entries should match SIZE.

Methods

ADD

void ADD(STRING|VECTOR vectorName)

Adds another vector to this one component-wise. The result is stored in the vector the method was called on.

Parameters

  • vectorName — the vector to add; either a STRING (variable name) or a VECTOR.

Examples

VTEMP2^ADD("VTOCENTER");
VTEMP2^ADD(VTOCENTER);

ASSIGN

void ASSIGN(DOUBLE x1, DOUBLE x2, [DOUBLE...])

Assigns new component values. The number of arguments dictates how many components are overwritten — any beyond that retain their previous values. If more arguments are supplied than the vector has components, the vector is extended.

Parameters

  • x1, x2, … — the new component values.

Examples

VTEMP1^ASSIGN(0.0,0.0);
VTEMP1^ASSIGN(ARRDIRX^GET(VARPLAYER),ARRDIRY^GET(VARPLAYER));
VNORMAL^ASSIGN([ARRPOSX^GET(VARPLAYER)+ARRHWIDTH^GET(VARPLAYER)],[ARRPOSY^GET(VARPLAYER)+ARRHHEIGHT^GET(VARPLAYER)]);

GET

DOUBLE GET(INTEGER index)

Returns the value of the component at the given (zero-based) index. Returns 0.0 for out-of-range indices.

Parameters

  • index — component index, zero-based.

Returns: DOUBLE — the component value or 0.0.

Examples

VTEMP1^GET(0);
VTEMP1^GET(1);

LEN

DOUBLE LEN()

Returns the vector's Euclidean length.

Returns: DOUBLE — the vector length.

MUL

void MUL(DOUBLE scalar)

Multiplies every component by the given scalar.

Parameters

  • scalar — the multiplier.

Examples

VTEMP1^MUL(10.0);
VTEMP1^MUL(ARRSPEED^GET(VARPLAYER));
VTEMP2^MUL(-1);

NORMALIZE

void NORMALIZE()

Normalises the vector to length 1 (divides each component by the current length). Calling this on a zero-length vector leaves the vector unchanged.

Examples

VNORMAL^NORMALIZE();
VTEMP1^NORMALIZE();

REFLECT

void REFLECT(STRING|VECTOR normalVector, STRING|VECTOR resultVector)

Reflects this vector about the given normal vector and writes the result into the result vector. The original vector is unchanged.

Parameters

  • normalVector — normal vector of the surface to reflect against.
  • resultVector — vector that will receive the result.

Examples

VINCIDENT^REFLECT("VNORMAL","VREFLECT");
VINCIDENT^REFLECT(VNORMAL,VREFLECT);

Signals

ONINIT

Fired when the object is initialised.

ONSIGNAL

Fired when a signal arrives (see Events and signals).