QGIS API Documentation
3.20.0-Odense (decaadbb31)
|
Handles scaling of input values to output values by using a curve created from smoothly joining a number of set control points. More...
#include <qgspropertytransformer.h>
Public Member Functions | |
QgsCurveTransform () | |
Constructs a default QgsCurveTransform which linearly maps values between 0 and 1 unchanged. More... | |
QgsCurveTransform (const QgsCurveTransform &other) | |
Copy constructor. More... | |
QgsCurveTransform (const QList< QgsPointXY > &controlPoints) | |
Constructs a QgsCurveTransform using a specified list of controlPoints. More... | |
~QgsCurveTransform () | |
void | addControlPoint (double x, double y) |
Adds a control point to the transform. More... | |
QList< QgsPointXY > | controlPoints () const |
Returns a list of the control points for the transform. More... | |
bool | loadVariant (const QVariant &transformer) |
Load this curve transformer from a QVariantMap, wrapped in a QVariant. More... | |
QgsCurveTransform & | operator= (const QgsCurveTransform &other) |
bool | readXml (const QDomElement &elem, const QDomDocument &doc) |
Reads the curve's state from an XML element. More... | |
void | removeControlPoint (double x, double y) |
Removes a control point from the transform. More... | |
void | setControlPoints (const QList< QgsPointXY > &points) |
Sets the list of control points for the transform. More... | |
QVariant | toVariant () const |
Saves this curve transformer to a QVariantMap, wrapped in a QVariant. More... | |
bool | writeXml (QDomElement &transformElem, QDomDocument &doc) const |
Writes the current state of the transform into an XML element. More... | |
QVector< double > | y (const QVector< double > &x) const |
Returns a list of y values corresponding to a list of x values. More... | |
double | y (double x) const |
Returns the mapped y value corresponding to the specified x value. More... | |
Handles scaling of input values to output values by using a curve created from smoothly joining a number of set control points.
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.
Definition at line 56 of file qgspropertytransformer.h.
QgsCurveTransform::QgsCurveTransform | ( | ) |
Constructs a default QgsCurveTransform which linearly maps values between 0 and 1 unchanged.
I.e. y == x.
Definition at line 662 of file qgspropertytransformer.cpp.
QgsCurveTransform::QgsCurveTransform | ( | const QList< QgsPointXY > & | controlPoints | ) |
Constructs a QgsCurveTransform using a specified list of controlPoints.
Behavior is undefined if duplicate x values exist in the control points list.
Definition at line 668 of file qgspropertytransformer.cpp.
QgsCurveTransform::~QgsCurveTransform | ( | ) |
Definition at line 675 of file qgspropertytransformer.cpp.
QgsCurveTransform::QgsCurveTransform | ( | const QgsCurveTransform & | other | ) |
Copy constructor.
Definition at line 680 of file qgspropertytransformer.cpp.
void QgsCurveTransform::addControlPoint | ( | double | x, |
double | y | ||
) |
Adds a control point to the transform.
Behavior is undefined if duplicate x values exist in the control points list.
Definition at line 717 of file qgspropertytransformer.cpp.
|
inline |
Returns a list of the control points for the transform.
Definition at line 86 of file qgspropertytransformer.h.
bool QgsCurveTransform::loadVariant | ( | const QVariant & | transformer | ) |
Load this curve transformer from a QVariantMap, wrapped in a QVariant.
You can use QgsXmlUtils::writeVariant to load it from an XML document.
Definition at line 938 of file qgspropertytransformer.cpp.
QgsCurveTransform & QgsCurveTransform::operator= | ( | const QgsCurveTransform & | other | ) |
Definition at line 690 of file qgspropertytransformer.cpp.
bool QgsCurveTransform::readXml | ( | const QDomElement & | elem, |
const QDomDocument & | doc | ||
) |
Reads the curve's state from an XML element.
elem | source DOM element for transform's state |
doc | DOM document |
Definition at line 876 of file qgspropertytransformer.cpp.
void QgsCurveTransform::removeControlPoint | ( | double | x, |
double | y | ||
) |
Removes a control point from the transform.
This will have no effect if a matching control point does not exist.
Definition at line 728 of file qgspropertytransformer.cpp.
void QgsCurveTransform::setControlPoints | ( | const QList< QgsPointXY > & | points | ) |
Sets the list of control points for the transform.
Any existing points are removed.
Definition at line 705 of file qgspropertytransformer.cpp.
QVariant QgsCurveTransform::toVariant | ( | ) | const |
Saves this curve transformer to a QVariantMap, wrapped in a QVariant.
You can use QgsXmlUtils::writeVariant to save it to an XML document.
Definition at line 919 of file qgspropertytransformer.cpp.
bool QgsCurveTransform::writeXml | ( | QDomElement & | transformElem, |
QDomDocument & | doc | ||
) | const |
Writes the current state of the transform into an XML element.
transformElem | destination element for the transform's state |
doc | DOM document |
Definition at line 902 of file qgspropertytransformer.cpp.
QVector< double > QgsCurveTransform::y | ( | const QVector< double > & | x | ) | const |
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.
Definition at line 808 of file qgspropertytransformer.cpp.
double QgsCurveTransform::y | ( | double | x | ) | const |
Returns the mapped y value corresponding to the specified x value.
Definition at line 746 of file qgspropertytransformer.cpp.