Skip to content
DerelictDrone edited this page May 28, 2025 · 5 revisions

Jump to table of contents

Vector

Vector = vec()

Same as vec(0,0,0) (1 ops)

Vector = vec(Number X)

Makes a 3D vector (2 ops)

Vector = vec(Number X, Number Y, Number Z)

Makes a 3D vector (2 ops)

Vector = vec(Vector2 V2)

Converts a 2D vector into a 3D vector (the z component is set to 0) (2 ops)

Vector = vec(Vector2 V2, Number Z)

Converts a 2D vector into a 3D vector (the z component is set to the second argument) (2 ops)

Vector = vec(Vector4 V4)

Converts a 4D vector into a 3D vector (the w component is dropped) (2 ops)

Vector = vec(Angle Ang)

Changes an angle variable into a vector variable. PYR become XYZ respectively (2 ops)

Vector = randvec()

Returns a uniformly distributed, random, normalized direction vector (10 ops)

Vector = randvec(Number Min, Number Max)

Returns a random vector with its components between N1 and N2 (5 ops)

Vector = randvec(Vector Min, Vector Max)

Returns a random vector between V1 and V2 (5 ops)

Number = Vector:length()

Gets the length of the vector (2 ops)

Number = Vector:length2()

Gets the squared length of the vector (2 ops)

Number = Vector:distance(Vector Other)

Gets the distance between vectors (2 ops)

Number = Vector:distance2(Vector Other)

Gets the squared distance between vectors (2 ops)

Vector = Vector:normalized()

Gets the normalized vector (2 ops)

Number = Vector:dot(Vector Other)

Gets the vector dot (scalar) product (2 ops)

Vector = Vector:cross(Vector Other)

Gets the vector cross product (2 ops)

Matrix = Vector:outerProduct(Vector Other)

Gets the outer product (tensor product) and returns a matrix (tensor) (10 ops)

Vector = Vector:rotateAroundAxis(Vector Axis, Number Degrees)

Returns the vector V1 rotated around vector V2 by N degrees (15 ops)

Vector = Vector:rotate(Angle Ang)

Gets the rotated vector (5 ops)

Vector = Vector:rotate(Number Pitch, Number Yaw, Number Roll)

Gets the rotated vector (5 ops)

Vector2 = Vector:dehomogenized()

Converts a 2D homogeneous vector (x,y,w) into a 2D cartesian vector (5 ops)

Vector = positive(Vector Rv1)

Returns a vector containing the positive value of each vector component, equivalent to abs(N) (5 ops)

Vector = toRad(Vector Rv1)

Converts the vector's magnitude from radians to radians (3 ops)

Vector = toDeg(Vector Rv1)

Converts the vector's magnitude from radians to degrees (3 ops)

Vector = clamp(Vector Input, Number Min, Number Max)

Returns a vector in the same direction as vector 1, with length clamped between argument 2(min) and argument 3(max) (5 ops)

Number = Vector:x()

Gets the x component of the vector (1 ops)

Number = Vector:y()

Gets the y component of the vector (1 ops)

Number = Vector:z()

Gets the z component of the vector (1 ops)

Vector = Vector:setX(Number X)

Returns a copy of the vector with X replaced (use as Vec = Vec:setX(...)) (2 ops)

Vector = Vector:setY(Number Y)

Returns a copy of the vector with Y replaced (use as Vec = Vec:setY(...)) (2 ops)

Vector = Vector:setZ(Number Z)

Returns a copy of the vector with Z replaced (use as Vec = Vec:setZ(...)) (2 ops)

Vector = round(Vector Rv1)

Rounds XYZ to the nearest integer (6 ops)

Vector = round(Vector Rv1, Number Decimals)

Rounds XYZ to argument 2's decimal precision (6 ops)

Vector = ceil(Vector Rv1)

Rounds XYZ up to the nearest integer (6 ops)

Vector = ceil(Vector Rv1, Number Decimals)

Rounds XYZ up to argument 2's decimal precision (6 ops)

Vector = floor(Vector Rv1)

Rounds XYZ down to the nearest integer (6 ops)

Vector = floor(Vector Rv1, Number Decimals)

Rounds XYZ down to argument 2's decimal precision (6 ops)

Vector = min(Vector Vec1, Vector Vec2)

Returns the vector with the smallest length (10 ops)

Vector = max(Vector Vec1, Vector Vec2)

Returns the vector with the greatest length (10 ops)

Vector = maxVec(Vector Rv1, Vector Rv2)

Returns the vector combining the highest value components of V1 and V2 (10 ops)

Vector = minVec(Vector Rv1, Vector Rv2)

Returns a vector combining the lowest value components of V1 and V2 (10 ops)

Vector = mod(Vector Rv1, Number Rv2)

Returns the remainder after XYZ have been divided by argument 2 (10 ops)

Vector = mod(Vector Rv1, Vector Rv2)

Returns the remainder after the components of vector 1 have been divided by the components of vector 2 (10 ops)

Vector = clamp(Vector Value, Vector Min, Vector Max)

Clamps vector 1's XYZ between the XYZ of vector 2(min) and vector 3(max) (10 ops)

Vector = lerp(Vector From, Vector To, Number Fraction)

Performs linear interpolation. Returns a new value between 'from' and 'to', based on a 0-1 percentage ('fraction') (10 ops)

Vector = mix(Vector To, Vector From, Number Fraction)

Combines vector 1's XYZ with vector 2's XYZ by a proportion given by argument 3 (between 0 and 1) (10 ops)

Vector = bezier(Vector Startvec, Vector Tangent, Vector Endvec, Number Ratio)

Returns the 3D vector position on the bezier curve between the starting and ending 3D vector, given by the ratio (value between 0 and 1) (10 ops)

Vector = bezier(Vector Startvec, Vector Tangent1, Vector Tangent2, Vector Endvec, Number Ratio)

Returns the 3D vector position on the bezier curve between the starting and ending 3D vector, given by the ratio (value between 0 and 1) (10 ops)

Vector = shiftR(Vector Vec)

Shifts the vector's components right: shiftR( x,y,z ) = ( z,x,y ) (2 ops)

Vector = shiftL(Vector Vec)

Shifts the vector's components left: shiftL( x,y,z ) = ( y,z,x ) (2 ops)

Number = inrange(Vector Vec, Vector Min, Vector Max)

Returns 1 if each component of V is between (or is equal to) the components of Vmin and Vmax (5 ops)

Angle = Vector:toAngle()

Converts a direction vector into an angle (3 ops)

Angle = Vector:toAngle(Vector Up)

Converts a direction vector into an angle with roll being determined by the up vector (3 ops)

Number = pointHasContent(Vector Point, String Has)

'S' can be a string containing the last half of the CONTENTS_ enums (ie without the "CONTENTS_"). Multiple CONTENTS types can be seperated by a comma. Check: Enumeration_List:Contents for a full list. Examples: "water,solid" or "empty,transparent". The function returns 1 if any one of the types are found in the vector point (20 ops)

String = pointContents(Vector Point)

Returns a string with all the "content" types in the vector point, seperated by commas (15 ops)

Array = pointContentsArray(Vector Point)

Returns an array with all the "content" types in the vector point (15 ops)

Vector = toWorld(Vector Localpos, Angle Localang, Vector Worldpos, Angle Worldang)

Converts a local position/angle to a world position/angle and returns the position (15 ops)

Angle = toWorldAng(Vector Localpos, Angle Localang, Vector Worldpos, Angle Worldang)

Converts a local position/angle to a world position/angle and returns the angle (15 ops)

Array = toWorldPosAng(Vector Localpos, Angle Localang, Vector Worldpos, Angle Worldang)

Converts a local position/angle to a world position/angle and returns both in an array (15 ops)

Vector = toLocal(Vector Localpos, Angle Localang, Vector Worldpos, Angle Worldang)

Converts a world position/angle to a local position/angle and returns the position (15 ops)

Angle = toLocalAng(Vector Localpos, Angle Localang, Vector Worldpos, Angle Worldang)

Converts a world position/angle to a local position/angle and returns the angle (15 ops)

Array = toLocalPosAng(Vector Localpos, Angle Localang, Vector Worldpos, Angle Worldang)

Converts a world position/angle to a local position/angle and returns both in an array (15 ops)

Number = bearing(Vector Originpos, Angle Originangle, Vector Pos)

Gets the bearing from the first position, at the specified angle, to the second position (15 ops)

Number = elevation(Vector Originpos, Angle Originangle, Vector Pos)

Gets the elevation from the first position, at the specified angle, to the second position (15 ops)

Angle = heading(Vector Originpos, Angle Originangle, Vector Pos)

Gets the elevation and bearing from the first position, at the specified angle, to the second position (15 ops)

Number = Vector:isInWorld()

Returns 1 if the position vector is within the world, 0 if not (10 ops)

String = Vector:toString()

Gets the vector nicely formatted as a string "[X,Y,Z]" (5 ops)

String = toString(Vector V)

Gets the vector nicely formatted as a string "[X,Y,Z]" (5 ops)

Expression 2 ⚙️

Getting Started 🕊

Guides (In learning order) 🎓

Tools 🛠️

Click To Expand

Advanced

Beacon 💡

Control 🎛️

Data 💿

Detection 👀

Display 💻

Render 🖌

I/O 🔌

Physics 🚀

Utilities 🛠️

RFID 💳

Wireless 🛜

Gates 🚥

Click To Expand

TBD

Extras 🔭

Clone this wiki locally