X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fcanvas%2Fcanvas%2Fcurve.h;h=fad1119b39b6479118d7641b5f5b841fa9b2fbec;hb=d92686afb4105b84b014372b6feb0ccc454a5171;hp=e6decf84551fb08caf161d397e95a6559196458d;hpb=99c953514bd13a025066f73e179c160cc5145e1b;p=ardour.git diff --git a/libs/canvas/canvas/curve.h b/libs/canvas/canvas/curve.h index e6decf8455..fad1119b39 100644 --- a/libs/canvas/canvas/curve.h +++ b/libs/canvas/canvas/curve.h @@ -21,27 +21,26 @@ #include "canvas/visibility.h" +#include "canvas/interpolated_curve.h" #include "canvas/poly_item.h" #include "canvas/fill.h" namespace ArdourCanvas { -class LIBCANVAS_API Curve : public PolyItem, public Fill -{ -public: - Curve (Group *); +class XFadeCurve; - enum SplineType { - CatmullRomUniform, - CatmullRomCentripetal, - }; +class LIBCANVAS_API Curve : public PolyItem, public InterpolatedCurve +{ + public: + Curve (Canvas*); + Curve (Item*); enum CurveFill { None, Inside, Outside, }; - + void compute_bounding_box () const; void render (Rect const & area, Cairo::RefPtr) const; void set (Points const &); @@ -55,14 +54,11 @@ public: Points samples; Points::size_type n_samples; uint32_t points_per_segment; - SplineType curve_type; CurveFill curve_fill; void interpolate (); - - static void interpolate (const Points& coordinates, uint32_t points_per_segment, SplineType, bool closed, Points& results); }; - + } #endif