/** Remove all edges of nodes which corresponding face has not been seen in any texture view. */ void isolate_unseen_faces(UniGraph * graph, ST const & data_costs) { int num_unseen_faces = 0; for (std::uint32_t i = 0; i < data_costs.cols(); i++) { ST::Column const & data_costs_for_face = data_costs.col(i); if (data_costs_for_face.size() == 0) { num_unseen_faces++; // get all the adjacent facets of the i-the facet // each facet is corresponding to // the a node in the UnifindGraph std::vector<std::size_t> const & adj_nodes = graph->get_adj_nodes(i); for (std::size_t j = 0; j < adj_nodes.size(); j++) graph->remove_edge(i, adj_nodes[j]); } } std::cout << "\t" << num_unseen_faces << " faces have not been seen by a view." << std::endl; }