<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=User%3ADzonatas_Sol%2FHttpCastRayLLSD</id>
	<title>User:Dzonatas Sol/HttpCastRayLLSD - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=User%3ADzonatas_Sol%2FHttpCastRayLLSD"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;action=history"/>
	<updated>2026-05-12T15:12:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=993112&amp;oldid=prev</id>
		<title>Dzonatas Sol at 21:01, 1 August 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=993112&amp;oldid=prev"/>
		<updated>2010-08-01T21:01:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:01, 1 August 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This code does the very basic functionality to process casted rays by a query and to return the result as LLSD. This doesn&#039;t represent ideal functionality. It just allows us to research this basic functionality for potential optimization. It&#039;s not to be used to implement a full ray-tracer even if it is possible. It is meant to detect an object and use smart methods to not cast rays again through the area of that object. For now, we just use the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bouding&lt;/del&gt;-box as the default area&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. It would be more ideal if there was an easier way to detect static objects, yet we could compare return values to detect any changes in the scene&lt;/del&gt;. Maybe if there was an extra filter to llCastRay that only returned static objects&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, like if it tested the object is &quot;locked&quot; in position&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This code does the very basic functionality to process casted rays by a query and to return the result as LLSD. This doesn&#039;t represent ideal functionality. It just allows us to research this basic functionality for potential optimization. It&#039;s not to be used to implement a full ray-tracer even if it is possible. It is meant to detect an object and use smart methods to not cast rays again through the area of that object. For now, we just use the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bounding&lt;/ins&gt;-box as the default area. Maybe if there was an extra filter to llCastRay that only returned static objects&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;..&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lsl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lsl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=989172&amp;oldid=prev</id>
		<title>Dzonatas Sol at 05:50, 28 July 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=989172&amp;oldid=prev"/>
		<updated>2010-07-28T05:50:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:50, 27 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This code does the very basic functionality to process casted rays by a query and to return the result as LLSD. This doesn&#039;t represent ideal functionality. It just allows us to research this basic functionality for potential optimization. It&#039;s not to be used to implement a full ray-tracer even if it is possible. It is meant to detect an object and use smart methods to not cast rays again through the area of that object. For now, we just use the bouding-box as the default area. It would be more ideal if there was an easier way to detect static objects, yet we could compare return values to detect any changes in the scene. Maybe if there was an extra filter to llCastRay that only returned static objects, like if it tested the object is &quot;locked&quot; in position.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lsl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lsl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=989162&amp;oldid=prev</id>
		<title>Dzonatas Sol: Created page with &#039;&lt;lsl&gt; default {     state_entry()     {         llSay(0, &quot;Rebooted.&quot;);         llRequestURL();     }       http_request(key id, string method, string body)     {         if (meth...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dzonatas_Sol/HttpCastRayLLSD&amp;diff=989162&amp;oldid=prev"/>
		<updated>2010-07-28T05:36:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;lsl&amp;gt; default {     state_entry()     {         llSay(0, &amp;quot;Rebooted.&amp;quot;);         llRequestURL();     }       http_request(key id, string method, string body)     {         if (meth...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Rebooted.&amp;quot;);&lt;br /&gt;
        llRequestURL();&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    http_request(key id, string method, string body)&lt;br /&gt;
    {&lt;br /&gt;
        if (method == URL_REQUEST_GRANTED)&lt;br /&gt;
        {&lt;br /&gt;
            llSay(0,&amp;quot;URL: &amp;quot; + body);&lt;br /&gt;
        }&lt;br /&gt;
        else if (method == URL_REQUEST_DENIED)&lt;br /&gt;
        {&lt;br /&gt;
            llSay(0, &amp;quot;Something went wrong, no url. &amp;quot; + body);&lt;br /&gt;
        }&lt;br /&gt;
        else if (method == &amp;quot;GET&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            string  query      = llGetHTTPHeader(id, &amp;quot;x-query-string&amp;quot;); &lt;br /&gt;
            list    qvar       = llParseString2List(query, [&amp;quot;filter=&amp;quot;, &amp;quot;&amp;amp;sx=&amp;quot;, &amp;quot;&amp;amp;sy=&amp;quot;,&amp;quot;&amp;amp;sz=&amp;quot;,&amp;quot;&amp;amp;ex=&amp;quot;, &amp;quot;&amp;amp;ey=&amp;quot;,&amp;quot;&amp;amp;ez=&amp;quot;], [&amp;quot;&amp;quot;]);&lt;br /&gt;
            integer filter     = (integer)llList2String(qvar, 0);&lt;br /&gt;
&lt;br /&gt;
            float   x          = (float)llList2String(qvar, 1);&lt;br /&gt;
            float   y          = (float)llList2String(qvar, 2);&lt;br /&gt;
            float   z          = (float)llList2String(qvar, 3);&lt;br /&gt;
            vector start       = &amp;lt;x,y,z&amp;gt; ;&lt;br /&gt;
&lt;br /&gt;
            x                  = (float)llList2String(qvar, 4);&lt;br /&gt;
            y                  = (float)llList2String(qvar, 5);&lt;br /&gt;
            z                  = (float)llList2String(qvar, 6);&lt;br /&gt;
            vector end         = &amp;lt;x,y,z&amp;gt; ;&lt;br /&gt;
            llSay(0, (string)start + &amp;quot; &amp;quot; + (string)end) ;&lt;br /&gt;
&lt;br /&gt;
            list     results = llCastRay( start, end, filter, 0 ) ;&lt;br /&gt;
            key      uuid    = llList2Key(results, 0);&lt;br /&gt;
            string   vec     = llList2String(results, 1);&lt;br /&gt;
&lt;br /&gt;
            list     box    = llGetBoundingBox(uuid);&lt;br /&gt;
            vector   center = (llList2Vector(box, 0) + llList2Vector(box, 1)) * 0.5;&lt;br /&gt;
            vector   size   = llList2Vector(box, 1) - llList2Vector(box, 0);&lt;br /&gt;
            &lt;br /&gt;
            string text ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;llsd&amp;gt;&amp;lt;map&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;ID&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)uuid  + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;Point&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)vec    + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;Center&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)center + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;key&amp;gt;Size&amp;lt;/key&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;string&amp;gt;&amp;quot; + (string)size   + &amp;quot;&amp;lt;string&amp;gt;&amp;quot; ;&lt;br /&gt;
            text += &amp;quot;&amp;lt;/map&amp;gt;&amp;lt;/llsd&amp;gt;&amp;quot; ;&lt;br /&gt;
            llHTTPResponse(id,200, text );&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llHTTPResponse(id,405,&amp;quot;Unsupported Method&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dzonatas Sol</name></author>
	</entry>
</feed>