Open sloriot opened 6 years ago
Hi! While using corefine_and_compute_union
, I got a failed assertion in intersection_impl.h:141 :
CGAL_assertion( (size_ == 2 && (v == first || v == second) ) || v==first );
(size is 2, first and second are already set, and v is a different value)
I saw there were previously some issues regarding coplanar faces (#2958). There are many coplanar faces in my meshes, but the faces causing the exception aren't coplanar. Is it possible that my issue is related to this issue here, multiple intersections?
I must add that the union computation works fine on simple meshes I created, but not on our real-world meshes. Haven't been able to create a very basic reproduction of the issue.
CGAL v 4.13 on Windows
Kernel: CGAL::Simple_cartesian
Stack trace
mesh_union.exe!CGAL::assertion_fail(const char * expr, const char * file, int line, const char * msg) Line 170C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Node_id_set::insert(unsigned __int64 v) Line 143C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Intersection_of_triangle_meshes<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Surface_intersection_visitor_for_corefinement<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Face_graph_output_builder<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,std::tuple<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::SM_index_pmap<CGAL::Point_3<CGAL::Simple_cartesian<double> >,CGAL::SM_Face_index>,CGAL::Default,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,std::tuple<CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,0> >::add_intersection_point_to_face_and_all_edge_incident_faces(CGAL::SM_Face_index f_1, CGAL::SM_Halfedge_index e_2, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2, unsigned __int64 node_id) Line 404C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Intersection_of_triangle_meshes<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Surface_intersection_visitor_for_corefinement<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Face_graph_output_builder<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,std::tuple<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::SM_index_pmap<CGAL::Point_3<CGAL::Simple_cartesian<double> >,CGAL::SM_Face_index>,CGAL::Default,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,std::tuple<CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,0> >::cip_handle_case_edge(unsigned __int64 node_id, boost::unordered::unordered_set<CGAL::SM_Face_index,boost::hash<CGAL::SM_Face_index>,std::equal_to<CGAL::SM_Face_index>,std::allocator<CGAL::SM_Face_index> > * fset, CGAL::SM_Halfedge_index e_1, CGAL::SM_Halfedge_index edge_intersected, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2) Line 420C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Intersection_of_triangle_meshes<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Surface_intersection_visitor_for_corefinement<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Face_graph_output_builder<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,std::tuple<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::SM_index_pmap<CGAL::Point_3<CGAL::Simple_cartesian<double> >,CGAL::SM_Face_index>,CGAL::Default,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,std::tuple<CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,0> >::cip_handle_case_vertex(unsigned __int64 node_id, boost::unordered::unordered_set<CGAL::SM_Face_index,boost::hash<CGAL::SM_Face_index>,std::equal_to<CGAL::SM_Face_index>,std::allocator<CGAL::SM_Face_index> > * fset, CGAL::SM_Halfedge_index edge, CGAL::SM_Halfedge_index vertex_intersected, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2) Line 467C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Intersection_of_triangle_meshes<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Surface_intersection_visitor_for_corefinement<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Face_graph_output_builder<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,std::tuple<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::SM_index_pmap<CGAL::Point_3<CGAL::Simple_cartesian<double> >,CGAL::SM_Face_index>,CGAL::Default,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,std::tuple<CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,0> >::handle_coplanar_case_VERTEX_VERTEX(CGAL::SM_Halfedge_index v_1, CGAL::SM_Halfedge_index v_2, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2, unsigned __int64 node_id, bool is_new_node) Line 536C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Intersection_of_triangle_meshes<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Surface_intersection_visitor_for_corefinement<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Face_graph_output_builder<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,std::tuple<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::SM_index_pmap<CGAL::Point_3<CGAL::Simple_cartesian<double> >,CGAL::SM_Face_index>,CGAL::Default,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,std::tuple<CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,0> >::compute_intersection_of_coplanar_faces(unsigned __int64 & current_node, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > & vpm1, const CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > & vpm2) Line 587C++
mesh_union.exe!CGAL::Polygon_mesh_processing::Corefinement::Intersection_of_triangle_meshes<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Surface_intersection_visitor_for_corefinement<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::Face_graph_output_builder<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > >,std::tuple<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index,CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::SM_index_pmap<CGAL::Point_3<CGAL::Simple_cartesian<double> >,CGAL::SM_Face_index>,CGAL::Default,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,std::tuple<CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Ecm_bind<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,CGAL::Polygon_mesh_processing::Corefinement::No_mark<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > > >,CGAL::Polygon_mesh_processing::Corefinement::Default_visitor<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >,0> >::operator()<CGAL::Emptyset_iterator>(CGAL::Emptyset_iterator output, bool throw_on_self_intersection, bool build_polylines) Line 1315C++
mesh_union.exe!CGAL::Polygon_mesh_processing::corefine_and_compute_boolean_operations<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> >(CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2, const std::array<boost::optional<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > *>,4> & output, const CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> & np1, const CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> & np2, const std::tuple<CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> > & nps_out) Line 520C++
mesh_union.exe!CGAL::Polygon_mesh_processing::corefine_and_compute_union<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property>,CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> >(CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm_out, const CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> & np1, const CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> & np2, const CGAL::cgal_bgl_named_params<bool,enum CGAL::internal_np::all_default_t,boost::no_property> & np_out) Line 656C++
mesh_union.exe!CGAL::Polygon_mesh_processing::corefine_and_compute_union<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >(CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm1, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm2, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > & tm_out) Line 1042C++
...
This issue has nothing to do with your issue, you should open a new one (I'll probably remove your comment to avoid confusion). Change Simple_cartesian
to CGAL::Exact_predicates_inexact_constructions_kernel
.
Simply changing to the Epick kernel did in fact solve the assertion error. Now in some situations the meshes are merged fine, occasionally it returns false. Thanks already! I'll report a separate issue if anything (re-)appears.
@sloriot You can "hide" comments in an issue/pr, and there is even a reason named "off topic".
The autorefinement code is not able to handle more that 2 faces intersecting along an edge. Right now it is throwing an exception when this happen.