| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -82,10 +82,12 @@ dynamic_bitset_mp<> filter_polygon_faces(const stl_vector_mp<polygon_face_t>& | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    return active_face_label; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void filter_active_vertices(stl_vector_mp<Eigen::Vector3d>& vertices, stl_vector_mp<uint32_t>& output_polygon_faces) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void filter_active_vertices(stl_vector_mp<Eigen::Vector3d>& iso_pts, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            stl_vector_mp<Eigen::Vector3d>& output_vertices, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            stl_vector_mp<uint32_t>&        output_polygon_faces) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    stl_vector_mp<uint32_t> unique_vertex_indices{}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    dynamic_bitset_mp<>     vertex_visited(vertices.size(), false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    dynamic_bitset_mp<>     vertex_visited(iso_pts.size(), false); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (const auto& vertex_index : output_polygon_faces) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (!vertex_visited[vertex_index]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            unique_vertex_indices.emplace_back(vertex_index); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -102,6 +104,6 @@ void filter_active_vertices(stl_vector_mp<Eigen::Vector3d>& vertices, stl_vector | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    stl_vector_mp<Eigen::Vector3d> unique_vertices{}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    unique_vertices.reserve(unique_vertex_indices.size()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (const auto& vertex_index : unique_vertex_indices) { unique_vertices.emplace_back(vertices[vertex_index]); } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    std::swap(vertices, unique_vertices); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (const auto& vertex_index : unique_vertex_indices) { unique_vertices.emplace_back(iso_pts[vertex_index]); } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    std::swap(output_vertices, unique_vertices); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |