Skip to main content

Rotator

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


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
Vectorvectorthe 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
VectorvectorThe 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?)
TypeParameterDefaultDescription
booleanroll?falseWhether to use a random roll in the rotator, otherwise uses 0 for roll