Skip to main content
Version: bleeding-edge 🩸

🧭 Rotator

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

🧑‍💻API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!

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
numberpitch0Pitch
numberyawpitchYaw
numberrollpitchRoll

🧽 Properties

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

🦠 Functions

info

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

ReturnsNameDescription
VectorGetForwardVectorGet the forward (X) unit direction vector from this component, in world space.
VectorGetRightVectorGet the right (Y) unit direction vector from this component, in world space.
VectorGetUpVectorGet the up (Z) unit direction vector from this component, in world space.
VectorRotateVectorRotate a vector rotated by this rotator.
NormalizeIn-place normalize, removes all winding and creates the “shortest route” rotation.
VectorUnrotateVectorReturns the vector rotated by the inverse of this rotator.
QuatQuaternionGet Rotation as a quaternion.
RotatorGetNormalizedReturns a new Rotator normalized.
booleanIsNearlyZeroChecks whether rotator is near to zero within a specified tolerance
booleanIsZeroChecks 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
Vectorvector Required parameter the 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
Vectorvector Required parameter The 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
numbertolerance?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
RotatorRandomGenerates 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?, min?, max?)
TypeParameterDefaultDescription
booleanroll?falseWhether to use a random roll in the rotator, otherwise uses 0 for roll
floatmin?-180Minimum value
floatmax?180Maximum value