From 3fb57cc183817e85ed6f20901c95861be2c0f18c Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Tue, 5 May 2015 14:22:40 +0200 Subject: [PATCH] [GL] Using the same eps for makePntsUnique and uniqueInsert(). --- GeoLib/PointVec.cpp | 12 ++++++------ GeoLib/PointVec.h | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/GeoLib/PointVec.cpp b/GeoLib/PointVec.cpp index d53951f00e7..a65c76af410 100644 --- a/GeoLib/PointVec.cpp +++ b/GeoLib/PointVec.cpp @@ -32,13 +32,14 @@ PointVec::PointVec (const std::string& name, std::vector<Point*>* points, std::map<std::string, std::size_t>* name_id_map, PointType type, double rel_eps) : TemplateVec<Point> (name, points, name_id_map), _type(type), - _aabb(points->begin(), points->end()) + _aabb(points->begin(), points->end()), + _rel_eps(rel_eps) { assert (_data_vec); std::size_t const number_of_all_input_pnts (_data_vec->size()); - rel_eps *= sqrt(MathLib::sqrDist (_aabb.getMinPoint(),_aabb.getMaxPoint())); - makePntsUnique (_data_vec, _pnt_id_map, rel_eps); + _rel_eps *= sqrt(MathLib::sqrDist (_aabb.getMinPoint(),_aabb.getMaxPoint())); + makePntsUnique (_data_vec, _pnt_id_map, _rel_eps); if (number_of_all_input_pnts > _data_vec->size()) WARN("PointVec::PointVec(): there are %d double points.", @@ -86,11 +87,10 @@ void PointVec::push_back (Point* pnt, std::string const*const name) std::size_t PointVec::uniqueInsert (Point* pnt) { - const double eps (std::numeric_limits<double>::epsilon()); auto const it = std::find_if(_data_vec->begin(), _data_vec->end(), - [&eps, &pnt](Point* const p) + [this, &pnt](Point* const p) { - return MathLib::maxNormDist(p, pnt) <= eps; + return MathLib::maxNormDist(p, pnt) <= _rel_eps; }); if (it != _data_vec->end()) diff --git a/GeoLib/PointVec.h b/GeoLib/PointVec.h index 291ccf109fd..758ba49694e 100644 --- a/GeoLib/PointVec.h +++ b/GeoLib/PointVec.h @@ -145,6 +145,7 @@ private: std::vector<std::string> _id_to_name_map; AABB<GeoLib::Point> _aabb; + double _rel_eps; }; } // end namespace -- GitLab