From dff98b29343b5b11f2f41e5ff2d3b12664e9f8ef Mon Sep 17 00:00:00 2001
From: Norihiro Watanabe <norihiro.watanabe@ufz.de>
Date: Mon, 21 Nov 2016 11:23:09 +0100
Subject: [PATCH] remove the conversion of property vector components

---
 MeshLib/MeshEditing/ConvertToLinearMesh.cpp | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/MeshLib/MeshEditing/ConvertToLinearMesh.cpp b/MeshLib/MeshEditing/ConvertToLinearMesh.cpp
index 59af925ecfc..b0995d19df0 100644
--- a/MeshLib/MeshEditing/ConvertToLinearMesh.cpp
+++ b/MeshLib/MeshEditing/ConvertToLinearMesh.cpp
@@ -70,6 +70,7 @@ std::unique_ptr<MeshLib::Mesh> convertToLinearMesh(MeshLib::Mesh const& org_mesh
                               std::vector<MeshLib::MeshItemType>(
                                   1, MeshLib::MeshItemType::Node))));
 
+    // copy property vectors for nodes
     MeshLib::Properties const& src_properties = org_mesh.getProperties();
     for (auto name : src_properties.getPropertyVectorNames())
     {
@@ -80,23 +81,16 @@ std::unique_ptr<MeshLib::Mesh> convertToLinearMesh(MeshLib::Mesh const& org_mesh
             continue;
 
         auto const n_src_comp = src_prop->getNumberOfComponents();
-        // convert 2D vector to 3D. Otherwise Paraview Calculator filter does not recognize
-        // it as a vector
-        auto const n_dest_comp = (n_src_comp==2) ? 3 : n_src_comp;
-
         auto new_prop =
             new_mesh->getProperties().createNewPropertyVector<double>(
-                name, MeshLib::MeshItemType::Node, n_dest_comp);
-        new_prop->resize(new_mesh->getNumberOfNodes() * n_dest_comp);
+                name, MeshLib::MeshItemType::Node, n_src_comp);
+        new_prop->resize(new_mesh->getNumberOfNodes() * n_src_comp);
 
-        // copy existing
+        // copy only base node values
         for (unsigned i=0; i<org_mesh.getNumberOfBaseNodes(); i++)
         {
             for (unsigned j=0; j<n_src_comp; j++)
-                (*new_prop)[i*n_dest_comp+j] = (*src_prop)[i*n_src_comp+j];
-            // set zero for components not existing in the original
-            for (unsigned j=n_src_comp; j<n_dest_comp; j++)
-                (*new_prop)[i*n_dest_comp+j] = 0;
+                (*new_prop)[i*n_src_comp+j] = (*src_prop)[i*n_src_comp+j];
         }
     }
 
-- 
GitLab