From 57d418b27cd2f4b75de1672c0a6e58fe2e5546c9 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Fri, 25 Jul 2008 21:03:44 +0000 Subject: update to 2geom rev. 1507 (bzr r6416) --- src/2geom/pathvector.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/2geom/pathvector.cpp') diff --git a/src/2geom/pathvector.cpp b/src/2geom/pathvector.cpp index 1e0a20003..6d4e24c9f 100644 --- a/src/2geom/pathvector.cpp +++ b/src/2geom/pathvector.cpp @@ -88,6 +88,32 @@ Rect bounds_exact( PathVector const& pv ) return bound; } +/* Note: undefined for empty pathvectors or pathvectors with empty paths. + * */ +PathVectorPosition nearestPoint(PathVector const & path_in, Point const& _point, double *distance_squared) +{ + PathVectorPosition retval; + + double mindsq = infinity(); + unsigned int i = 0; + for (Geom::PathVector::const_iterator pit = path_in.begin(); pit != path_in.end(); ++pit) { + double dsq; + double t = pit->nearestPoint(_point, &dsq); + if (dsq < mindsq) { + mindsq = dsq; + retval.path_nr = i; + retval.t = t; + } + + ++i; + } + + if (distance_squared) { + *distance_squared = mindsq; + } + return retval; +} + } // namespace Geom #endif // SEEN_GEOM_PATHVECTOR_CPP -- cgit v1.2.3