From 4a7113d7a8e7c3a84338a93e92c8f600e88976f2 Mon Sep 17 00:00:00 2001
From: Sreekanth Arikatla <sreekanth.arikatla@kitware.com>
Date: Mon, 11 Jul 2016 10:24:56 -0400
Subject: [PATCH] BUG: Sets displacement to the mesh vertices

Sets displacement to the mesh vertices as sum of original positions and the current displacements
---
 Base/Geometry/Mesh/imstkMesh.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/Base/Geometry/Mesh/imstkMesh.cpp b/Base/Geometry/Mesh/imstkMesh.cpp
index 0024fa94a..1ddec4f7d 100644
--- a/Base/Geometry/Mesh/imstkMesh.cpp
+++ b/Base/Geometry/Mesh/imstkMesh.cpp
@@ -80,6 +80,7 @@ void
 Mesh::setInitialVerticesPositions(const std::vector<Vec3d>& vertices)
 {
     m_initialVerticesPositions = vertices;
+    m_verticesDisplacements= vertices;
 }
 
 const std::vector<Vec3d>&
@@ -123,14 +124,20 @@ Mesh::setVerticesDisplacements(const std::vector<Vec3d>& diff)
     m_verticesDisplacements = diff;
 }
 
-void Mesh::setVerticesDisplacements(const Vectord& u)
+void
+Mesh::setVerticesDisplacements(const Vectord& u)
 {
     size_t dofId = 0;
-    for (auto vDisp : m_verticesDisplacements)
+    for (auto &vDisp : m_verticesDisplacements)
     {
         vDisp = Vec3d(u(dofId), u(dofId + 1), u(dofId + 2));
         dofId += 3;
     }
+
+    for (auto i = 0; i < m_verticesPositions.size(); i++)
+    {
+        m_verticesPositions[i] = m_initialVerticesPositions[i] + m_verticesDisplacements[i];
+    }
 }
 
 const std::vector<Vec3d>&
-- 
GitLab