Rotator
A container for rotation information (Pitch, Yaw, Ro). All rotation values are stored in degrees.
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?)
🧽 Properties
Type | Name | Description |
---|---|---|
number | Pitch | Rotation around the right axis (around Y axis), Looking up and down (0=Straight Ahead, +Up, -Down) |
number | Yaw | Rotation around the up axis (around Z axis), Running in circles 0=East, +North, -South. |
number | Roll | Rotation around the forward axis (around X axis), Tilting your head, 0=Straight, +Clockwise, -CCW. |
Functions
This structure supports +
, -
, *
and tostring
operations.
Returns | Name | Description | |
---|---|---|---|
Vector | GetForwardVector | Get the forward (X) unit direction vector from this component, in world space. | |
Vector | GetRightVector | Get the right (Y) unit direction vector from this component, in world space. | |
Vector | GetUpVector | Get the up (Z) unit direction vector from this component, in world space. | |
Vector | RotateVector | Rotate a vector rotated by this rotator. | |
Normalize | In-place normalize, removes all winding and creates the “shortest route” rotation. | ||
Vector | UnrotateVector | Returns the vector rotated by the inverse of this rotator. | |
Quat | Quaternion | Get Rotation as a quaternion. | |
Rotator | GetNormalized | Returns a new Rotator normalized. | |
boolean | IsNearlyZero | Checks whether rotator is near to zero within a specified tolerance | |
boolean | IsZero | Checks 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)
Type | Parameter | Default | Description |
---|---|---|---|
Vector | vector | 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)
Type | Parameter | Default | Description |
---|---|---|---|
Vector | vector | 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?)
Type | Parameter | Default | Description |
---|---|---|---|
number | tolerance? | 0.000001 | Tolerance 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
Random
Generates a random rotation, with optional random roll
— Returns Rotator (the random rotation).
local ret = Rotator.Random(roll?)
Type | Parameter | Default | Description |
---|---|---|---|
boolean | roll? | false | Whether to use a random roll in the rotator, otherwise uses 0 for roll |