summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas
diff options
context:
space:
mode:
Diffstat (limited to 'libs/canvas/canvas')
-rw-r--r--libs/canvas/canvas/arc.h2
-rw-r--r--libs/canvas/canvas/arrow.h2
-rw-r--r--libs/canvas/canvas/curve.h2
-rw-r--r--libs/canvas/canvas/flag.h2
-rw-r--r--libs/canvas/canvas/image.h2
-rw-r--r--libs/canvas/canvas/item.h2
-rw-r--r--libs/canvas/canvas/line.h1
-rw-r--r--libs/canvas/canvas/line_set.h2
-rw-r--r--libs/canvas/canvas/poly_line.h2
-rw-r--r--libs/canvas/canvas/polygon.h10
-rw-r--r--libs/canvas/canvas/wave_view.h1
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()