Difference between revisions of "Talk:LlCastRay"

From Second Life Wiki
Jump to navigation Jump to search
(llSonar please?)
 
Line 6: Line 6:


--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 03:01, 3 July 2010 (UTC)
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 03:01, 3 July 2010 (UTC)
== What am I looking at? ==
A function I just threw in to replace phantom bullets for quickly acquiring a point of interest -- whatever your camera's focused on (in this sim, within 20m) is returned, allowing quicker, more intuitive targeting of other objects.  PERMISSION_TRACK_CAMERA must be previously set.
<lsl>key camPing() {
    vector camPos = llGetCameraPos();
    vector endPos = camPos + ( <20.0, 0., 0.> * llGetCameraRot() );
    if ( endPos.x > 255.0 ) endPos.x = 255.0;
    else if ( endPos.x < 0.0 ) endPos.x = 0.0;
    if ( endPos.y > 255.0 ) endPos.y = 255.0;
    else if ( endPos.y < 0.0 ) endPos.y = 0.0;
    list contacts = llCastRay( camPos, endPos,
        RC_REJECT_LAND,
        RC_GET_ROOT_KEY );
    if ( llList2Integer( contacts, -1 ) ) { // Got a return
        return llList2Key( contacts, 0 );
    }
    return NULL_KEY;
}
</lsl>
[[User:Jack Abraham|Jack Abraham]] 04:42, 3 July 2010 (UTC)

Revision as of 20:42, 2 July 2010

llSonar please?

I would appreciate if you took in consideration my suggestions at http://jira.secondlife.com/browse/SVC-2486 please; any feedback is more than welcome.

ps:llCastRay is already awesome, you rock! Please try the hardest you can to figure out how to get this to come to the maingrid with the least crippling as possible.

--TigroSpottystripes Katsu 03:01, 3 July 2010 (UTC)

What am I looking at?

A function I just threw in to replace phantom bullets for quickly acquiring a point of interest -- whatever your camera's focused on (in this sim, within 20m) is returned, allowing quicker, more intuitive targeting of other objects. PERMISSION_TRACK_CAMERA must be previously set.

<lsl>key camPing() {

   vector camPos = llGetCameraPos();
   vector endPos = camPos + ( <20.0, 0., 0.> * llGetCameraRot() );
   if ( endPos.x > 255.0 ) endPos.x = 255.0;
   else if ( endPos.x < 0.0 ) endPos.x = 0.0;
   if ( endPos.y > 255.0 ) endPos.y = 255.0;
   else if ( endPos.y < 0.0 ) endPos.y = 0.0;
   list contacts = llCastRay( camPos, endPos, 
       RC_REJECT_LAND,
       RC_GET_ROOT_KEY );
   if ( llList2Integer( contacts, -1 ) ) { // Got a return
       return llList2Key( contacts, 0 );
   }
   return NULL_KEY;

} </lsl>

Jack Abraham 04:42, 3 July 2010 (UTC)