Canvas::Rect::contains() should treat its right/left coordinates as exclusive
[ardour.git] / libs / canvas / canvas / poly_line.h
index 911dd140fc13ebba65cc9d6e6f154d998053cc56..04b05f5df1f33b2b7fede5a787e2bb29bf5874db 100644 (file)
 #ifndef __CANVAS_POLY_LINE_H__
 #define __CANVAS_POLY_LINE_H__
 
+#include "canvas/visibility.h"
 #include "canvas/poly_item.h"
 #include "canvas/outline.h"
 
 namespace ArdourCanvas {
 
-class PolyLine : public PolyItem
+class LIBCANVAS_API PolyLine : public PolyItem
 {
-public:
-       PolyLine (Group *);
-
+  public:
+       PolyLine (Canvas*);
+       PolyLine (Item*);
+       
        void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
+
+       virtual void set_steps (Points const &, bool stepped);
+       
+        bool covers (Duple const &) const;
+       /**
+        * Set the distance at which a point will be considered to be covered
+        * by the line. For the definition of "distance" see
+        * utils.cc:distance_to_segment_squared()
+        */
+       void set_covers_threshold (double);
+
+  private:
+       double _threshold;
 };
        
 }