diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-04-22 11:02:13 +0300 |
---|---|---|
committer | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-04-22 18:00:17 +0300 |
commit | e195cbfff33aa75aa801c5d6da16be9ae921adaf (patch) | |
tree | e022ad8af9d690c2ccf083c4daaf039a0559189c /geometry | |
parent | 538b5715063b68e21b182ba6e4732b9acf9e4c37 (diff) |
Review fixes
Diffstat (limited to 'geometry')
-rw-r--r-- | geometry/triangle2d.cpp | 5 | ||||
-rw-r--r-- | geometry/triangle2d.hpp | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/geometry/triangle2d.cpp b/geometry/triangle2d.cpp index 78e005b0da..c143729d72 100644 --- a/geometry/triangle2d.cpp +++ b/geometry/triangle2d.cpp @@ -74,8 +74,11 @@ m2::PointD GetRandomPointInsideTriangles(vector<m2::TriangleD> const & v) return GetRandomPointInsideTriangle(v[distrib(engine)]); } -m2::PointD GetNearestPointToTriangles(m2::PointD const & pt, vector<m2::TriangleD> const & v) +m2::PointD ProjectPointToTriangles(m2::PointD const & pt, vector<m2::TriangleD> const & v) { + if (v.empty()) + return pt; + auto distToLine = m2::DistanceToLineSquare<m2::PointD>(); int minT = -1; int minI = -1; diff --git a/geometry/triangle2d.hpp b/geometry/triangle2d.hpp index aa06cb9079..e63e8ee832 100644 --- a/geometry/triangle2d.hpp +++ b/geometry/triangle2d.hpp @@ -35,7 +35,9 @@ double GetTriangleArea(Point<T> const & p1, Point<T> const & p2, Point<T> const m2::PointD GetRandomPointInsideTriangle(m2::TriangleD const & t); m2::PointD GetRandomPointInsideTriangles(vector<m2::TriangleD> const & v); -m2::PointD GetNearestPointToTriangles(m2::PointD const & pt, vector<m2::TriangleD> const & v); +// Project point to the nearest edge of the nearest triangle from list of triangles. +// pt must be outside triangles. +m2::PointD ProjectPointToTriangles(m2::PointD const & pt, vector<m2::TriangleD> const & v); /// @param[in] pt - Point to check /// @param[in] p1, p2, p3 - Triangle |