From bf2897a6eced742de52a68d9ddbda51cd0a741fd Mon Sep 17 00:00:00 2001 From: Dmitri Naumov <dmitri.naumov@ufz.de> Date: Tue, 17 Oct 2017 18:06:48 +0200 Subject: [PATCH] [App/IO] GMSH I/F: Unique_ptr for mesh strategy. --- Applications/FileIO/Gmsh/GMSHInterface.cpp | 11 ++++++----- Applications/FileIO/Gmsh/GMSHInterface.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Applications/FileIO/Gmsh/GMSHInterface.cpp b/Applications/FileIO/Gmsh/GMSHInterface.cpp index 01fabb7d3e5..2946419bac8 100644 --- a/Applications/FileIO/Gmsh/GMSHInterface.cpp +++ b/Applications/FileIO/Gmsh/GMSHInterface.cpp @@ -49,11 +49,13 @@ GMSHInterface::GMSHInterface( { switch (mesh_density_algorithm) { case GMSH::MeshDensityAlgorithm::FixedMeshDensity: - _mesh_density_strategy = new GMSH::GMSHFixedMeshDensity(pnt_density); + _mesh_density_strategy = + std::make_unique<GMSH::GMSHFixedMeshDensity>(pnt_density); break; case GMSH::MeshDensityAlgorithm::AdaptiveMeshDensity: - _mesh_density_strategy = new GMSH::GMSHAdaptiveMeshDensity( - pnt_density, station_density, max_pnts_per_leaf); + _mesh_density_strategy = + std::make_unique<GMSH::GMSHAdaptiveMeshDensity>( + pnt_density, station_density, max_pnts_per_leaf); break; } } @@ -62,7 +64,6 @@ GMSHInterface::~GMSHInterface() { for (auto * gmsh_pnt : _gmsh_pnts) delete gmsh_pnt; - delete _mesh_density_strategy; for (auto * polygon_tree : _polygon_tree_list) delete polygon_tree; } @@ -138,7 +139,7 @@ int GMSHInterface::writeGMSHInputFile(std::ostream& out) } _polygon_tree_list.push_back(new GMSH::GMSHPolygonTree( new GeoLib::PolygonWithSegmentMarker(*polyline), nullptr, _geo_objs, - _gmsh_geo_name, _mesh_density_strategy)); + _gmsh_geo_name, _mesh_density_strategy.get())); } DBUG( "GMSHInterface::writeGMSHInputFile(): Computed topological hierarchy - " diff --git a/Applications/FileIO/Gmsh/GMSHInterface.h b/Applications/FileIO/Gmsh/GMSHInterface.h index d9a71be64dc..ae8d68f3265 100644 --- a/Applications/FileIO/Gmsh/GMSHInterface.h +++ b/Applications/FileIO/Gmsh/GMSHInterface.h @@ -104,7 +104,7 @@ private: std::vector<GMSH::GMSHPoint*> _gmsh_pnts; - GMSH::GMSHMeshDensityStrategy *_mesh_density_strategy; + std::unique_ptr<GMSH::GMSHMeshDensityStrategy> _mesh_density_strategy; /// Holds the inverse rotation matrix. The matrix is used in writePoints() to /// revert the rotation done in writeGMSHInputFile(). MathLib::DenseMatrix<double> _inverse_rot_mat = -- GitLab