Skip to main content
Version: latest - a1.15.x βš–οΈ

🧭 Rotator

A container for rotation information (Pitch, Yaw, Ro). All rotation values are stored in degrees.

πŸ‘Open Source
This structure is Open Sourced on GitHub. Feel free to make pull requests and suggest changes!
info

Rotators are internally and automatically compressed, which reduces it's size in the network up to 90%. Their components are usually compressed into 1 byte each (with some exceptions which we need more precision).

πŸŽ’ Examples​

local new_rotator = Rotator(-90, 153, 24.5)

πŸ—οΈ Constructor​

local my_rotator = Rotator(Pitch?, Yaw?, Roll?)
TypeNameDefaultDescription
number Pitch0Pitch
number Yaw0Yaw
number Roll0Roll

🧽 Properties​

TypeNameDescription
number PitchRotation around the right axis (around Y axis), Looking up and down (0=Straight Ahead, +Up, -Down)
number YawRotation around the up axis (around Z axis), Running in circles 0=East, +North, -South.
number RollRotation around the forward axis (around X axis), Tilting your head, 0=Straight, +Clockwise, -CCW.

🦠 Functions​

info

This structure supports +, -, * and tostring operations.

ReturnsNameDescription
Vector GetForwardVectorGet the forward (X) unit direction vector from this component, in world space.
Vector GetRightVectorGet the right (Y) unit direction vector from this component, in world space.
Vector GetUpVectorGet the up (Z) unit direction vector from this component, in world space.
Vector RotateVectorRotate a vector rotated by this rotator.
NormalizeIn-place normalize, removes all winding and creates the β€œshortest route” rotation.
Vector UnrotateVectorReturns the vector rotated by the inverse of this rotator.
Quat QuaternionGet Rotation as a quaternion.
Rotator GetNormalizedReturns a new Rotator normalized.
boolean IsNearlyZeroChecks whether rotator is near to zero within a specified tolerance
boolean IsZeroChecks whether all components of the rotator are exactly zero

GetForwardVector​

Get the forward (X) unit direction vector from this component, in world space.

Returns Vector (the forward direction)
local ret = my_rotator:GetForwardVector()

GetRightVector​

Get the right (Y) unit direction vector from this component, in world space.

Returns Vector (the right direction)
local ret = my_rotator:GetRightVector()

GetUpVector​

Get the up (Z) unit direction vector from this component, in world space.

Returns Vector (the up direction)
local ret = my_rotator:GetUpVector()

RotateVector​

Rotate a vector rotated by this rotator.

Returns Vector (the rotated vector)
local ret = my_rotator:RotateVector(vector)
TypeParameterDefaultDescription
Vector vectorthe vector to rotate by the Rotator

Normalize​

In-place normalize, removes all winding and creates the β€œshortest route” rotation.
my_rotator:Normalize()

UnrotateVector​

Returns the vector rotated by the inverse of this rotator.

Returns Vector (the unrotated vector)
local ret = my_rotator:UnrotateVector(vector)
TypeParameterDefaultDescription
Vector vectorThe vector to rotate by the inverse of the Rotator

Quaternion​

Get Rotation as a quaternion.

Returns Quat (the rotation as a quaternion)
local ret = my_rotator:Quaternion()

GetNormalized​

Returns a new Rotator normalized.

Returns Rotator (the normalized Rotator)
local ret = my_rotator:GetNormalized()

IsNearlyZero​

Checks whether rotator is near to zero within a specified tolerance

Returns boolean (whether the rotator is nearly zero)
local ret = my_rotator:IsNearlyZero(tolerance?)
TypeParameterDefaultDescription
number tolerance?0.000001Tolerance to check

IsZero​

Checks whether all components of the rotator are exactly zero

Returns boolean (whether the rotator is exactly zero)
local ret = my_rotator:IsZero()

πŸ—Ώ Static Functions​

ReturnsNameDescription
Rotator RandomGenerates a random rotation, with optional random roll

Random​

Generates a random rotation, with optional random roll

Returns Rotator (the random rotation)
local ret = Rotator.Random(roll?)
TypeParameterDefaultDescription
boolean roll?falseWhether to use a random roll in the rotator, otherwise uses 0 for roll