diff --git a/MeshGeoToolsLib/GeoMapper.cpp b/MeshGeoToolsLib/GeoMapper.cpp index fd3b4f61091b0037376851a1bb68fe67a7ca260b..3553dba8350f0230a35fdfd66099972f2b86b75e 100644 --- a/MeshGeoToolsLib/GeoMapper.cpp +++ b/MeshGeoToolsLib/GeoMapper.cpp @@ -99,9 +99,13 @@ void GeoMapper::mapOnMesh(const MeshLib::Mesh* mesh) // init grid MathLib::Point3d origin(std::array<double,3>{{0,0,0}}); MathLib::Vector3 normal(0,0,-1); - MeshLib::Mesh const*const flat_mesh = - MeshLib::projectMeshOntoPlane(*_surface_mesh, origin, normal); - std::vector<MeshLib::Node*> const& flat_nodes (flat_mesh->getNodes()); + std::vector<MeshLib::Node*> flat_nodes; + // copy nodes and project the copied nodes to the x-y-plane, i.e. set + // z-coordinate to zero + for (auto n_ptr : _surface_mesh->getNodes()) { + flat_nodes.push_back(new MeshLib::Node(*n_ptr)); + (*flat_nodes.back())[2] = 0.0; + } _grid = new GeoLib::Grid<MeshLib::Node>(flat_nodes.cbegin(), flat_nodes.cend()); if (GeoLib::isStation((*pnts)[0])) { @@ -111,7 +115,8 @@ void GeoMapper::mapOnMesh(const MeshLib::Mesh* mesh) } delete _grid; - delete flat_mesh; + for (auto n_ptr : flat_nodes) + delete n_ptr; } void GeoMapper::mapToConstantValue(double value)