You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
805 B
45 lines
805 B
#ifndef UBINTERPOLATOR_H
|
|
#define UBINTERPOLATOR_H
|
|
|
|
#include <QtGui>
|
|
|
|
class UBInterpolator
|
|
{
|
|
/* Abstract class representing an interpolator */
|
|
|
|
public:
|
|
enum InterpolationMethod {
|
|
NoInterpolation,
|
|
//SimpleSpline,
|
|
//CatmullRom,
|
|
Bezier
|
|
};
|
|
|
|
UBInterpolator();
|
|
virtual ~UBInterpolator();
|
|
|
|
virtual void setPoints(QList<QPointF> points) = 0;
|
|
//virtual double y(double x) {}
|
|
|
|
};
|
|
|
|
class UBQuadraticBezier : public UBInterpolator
|
|
{
|
|
|
|
public:
|
|
UBQuadraticBezier();
|
|
virtual ~UBQuadraticBezier();
|
|
|
|
virtual void setPoints(QList<QPointF> points);
|
|
void setPoints(QPointF start, QPointF control, QPointF end);
|
|
|
|
//virtual double y(double x);
|
|
|
|
QList<QPointF> getPoints(int n);
|
|
|
|
private:
|
|
|
|
QPainterPath* mPath;
|
|
};
|
|
|
|
#endif // UBINTERPOLATOR_H
|
|
|