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