15#ifndef QGSPROPERTYTRANSFORMER_H
16#define QGSPROPERTYTRANSFORMER_H
27#include <QDomDocument>
89 void setControlPoints(
const QList< QgsPointXY > &points );
96 void addControlPoint(
double x,
double y );
103 void removeControlPoint(
double x,
double y );
108 double y(
double x )
const;
115 QVector< double > y(
const QVector< double > &x )
const;
123 bool readXml(
const QDomElement &elem,
const QDomDocument &doc );
131 bool writeXml( QDomElement &transformElem, QDomDocument &doc )
const;
139 QVariant toVariant()
const;
147 bool loadVariant(
const QVariant &transformer );
151 void calcSecondDerivativeArray();
153 QList< QgsPointXY > mControlPoints;
155 double *mSecondDerivativeArray =
nullptr;
171 sipType = sipType_QgsGenericNumericTransformer;
173 sipType = sipType_QgsSizeScaleTransformer;
175 sipType = sipType_QgsColorRampTransformer;
177 sipType = sipType_QgsPropertyTransformer;
225 virtual bool loadVariant(
const QVariant &transformer );
233 virtual QVariant toVariant()
const;
292 virtual QString
toExpression(
const QString &baseExpression )
const = 0;
315 double transformNumeric(
double input )
const;
348 double maxValue = 1.0,
349 double minOutput = 0.0,
350 double maxOutput = 1.0,
351 double nullOutput = 0.0,
352 double exponent = 1.0 );
356 QVariant toVariant() const override;
357 bool loadVariant( const QVariant &definition ) override;
358 QVariant transform( const
QgsExpressionContext &context, const QVariant &value ) const override;
359 QString toExpression( const QString &baseExpression ) const override;
379 double value(
double input ) const;
386 double minOutputValue()
const {
return mMinOutput; }
475 double minValue = 0.0,
476 double maxValue = 1.0,
477 double minSize = 0.0,
478 double maxSize = 1.0,
479 double nullSize = 0.0,
480 double exponent = 1.0 );
484 QVariant toVariant() const override;
485 bool loadVariant( const QVariant &definition ) override;
486 QVariant transform( const
QgsExpressionContext &context, const QVariant &value ) const override;
487 QString toExpression( const QString &baseExpression ) const override;
508 double size(
double value ) const;
515 double minSize()
const {
return mMinSize; }
579 void setType( ScaleType type );
582 ScaleType mType = Linear;
610 double maxValue = 1.0,
612 const QColor &nullColor = QColor( 0, 0, 0, 0 ),
613 const QString &rampName = QString() );
620 QVariant toVariant() const override;
621 bool loadVariant( const QVariant &definition ) override;
622 QVariant transform( const
QgsExpressionContext &context, const QVariant &value ) const override;
623 QString toExpression( const QString &baseExpression ) const override;
630 QColor color(
double value ) const;
650 QColor nullColor()
const {
return mNullColor; }
675 std::unique_ptr< QgsColorRamp > mGradientRamp;
Abstract base class for color ramps.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)