e2 docs vector - wiremod/wire GitHub Wiki

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 (5 ops)

Number = Vector:length2()

Gets the squared length of the vector (5 ops)

Number = Vector:distance(Vector Other)

Gets the distance between vectors (5 ops)

Number = Vector:distance2(Vector Other)

Gets the squared distance between vectors (5 ops)

Vector = Vector:normalized()

Gets the normalized vector (5 ops)

Number = Vector:dot(Vector Other)

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

Vector = Vector:cross(Vector Other)

Gets the vector cross product (5 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 Rv1, Vector Rv2)

Returns the vector with the smallest length (10 ops)

Vector = max(Vector Rv1, Vector Rv2)

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 = mix(Vector Vec1, Vector Vec2, Number Ratio)

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 Control, 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)