Difference between revisions of "LlScaleTexture"

From Second Life Wiki
Jump to navigation Jump to search
m
m (loop skipped index 0 and improved readability and added comment about delay of the function)
Line 13: Line 13:
|caveats
|caveats
|constants
|constants
|examples=<lsl>
|examples=
<lsl>
// WARNING:
//      llScaleTexture has a delay of 200 miliseconds
//      that means every time the function is called within a script it'll take 0.2 seconds
//      for example the script below would take about 1.2 seconds....that's REALLY SLOW !!!
//
//      To work around that delay use the following instead:
//
//
//      llSetLinkPrimitiveParamsFast(integer link,
//          [PRIM_TEXTURE, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians]);
 
 
// *******************************************************************************************************************
 
 
 
//Scales the textures on 6 sides
//Scales the textures on 6 sides
float scale;
float scale;
default
default
{
{
     state_entry()
     state_entry()
     {
     {
         integer i;
         integer index;
          
         while (index < 7)
        for( i = 1; i < 7; i++ )
         {
         {
             scale = scale + .1;
             scale += 0.1;
             llScaleTexture( (float)scale, (float)scale, i);
             llScaleTexture((float)scale, (float)scale, index);
 
            ++index;
         }
         }
     }
     }
}
}
// output:
//      face 0 >> 0.1
//      face 1 >> 0.2
//      face 2 >> 0.3
//      face 3 >> 0.4
//      face 4 >> 0.5
//      face 5 >> 0.6
//      face 6 >> 0.7
</lsl>
</lsl>
|helpers
|helpers

Revision as of 11:22, 3 October 2012

Summary

Function: llScaleTexture( float u, float v, integer face );

Sets the texture u & v scales for the chosen face.

• float u
• float v
• integer face face number or ALL_SIDES

If face is ALL_SIDES then the function works on all sides.

Specification

In the default texture mapping mode the scale units are in texture repeats per face. In the planar texture mapping mode the scale units are in texture repeats per half meter. This is in contrast to the in-world editing tool, in which the planar texture scaling units are repeats per meter.

Caveats

  • This function causes the script to sleep for 0.2 seconds.
  • The function silently fails if its face value indicates a face that does not exist.
All Issues ~ Search JIRA for related Bugs

Examples

<lsl> // WARNING: // llScaleTexture has a delay of 200 miliseconds // that means every time the function is called within a script it'll take 0.2 seconds // for example the script below would take about 1.2 seconds....that's REALLY SLOW !!! // // To work around that delay use the following instead: // // // llSetLinkPrimitiveParamsFast(integer link, // [PRIM_TEXTURE, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians]);


// *******************************************************************************************************************


//Scales the textures on 6 sides float scale;

default {

   state_entry()
   {
       integer index;
       while (index < 7)
       {
           scale += 0.1;
           llScaleTexture((float)scale, (float)scale, index);
           ++index;
       }
   }

}

// output: // face 0 >> 0.1 // face 1 >> 0.2 // face 2 >> 0.3 // face 3 >> 0.4 // face 4 >> 0.5 // face 5 >> 0.6 // face 6 >> 0.7

</lsl>

See Also

Functions

•  llGetTextureScale

Deep Notes

Search JIRA for related Issues

Signature

function void llScaleTexture( float u, float v, integer face );