165{
166 using CGAL_E_Point = CGAL::Exact_predicates_exact_constructions_kernel::Point_2;
167 using CGAL_E_Segment = CGAL::Arr_segment_traits_2<CGAL::Exact_predicates_exact_constructions_kernel>::Curve_2;
169
170 assert(std::all_of(voronoi_diagram.edges().cbegin(), voronoi_diagram.edges().cend(),
171 [](
const VD::edge_type &edge) { return edge.color() == 0; }));
172
173 std::vector<CGAL_E_Segment> segments;
174 segments.reserve(voronoi_diagram.num_edges());
175
177 if (edge.color() != 0)
178 continue;
179
180 if (edge.is_finite() && edge.is_linear() && edge.vertex0() != nullptr && edge.vertex1() != nullptr &&
183 edge.color(1);
184 assert(edge.twin() != nullptr);
185 edge.twin()->color(1);
186 }
187 }
188
190 edge.color(0);
191
192 std::vector<CGAL_E_Point> intersections_pt;
193 CGAL::compute_intersection_points(segments.begin(), segments.end(), std::back_inserter(intersections_pt));
194 return intersections_pt.empty();
195}
CGAL_Point to_cgal_point(const VD::vertex_type *pt)
Definition VoronoiUtilsCgal.cpp:150