QGIS/python/core/auto_generated/qgspropertytransformer.sip.in

710 lines
20 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgspropertytransformer.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsCurveTransform
{
%Docstring(signature="appended")
Handles scaling of input values to output values by using a curve created
from smoothly joining a number of set control points.
:py:class:`QgsCurveTransform` assists in creation of curve type transforms, typically seen in
raster image editing software (eg the curves dialog in GIMP or Photoshop).
Transforms are created by passing a number of set control points through which
the transform curve must pass. The curve is guaranteed to exactly pass through
these control points. Between control points the curve is smoothly interpolated
so that no disjoint sections or "corners" are present.
If the first or last control point are not located at x = 0 and x = 1 respectively,
then values outside this range will be mapped to the y value of either the first
or last control point. In other words, the curve will have a flat segment
for values outside of the control point range.
%End
%TypeHeaderCode
#include "qgspropertytransformer.h"
%End
public:
QgsCurveTransform();
%Docstring
Constructs a default QgsCurveTransform which linearly maps values
between 0 and 1 unchanged. I.e. y == x.
%End
QgsCurveTransform( const QList< QgsPointXY > &controlPoints );
%Docstring
Constructs a QgsCurveTransform using a specified list of ``controlPoints``.
Behavior is undefined if duplicate x values exist in the control points
list.
%End
~QgsCurveTransform();
QgsCurveTransform( const QgsCurveTransform &other );
QList< QgsPointXY > controlPoints() const;
%Docstring
Returns a list of the control points for the transform.
.. seealso:: :py:func:`setControlPoints`
%End
void setControlPoints( const QList< QgsPointXY > &points );
%Docstring
Sets the list of control points for the transform. Any existing
points are removed.
.. seealso:: :py:func:`controlPoints`
%End
void addControlPoint( double x, double y );
%Docstring
Adds a control point to the transform. Behavior is undefined if duplicate
x values exist in the control points list.
.. seealso:: :py:func:`removeControlPoint`
%End
void removeControlPoint( double x, double y );
%Docstring
Removes a control point from the transform. This will have no effect if a
matching control point does not exist.
.. seealso:: :py:func:`addControlPoint`
%End
double y( double x ) const;
%Docstring
Returns the mapped y value corresponding to the specified ``x`` value.
%End
QVector< double > y( const QVector< double > &x ) const;
%Docstring
Returns a list of y values corresponding to a list of ``x`` values.
Calling this method is faster then calling the double variant multiple
times.
%End
bool readXml( const QDomElement &elem, const QDomDocument &doc );
%Docstring
Reads the curve's state from an XML element.
:param elem: source DOM element for transform's state
:param doc: DOM document
.. seealso:: :py:func:`writeXml`
%End
bool writeXml( QDomElement &transformElem, QDomDocument &doc ) const;
%Docstring
Writes the current state of the transform into an XML element
:param transformElem: destination element for the transform's state
:param doc: DOM document
.. seealso:: :py:func:`readXml`
%End
QVariant toVariant() const;
%Docstring
Saves this curve transformer to a QVariantMap, wrapped in a QVariant.
You can use :py:class:`QgsXmlUtils`.writeVariant to save it to an XML document.
.. seealso:: :py:func:`loadVariant`
%End
bool loadVariant( const QVariant &transformer );
%Docstring
Load this curve transformer from a QVariantMap, wrapped in a QVariant.
You can use :py:class:`QgsXmlUtils`.writeVariant to load it from an XML document.
.. seealso:: :py:func:`toVariant`
%End
};
class QgsPropertyTransformer
{
%Docstring(signature="appended")
Abstract base class for objects which transform the calculated value of a property.
Possible uses include transformers which map a value into a scaled size or color from a gradient.
%End
%TypeHeaderCode
#include "qgspropertytransformer.h"
%End
%ConvertToSubClassCode
if ( sipCpp->transformerType() == QgsPropertyTransformer::GenericNumericTransformer )
sipType = sipType_QgsGenericNumericTransformer;
else if ( sipCpp->transformerType() == QgsPropertyTransformer::SizeScaleTransformer )
sipType = sipType_QgsSizeScaleTransformer;
else if ( sipCpp->transformerType() == QgsPropertyTransformer::ColorRampTransformer )
sipType = sipType_QgsColorRampTransformer;
else
sipType = sipType_QgsPropertyTransformer;
%End
public:
enum Type
{
GenericNumericTransformer,
SizeScaleTransformer,
ColorRampTransformer,
};
static QgsPropertyTransformer *create( Type type ) /Factory/;
%Docstring
Factory method for creating a new property transformer of the specified type.
:param type: transformer type to create
%End
QgsPropertyTransformer( double minValue = 0.0, double maxValue = 1.0 );
%Docstring
Constructor for QgsPropertyTransformer
:param minValue: minimum expected value from source property
:param maxValue: maximum expected value from source property
%End
QgsPropertyTransformer( const QgsPropertyTransformer &other );
virtual ~QgsPropertyTransformer();
virtual Type transformerType() const = 0;
%Docstring
Returns the transformer type.
%End
virtual QgsPropertyTransformer *clone() const = 0 /Factory/;
%Docstring
Returns a clone of the transformer.
%End
virtual bool loadVariant( const QVariant &transformer );
%Docstring
Loads this transformer from a QVariantMap, wrapped in a QVariant.
You can use :py:class:`QgsXmlUtils`.readVariant to read it from an XML document.
.. seealso:: :py:func:`toVariant`
%End
virtual QVariant toVariant() const;
%Docstring
Saves this transformer to a QVariantMap, wrapped in a QVariant.
You can use :py:class:`QgsXmlUtils`.writeVariant to save it to an XML document.
.. seealso:: :py:func:`loadVariant`
%End
double minValue() const;
%Docstring
Returns the minimum value expected by the transformer.
.. seealso:: :py:func:`maxValue`
.. seealso:: :py:func:`setMinValue`
%End
void setMinValue( double min );
%Docstring
Sets the minimum value expected by the transformer.
:param min: minimum value
.. seealso:: :py:func:`setMaxValue`
.. seealso:: :py:func:`minValue`
%End
double maxValue() const;
%Docstring
Returns the maximum value expected by the transformer.
.. seealso:: :py:func:`minValue`
.. seealso:: :py:func:`setMaxValue`
%End
void setMaxValue( double max );
%Docstring
Sets the maximum value expected by the transformer.
:param max: maximum value
.. seealso:: :py:func:`setMinValue`
.. seealso:: :py:func:`maxValue`
%End
QgsCurveTransform *curveTransform() const;
%Docstring
Returns the curve transform applied to input values before they are transformed
by the individual transform subclasses.
.. seealso:: :py:func:`setCurveTransform`
%End
void setCurveTransform( QgsCurveTransform *transform /Transfer/ );
%Docstring
Sets a curve transform to apply to input values before they are transformed
by the individual transform subclasses. Ownership of ``transform`` is transferred
to the property transformer.
.. seealso:: :py:func:`curveTransform`
%End
virtual QVariant transform( const QgsExpressionContext &context, const QVariant &value ) const = 0;
%Docstring
Calculates the transform of a value. Derived classes must implement this to perform their transformations
on input values
:param context: expression context
:param value: input value to transform
%End
virtual QString toExpression( const QString &baseExpression ) const = 0;
%Docstring
Converts the transformer to a QGIS expression string. The ``baseExpression`` string consists
of a sub-expression reflecting the parent property's state.
%End
static QgsPropertyTransformer *fromExpression( const QString &expression, QString &baseExpression /Out/, QString &fieldName /Out/ ) /Factory/;
%Docstring
Attempts to parse an expression into a corresponding property transformer.
:param expression: expression to parse
:return: - corresponding property transformer, or ``None`` if expression could not be parsed to a transformer.
- baseExpression: the component of the source expression which is used to calculate the input to the property transformer. This an empty string if a field reference is the transformer input.
- fieldName: a field name which is used to calculate the input to the property transformer. This an empty string if an expression is the transformer input.
%End
protected:
double transformNumeric( double input ) const;
%Docstring
Applies base class numeric transformations. Derived classes should call this
to transform an ``input`` numeric value before they apply any transform to the result.
This applies any curve transforms which may exist on the transformer.
%End
};
class QgsGenericNumericTransformer : QgsPropertyTransformer
{
%Docstring(signature="appended")
:py:class:`QgsPropertyTransformer` subclass for scaling an input numeric value into an output numeric value.
%End
%TypeHeaderCode
#include "qgspropertytransformer.h"
%End
public:
QgsGenericNumericTransformer( double minValue = 0.0,
double maxValue = 1.0,
double minOutput = 0.0,
double maxOutput = 1.0,
double nullOutput = 0.0,
double exponent = 1.0 );
%Docstring
Constructor for QgsGenericNumericTransformer.
:param minValue: minimum expected input value
:param maxValue: maximum expected input value
:param minOutput: minimum value to return
:param maxOutput: maximum value to return
:param nullOutput: value to return for null inputs
:param exponent: optional exponential for non-linear scaling
%End
virtual Type transformerType() const;
virtual QgsGenericNumericTransformer *clone() const /Factory/;
virtual QVariant toVariant() const;
virtual bool loadVariant( const QVariant &definition );
virtual QVariant transform( const QgsExpressionContext &context, const QVariant &value ) const;
virtual QString toExpression( const QString &baseExpression ) const;
static QgsGenericNumericTransformer *fromExpression( const QString &expression, QString &baseExpression /Out/, QString &fieldName /Out/ ) /Factory/;
%Docstring
Attempts to parse an expression into a corresponding :py:class:`QgsSizeScaleTransformer`.
:param expression: expression to parse
:return: - corresponding :py:class:`QgsSizeScaleTransformer`, or ``None`` if expression could not
be parsed to a size scale transformer.
- baseExpression: the component of the source expression which is used to calculate the input to the property transformer. This will be set to an empty string if a field reference is the transformer input.
- fieldName: a field name which is used to calculate the input to the property transformer. This will be set to an empty string if an expression is the transformer input.
%End
double value( double input ) const;
%Docstring
Calculates the size corresponding to a specific ``input`` value.
:return: calculated size using size scale transformer's parameters and type
%End
double minOutputValue() const;
%Docstring
Returns the minimum calculated size.
.. seealso:: :py:func:`setMinOutputValue`
.. seealso:: :py:func:`maxOutputValue`
%End
void setMinOutputValue( double size );
%Docstring
Sets the minimum calculated size.
:param size: minimum size
.. seealso:: :py:func:`minOutputValue`
.. seealso:: :py:func:`setMaxOutputValue`
%End
double maxOutputValue() const;
%Docstring
Returns the maximum calculated size.
.. seealso:: :py:func:`minOutputValue`
%End
void setMaxOutputValue( double size );
%Docstring
Sets the maximum calculated size.
:param size: maximum size
.. seealso:: :py:func:`maxOutputValue`
.. seealso:: :py:func:`setMinOutputValue`
%End
double nullOutputValue() const;
%Docstring
Returns the size value when an expression evaluates to NULL.
.. seealso:: :py:func:`setNullOutputValue`
%End
void setNullOutputValue( double size );
%Docstring
Sets the size value for when an expression evaluates to NULL.
:param size: null size
.. seealso:: :py:func:`nullOutputValue`
%End
double exponent() const;
%Docstring
Returns the exponent for an exponential expression.
.. seealso:: :py:func:`setExponent`
%End
void setExponent( double exponent );
%Docstring
Sets the exponent for an exponential expression.
:param exponent: exponent
.. seealso:: :py:func:`exponent`
%End
};
class QgsSizeScaleTransformer : QgsPropertyTransformer
{
%Docstring(signature="appended")
:py:class:`QgsPropertyTransformer` subclass for scaling a value into a size according to various
scaling methods.
%End
%TypeHeaderCode
#include "qgspropertytransformer.h"
%End
public:
enum ScaleType
{
Linear,
Area,
Flannery,
Exponential,
};
QgsSizeScaleTransformer( ScaleType type = Linear,
double minValue = 0.0,
double maxValue = 1.0,
double minSize = 0.0,
double maxSize = 1.0,
double nullSize = 0.0,
double exponent = 1.0 );
%Docstring
Constructor for QgsSizeScaleTransformer.
:param type: scaling type
:param minValue: minimum expected value
:param maxValue: maximum expected value
:param minSize: minimum size to return
:param maxSize: maximum size to return
:param nullSize: size to return for null values
:param exponent: exponent for Exponential scaling method
%End
virtual Type transformerType() const;
virtual QgsSizeScaleTransformer *clone() const /Factory/;
virtual QVariant toVariant() const;
virtual bool loadVariant( const QVariant &definition );
virtual QVariant transform( const QgsExpressionContext &context, const QVariant &value ) const;
virtual QString toExpression( const QString &baseExpression ) const;
static QgsSizeScaleTransformer *fromExpression( const QString &expression, QString &baseExpression /Out/, QString &fieldName /Out/ ) /Factory/;
%Docstring
Attempts to parse an expression into a corresponding QgsSizeScaleTransformer.
:param expression: expression to parse
:return: - corresponding QgsSizeScaleTransformer, or ``None`` if expression could not be parsed to a size scale transformer.
- baseExpression: the component of the source expression which is used to calculate the input to the property transformer. This an empty string if a field reference is the transformer input.
- fieldName: a field name which is used to calculate the input to the property transformer. This an empty string if an expression is the transformer input.
%End
double size( double value ) const;
%Docstring
Calculates the size corresponding to a specific value.
:param value: value to calculate size for
:return: calculated size using size scale transformer's parameters and type
%End
double minSize() const;
%Docstring
Returns the minimum calculated size.
.. seealso:: :py:func:`setMinSize`
.. seealso:: :py:func:`maxSize`
%End
void setMinSize( double size );
%Docstring
Sets the minimum calculated size.
:param size: minimum size
.. seealso:: :py:func:`minSize`
.. seealso:: :py:func:`setMaxSize`
%End
double maxSize() const;
%Docstring
Returns the maximum calculated size.
.. seealso:: :py:func:`minSize`
%End
void setMaxSize( double size );
%Docstring
Sets the maximum calculated size.
:param size: maximum size
.. seealso:: :py:func:`maxSize`
.. seealso:: :py:func:`setMinSize`
%End
double nullSize() const;
%Docstring
Returns the size value when an expression evaluates to NULL.
.. seealso:: :py:func:`setNullSize`
%End
void setNullSize( double size );
%Docstring
Sets the size value for when an expression evaluates to NULL.
:param size: null size
.. seealso:: :py:func:`nullSize`
%End
double exponent() const;
%Docstring
Returns the exponent for an exponential expression.
.. seealso:: :py:func:`setExponent`
.. seealso:: :py:func:`type`
%End
void setExponent( double exponent );
%Docstring
Sets the exponent for an exponential expression.
:param exponent: exponent
.. seealso:: :py:func:`exponent`
%End
ScaleType type() const;
%Docstring
Returns the size transformer's scaling type (the method used to calculate
the size from a value).
.. seealso:: :py:func:`setType`
%End
void setType( ScaleType type );
%Docstring
Sets the size transformer's scaling type (the method used to calculate
the size from a value).
:param type: scale type
.. seealso:: :py:func:`type`
%End
};
class QgsColorRampTransformer : QgsPropertyTransformer
{
%Docstring(signature="appended")
:py:class:`QgsPropertyTransformer` subclass for transforming a numeric value into a color from a
color ramp.
%End
%TypeHeaderCode
#include "qgspropertytransformer.h"
%End
public:
QgsColorRampTransformer( double minValue = 0.0,
double maxValue = 1.0,
QgsColorRamp *ramp /Transfer/ = 0,
const QColor &nullColor = QColor( 0, 0, 0, 0 ),
const QString &rampName = QString() );
%Docstring
Constructor for QgsColorRampTransformer.
:param minValue: minimum expected value
:param maxValue: maximum expected value
:param ramp: source color ramp. Ownership is transferred to the transformer.
:param nullColor: color to return for null values
:param rampName: name of the source color ramp (since QGIS 3.36)
%End
QgsColorRampTransformer( const QgsColorRampTransformer &other );
virtual Type transformerType() const;
virtual QgsColorRampTransformer *clone() const /Factory/;
virtual QVariant toVariant() const;
virtual bool loadVariant( const QVariant &definition );
virtual QVariant transform( const QgsExpressionContext &context, const QVariant &value ) const;
virtual QString toExpression( const QString &baseExpression ) const;
QColor color( double value ) const;
%Docstring
Calculates the color corresponding to a specific value.
:param value: value to calculate color for
:return: calculated color using transformer's parameters and type
%End
QgsColorRamp *colorRamp() const;
%Docstring
Returns the color ramp used for calculating property colors.
:return: color ramp
.. seealso:: :py:func:`setColorRamp`
%End
void setColorRamp( QgsColorRamp *ramp /Transfer/ );
%Docstring
Sets the color ramp to use for calculating property colors.
:param ramp: color ramp, ownership of ramp is transferred to the transformer.
.. seealso:: :py:func:`colorRamp`
%End
QColor nullColor() const;
%Docstring
Returns the color corresponding to a null value.
.. seealso:: :py:func:`setNullColor`
%End
void setNullColor( const QColor &color );
%Docstring
Sets the color corresponding to a null value.
:param color: null color
.. seealso:: :py:func:`nullColor`
%End
QString rampName() const;
%Docstring
Returns the color ramp's name.
.. seealso:: :py:func:`setRampName`
%End
void setRampName( const QString &name );
%Docstring
Sets the color ramp's ``name``. The ramp name must be set to match
a color ramp available in the style database for conversion to expression
to work correctly.
.. seealso:: :py:func:`rampName`
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgspropertytransformer.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/