# QwtSplineLocal - Man Page

A spline with C1 continuity.

## Synopsis

`#include <qwt_spline_local.h>`

Inherits **QwtSplineC1**.

### Public Types

enum **Type** { **Cardinal**, **ParabolicBlending**, **Akima**, **PChip** }

Spline interpolation type.

### Public Member Functions

**QwtSplineLocal** (**Type type**)

Constructor.

virtual **~QwtSplineLocal** ()

Destructor. **Type type** () const

virtual uint **locality** () const override

virtual QPainterPath **painterPath** (const QPolygonF &) const override

Interpolate a curve with Bezier curves.

virtual **QVector**< QLineF > **bezierControlLines** (const QPolygonF &) const override

Interpolate a curve with Bezier curves.

virtual **QVector**< **QwtSplinePolynomial** > **polynomials** (const QPolygonF &) const override

Calculate the interpolating polynomials for a non parametric spline.

virtual **QVector**< double > **slopes** (const QPolygonF &) const override

Find the first derivative at the control points.

## Detailed Description

A spline with C1 continuity.

**QwtSplineLocal** offers several standard algorithms for interpolating a curve with polynomials having C1 continuity at the control points. All algorithms are local in a sense, that changing one control point only few polynomials.

Definition at line 24 of file qwt_spline_local.h.

## Member Enumeration Documentation

### enum QwtSplineLocal::Type

Spline interpolation type. All type of spline interpolations are lightweight algorithms calculating the slopes at a point by looking 1 or 2 points back and ahead.

**Enumerator**

*Cardinal*A cardinal spline

The cardinal spline interpolation is a very cheap calculation with a locality of 1.

*ParabolicBlending*Parabolic blending is a cheap calculation with a locality of 1. Sometimes it is also called Cubic Bessel interpolation.

*Akima*The algorithm of H.Akima is a calculation with a locality of 2.

*PChip*Piecewise Cubic Hermite Interpolating Polynomial (PCHIP) is an algorithm that is popular because of being offered by MATLAB.

It preserves the shape of the data and respects monotonicity. It has a locality of 1.

Definition at line 34 of file qwt_spline_local.h.

## Constructor & Destructor Documentation

### QwtSplineLocal::QwtSplineLocal (Type type)

Constructor.

**Parameters***type*Spline type, specifying the type of interpolation**See also****type()**

Definition at line 450 of file qwt_spline_local.cpp.

## Member Function Documentation

### QVector< QLineF > QwtSplineLocal::bezierControlLines (const QPolygonF & points) const [override], [virtual]

Interpolate a curve with Bezier curves. Interpolates a polygon piecewise with cubic Bezier curves and returns the 2 control points of each curve as QLineF.

**Parameters***points*Control points**Returns**Control points of the interpolating Bezier curves

Reimplemented from **QwtSplineC1**.

Definition at line 502 of file qwt_spline_local.cpp.

### uint QwtSplineLocal::locality () const [override], [virtual]

The locality of an spline interpolation identifies how many adjacent polynomials are affected, when changing the position of one point.

The Cardinal, ParabolicBlending and PChip algorithms have a locality of 1, while the Akima interpolation has a locality of 2.

**Returns**

1 or 2.

Reimplemented from **QwtSpline**.

Definition at line 552 of file qwt_spline_local.cpp.

### QPainterPath QwtSplineLocal::painterPath (const QPolygonF & points) const [override], [virtual]

Interpolate a curve with Bezier curves. Interpolates a polygon piecewise with cubic Bezier curves and returns them as QPainterPath.

**Parameters***points*Control points**Returns**Painter path, that can be rendered by QPainter

Reimplemented from **QwtSplineC1**.

Definition at line 482 of file qwt_spline_local.cpp.

### QVector< QwtSplinePolynomial > QwtSplineLocal::polynomials (const QPolygonF & points) const [override], [virtual]

Calculate the interpolating polynomials for a non parametric spline.

**Parameters***points*Control points**Returns**Interpolating polynomials

**Note**The x coordinates need to be increasing or decreasing

The implementation simply calls

**QwtSplineC1::polynomials()**, but is intended to be replaced by a one pass calculation some day.

Reimplemented from **QwtSplineC1**.

Definition at line 537 of file qwt_spline_local.cpp.

### QVector< double > QwtSplineLocal::slopes (const QPolygonF & points) const [override], [virtual]

Find the first derivative at the control points.

**Parameters***points*Control nodes of the spline**Returns**Vector with the values of the 2nd derivate at the control points

**Note**The x coordinates need to be increasing or decreasing

Implements **QwtSplineC1**.

Definition at line 521 of file qwt_spline_local.cpp.

### QwtSplineLocal::Type QwtSplineLocal::type () const

**Returns**Spline type, specifying the type of interpolation

Definition at line 468 of file qwt_spline_local.cpp.

## Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.