Repeat INSENSITIVE colors instead of relying on inheritance
[ardour.git] / libs / canvas / canvas / curve.h
index e6decf84551fb08caf161d397e95a6559196458d..fad1119b39b6479118d7641b5f5b841fa9b2fbec 100644 (file)
 
 #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<Cairo::Context>) 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