User:Dora Gustafson/captureCameraView

From Second Life Wiki
< User:Dora Gustafson
Revision as of 13:48, 22 January 2015 by Dora Gustafson (talk | contribs) (→‎Capture Camera View)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
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.

llSetLinkCamera() Example

Capture Camera View
// camera capture/release test, script by Dora Gustafson, Studio Dora 2012
// v1.1
// save script in prim
// sit on the prim
// move camera
// touch the prim to capture camera view or release capture

integer gag = FALSE;

default
{
    state_entry()
    {
        llSitTarget( < 0.25, 0.0, 0.6 >, ZERO_ROTATION);
        llSetClickAction(CLICK_ACTION_SIT);
        llOwnerSay("To verify: stand up, press Esc, sit down and try to move the camera by the arrow keys");
    }
    touch_end(integer num)
    {
        gag = !gag;
        if (gag) llRequestPermissions( llGetOwner(), PERMISSION_TRACK_CAMERA);
        else
        {
            llSetLinkCamera( LINK_THIS, ZERO_VECTOR, ZERO_VECTOR);
            llOwnerSay("Capture released");
        }
    }
    run_time_permissions(integer perm)
    {
        if( perm & PERMISSION_TRACK_CAMERA)
        {
            rotation cam_rot=llGetCameraRot()/llGetRot(); // relative camera rotation
            vector cam_pos=(llGetCameraPos()-llGetPos())/llGetRot(); // relative camera position
            llSetLinkCamera( LINK_THIS, cam_pos, cam_pos + llRot2Fwd(cam_rot));
            llOwnerSay("Camera view captured");
        }
    }
}