Class: QgsCurveTransform

class qgis.core.QgsCurveTransform

Bases: sip.wrapper

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.

New in version 3.0.

QgsCurveTransform() Constructs a default QgsCurveTransform which linearly maps values between 0 and 1 unchanged. I.e. y == x.

QgsCurveTransform(controlPoints: Iterable[QgsPointXY]) Constructs a QgsCurveTransform using a specified list of controlPoints. Behavior is undefined if duplicate x values exist in the control points list.

QgsCurveTransform(other: QgsCurveTransform) Copy constructor

Methods

addControlPoint

Adds a control point to the transform.

controlPoints

Returns a list of the control points for the transform.

loadVariant

Load this curve transformer from a QVariantMap, wrapped in a QVariant.

readXml

Reads the curve’s state from an XML element.

removeControlPoint

Removes a control point from the transform.

setControlPoints

Sets the list of control points for the transform.

toVariant

Saves this curve transformer to a QVariantMap, wrapped in a QVariant.

writeXml

Writes the current state of the transform into an XML element

y

Returns the mapped y value corresponding to the specified x value.

addControlPoint(self, x: float, y: float)

Adds a control point to the transform. Behavior is undefined if duplicate x values exist in the control points list.

Parameters
  • x (float) –

  • y (float) –

controlPoints(self)List[QgsPointXY]

Returns a list of the control points for the transform.

Return type

List[QgsPointXY]

loadVariant(self, transformer: Any)bool

Load this curve transformer from a QVariantMap, wrapped in a QVariant. You can use QgsXmlUtils.writeVariant to load it from an XML document.

See also

toVariant()

Parameters

transformer (Any) –

Return type

bool

readXml(self, elem: QDomElement, doc: QDomDocument)bool

Reads the curve’s state from an XML element.

Parameters
  • elem (QDomElement) – source DOM element for transform’s state

  • doc (QDomDocument) – DOM document

See also

writeXml()

Return type

bool

removeControlPoint(self, x: float, y: float)

Removes a control point from the transform. This will have no effect if a matching control point does not exist.

Parameters
  • x (float) –

  • y (float) –

setControlPoints(self, points: Iterable[QgsPointXY])

Sets the list of control points for the transform. Any existing points are removed.

See also

controlPoints()

Parameters

points (Iterable[QgsPointXY]) –

toVariant(self)Any

Saves this curve transformer to a QVariantMap, wrapped in a QVariant. You can use QgsXmlUtils.writeVariant to save it to an XML document.

See also

loadVariant()

Return type

Any

writeXml(self, transformElem: QDomElement, doc: QDomDocument)bool

Writes the current state of the transform into an XML element

Parameters
  • transformElem (QDomElement) – destination element for the transform’s state

  • doc (QDomDocument) – DOM document

See also

readXml()

Return type

bool

y(self, x: float)float

Returns the mapped y value corresponding to the specified x value.

y(self, x: Iterable[float]) -> List[float] 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.

Parameters

x (float) –

Return type

float