# LlRot2Euler

 LSL Portal

## Contents

Function: vector llRot2Euler( rotation quat );
 15 Function ID 0 Forced Delay 10 Energy

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
// 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
// Convert the euler back to a rotation quarternion
rot =  llEuler2Rot (euler);
// Apply the updated rotation to the prim
llSetRot( rot );
}
}```

### Functions

 • llEuler2Rot

## Deep Notes

### Reference Implementation

```vector uRot2Euler(rotation rot)
{
vector ret;
vector temp;

//x-axis
temp = <0,0,1>*rot;
ret.x = llAtan2(temp.z,temp.y)-PI/2;
rot = rot/llEuler2Rot(<ret.x,0,0>);
//y-axis
temp = <0,0,1>*rot;
ret.y = -llAtan2(temp.z,temp.x)+PI/2;
rot = rot/llEuler2Rot(<0,ret.y,0>);
//z-axis
temp = <1,0,0>*rot;
ret.z = llAtan2(temp.y,temp.x);
return ret;
}```

#### Signature

```function vector llRot2Euler( rotation quat );
```