16#ifndef QGSCOLORRAMPIMPL_H 
   17#define QGSCOLORRAMPIMPL_H 
   28typedef QColor( *InterpolateColorFunc )( 
const QColor &c1, 
const QColor &c2, 
const double value, 
Qgis::AngularDirection direction );
 
   56      return other.
color == color && 
qgsDoubleNear( other.
offset, offset ) && other.mColorSpec == mColorSpec && other.mDirection == mDirection;
 
   61      return !( *
this == other );
 
   73    QColor::Spec 
colorSpec()
 const { 
return mColorSpec; }
 
   86    void setColorSpec( QColor::Spec spec );
 
  114    QColor::Spec mColorSpec = QColor::Spec::Rgb;
 
  116    InterpolateColorFunc mFunc = 
nullptr;
 
  126#define DEFAULT_GRADIENT_COLOR1 QColor(69, 116, 40) 
  127#define DEFAULT_GRADIENT_COLOR2 QColor(188, 220, 60) 
  150                          bool discrete = 
false,
 
  156    int count()
 const override { 
return mStops.count() + 2; }
 
  157    double value( 
int index ) 
const override;
 
  158    QColor color( 
double value ) 
const override;
 
  165    static QString 
typeString() { 
return QStringLiteral( 
"gradient" ); }
 
  167    QString type() 
const override;
 
  168    void invert() 
override;
 
  170    QVariantMap properties() const override;
 
  177    QColor color1()
 const { 
return mColor1; }
 
  184    QColor 
color2()
 const { 
return mColor2; }
 
  192    void setColor1( 
const QColor &color ) { mColor1 = color; }
 
  200    void setColor2( 
const QColor &color ) { mColor2 = color; }
 
  225    void convertToDiscrete( 
bool discrete );
 
  262    void addStopsToGradient( QGradient *gradient, 
double opacity = 1 ) 
const;
 
  286    void setColorSpec( QColor::Spec spec );
 
  318    QColor::Spec mColorSpec = QColor::Spec::Rgb;
 
  321    InterpolateColorFunc mFunc = 
nullptr;
 
  326#define DEFAULT_RANDOM_COUNT   10 
  327#define DEFAULT_RANDOM_HUE_MIN 0 
  328#define DEFAULT_RANDOM_HUE_MAX 359 
  329#define DEFAULT_RANDOM_VAL_MIN 200 
  330#define DEFAULT_RANDOM_VAL_MAX 240 
  331#define DEFAULT_RANDOM_SAT_MIN 100 
  332#define DEFAULT_RANDOM_SAT_MAX 240 
  367    double value( 
int index ) 
const override;
 
  368    QColor color( 
double value ) 
const override;
 
  375    static QString 
typeString() { 
return QStringLiteral( 
"random" ); }
 
  377    QString type() 
const override;
 
  379    QVariantMap properties() const override;
 
  380    int count()
 const override { 
return mCount; }
 
  386    static QList<QColor> randomColors( 
int count,
 
  501    int count() 
const override;
 
  503    double value( 
int index ) 
const override;
 
  505    QColor color( 
double value ) 
const override;
 
  514    virtual void setTotalColorCount( 
int colorCount );
 
  521    static QString 
typeString() { 
return QStringLiteral( 
"randomcolors" ); }
 
  523    QString type() 
const override;
 
  527    QVariantMap properties() const override;
 
  531    int mTotalColorCount = 0;
 
  532    QList<QColor> mPrecalculatedColors;
 
  572    bool setColors( 
const QgsNamedColorList &colors, 
const QString & = QString(), 
const QColor & = QColor() )
 override { mColors = colors; 
return true; }
 
  578    QList< QColor > colors() 
const;
 
  580    double value( 
int index ) 
const override;
 
  581    QColor color( 
double value ) 
const override;
 
  588    static QString 
typeString() { 
return QStringLiteral( 
"preset" ); }
 
  590    QString type() 
const override;
 
  591    void invert() 
override;
 
  593    QVariantMap properties() const override;
 
  594    int count() const override;
 
  596    QString schemeName()
 const override { 
return QStringLiteral( 
"preset" ); }
 
  597    QgsNamedColorList fetchColors( 
const QString &context = QString(), 
const QColor &baseColor = QColor() ) 
override;
 
  606#define DEFAULT_COLORBREWER_SCHEMENAME "Spectral" 
  607#define DEFAULT_COLORBREWER_COLORS     5 
  627                             bool inverted = 
false );
 
  637    double value( 
int index ) 
const override;
 
  638    QColor color( 
double value ) 
const override;
 
  645    static QString 
typeString() { 
return QStringLiteral( 
"colorbrewer" ); }
 
  648    void invert() 
override;
 
  650    QVariantMap properties() const override;
 
  651    int count()
 const override { 
return mColors; }
 
  671    void setSchemeName( 
const QString &schemeName ) { mSchemeName = schemeName; loadPalette(); }
 
  679    void setColors( 
int colors ) { mColors = colors; loadPalette(); }
 
  685    static QStringList listSchemeNames();
 
  693    static QList<int> listSchemeVariants( 
const QString &schemeName );
 
  707#define DEFAULT_CPTCITY_SCHEMENAME "cb/div/BrBG_"  
  708#define DEFAULT_CPTCITY_VARIANTNAME "05" 
  727                         bool inverted = 
false,
 
  728                         bool doLoadFile = 
true );
 
  739                         const QString &variantName = QString(), 
bool inverted = 
false,
 
  740                         bool doLoadFile = 
true );
 
  750    static QString 
typeString() { 
return QStringLiteral( 
"cpt-city" ); }
 
  752    QString type() 
const override;
 
  754    void invert() 
override;
 
  760    QVariantMap properties() const override;
 
  762    QString schemeName()
 const { 
return mSchemeName; }
 
  767    void setSchemeName( 
const QString &schemeName ) { mSchemeName = schemeName; mFileLoaded = 
false; }
 
  768    void setVariantName( 
const QString &variantName ) { mVariantName = variantName; mFileLoaded = 
false; }
 
  769    void setVariantList( 
const QStringList &variantList ) { mVariantList = variantList; }
 
  770    void setName( 
const QString &schemeName, 
const QString &variantName = QString(), 
const QStringList &variantList = QStringList() )
 
  771    { mSchemeName = schemeName; mVariantName = variantName; mVariantList = variantList; mFileLoaded = 
false; }
 
  782    static QString fileNameForVariant( 
const QString &schema, 
const QString &variant ) 
SIP_SKIP;
 
  784    QString fileName() 
const;
 
  788    QString copyingFileName() 
const;
 
  789    QString descFileName() 
const;
 
  796    bool mFileLoaded = 
false;
 
  797    bool mMultiStops = 
false;
 
AngularDirection
Angular directions.
 
@ CounterClockwise
Counter-clockwise direction.
 
Color ramp utilising "Color Brewer" preset color schemes.
 
static QString typeString()
Returns the string identifier for QgsColorBrewerColorRamp.
 
QString type() const override
Returns a string representing the color ramp type.
 
QString schemeName() const
Returns the name of the color brewer color scheme.
 
int colors() const
Returns the number of colors in the ramp.
 
void setSchemeName(const QString &schemeName)
Sets the name of the color brewer color scheme.
 
void setColors(int colors)
Sets the number of colors in the ramp.
 
Abstract base class for color ramps.
 
Abstract base class for color schemes.
 
void setName(const QString &schemeName, const QString &variantName=QString(), const QStringList &variantList=QStringList())
 
void setSchemeName(const QString &schemeName)
 
void setVariantList(const QStringList &variantList)
 
QStringList variantList() const
 
void setVariantName(const QString &variantName)
 
static QString typeString()
Returns the string identifier for QgsCptCityColorRamp.
 
bool hasMultiStops() const
 
QString variantName() const
 
Gradient color ramp, which smoothly interpolates between two colors and also supports optional extra ...
 
QgsGradientStopsList mStops
 
void setColor1(const QColor &color)
Sets the gradient start color.
 
void setColor2(const QColor &color)
Sets the gradient end color.
 
void setInfo(const QgsStringMap &info)
Sets additional info to attach to the gradient ramp (e.g., authorship notes)
 
bool isDiscrete() const
Returns true if the gradient is using discrete interpolation, rather than smoothly interpolating betw...
 
int count() const override
Returns number of defined colors, or -1 if undefined.
 
QgsStringMap info() const
Returns any additional info attached to the gradient ramp (e.g., authorship notes)
 
QColor::Spec colorSpec() const
Returns the color specification in which the color component interpolation will occur.
 
static QString typeString()
Returns the string identifier for QgsGradientColorRamp.
 
void setDirection(Qgis::AngularDirection direction)
Sets the direction to traverse the color wheel using when interpolating hue-based color specification...
 
Qgis::AngularDirection direction() const
Returns the direction to traverse the color wheel using when interpolating hue-based color specificat...
 
QgsGradientStopsList stops() const
Returns the list of intermediate gradient stops for the ramp.
 
void setDiscrete(bool discrete)
Sets whether the gradient should use discrete interpolation, rather than smoothly interpolating betwe...
 
QColor color2() const
Returns the gradient end color.
 
Represents a color stop within a QgsGradientColorRamp color ramp.
 
Qgis::AngularDirection direction() const
Returns the direction to traverse the color wheel using when interpolating hue-based color specificat...
 
bool operator==(const QgsGradientStop &other) const
 
QColor::Spec colorSpec() const
Returns the color specification in which the color component interpolation will occur.
 
double offset
Relative positional offset, between 0 and 1.
 
bool operator!=(const QgsGradientStop &other) const
 
void setDirection(Qgis::AngularDirection direction)
Sets the direction to traverse the color wheel using when interpolating hue-based color specification...
 
QColor color
Gradient color at stop.
 
Constrained random color ramp, which returns random colors based on preset parameters.
 
static QString typeString()
Returns the string identifier for QgsLimitedRandomColorRamp.
 
void setSatMin(int val)
Sets the minimum saturation for generated colors.
 
void setHueMin(int val)
Sets the minimum hue for generated colors.
 
void setSatMax(int val)
Sets the maximum saturation for generated colors.
 
int valMax() const
Returns the maximum value for generated colors.
 
int satMax() const
Returns the maximum saturation for generated colors.
 
void setHueMax(int val)
Sets the maximum hue for generated colors.
 
void setCount(int val)
Sets the number of colors contained in the ramp.
 
int hueMax() const
Returns the maximum hue for generated colors.
 
int hueMin() const
Returns the minimum hue for generated colors.
 
void setValMax(int val)
Sets the maximum value for generated colors.
 
int valMin() const
Returns the minimum value for generated colors.
 
void setValMin(int val)
Sets the minimum value for generated colors.
 
int satMin() const
Returns the minimum saturation for generated colors.
 
A scheme based color ramp consisting of a list of predefined colors.
 
bool setColors(const QgsNamedColorList &colors, const QString &=QString(), const QColor &=QColor()) override
Sets the list of colors used by the ramp.
 
static QString typeString()
Returns the string identifier for QgsPresetSchemeColorRamp.
 
bool isEditable() const override
Returns whether the color scheme is editable.
 
Totally random color ramp.
 
QgsRandomColorRamp()=default
Constructor for QgsRandomColorRamp.
 
static QString typeString()
Returns the string identifier for QgsRandomColorRamp.
 
QList< QPair< QColor, QString > > QgsNamedColorList
List of colors paired with a friendly display name identifying the color.
 
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
 
QMap< QString, QString > QgsStringMap
 
#define DEFAULT_COLORBREWER_COLORS
 
#define DEFAULT_COLORBREWER_SCHEMENAME
 
#define DEFAULT_RANDOM_HUE_MAX
 
#define DEFAULT_CPTCITY_SCHEMENAME
 
#define DEFAULT_RANDOM_HUE_MIN
 
#define DEFAULT_RANDOM_COUNT
 
#define DEFAULT_RANDOM_SAT_MAX
 
#define DEFAULT_RANDOM_SAT_MIN
 
#define DEFAULT_CPTCITY_VARIANTNAME
 
#define DEFAULT_GRADIENT_COLOR1
 
#define DEFAULT_RANDOM_VAL_MIN
 
QList< QgsGradientStop > QgsGradientStopsList
List of gradient stops.
 
#define DEFAULT_GRADIENT_COLOR2
 
#define DEFAULT_RANDOM_VAL_MAX
 
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)