#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 &);
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