diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2008-09-01 19:29:30 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2008-09-01 19:29:30 +0000 |
| commit | 0509575421dcc13079ea20f68592bc2fe05d8e52 (patch) | |
| tree | 9d8993bc4a3431e16024f12390fd2fd9bda46243 /src/2geom/sweep.cpp | |
| parent | yet another update of ru.po (diff) | |
| download | inkscape-0509575421dcc13079ea20f68592bc2fe05d8e52.tar.gz inkscape-0509575421dcc13079ea20f68592bc2fe05d8e52.zip | |
update 2geom (rev. 1569)
(bzr r6748)
Diffstat (limited to 'src/2geom/sweep.cpp')
| -rw-r--r-- | src/2geom/sweep.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/2geom/sweep.cpp b/src/2geom/sweep.cpp index 1b8813990..227c822bd 100644 --- a/src/2geom/sweep.cpp +++ b/src/2geom/sweep.cpp @@ -9,8 +9,10 @@ std::vector<std::vector<unsigned> > sweep_bounds(std::vector<Rect> rs) { std::vector<std::vector<unsigned> > pairs(rs.size()); for(unsigned i = 0; i < rs.size(); i++) { - events.push_back(Event(rs[i].left(), i, false)); - events.push_back(Event(rs[i].right(), i, true)); + if(!rs[i].isEmpty()) { + events.push_back(Event(rs[i].left(), i, false)); + events.push_back(Event(rs[i].right(), i, true)); + } } std::sort(events.begin(), events.end()); @@ -45,8 +47,11 @@ std::vector<std::vector<unsigned> > sweep_bounds(std::vector<Rect> a, std::vecto unsigned sz = n ? b.size() : a.size(); events[n].reserve(sz*2); for(unsigned i = 0; i < sz; i++) { - events[n].push_back(Event(n ? b[i].left() : a[i].left(), i, false)); - events[n].push_back(Event(n ? b[i].right() : a[i].right(), i, true)); + Rect r = n ? b[i] : a[i]; + if(!r.isEmpty()) { + events[n].push_back(Event(r.left(), i, false)); + events[n].push_back(Event(r.right(), i, true)); + } } std::sort(events[n].begin(), events[n].end()); } |
