summaryrefslogtreecommitdiffstats
path: root/src/2geom/sweep.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2008-09-01 19:29:30 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2008-09-01 19:29:30 +0000
commit0509575421dcc13079ea20f68592bc2fe05d8e52 (patch)
tree9d8993bc4a3431e16024f12390fd2fd9bda46243 /src/2geom/sweep.cpp
parentyet another update of ru.po (diff)
downloadinkscape-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.cpp13
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());
}