diff --git a/MeshGeoToolsLib/GeoMapper.cpp b/MeshGeoToolsLib/GeoMapper.cpp index 39cd19d2b6829433e852b151d39da735185eb23a..8325de5b635a22b46b77230c0afb9e42ea3d6361 100644 --- a/MeshGeoToolsLib/GeoMapper.cpp +++ b/MeshGeoToolsLib/GeoMapper.cpp @@ -99,12 +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); - std::vector<MeshLib::Node*> flat_nodes; + std::vector<MeshLib::Node> flat_nodes; + flat_nodes.reserve(_surface_mesh->getNNodes()); // 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; + flat_nodes.emplace_back(*n_ptr); + flat_nodes.back()[2] = 0.0; } _grid = new GeoLib::Grid<MeshLib::Node>(flat_nodes.cbegin(), flat_nodes.cend()); @@ -115,8 +116,6 @@ void GeoMapper::mapOnMesh(const MeshLib::Mesh* mesh) } delete _grid; - for (auto n_ptr : flat_nodes) - delete n_ptr; } void GeoMapper::mapToConstantValue(double value)