diff --git a/grid_map_sdf/src/SignedDistanceField.cpp b/grid_map_sdf/src/SignedDistanceField.cpp index 10d7992b1..33a9f2dbe 100644 --- a/grid_map_sdf/src/SignedDistanceField.cpp +++ b/grid_map_sdf/src/SignedDistanceField.cpp @@ -8,6 +8,8 @@ #include #include +#include +#include #include #include @@ -96,7 +98,8 @@ grid_map::Matrix SignedDistanceField::getPlanarSignedDistanceField( Eigen::Dynamic, Eigen::Dynamic> & data) const { - image * input = new image(data.rows(), data.cols(), true); + image inputImage(data.rows(), data.cols(), true); + auto * input = &inputImage; for (int y = 0; y < input->height(); y++) { for (int x = 0; x < input->width(); x++) { @@ -105,14 +108,14 @@ grid_map::Matrix SignedDistanceField::getPlanarSignedDistanceField( } // Compute dt. - image * out = dt(input); + std::unique_ptr> out(dt(input)); Matrix result(data.rows(), data.cols()); // Take square roots. for (int y = 0; y < out->height(); y++) { for (int x = 0; x < out->width(); x++) { - result(x, y) = sqrt(imRef(out, x, y)); + result(x, y) = std::sqrt(imRef(out.get(), x, y)); } } return result;