00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 00008 *****************************************************************************/ 00009 00010 #ifndef QWT_SPLINE_LOCAL_H 00011 #define QWT_SPLINE_LOCAL_H 1 00012 00013 #include "qwt_global.h" 00014 #include "qwt_spline.h" 00015 00024 class QWT_EXPORT QwtSplineLocal: public QwtSplineC1 00025 { 00026 public: 00034 enum Type 00035 { 00042 Cardinal, 00043 00048 ParabolicBlending, 00049 00053 Akima, 00054 00062 PChip 00063 }; 00064 00065 QwtSplineLocal( Type type ); 00066 virtual ~QwtSplineLocal(); 00067 00068 Type type() const; 00069 00070 virtual uint locality() const; 00071 00072 virtual QPainterPath painterPath( const QPolygonF & ) const; 00073 virtual QVector<QLineF> bezierControlLines( const QPolygonF & ) const; 00074 00075 // calculating the parametric equations 00076 virtual QVector<QwtSplinePolynomial> polynomials( const QPolygonF & ) const; 00077 virtual QVector<double> slopes( const QPolygonF & ) const; 00078 00079 private: 00080 const Type d_type; 00081 }; 00082 00083 #endif