Jump to content

LlAxes2Rot

From OSgrid Wiki
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Function: rotation llAxes2Rot( vector fwd, vector left, vector up );

Returns a rotation that is defined by the 3 coordinate axes
• vector fwd
• vector left
• vector up

All three vectors must be mutually orthogonal unit vectors.

Examples

<source lang="lsl">

default {

   state_entry()
   {
       vector i = < 1.0, 0.0, 0.0>;
       vector j = < 0.0, 1.0, 0.0>;
       vector k = < 0.0, 0.0, 1.0>;

       rotation rot = llAxes2Rot( j, -i, k );

       llSay(0, (string) (llRot2Euler(rot) * RAD_TO_DEG) );
   }

} </source>

This script displays:

<source lang="lsl">
Object: <-0.00000, 0.00000, 90.00000>

</source>

which shows that (j, -i, k) is obtained by rotating (i, j, k) 90 degrees around z direction.

Notes

Technically, only the first two vectors are needed to define this rotation, which can be done by calling:

<source lang="lsl">

llAxes2Rot(fwd, left, fwd % left); </source>