Difference between revisions of "Talk:LlCastRay"
Jump to navigation
Jump to search
(llSonar please?) |
Jack Abraham (talk | contribs) |
||
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)