gradientValue

From Second Life Wiki
Revision as of 15:15, 22 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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