Code

write no/unset fill/stroke to current style
[inkscape.git] / src / libnr / nr-convex-hull.h
1 #ifndef SEEN_NR_CONVEX_HULL_H
2 #define SEEN_NR_CONVEX_HULL_H
4 /* ex:set et ts=4 sw=4: */
6 /*
7  * A class representing the convex hull of a set of points.
8  *
9  * Copyright 2004  MenTaLguY <mental@rydia.net>
10  *
11  * This code is licensed under the GNU GPL; see COPYING for more information.
12  */
14 #include <libnr/nr-rect.h>
16 namespace NR {
18 class ConvexHull {
19 public:
20         explicit ConvexHull(Point const &p) : _bounds(p, p) {}
22     Point midpoint() const {
23         return _bounds.midpoint();
24     }
26         void add(Point const &p) {
27                 _bounds.expandTo(p);
28         }
29         void add(Rect const &p) {
30                 // Note that this is a hack.  when convexhull actually works
31                 // you will need to add all four points.
32                 _bounds.expandTo(p.min());
33                 _bounds.expandTo(p.max());
34         }
35         void add(ConvexHull const &h) {
36                 _bounds.expandTo(h._bounds);
37         }
38                 
39         Rect const &bounds() const {
40                 return _bounds;
41         }
42         
43 private:
44         Rect _bounds;
45 };
47 } /* namespace NR */
49 #endif