User:Dora Gustafson/captureCameraView
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");
}
}
}