diff --git a/MeshLib/MeshEditing/RemoveMeshComponents.cpp b/MeshLib/MeshEditing/RemoveMeshComponents.cpp index 2409dc14474e42315035b1bf6502790dbf94ffbe..06a657345bdd9051eb77b115024f4be61d2ebef7 100644 --- a/MeshLib/MeshEditing/RemoveMeshComponents.cpp +++ b/MeshLib/MeshEditing/RemoveMeshComponents.cpp @@ -63,7 +63,7 @@ MeshLib::Mesh* removeElements(const MeshLib::Mesh& mesh, const std::vector<std:: // delete unused nodes NodeSearch ns(mesh); - ns.searchByElementIDs(removed_element_ids, true); + ns.searchByElementIDs(removed_element_ids); auto &removed_node_ids(ns.getSearchedNodeIDs()); INFO("Removing total %d nodes...", removed_node_ids.size()); for (auto nodeid : removed_node_ids) diff --git a/MeshLib/MeshSearch/NodeSearch.cpp b/MeshLib/MeshSearch/NodeSearch.cpp index 334c49c886d9a5fdeece7906cda13135dac08f9b..ee765ac94a50a68c6dff5d98327afc32e0fa35ad 100644 --- a/MeshLib/MeshSearch/NodeSearch.cpp +++ b/MeshLib/MeshSearch/NodeSearch.cpp @@ -47,25 +47,6 @@ std::vector<std::size_t> NodeSearch::searchByElementIDsMatchAllConnectedElements return connected_nodes; } -std::vector<std::size_t> NodeSearch::searchByElementIDsNotMatchAllConnectedElements(const std::vector<std::size_t> &elements) -{ - std::vector<std::size_t> connected_nodes; - - for(std::size_t eid : elements) - { - auto* e = _mesh.getElement(eid); - for (unsigned i=0; i<e->getNBaseNodes(); i++) { - connected_nodes.push_back(e->getNodeIndex(i)); - } - } - - std::sort(connected_nodes.begin(), connected_nodes.end()); - auto it = std::unique(connected_nodes.begin(), connected_nodes.end()); - connected_nodes.resize(std::distance(connected_nodes.begin(),it)); - - return connected_nodes; -} - std::size_t NodeSearch::searchUnused() { const size_t nNodes (_mesh.getNNodes()); diff --git a/MeshLib/MeshSearch/NodeSearch.h b/MeshLib/MeshSearch/NodeSearch.h index 77d2a5a5cfc8316d44930e7594749036f4ee9f99..72278be3bafd8729f1bc9e8ac416713eb7ecb0b1 100644 --- a/MeshLib/MeshSearch/NodeSearch.h +++ b/MeshLib/MeshSearch/NodeSearch.h @@ -29,13 +29,11 @@ public: /// return marked node IDs const std::vector<std::size_t>& getSearchedNodeIDs() const {return _marked_nodes; } - /// Marks all nodes connecting to any of the given elements - std::size_t searchByElementIDs(const std::vector<std::size_t> &element_ids, bool only_match_all_connected_elements = false) + /// Marks all nodes connected to any of the given elements ids. + std::size_t searchByElementIDs(const std::vector<std::size_t> &element_ids) { std::vector<std::size_t> connected_nodes = - (only_match_all_connected_elements - ? searchByElementIDsMatchAllConnectedElements(element_ids) - : searchByElementIDsNotMatchAllConnectedElements(element_ids)); + searchByElementIDsMatchAllConnectedElements(element_ids); this->updateUnion(connected_nodes); return connected_nodes.size(); @@ -46,7 +44,6 @@ public: private: std::vector<std::size_t> searchByElementIDsMatchAllConnectedElements(const std::vector<std::size_t> &element_ids); - std::vector<std::size_t> searchByElementIDsNotMatchAllConnectedElements(const std::vector<std::size_t> &element_ids); /// Updates the vector of marked items with values from vec. void updateUnion(const std::vector<std::size_t> &vec);