56
57
std::vector<Geom::Interval> complementOf(Geom::Interval I, std::vector<Geom::Interval> domain){
57
58
std::vector<Geom::Interval> ret;
58
double min = domain.front().min();
59
double max = domain.back().max();
60
Geom::Interval I1 = Geom::Interval(min,I.min());
61
Geom::Interval I2 = Geom::Interval(I.max(),max);
59
if (!domain.empty()) {
60
double min = domain.front().min();
61
double max = domain.back().max();
62
Geom::Interval I1 = Geom::Interval(min,I.min());
63
Geom::Interval I2 = Geom::Interval(I.max(),max);
63
for (unsigned i = 0; i<domain.size(); i++){
64
boost::optional<Geom::Interval> I1i = intersect(domain.at(i),I1);
65
if (I1i && !I1i->isSingular()) ret.push_back(I1i.get());
66
boost::optional<Geom::Interval> I2i = intersect(domain.at(i),I2);
67
if (I2i && !I2i->isSingular()) ret.push_back(I2i.get());
65
for (unsigned i = 0; i<domain.size(); i++){
66
boost::optional<Geom::Interval> I1i = intersect(domain.at(i),I1);
67
if (I1i && !I1i->isSingular()) ret.push_back(I1i.get());
68
boost::optional<Geom::Interval> I2i = intersect(domain.at(i),I2);
69
if (I2i && !I2i->isSingular()) ret.push_back(I2i.get());