$nav
===== Function: llRot2Fwd =====
vector llRot2Fwd(rotation rot)
Returns the local X (forward) vector of a rotation.
===== Parameters =====
=== rot ===
The $lty[rotation] whose X vector is to be returned.
===== Return value =====
Returns a unit $lty[vector] that is the local X vector for that rotation.
===== Notes =====
* This function is roughly equivalent to ''<1, 0, 0>*rot'', except for the fact that the vector is normalized. When working with rotations that are guaranteed to be normalized (such as the ones that $lfn[llGetRot], $lfn[llEuler2Rot] etc. return), it's faster to use ''<1, 0, 0>*rot'' than $fn[llRot2Fwd].
* The forward (X) vector is special in many physics-related applications in SL. For example, ''llRot2Fwd(llGetRot())'' (or equivalently, ''<1,0,0>*llGetRot()'') used in the root of an attachment gives the direction the avatar is facing; vehicles also use the X vector as the direction to move towards by default.
===== Complete examples =====
This script, if used in an attachment, will rez an object 1.5 m in front of the avatar's center when touched. If used in an object that is not attached, it will rez the object 1.5m away in the direction of its local X axis.
default
{
touch_start(integer num)
{
vector pos = llGetPos() + llRot2Fwd(llGetRot())*1.5;
llRezObject("Object", pos, <0,0,0>, llGetRot(), 1);
}
}
===== See also =====
* $lfn[llRot2Left] returns the local Y axis of a rotation.
* $lfn[llRot2Up] returns the local Z axis of a rotation.
* $lfn[llAxes2Rot] takes local X, Y, and Z unit vectors and converts them to a rotation.