OsSetProjectionParams

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
 
(3 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
|delay=0
 
|delay=0
 
|additional_info=This function was added in 0.7.2-post-fixes, linkset variant added 2019, April 18
 
|additional_info=This function was added in 0.7.2-post-fixes, linkset variant added 2019, April 18
|function_syntax=void osSetProjectionParams(integer projection, key texture, float fov, float focus, float amb)<br />
+
|function_syntax= osSetProjectionParams(integer projection, key texture, float fov, float focus, float amb)<br />
void osSetProjectionParams(integer linknumber, integer projection, key texture, float fov, float focus, float amb)<br />
+
osSetProjectionParams(integer linknumber, integer projection, key texture, float fov, float focus, float amb)<br />
void osSetProjectionParams(key prim, integer projection, key texture, float fov, float focus, float amb)
+
osSetProjectionParams(key prim, integer projection, key texture, float fov, float focus, float amb)
|ossl_example=This example will control the projection map in the host prim, a prim on the linkset or another prim identified by it's uuid.  
+
|ossl_example=These examples will control the projection map in the host prim, a prim on the linkset and another prim identified by it's uuid.  
<source lang="lsl">
+
<source lang="lsl">// Exemple of osSetProjectionParams control this prim
integer pstate = FALSE;
+
  
// These variables correspond to the settings found in the
+
// These variables correspond to the settings found in the "Features" tab of the build editor
// "Features" tab of the build editor
+
float FOV = 1.5;        // Values 0.00 - 3.00
float FOV = 1.5; // Values 0.00 - 3.00
+
float Focus = 15.0;    // Values -20.00 - 20.00
float Focus = 15.0; // Values -20.00 - 20.00
+
float Ambiance = 0.4;  // Values 0.00 - 1.00
float Ambiance = 0.4; // Values 0.00 - 1.00
+
 
 +
// UUID of the texture to project
 +
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
 +
 
 +
integer Power;
 +
 
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        llSay(PUBLIC_CHANNEL, "Script running ...");
 +
    }
 +
 +
    touch_start(integer number)
 +
    {
 +
        Power =! Power;
 +
        osSetPrimitiveParams(llGetKey(),[PRIM_POINT_LIGHT, Power, <1.0, 1.0, 1.0>, 1.0, 5.0, 0.5]);
 +
        osSetProjectionParams(Power, Texture, FOV, Focus, Ambiance);
 +
    }
 +
}</source>
 +
 
 +
<source lang="lsl">// Exemple of osSetProjectionParams control the prim with link number 2
 +
 
 +
// These variables correspond to the settings found in the "Features" tab of the build editor
 +
float FOV = 1.5;       // Values 0.00 - 3.00
 +
float Focus = 15.0;     // Values -20.00 - 20.00
 +
float Ambiance = 0.4;   // Values 0.00 - 1.00
 +
 
 +
// UUID of the texture to project
 +
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
 +
 
 +
// Link number of prim that we want to control
 +
integer Link = 2;
 +
 
 +
integer Power;
 +
 
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        llSay(PUBLIC_CHANNEL, "Script running ...");
 +
    }
 +
 +
    touch_start(integer number)
 +
    {
 +
        Power =! Power;
 +
        llSetLinkPrimitiveParamsFast(Link, [PRIM_POINT_LIGHT, Power, <1.0, 1.0, 1.0>, 1.0, 5.0, 0.5]);
 +
        osSetProjectionParams(Link, Power, Texture, FOV, Focus, Ambiance);
 +
    }
 +
}</source>
 +
 
 +
<source lang="lsl">// Exemple of osSetProjectionParams control the remote prim
 +
 
 +
// These variables correspond to the settings found in the "Features" tab of the build editor
 +
float FOV = 1.5;        // Values 0.00 - 3.00
 +
float Focus = 15.0;    // Values -20.00 - 20.00
 +
float Ambiance = 0.4;  // Values 0.00 - 1.00
 +
 
 +
// UUID of the texture to project
 
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
 
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
  
 
// UUID of other prim that we want to control
 
// UUID of other prim that we want to control
key Remote = "9772974a-a0f6-43ec-b1a2-da558b0b0d59";
+
key Remote = "1721c368-e468-46da-bcae-0bdd3e647a2b";
 +
 
 +
integer Power;
  
 
default
 
default
Line 25: Line 84:
 
     state_entry()
 
     state_entry()
 
     {
 
     {
         llSay(0, "Script running");
+
         llSay(PUBLIC_CHANNEL, "Script running ...");
        llSetText((string)llGetKey(),<0.3,0.5,0.75>,1.0);
+
        llSetPrimitiveParams([]);
+
       
+
        // Light must be enabled in "Features"
+
       
+
        // This one controls this prim...
+
        osSetProjectionParams(pstate, Texture, FOV, Focus, Ambiance);
+
        // This one controls the remote prim...
+
        osSetProjectionParams(Remote, pstate, Texture, FOV, Focus, Ambiance);
+
       
+
 
     }
 
     }
   
+
     touch_start(integer _det)  
+
     touch_start(integer number)  
 
     {
 
     {
          
+
         Power =! Power;
        if (pstate == TRUE)
+
         osSetPrimitiveParams(Remote,[PRIM_POINT_LIGHT, Power, <1.0, 1.0, 1.0>, 1.0, 5.0, 0.5]);
        {
+
         osSetProjectionParams(Remote, Power, Texture, FOV, Focus, Ambiance);
            pstate = FALSE;
+
         }
+
        else
+
        {
+
            pstate = TRUE;
+
        }
+
       
+
        // Control this prim...
+
        osSetProjectionParams(pstate, Texture, FOV, Focus, Ambiance);
+
        // Control the remote prim...
+
         osSetProjectionParams(Remote, pstate, Texture, FOV, Focus, Ambiance);
+
 
     }
 
     }
}
+
}</source>
</source>
+
|description= Sets a prim projector parameters, argument projection is TRUE(1) or FALSE(0). The prim can be the host prim on first variant, a prim on the linkset or a prim with giving UUID. In last case Threat level is high and controlled by Allow_osSetProjectionParams. In the other cases has no threat level check. Note that you may need to set the prim light also.
+
  
 +
|description= Sets a prim projector parameters, argument projection is TRUE(1) or FALSE(0). The prim can be the host prim on first variant, a prim on the linkset or a prim with giving UUID. In last case Threat level is high and controlled by Allow_osSetProjectionParams. The other cases have no threat level check. Note that you may need to set the prim light also.
 
|
 
|
 
}}
 
}}

Latest revision as of 16:27, 1 May 2019

osSetProjectionParams(integer projection, key texture, float fov, float focus, float amb)

osSetProjectionParams(integer linknumber, integer projection, key texture, float fov, float focus, float amb)
osSetProjectionParams(key prim, integer projection, key texture, float fov, float focus, float amb)

Sets a prim projector parameters, argument projection is TRUE(1) or FALSE(0). The prim can be the host prim on first variant, a prim on the linkset or a prim with giving UUID. In last case Threat level is high and controlled by Allow_osSetProjectionParams. The other cases have no threat level check. Note that you may need to set the prim light also.
Threat Level No threat level specified
Permissions No permissions specified
Delay 0 seconds
Example(s)
These examples will control the projection map in the host prim, a prim on the linkset and another prim identified by it's uuid.
// Exemple of osSetProjectionParams control this prim
 
// These variables correspond to the settings found in the "Features" tab of the build editor
float FOV = 1.5;        // Values 0.00 - 3.00
float Focus = 15.0;     // Values -20.00 - 20.00
float Ambiance = 0.4;   // Values 0.00 - 1.00
 
// UUID of the texture to project
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
 
integer Power;
 
default
{
    state_entry()
    {
        llSay(PUBLIC_CHANNEL, "Script running ...");
    }
 
    touch_start(integer number) 
    {
        Power =! Power;
        osSetPrimitiveParams(llGetKey(),[PRIM_POINT_LIGHT, Power, <1.0, 1.0, 1.0>, 1.0, 5.0, 0.5]);
        osSetProjectionParams(Power, Texture, FOV, Focus, Ambiance);
    }
}
// Exemple of osSetProjectionParams control the prim with link number 2
 
// These variables correspond to the settings found in the "Features" tab of the build editor
float FOV = 1.5;        // Values 0.00 - 3.00
float Focus = 15.0;     // Values -20.00 - 20.00
float Ambiance = 0.4;   // Values 0.00 - 1.00
 
// UUID of the texture to project
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
 
// Link number of prim that we want to control
integer Link = 2;
 
integer Power;
 
default
{
    state_entry()
    {
        llSay(PUBLIC_CHANNEL, "Script running ...");
    }
 
    touch_start(integer number) 
    {
        Power =! Power;
        llSetLinkPrimitiveParamsFast(Link, [PRIM_POINT_LIGHT, Power, <1.0, 1.0, 1.0>, 1.0, 5.0, 0.5]);
        osSetProjectionParams(Link, Power, Texture, FOV, Focus, Ambiance);
    }
}
// Exemple of osSetProjectionParams control the remote prim
 
// These variables correspond to the settings found in the "Features" tab of the build editor
float FOV = 1.5;        // Values 0.00 - 3.00
float Focus = 15.0;     // Values -20.00 - 20.00
float Ambiance = 0.4;   // Values 0.00 - 1.00
 
// UUID of the texture to project
key Texture = "b4c6b075-4940-4270-bb10-d293fd6f8091";
 
// UUID of other prim that we want to control
key Remote = "1721c368-e468-46da-bcae-0bdd3e647a2b";
 
integer Power;
 
default
{
    state_entry()
    {
        llSay(PUBLIC_CHANNEL, "Script running ...");
    }
 
    touch_start(integer number) 
    {
        Power =! Power;
        osSetPrimitiveParams(Remote,[PRIM_POINT_LIGHT, Power, <1.0, 1.0, 1.0>, 1.0, 5.0, 0.5]);
        osSetProjectionParams(Remote, Power, Texture, FOV, Focus, Ambiance);
    }
}
Notes
This function was added in 0.7.2-post-fixes, linkset variant added 2019, April 18


Personal tools
General
About This Wiki