1 #ifndef __2GEOM_SWEEP_H__
2 #define __2GEOM_SWEEP_H__
3 
4 #include <vector>
5 #include "d2.h"
6 
7 namespace Geom {
8 
9 struct Event {
10     double x;
11     unsigned ix;
12     bool closing;
EventEvent13     Event(double pos, unsigned i, bool c) : x(pos), ix(i), closing(c) {}
14 // Lexicographic ordering by x then closing
15     bool operator<(Event const &other) const {
16         if(x < other.x) return true;
17         if(x > other.x) return false;
18         return closing < other.closing;
19     }
20 
21 };
22 std::vector<std::vector<unsigned> > sweep_bounds(std::vector<Rect>);
23 std::vector<std::vector<unsigned> > sweep_bounds(std::vector<Rect>, std::vector<Rect>);
24 
25 std::vector<std::vector<unsigned> > fake_cull(unsigned a, unsigned b);
26 
27 }
28 
29 #endif
30