Skip to content
Snippets Groups Projects
Commit a3301a7a authored by Tom Fischer's avatar Tom Fischer
Browse files

[MeL] getSurfaceNodes: MaL::Vector3 -> Eigen::Vector3d.

parent 56eb0a99
No related branches found
No related tags found
No related merge requests found
......@@ -44,7 +44,7 @@ DirectConditionGenerator::directToSurfaceNodes(const MeshLib::Mesh& mesh,
return _direct_values;
}
const MathLib::Vector3 dir(0, 0, -1);
Eigen::Vector3d const dir = -Eigen::Vector3d::UnitZ();
const std::vector<MeshLib::Node*> surface_nodes(
MeshLib::MeshSurfaceExtraction::getSurfaceNodes(mesh, dir, 90));
const double no_data(raster->getHeader().no_data);
......
......@@ -115,9 +115,8 @@ int main (int argc, char* argv[])
};
std::vector<double> areas(computeElementTopSurfaceAreas(*mesh, dir, angle));
MathLib::Vector3 const mal_dir(dir[0], dir[1], dir[2]);
std::vector<MeshLib::Node*> all_sfc_nodes(
MeshLib::MeshSurfaceExtraction::getSurfaceNodes(*mesh, mal_dir, angle)
MeshLib::MeshSurfaceExtraction::getSurfaceNodes(*mesh, dir, angle)
);
std::for_each(all_sfc_nodes.begin(), all_sfc_nodes.end(),
......
......@@ -366,17 +366,16 @@ void MeshSurfaceExtraction::get2DSurfaceElements(
}
std::vector<MeshLib::Node*> MeshSurfaceExtraction::getSurfaceNodes(
const MeshLib::Mesh& mesh, const MathLib::Vector3& dir, double angle)
const MeshLib::Mesh& mesh, Eigen::Vector3d const& dir, double angle)
{
INFO("Extracting surface nodes...");
std::vector<MeshLib::Element*> sfc_elements;
std::vector<std::size_t> element_to_bulk_element_id_map;
std::vector<std::size_t> element_to_bulk_face_id_map;
auto const edir = Eigen::Map<Eigen::Vector3d const>(dir.getCoords());
get2DSurfaceElements(
mesh.getElements(), sfc_elements, element_to_bulk_element_id_map,
element_to_bulk_face_id_map, edir, angle, mesh.getDimension());
element_to_bulk_face_id_map, dir, angle, mesh.getDimension());
std::vector<MeshLib::Node*> surface_nodes;
std::tie(surface_nodes, std::ignore) =
......
......@@ -17,7 +17,8 @@
#include <cstddef>
#include <vector>
#include "MathLib/Vector3.h"
#include <Eigen/Eigen>
#include "MeshLib/Mesh.h"
#include "MeshLib/Properties.h"
......@@ -41,7 +42,7 @@ public:
/// Returns the surface nodes of a mesh.
static std::vector<MeshLib::Node*> getSurfaceNodes(
const MeshLib::Mesh& mesh, const MathLib::Vector3& dir, double angle);
const MeshLib::Mesh& mesh, Eigen::Vector3d const& dir, double angle);
/**
* Returns the 2d-element mesh representing the surface of the given mesh.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment