Difference between revisions of "GradientValue"

From Second Life Wiki
Jump to navigation Jump to search
m (condesed)
m (<lsl> tag to <source>)
 
Line 9: Line 9:
|caveats
|caveats
|spec=
|spec=
<lsl>
<source lang="lsl2">
//  Created by Ugleh Ulrik
//  Created by Ugleh Ulrik


Line 28: Line 28:
     return start + percentage*(end - start);
     return start + percentage*(end - start);
}
}
</lsl>
</source>
|examples=
|examples=
<lsl>
<source lang="lsl2">
vector GradientValue(vector start, vector end, float percentage)
vector GradientValue(vector start, vector end, float percentage)
{
{
Line 62: Line 62:
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|notes
|notes

Latest revision as of 15:15, 22 January 2015

Summary

Function: vector GradientValue( vector start, vector end, float percentage );

Returns a vector that is the color vector between start and end depending upon percentage if the vector between can be calculated, else returns <-1, -1, -1>.

• vector start Gradient start color
• vector end Gradient end color
• float percentage Percentage in the range (0.0 to 100.0) from start to end

Specification

//  Created by Ugleh Ulrik

vector GradientValue(vector start, vector end, float percentage)
{
    list colorParams = [start.x, start.y, start.z, end.x, end.y, end.z];

    if (percentage < 0.0
        || 100.0 < percentage
        || llListStatistics(LIST_STAT_MIN, colorParams) < 0.0
        || 1.0 < llListStatistics(LIST_STAT_MAX, colorParams))
    {
        return <-1, -1, -1>;
    }

    percentage /= 100.0;// convert to decimal for further use

    return start + percentage*(end - start);
}

Examples

vector GradientValue(vector start, vector end, float percentage)
{
    list colorParams = [start.x, start.y, start.z, end.x, end.y, end.z];

    if (percentage < 0.0
        || 100.0 < percentage
        || llListStatistics(LIST_STAT_MIN, colorParams) < 0.0
        || 1.0 < llListStatistics(LIST_STAT_MAX, colorParams))
    {
        return <-1, -1, -1>;
    }

    percentage /= 100.0;

    return start + percentage*(end - start);
}

default
{
    state_entry()
    {
        vector maroon = <0.522, 0.078, 0.294>;
        vector teal   = <0.224, 0.800, 0.800>;

        vector ColorBetween = GradientValue(maroon, teal, 50.0);
//             ColorBetween = <0.373, 0.439, 0.547>

        if (ColorBetween != <-1, -1, -1>)
            llSetColor(ColorBetween, ALL_SIDES);
    }
}

See Also

Constants

•  PRIM_COLOR
•  CHANGED_COLOR

Functions

•  llGetColor
•  llGetLinkPrimitiveParams
•  llSetColor
•  llSetLinkColor

Articles

•  Color and Scripting
•  Color