From c54b2f823b8aae553aeb1ae442bed823f8bf124a Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Mon, 12 Dec 2022 11:37:27 +0100
Subject: [PATCH] [MeL/MeshEditing] Extract getNumberOfBaseNodes() outside of
 loop

The result of getNumberOfBaseNodes() doesn't change but the computation is relative expensive.
---
 MeshLib/MeshEditing/ConvertToLinearMesh.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/MeshLib/MeshEditing/ConvertToLinearMesh.cpp b/MeshLib/MeshEditing/ConvertToLinearMesh.cpp
index 01fd268c9ec..82c9ffddc05 100644
--- a/MeshLib/MeshEditing/ConvertToLinearMesh.cpp
+++ b/MeshLib/MeshEditing/ConvertToLinearMesh.cpp
@@ -120,6 +120,7 @@ std::unique_ptr<MeshLib::Mesh> convertToLinearMesh(
                                                MeshLib::MeshItemType::Node)));
 
     // copy property vectors for nodes
+    auto const number_of_base_nodes = org_mesh.getNumberOfBaseNodes();
     for (auto [name, property] : org_mesh.getProperties())
     {
         if (property->getMeshItemType() != MeshLib::MeshItemType::Node)
@@ -138,7 +139,7 @@ std::unique_ptr<MeshLib::Mesh> convertToLinearMesh(
         new_prop->resize(new_mesh->getNumberOfNodes() * n_src_comp);
 
         // copy only base node values
-        for (unsigned i = 0; i < org_mesh.getNumberOfBaseNodes(); i++)
+        for (unsigned i = 0; i < number_of_base_nodes; i++)
         {
             for (int j = 0; j < n_src_comp; j++)
             {
-- 
GitLab