33 #define JUCE_COLOURGRADIENT_CHECK_COORDS_INITIALISED jassert (point1.x != 987654.0f);
35 #define JUCE_COLOURGRADIENT_CHECK_COORDS_INITIALISED
45 colours (std::move (other.colours))
62 colours = std::move (other.colours);
67 Colour colour2,
float x2,
float y2,
bool radial)
69 colour2,
Point<float> (x2, y2), radial)
87 return { c1, 0, y1,
c2, 0, y2,
false };
92 return { c1, x1, 0,
c2, x2, 0,
false };
104 return ! operator== (other);
116 jassert (proportionAlongGradient >= 0 && proportionAlongGradient <= 1.0);
118 if (proportionAlongGradient <= 0)
120 colours.set (0, { 0.0, colour });
124 auto pos =
jmin (1.0, proportionAlongGradient);
128 if (
colours.getReference(
i).position > pos)
131 colours.insert (
i, { pos, colour });
144 c.colour =
c.colour.withMultipliedAlpha (multiplier);
156 return colours.getReference (index).position;
164 return colours.getReference (index).colour;
172 colours.getReference (index).colour = newColour;
179 if (position <= 0 ||
colours.size() <= 1)
180 return colours.getReference(0).colour;
183 while (position <
colours.getReference(
i).position)
186 auto& p1 =
colours.getReference (
i);
191 auto& p2 =
colours.getReference (
i + 1);
193 return p1.colour.interpolatedWith (p2.colour, (
float) ((position - p1.position) / (p2.position - p1.position)));
204 auto pix1 =
colours.getReference (0).colour.getPixelARGB();
210 auto numToDo =
roundToInt (
p.position * (numEntries - 1)) - index;
211 auto pix2 =
p.colour.getPixelARGB();
213 for (
int i = 0;
i < numToDo; ++
i)
215 jassert (index >= 0 && index < numEntries);
217 lookupTable[index] = pix1;
218 lookupTable[index].tween (pix2, (
uint32) ((
i << 8) / numToDo));
225 while (index < numEntries)
226 lookupTable [index++] = pix1;
235 3 * (
int)
point1.transformedBy (transform)
236 .getDistanceFrom (
point2.transformedBy (transform)));
237 lookupTable.
malloc (numEntries);
245 if (!
c.colour.isOpaque())
254 if (!
c.colour.isTransparent())
260bool ColourGradient::ColourPoint::operator== (
ColourPoint other)
const noexcept
265bool ColourGradient::ColourPoint::operator!= (
ColourPoint other)
const noexcept
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
#define noexcept
Definition DistrhoDefines.h:72
static ColourGradient horizontal(Colour colour1, float x1, Colour colour2, float x2)
Definition juce_ColourGradient.cpp:90
ColourGradient() noexcept
Definition juce_ColourGradient.cpp:29
int createLookupTable(const AffineTransform &transform, HeapBlock< PixelARGB > &resultLookupTable) const
Definition juce_ColourGradient.cpp:229
Colour getColour(int index) const noexcept
Definition juce_ColourGradient.cpp:161
bool isOpaque() const noexcept
Definition juce_ColourGradient.cpp:242
Point< float > point2
Definition juce_ColourGradient.h:195
static ColourGradient vertical(Colour colour1, float y1, Colour colour2, float y2)
Definition juce_ColourGradient.cpp:85
Colour getColourAtPosition(double position) const noexcept
Definition juce_ColourGradient.cpp:175
void removeColour(int index)
Definition juce_ColourGradient.cpp:135
bool isRadial
Definition juce_ColourGradient.h:202
int getNumColours() const noexcept
Definition juce_ColourGradient.cpp:148
Array< ColourPoint > colours
Definition juce_ColourGradient.h:219
bool isInvisible() const noexcept
Definition juce_ColourGradient.cpp:251
void multiplyOpacity(float multiplier) noexcept
Definition juce_ColourGradient.cpp:141
void setColour(int index, Colour newColour) noexcept
Definition juce_ColourGradient.cpp:169
void clearColours()
Definition juce_ColourGradient.cpp:108
~ColourGradient()
Definition juce_ColourGradient.cpp:83
Point< float > point1
Definition juce_ColourGradient.h:195
int addColour(double proportionAlongGradient, Colour colour)
Definition juce_ColourGradient.cpp:113
double getColourPosition(int index) const noexcept
Definition juce_ColourGradient.cpp:153
Definition juce_Colour.h:38
Definition juce_HeapBlock.h:87
void malloc(SizeType newNumElements, size_t elementSize=sizeof(ElementType))
Definition juce_HeapBlock.h:252
Definition juce_PixelFormats.h:59
Definition juce_Point.h:42
register unsigned j
Definition inflate.c:1576
register unsigned i
Definition inflate.c:1575
static void c2(register WDL_FFT_COMPLEX *a)
Definition fft.c:270
#define JUCE_COLOURGRADIENT_CHECK_COORDS_INITIALISED
Definition carla_juce.cpp:31
unsigned int uint32
Definition juce_MathsFunctions.h:45
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
#define false
Definition ordinals.h:83
Definition juce_ColourGradient.h:211
Colour colour
Definition juce_ColourGradient.h:216
double position
Definition juce_ColourGradient.h:215
uch * p
Definition crypt.c:594
return c
Definition crypt.c:175
#define const
Definition zconf.h:137