예제 #1
0
ColourGradient::ColourGradient (const Colour& colour1, const float x1_, const float y1_,
                                const Colour& colour2, const float x2_, const float y2_,
                                const bool isRadial_)
    : point1 (x1_, y1_),
      point2 (x2_, y2_),
      isRadial (isRadial_)
{
    colours.add (ColourPoint (0.0, colour1));
    colours.add (ColourPoint (1.0, colour2));
}
예제 #2
0
ColourGradient::ColourGradient (Colour colour1, Point<float> p1,
                                Colour colour2, Point<float> p2,
                                const bool radial)
    : point1 (p1),
      point2 (p2),
      isRadial (radial)
{
    colours.add (ColourPoint (0.0, colour1));
    colours.add (ColourPoint (1.0, colour2));
}
예제 #3
0
ColourGradient::ColourGradient (Colour colour1, const float x1, const float y1,
                                Colour colour2, const float x2, const float y2,
                                const bool radial)
    : point1 (x1, y1),
      point2 (x2, y2),
      isRadial (radial)
{
    colours.add (ColourPoint (0.0, colour1));
    colours.add (ColourPoint (1.0, colour2));
}
예제 #4
0
int ColourGradient::addColour (const double proportionAlongGradient, Colour colour)
{
    // must be within the two end-points
    jassert (proportionAlongGradient >= 0 && proportionAlongGradient <= 1.0);

    if (proportionAlongGradient <= 0)
    {
        colours.set (0, ColourPoint (0.0, colour));
        return 0;
    }

    const double pos = jmin (1.0, proportionAlongGradient);

    int i;
    for (i = 0; i < colours.size(); ++i)
        if (colours.getReference(i).position > pos)
            break;

    colours.insert (i, ColourPoint (pos, colour));
    return i;
}