From 8d74215159db7ea2a850deb95edae2c99c85db7b Mon Sep 17 00:00:00 2001 From: Norihiro Watanabe <norihiro.watanabe@ufz.de> Date: Thu, 3 Nov 2016 13:54:08 +0100 Subject: [PATCH] [Mesh] compute the number of base nodes in resetNodeIDs() --- MeshLib/Mesh.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/MeshLib/Mesh.cpp b/MeshLib/Mesh.cpp index 758c7360c7b..bb65d0a02ff 100644 --- a/MeshLib/Mesh.cpp +++ b/MeshLib/Mesh.cpp @@ -36,7 +36,7 @@ Mesh::Mesh(const std::string &name, _edge_length(std::numeric_limits<double>::max(), 0), _node_distance(std::numeric_limits<double>::max(), 0), _name(name), _nodes(nodes), _elements(elements), - _n_base_nodes(n_base_nodes==0 ? nodes.size() : n_base_nodes), + _n_base_nodes(n_base_nodes), _properties(properties) { assert(n_base_nodes <= nodes.size()); @@ -114,6 +114,15 @@ void Mesh::resetNodeIDs() const std::size_t nNodes (this->_nodes.size()); for (unsigned i=0; i<nNodes; ++i) _nodes[i]->setID(i); + + if (_n_base_nodes==0) + { + unsigned max_basenode_ID = 0; + for (Element const* e : _elements) + for (unsigned i=0; i<e->getNumberOfBaseNodes(); i++) + max_basenode_ID = std::max(max_basenode_ID, e->getNodeIndex(i)); + _n_base_nodes = max_basenode_ID + 1; + } } void Mesh::resetElementIDs() -- GitLab