diff --git a/GeoLib/Grid.h b/GeoLib/Grid.h index aec438109b360d13dad0249a7cff0858e1eea5e4..d748837d174334a185b8f88afc7fd1cea9bb4ff6 100644 --- a/GeoLib/Grid.h +++ b/GeoLib/Grid.h @@ -651,15 +651,14 @@ bool Grid<POINT>::calcNearestPointInGridCell( if (pnts.empty()) return false; - auto const to_eigen = [](auto const& p) { return (p.asEigenVector3d()); }; - const std::size_t n_pnts(pnts.size()); - sqr_min_dist = (to_eigen(*pnts[0]) - to_eigen(pnt)).squaredNorm(); + sqr_min_dist = + (pnts[0]->asEigenVector3d() - pnt.asEigenVector3d()).squaredNorm(); nearest_pnt = pnts[0]; for (std::size_t i(1); i < n_pnts; i++) { const double sqr_dist( - (to_eigen(*pnts[i]) - to_eigen(pnt)).squaredNorm()); + (pnts[i]->asEigenVector3d() - pnt.asEigenVector3d()).squaredNorm()); if (sqr_dist < sqr_min_dist) { sqr_min_dist = sqr_dist; @@ -679,15 +678,13 @@ std::vector<std::size_t> Grid<POINT>::getPointsInEpsilonEnvironment( double const sqr_eps(eps * eps); - auto to_eigen = [](auto const& point) - { return Eigen::Map<Eigen::Vector3d const>(point.data()); }; - std::vector<std::size_t> pnts; for (auto vec : vec_pnts) { for (auto const p : *vec) { - if ((to_eigen(*p) - to_eigen(pnt)).squaredNorm() <= sqr_eps) + if ((p->asEigenVector3d() - pnt.asEigenVector3d()).squaredNorm() <= + sqr_eps) { pnts.push_back(p->getID()); }