LlRot2Euler

From Second Life Wiki
Jump to: navigation, search

Summary

Function: vector llRot2Euler( rotation quat );

Returns a vector that is the Euler representation (roll, pitch, yaw) of quat, with each component expressed in radians.

• rotation quat Any valid rotation

Specification

The Euler angle vector (in radians) is converted from a rotation by doing the rotations around the 3 axes in Z, Y, X order.

Caveats

  • Angles greater than PI radians (180 degrees) are returned as negative angles.
All Issues ~ Search JIRA for related Bugs

Examples

default
{
    state_entry()
    {
        rotation input = llGetRot();
        llSay(0, "The Rot2Euler of " + (string)input + " is: " + (string) llRot2Euler(input) );
    }
}
// This script rotates a prim by 15 degrees each time the prim is touched
 
// While not the best way of achieving the result,
// this script demonstrates the use of llRot2Euler and llEuler2Rot
// and the use of more human-friendly degrees rather than radians
 
default
{
    touch_start(integer total_number)
    {
        // Get the object's current rotation as a quarternion
        rotation rot = llGetRot();
        // Convert the rotation to a euler with roll, pitch, and yaw in radians
        vector euler = llRot2Euler(rot);
        // convert the angles from radians to degrees
        euler *= RAD_TO_DEG;
        // Add 15 degrees on the Z axis        
        euler += <0, 0, 15>;
        // Say the current euler values in degrees
        llSay(0, (string) euler);         
        // convert degrees back to radians
        euler *= DEG_TO_RAD;
        // Convert the euler back to a rotation quarternion
        rot =  llEuler2Rot (euler);
        // Apply the updated rotation to the prim   
        llSetRot( rot ); 
    }
}

See Also

Functions

•  llEuler2Rot

Articles

•  Wikipedia:Euler Angles

Deep Notes

Search JIRA for related Issues

Signature

function vector llRot2Euler( rotation quat );