Browse Source

Added a couple more ColourGradient methods

tags/2021-05-28
jules 8 years ago
parent
commit
0fb1fde14e
2 changed files with 20 additions and 9 deletions
  1. +4
    -4
      modules/juce_graphics/colour/juce_ColourGradient.cpp
  2. +16
    -5
      modules/juce_graphics/colour/juce_ColourGradient.h

+ 4
- 4
modules/juce_graphics/colour/juce_ColourGradient.cpp View File

@@ -77,8 +77,8 @@ ColourGradient::ColourGradient (Colour colour1, Point<float> p1,
point2 (p2),
isRadial (radial)
{
colours.add ({ 0.0, colour1 });
colours.add ({ 1.0, colour2 });
colours.add (ColourPoint { 0.0, colour1 },
ColourPoint { 1.0, colour2 });
}
ColourGradient::~ColourGradient() {}
@@ -118,7 +118,7 @@ int ColourGradient::addColour (const double proportionAlongGradient, Colour colo
if (proportionAlongGradient <= 0)
{
colours.set (0, ColourPoint (0.0, colour));
colours.set (0, { 0.0, colour });
return 0;
}
@@ -129,7 +129,7 @@ int ColourGradient::addColour (const double proportionAlongGradient, Colour colo
if (colours.getReference(i).position > pos)
break;
colours.insert (i, ColourPoint (pos, colour));
colours.insert (i, { pos, colour });
return i;
}


+ 16
- 5
modules/juce_graphics/colour/juce_ColourGradient.h View File

@@ -91,6 +91,7 @@ public:
Colour colour2, Point<float> point2,
bool isRadial);
//==============================================================================
/** Creates a vertical linear gradient between two Y coordinates */
static ColourGradient vertical (Colour colour1, float y1,
Colour colour2, float y2);
@@ -99,6 +100,20 @@ public:
static ColourGradient horizontal (Colour colour1, float x1,
Colour colour2, float x2);
/** Creates a vertical linear gradient from top to bottom in a rectangle */
template <typename Type>
static ColourGradient vertical (Colour colourTop, Colour colourBottom, Rectangle<Type> area)
{
return vertical (colourTop, (float) area.getY(), colourBottom, (float) area.getBottom());
}
/** Creates a horizontal linear gradient from right to left in a rectangle */
template <typename Type>
static ColourGradient horizontal (Colour colourLeft, Colour colourRight, Rectangle<Type> area)
{
return horizontal (colourLeft, (float) area.getX(), colourRight, (float) area.getRight());
}
/** Destructor */
~ColourGradient();
@@ -121,8 +136,7 @@ public:
@param colour the colour that should be used at this point
@returns the index at which the new point was added
*/
int addColour (double proportionAlongGradient,
Colour colour);
int addColour (double proportionAlongGradient, Colour colour);
/** Removes one of the colours from the gradient. */
void removeColour (int index);
@@ -194,9 +208,6 @@ private:
//==============================================================================
struct ColourPoint
{
ColourPoint() noexcept {}
ColourPoint (double pos, Colour col) noexcept : position (pos), colour (col) {}
bool operator== (ColourPoint) const noexcept;
bool operator!= (ColourPoint) const noexcept;


Loading…
Cancel
Save