diff --git a/MeshGeoToolsLib/GeoMapper.cpp b/MeshGeoToolsLib/GeoMapper.cpp index 7232238a8ac74929349d1f8ec0a9f175c3104fa7..1fc01de8d3d790b4b3a46f0b8800319afd2f410d 100644 --- a/MeshGeoToolsLib/GeoMapper.cpp +++ b/MeshGeoToolsLib/GeoMapper.cpp @@ -222,11 +222,12 @@ void GeoMapper::advancedMapOnMesh( sqrt( MathLib::sqrDist(aabb.getMinPoint(),aabb.getMaxPoint())) ; // copy geometry (and set z=0 for all points) - unsigned nGeoPoints ( points->size() ); auto new_points = std::unique_ptr<std::vector<GeoLib::Point*>>( new std::vector<GeoLib::Point*>); - for (std::size_t i=0; i<nGeoPoints; ++i) - (*new_points)[i] = new GeoLib::Point((*(*points)[i])[0],(*(*points)[i])[1],0.0); + new_points->reserve(points->size()); + std::transform(points->cbegin(), points->cend(), std::back_inserter(*new_points), + [](GeoLib::Point* p) { return new GeoLib::Point((*p)[0],(*p)[1],0.0); }); + auto new_lines = copyPolylinesVector( *_geo_objects.getPolylineVec(this->_geo_name), *new_points);