llRot2Euler
Revision as of 15:48, 8 August 2015 by Strife Onizuka (talk | contribs) (Stole the text from llEuler2Rot)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: vector llRot2Euler( rotation quat );15 | Function ID |
0.0 | Forced Delay |
10.0 | 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.
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 );
}
}