mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	FIX: add protection to fix crash when mesh boolean
when the split has no effect we should return directly Change-Id: I81510c3edea96e101abfedf77023264e06d7d35c
This commit is contained in:
		
							parent
							
								
									4d2c5ddcde
								
							
						
					
					
						commit
						2dde3708d1
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		| 
						 | 
					@ -670,6 +670,12 @@ void do_boolean(McutMesh &srcMesh, const McutMesh &cutMesh, const std::string &b
 | 
				
			||||||
            indexed_triangle_set all_its;
 | 
					            indexed_triangle_set all_its;
 | 
				
			||||||
            TriangleMesh tri_src = mcut_to_triangle_mesh(srcMesh);
 | 
					            TriangleMesh tri_src = mcut_to_triangle_mesh(srcMesh);
 | 
				
			||||||
            std::vector<indexed_triangle_set> src_parts = its_split(tri_src.its);
 | 
					            std::vector<indexed_triangle_set> src_parts = its_split(tri_src.its);
 | 
				
			||||||
 | 
					            if (src_parts.size() == 1)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                //can not split, return error directly
 | 
				
			||||||
 | 
					                BOOST_LOG_TRIVIAL(error) << boost::format("bool operation %1% failed, also can not split")%boolean_opts;
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            for (size_t i = 0; i < src_parts.size(); i++)
 | 
					            for (size_t i = 0; i < src_parts.size(); i++)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                auto part = triangle_mesh_to_mcut(src_parts[i]);
 | 
					                auto part = triangle_mesh_to_mcut(src_parts[i]);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue