diff options
Diffstat (limited to 'libs/canvas/canvas')
-rw-r--r-- | libs/canvas/canvas/arc.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/arrow.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/curve.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/flag.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/image.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/item.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/line.h | 1 | ||||
-rw-r--r-- | libs/canvas/canvas/line_set.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/poly_line.h | 2 | ||||
-rw-r--r-- | libs/canvas/canvas/polygon.h | 10 | ||||
-rw-r--r-- | libs/canvas/canvas/wave_view.h | 1 |
11 files changed, 24 insertions, 4 deletions
diff --git a/libs/canvas/canvas/arc.h b/libs/canvas/canvas/arc.h index fc1b72163e..c8d7f8e44f 100644 --- a/libs/canvas/canvas/arc.h +++ b/libs/canvas/canvas/arc.h @@ -51,6 +51,8 @@ public: return _start_degrees; } + bool covers (Duple const &) const; + private: Duple _center; Coord _radius; diff --git a/libs/canvas/canvas/arrow.h b/libs/canvas/canvas/arrow.h index a5a338a3ba..ed3a5bb384 100644 --- a/libs/canvas/canvas/arrow.h +++ b/libs/canvas/canvas/arrow.h @@ -62,6 +62,8 @@ public: void set_y0 (Coord); void set_y1 (Coord); + bool covers (Duple const &) const; + private: void setup_polygon (int); diff --git a/libs/canvas/canvas/curve.h b/libs/canvas/canvas/curve.h index f2ed6a1d0e..4cf69e19e3 100644 --- a/libs/canvas/canvas/curve.h +++ b/libs/canvas/canvas/curve.h @@ -29,9 +29,7 @@ public: Curve (Group *); void compute_bounding_box () const; - void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const; - void set (Points const &); protected: diff --git a/libs/canvas/canvas/flag.h b/libs/canvas/canvas/flag.h index 6664524a19..fe14a63d96 100644 --- a/libs/canvas/canvas/flag.h +++ b/libs/canvas/canvas/flag.h @@ -33,6 +33,8 @@ public: void set_text (std::string const &); void set_height (Distance); + + bool covers (Duple const &) const; private: Distance _height; diff --git a/libs/canvas/canvas/image.h b/libs/canvas/canvas/image.h index 0dcf8e51b3..6134bb63b5 100644 --- a/libs/canvas/canvas/image.h +++ b/libs/canvas/canvas/image.h @@ -90,7 +90,7 @@ public: void render (Rect const &, Cairo::RefPtr<Cairo::Context>) const; void compute_bounding_box () const; - + private: Cairo::Format _format; int _width; diff --git a/libs/canvas/canvas/item.h b/libs/canvas/canvas/item.h index 7cad50e883..4ec1202644 100644 --- a/libs/canvas/canvas/item.h +++ b/libs/canvas/canvas/item.h @@ -75,6 +75,8 @@ public: items.push_back (this); } + virtual bool covers (Duple const &) const; + /** Update _bounding_box and _bounding_box_dirty */ virtual void compute_bounding_box () const = 0; diff --git a/libs/canvas/canvas/line.h b/libs/canvas/canvas/line.h index 36c0f48379..c22ecafc80 100644 --- a/libs/canvas/canvas/line.h +++ b/libs/canvas/canvas/line.h @@ -33,6 +33,7 @@ public: void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const; void compute_bounding_box () const; + bool covers (Duple const &) const; void set (Duple, Duple); void set_x0 (Coord); diff --git a/libs/canvas/canvas/line_set.h b/libs/canvas/canvas/line_set.h index cd551438b1..8fd01825df 100644 --- a/libs/canvas/canvas/line_set.h +++ b/libs/canvas/canvas/line_set.h @@ -34,6 +34,8 @@ public: void compute_bounding_box () const; void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const; + bool covers (Duple const &) const; + void set_height (Distance); void add (Coord, Distance, Color); diff --git a/libs/canvas/canvas/poly_line.h b/libs/canvas/canvas/poly_line.h index 911dd140fc..830e76bae2 100644 --- a/libs/canvas/canvas/poly_line.h +++ b/libs/canvas/canvas/poly_line.h @@ -31,6 +31,8 @@ public: PolyLine (Group *); void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const; + + bool covers (Duple const &) const; }; } diff --git a/libs/canvas/canvas/polygon.h b/libs/canvas/canvas/polygon.h index addfe48100..48eb494ae8 100644 --- a/libs/canvas/canvas/polygon.h +++ b/libs/canvas/canvas/polygon.h @@ -30,8 +30,18 @@ class Polygon : public PolyItem, public Fill { public: Polygon (Group *); + virtual ~Polygon(); void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const; + void compute_bounding_box () const; + bool covers (Duple const &) const; + + protected: + mutable float* multiple; + mutable float* constant; + mutable Points::size_type cached_size; + + void cache_shape_computation () const; }; } diff --git a/libs/canvas/canvas/wave_view.h b/libs/canvas/canvas/wave_view.h index fc39d7e555..05bd00f5ad 100644 --- a/libs/canvas/canvas/wave_view.h +++ b/libs/canvas/canvas/wave_view.h @@ -97,7 +97,6 @@ public: double gradient_depth() const { return _gradient_depth; } void set_shape (Shape); - /* currently missing because we don't need them (yet): set_shape_independent(); set_logscaled_independent() |