| 551 | }; |
| 552 | |
| 553 | bool do_segments_intersect(const std::vector<Kernel_::Segment_3>& segments) { |
| 554 | std::vector<Box> boxes; |
| 555 | std::vector<int> handles(segments.size()); |
| 556 | std::iota(handles.begin(), handles.end(), 0); |
| 557 | for (auto it = segments.begin(); it != segments.end(); ++it) { |
| 558 | boxes.push_back(Box(it->bbox(), &*(handles.begin() + std::distance(segments.begin(), it)))); |
| 559 | } |
| 560 | intersection_collector x(segments); |
| 561 | CGAL::box_self_intersection_d(boxes.begin(), boxes.end(), x); |
| 562 | return !!x.num_self_intersections; |
| 563 | } |
| 564 | } |
| 565 | |
| 566 | namespace { |