Public Member Functions | Public Attributes

ColourGradient Class Reference

Describes the layout and colours that should be used to paint a colour gradient. More...

List of all members.

Public Member Functions

 ColourGradient (const Colour &colour1, float x1, float y1, const Colour &colour2, float x2, float y2, bool isRadial)
 Creates a gradient object.
 ColourGradient () noexcept
 Creates an uninitialised gradient.
 ~ColourGradient ()
 Destructor.
void clearColours ()
 Removes any colours that have been added.
int addColour (double proportionAlongGradient, const Colour &colour)
 Adds a colour at a point along the length of the gradient.
void removeColour (int index)
 Removes one of the colours from the gradient.
void multiplyOpacity (float multiplier) noexcept
 Multiplies the alpha value of all the colours by the given scale factor.
int getNumColours () const noexcept
 Returns the number of colour-stops that have been added.
double getColourPosition (int index) const noexcept
 Returns the position along the length of the gradient of the colour with this index.
const Colour getColour (int index) const noexcept
 Returns the colour that was added with a given index.
void setColour (int index, const Colour &newColour) noexcept
 Changes the colour at a given index.
Colour getColourAtPosition (double position) const noexcept
 Returns the an interpolated colour at any position along the gradient.
int createLookupTable (const AffineTransform &transform, HeapBlock< PixelARGB > &resultLookupTable) const
 Creates a set of interpolated premultiplied ARGB values.
bool isOpaque () const noexcept
 Returns true if all colours are opaque.
bool isInvisible () const noexcept
 Returns true if all colours are completely transparent.
bool operator== (const ColourGradient &other) const noexcept
bool operator!= (const ColourGradient &other) const noexcept

Public Attributes

Point< float > point1
Point< float > point2
bool isRadial
 If true, the gradient should be filled circularly, centred around point1, with point2 defining a point on the circumference.

Detailed Description

Describes the layout and colours that should be used to paint a colour gradient.

See also:
Graphics::setGradientFill

Constructor & Destructor Documentation

ColourGradient::ColourGradient ( const Colour colour1,
float  x1,
float  y1,
const Colour colour2,
float  x2,
float  y2,
bool  isRadial 
)

Creates a gradient object.

(x1, y1) is the location to draw with colour1. Likewise (x2, y2) is where colour2 should be. In between them there's a gradient.

If isRadial is true, the colours form a circular gradient with (x1, y1) at its centre.

The alpha transparencies of the colours are used, so note that if you blend from transparent to a solid colour, the RGB of the transparent colour will become visible in parts of the gradient. e.g. blending from Colour::transparentBlack to Colours::white will produce a muddy grey colour midway, but Colour::transparentWhite to Colours::white will be white all the way across.

See also:
ColourGradient
ColourGradient::ColourGradient (  )

Creates an uninitialised gradient.

If you use this constructor instead of the other one, be sure to set all the object's public member variables before using it!

ColourGradient::~ColourGradient (  )

Destructor.


Member Function Documentation

void ColourGradient::clearColours (  )

Removes any colours that have been added.

This will also remove any start and end colours, so the gradient won't work. You'll need to add more colours with addColour().

int ColourGradient::addColour ( double  proportionAlongGradient,
const Colour colour 
)

Adds a colour at a point along the length of the gradient.

This allows the gradient to go through a spectrum of colours, instead of just a start and end colour.

Parameters:
proportionAlongGradienta value between 0 and 1.0, which is the proportion of the distance along the line between the two points at which the colour should occur.
colourthe colour that should be used at this point
Returns:
the index at which the new point was added
void ColourGradient::removeColour ( int  index )

Removes one of the colours from the gradient.

void ColourGradient::multiplyOpacity ( float  multiplier )

Multiplies the alpha value of all the colours by the given scale factor.

int ColourGradient::getNumColours (  ) const

Returns the number of colour-stops that have been added.

double ColourGradient::getColourPosition ( int  index ) const

Returns the position along the length of the gradient of the colour with this index.

The index is from 0 to getNumColours() - 1. The return value will be between 0.0 and 1.0

const Colour ColourGradient::getColour ( int  index ) const

Returns the colour that was added with a given index.

The index is from 0 to getNumColours() - 1.

void ColourGradient::setColour ( int  index,
const Colour newColour 
)

Changes the colour at a given index.

The index is from 0 to getNumColours() - 1.

Colour ColourGradient::getColourAtPosition ( double  position ) const

Returns the an interpolated colour at any position along the gradient.

Parameters:
positionthe position along the gradient, between 0 and 1
int ColourGradient::createLookupTable ( const AffineTransform transform,
HeapBlock< PixelARGB > &  resultLookupTable 
) const

Creates a set of interpolated premultiplied ARGB values.

This will resize the HeapBlock, fill it with the colours, and will return the number of colours that it added.

bool ColourGradient::isOpaque (  ) const

Returns true if all colours are opaque.

bool ColourGradient::isInvisible (  ) const

Returns true if all colours are completely transparent.

bool ColourGradient::operator== ( const ColourGradient other ) const
bool ColourGradient::operator!= ( const ColourGradient other ) const

Member Data Documentation

If true, the gradient should be filled circularly, centred around point1, with point2 defining a point on the circumference.

If false, the gradient is linear between the two points.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines