Classes | Public Types | Public Member Functions | Private Attributes
QwtSpline Class Reference

Base class for all splines. More...

#include <qwt_spline.h>

Inheritance diagram for QwtSpline:
Inheritance graph
[legend]

List of all members.

Classes

class  PrivateData

Public Types

enum  BoundaryCondition { Clamped1, Clamped2, Clamped3, LinearRunout }
 Boundary condition. More...
enum  BoundaryPosition { AtBeginning, AtEnd }
enum  BoundaryType { ConditionalBoundaries, PeriodicPolygon, ClosedPolygon }

Public Member Functions

int boundaryCondition (BoundaryPosition) const
BoundaryType boundaryType () const
double boundaryValue (BoundaryPosition) const
virtual uint locality () const
virtual QPainterPath painterPath (const QPolygonF &) const =0
const QwtSplineParametrizationparametrization () const
virtual QPolygonF polygon (const QPolygonF &, double tolerance) const
 Interpolate a curve by a polygon.
 QwtSpline ()
 Constructor.
void setBoundaryCondition (BoundaryPosition, int condition)
 Define the condition for an endpoint of the spline.
void setBoundaryConditions (int condition, double valueBegin=0.0, double valueEnd=0.0)
 Define the condition at the endpoints of a spline.
void setBoundaryType (BoundaryType)
void setBoundaryValue (BoundaryPosition, double value)
 Define the boundary value.
void setParametrization (int type)
void setParametrization (QwtSplineParametrization *)
virtual ~QwtSpline ()
 Destructor.

Private Attributes

PrivateDatad_data

Detailed Description

Base class for all splines.

A spline is a curve represented by a sequence of polynomials. Spline approximation is the process of finding polynomials for a given set of points. When the algorithm preserves the initial points it is called interpolating.

Splines can be classified according to conditions of the polynomials that are met at the start/endpoints of the pieces:

Geometric continuity requires the geometry to be continuous, while parametric continuity requires that the underlying parameterization be continuous as well. Parametric continuity of order n implies geometric continuity of order n, but not vice-versa.

QwtSpline is the base class for spline approximations of any continuity.

Definition at line 53 of file qwt_spline.h.


Member Enumeration Documentation

Boundary condition.

A spline algorithm calculates polynomials by looking a couple of points back/ahead ( locality() ). At the ends additional rules are necessary to compensate the missing points.

See also:
boundaryCondition(), boundaryValue()
QwtSplineC2::BoundaryConditionC2
Enumerator:
Clamped1 

The first derivative at the end point is given

See also:
boundaryValue()
Clamped2 

The second derivative at the end point is given

See also:
boundaryValue()
Note:
a condition having a second derivative of 0 is also called "natural".
Clamped3 

The third derivative at the end point is given

See also:
boundaryValue()
Note:
a condition having a third derivative of 0 is also called "parabolic runout".
LinearRunout 

The first derivate at the endpoint is related to the first derivative at its neighbour by the boundary value. F,e when the boundary value at the end is 1.0 then the slope at the last 2 points is the same.

See also:
boundaryValue().

Definition at line 115 of file qwt_spline.h.

position of a boundary condition

See also:
boundaryCondition(), boundaryValue()
Enumerator:
AtBeginning 

the condiation is at the beginning of the polynomial

AtEnd 

the condiation is at the end of the polynomial

Definition at line 95 of file qwt_spline.h.

Boundary type specifying the spline at its endpoints

See also:
setBoundaryType(), boundaryType()
Enumerator:
ConditionalBoundaries 

The polynomials at the start/endpoint depend on specific conditions

See also:
QwtSpline::BoundaryCondition
PeriodicPolygon 

The polynomials at the start/endpoint are found by using imaginary additional points. Additional points at the end are found by translating points from the beginning or v.v.

ClosedPolygon 

ClosedPolygon is similar to PeriodicPolygon beside, that the interpolation includes the connection between the last and the first control point.

Note:
Only works for parametrizations, where the parameter increment for the the final closing line is positive. This excludes QwtSplineParametrization::ParameterX and QwtSplineParametrization::ParameterY

Definition at line 61 of file qwt_spline.h.


Constructor & Destructor Documentation

Constructor.

The default setting is a non closing spline with chordal parametrization

See also:
setParametrization(), setBoundaryType()

Definition at line 538 of file qwt_spline.cpp.

QwtSpline::~QwtSpline ( ) [virtual]

Destructor.

Definition at line 544 of file qwt_spline.cpp.


Member Function Documentation

Returns:
Condition for an endpoint of the spline
Parameters:
positionAt the beginning or the end of the spline
See also:
setBoundaryCondition(), boundaryValue(), setBoundaryConditions()

Definition at line 649 of file qwt_spline.cpp.

Returns:
Boundary type
See also:
setBoundaryType()

Definition at line 624 of file qwt_spline.cpp.

double QwtSpline::boundaryValue ( BoundaryPosition  position) const
Returns:
Boundary value
Parameters:
positionAt the beginning or the end of the spline
See also:
setBoundaryValue(), boundaryCondition()

Definition at line 680 of file qwt_spline.cpp.

uint QwtSpline::locality ( ) const [virtual]

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

A locality of 'n' means, that changing the coordinates of a point has an effect on 'n' leading and 'n' following polynoms. Those polynoms can be calculated from a local subpolygon.

A value of 0 means, that the interpolation is not local and any modification of the polygon requires to recalculate all polynoms ( f.e cubic splines ).

Returns:
Order of locality

Reimplemented in QwtSplineLocal, QwtSplineCubic, QwtSplineBasis, and QwtSplinePleasing.

Definition at line 562 of file qwt_spline.cpp.

QPainterPath QwtSpline::painterPath ( const QPolygonF &  points) const [pure virtual]

Approximates a polygon piecewise with cubic Bezier curves and returns them as QPainterPath.

Parameters:
pointsControl points
Returns:
Painter path, that can be rendered by QPainter
See also:
polygon(), QwtBezier

Implemented in QwtSplineC2, QwtSplineC1, QwtSplineInterpolating, QwtSplineLocal, QwtSplineCubic, QwtSplinePleasing, and QwtSplineBasis.

Returns:
parametrization
See also:
setParametrization()

Definition at line 603 of file qwt_spline.cpp.

QPolygonF QwtSpline::polygon ( const QPolygonF &  points,
double  tolerance 
) const [virtual]

Interpolate a curve by a polygon.

Interpolates a polygon piecewise with Bezier curves interpolating them in a 2nd pass by polygons.

The interpolation is based on "Piecewise Linear Approximation of Bézier Curves" by Roger Willcocks ( http://www.rops.org )

Parameters:
pointsControl points
toleranceMaximum for the accepted error of the approximation
Returns:
polygon approximating the interpolating polynomials
See also:
bezierControlLines(), QwtBezier

Reimplemented in QwtSplineInterpolating.

Definition at line 494 of file qwt_spline.cpp.

void QwtSpline::setBoundaryCondition ( BoundaryPosition  position,
int  condition 
)

Define the condition for an endpoint of the spline.

Parameters:
positionAt the beginning or the end of the spline
conditionCondition
See also:
BoundaryCondition, QwtSplineC2::BoundaryCondition, boundaryCondition()

Definition at line 637 of file qwt_spline.cpp.

void QwtSpline::setBoundaryConditions ( int  condition,
double  valueBegin = 0.0,
double  valueEnd = 0.0 
)

Define the condition at the endpoints of a spline.

Parameters:
conditionCondition
valueBeginUsed for the condition at the beginning of te spline
valueEndUsed for the condition at the end of te spline
See also:
BoundaryCondition, QwtSplineC2::BoundaryCondition, tsetBoundaryCondition(), setBoundaryValue()

Definition at line 698 of file qwt_spline.cpp.

void QwtSpline::setBoundaryType ( BoundaryType  boundaryType)

Define the boundary type for the endpoints of the approximating spline.

Parameters:
boundaryTypeBoundary type
See also:
boundaryType()

Definition at line 615 of file qwt_spline.cpp.

void QwtSpline::setBoundaryValue ( BoundaryPosition  position,
double  value 
)

Define the boundary value.

The boundary value is an parameter used in combination with the boundary condition. Its meaning depends on the condition.

Parameters:
positionAt the beginning or the end of the spline
valueValue used for the condition at the end point
See also:
boundaryValue(), setBoundaryCondition()

Definition at line 668 of file qwt_spline.cpp.

void QwtSpline::setParametrization ( int  type)

Define the parametrization for a parametric spline approximation The default setting is a chordal parametrization.

Parameters:
typeType of parametrization, ususally one of QwtSplineParametrization::Type
See also:
parametrization()

Definition at line 574 of file qwt_spline.cpp.

Define the parametrization for a parametric spline approximation The default setting is a chordal parametrization.

Parameters:
parametrizationParametrization
See also:
parametrization()

Definition at line 590 of file qwt_spline.cpp.


Member Data Documentation

Reimplemented in QwtSplineCubic.

Definition at line 179 of file qwt_spline.h.


The documentation for this class was generated from the following files:


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:58