From 95b09b4c60a7a52f3fc12fd4753d5db351b2eb14 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 May 2016 21:38:35 -0400 Subject: [PATCH] data: Fixed flatten to only consider enclosed exclusions --- src/data.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/data.cpp b/src/data.cpp index 939960a5..36fe78e2 100644 --- a/src/data.cpp +++ b/src/data.cpp @@ -410,13 +410,18 @@ std::vector flatten ( { std::vector all; - if (! interval.range.ended ()) + if (interval.range.open ()) { all.push_back (interval); } else { - for (auto& result : subtractRanges (interval.range, {interval.range}, exclusions)) + std::vector enclosed; + for (auto& e : exclusions) + if (interval.range.encloses (e)) + enclosed.push_back (e); + + for (auto& result : subtractRanges (interval.range, {interval.range}, enclosed)) { Interval chunk {interval}; chunk.range = result;