/////////////////////////////////////////////////////////////////////////// // Copyright (C) Wizardry and Steamworks 2013 - License: GNU GPLv3 // // Please see: http://www.gnu.org/licenses/gpl.html for legal details, // // rights of fair usage, the disclaimer and warranty conditions. // /////////////////////////////////////////////////////////////////////////// default { touch(integer total_number) { vector t = llDetectedTouchUV(0); // llEuler2Rot(<0,0,1>*DEG_TO_RAD) ~= <.00000, .00000, .00873, .99996> // llEuler2Rot(<1,0,0>*DEG_TO_RAD) ~= <.00873, .00000, .00000, .99996> if(t.x < .2) { llSetLinkPrimitiveParams(1, [PRIM_ROTATION, llGetRootRotation()*<.00000, .00000, .00873, .99996>]); jump display; } //right if(t.x > .7) { llSetLinkPrimitiveParams(1, [PRIM_ROTATION, llGetRootRotation()/<.00000, .00000, .00873, .99996>]); jump display; } //down if(t.y < .2) { rotation c = llList2Rot(llGetLinkPrimitiveParams(3, [PRIM_ROT_LOCAL]), 0); vector rt = llRot2Euler(c)*RAD_TO_DEG; if(rt.x < 1) return; llSetLinkPrimitiveParamsFast(3, [PRIM_ROT_LOCAL, c/<.00873, .00000, .00000, .99996>]); jump display; } //up if(t.y > .7) { rotation c = llList2Rot(llGetLinkPrimitiveParams(3, [PRIM_ROT_LOCAL]), 0); vector rt = llRot2Euler(c)*RAD_TO_DEG; if(rt.x > 50) return; llSetLinkPrimitiveParamsFast(3, [PRIM_ROT_LOCAL, c*<.00873, .00000, .00000, .99996>]); jump display; } return; @display; vector r = llRot2Euler(llList2Rot(llGetLinkPrimitiveParams(3, [PRIM_ROT_LOCAL]), 0))*RAD_TO_DEG; string e = llGetSubString((string)r.x,0, 4); llSetText("Elevation: " + e + "∘", <1,1,1>, 1); } touch_end(integer num) { // alarm 5 llSetTimerEvent(5); } timer() { llSetText("", <1,1,1>, 1); } }