Skip to main content
Version: bleeding-edge 🩸

🧭 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)

🛠 Constructors

Default 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