MCPcopy Create free account
hub / github.com/IfcOpenShell/IfcOpenShell / do_segments_intersect

Function do_segments_intersect

src/ifcgeom/kernels/cgal/CgalKernel.cpp:553–563  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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
566namespace {

Callers 1

convertMethod · 0.85

Calls 4

push_backMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected