From a19f6d050a02fdbade4e92ba5751ec41317d9630 Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Thu, 24 Dec 2020 14:10:06 +0100
Subject: [PATCH] [MeL/MG] Subst. MaL::Vector3 by Eigen::Vector3d.

---
 MeshLib/MeshGenerators/LayeredVolume.cpp | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/MeshLib/MeshGenerators/LayeredVolume.cpp b/MeshLib/MeshGenerators/LayeredVolume.cpp
index 01b4c77e42b..7370178db6f 100644
--- a/MeshLib/MeshGenerators/LayeredVolume.cpp
+++ b/MeshLib/MeshGenerators/LayeredVolume.cpp
@@ -14,8 +14,6 @@
 
 #include "LayeredVolume.h"
 
-#include "MathLib/Vector3.h"
-
 #include "GeoLib/Raster.h"
 
 #include "MeshLib/Elements/Tri.h"
@@ -147,15 +145,25 @@ void LayeredVolume::addLayerBoundaries(const MeshLib::Mesh &layer, std::size_t n
                     MeshLib::Node* n2 = _nodes[offset + nNodes + elem->getNodeIndex((i+1)%nElemNodes)];
                     MeshLib::Node* n3 = _nodes[offset + nNodes + elem->getNodeIndex(i)];
 
-                    if (MathLib::Vector3(*n1, *n2).getLength() > std::numeric_limits<double>::epsilon())
+                    auto const v0 =
+                        Eigen::Map<Eigen::Vector3d const>(n0->getCoords());
+                    auto const v1 =
+                        Eigen::Map<Eigen::Vector3d const>(n1->getCoords());
+                    auto const v2 =
+                        Eigen::Map<Eigen::Vector3d const>(n2->getCoords());
+                    auto const v3 =
+                        Eigen::Map<Eigen::Vector3d const>(n3->getCoords());
+                    double const eps = std::numeric_limits<double>::epsilon();
+
+                    if ((v2 - v1).norm() > eps)
                     {
-                        const std::array<MeshLib::Node*,3> tri_nodes = {{ n0, n2, n1 }};
+                        const std::array tri_nodes = {n0, n2, n1};
                         _elements.push_back(new MeshLib::Tri(tri_nodes));
                         _materials.push_back(nLayers+j);
                     }
-                    if (MathLib::Vector3(*n0, *n3).getLength() > std::numeric_limits<double>::epsilon())
+                    if ((v3 - v0).norm() > eps)
                     {
-                        const std::array<MeshLib::Node*,3> tri_nodes = {{ n0, n3, n2 }};
+                        const std::array tri_nodes = {n0, n3, n2};
                         _elements.push_back(new MeshLib::Tri(tri_nodes));
                         _materials.push_back(nLayers+j);
                     }
-- 
GitLab