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)); }
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)); }
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)); }
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; }