Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
DistancePredicate.hpp
Go to the documentation of this file.
1#pragma once
3
4
10template<fishnet::util::BiFunction<fishnet::geometry::Vec2DReal,fishnet::geometry::Vec2DReal, fishnet::math::DEFAULT_FLOATING_POINT> DistanceFunction>
14
15 bool operator()(fishnet::geometry::Shape auto const & lhs, fishnet::geometry::Shape auto const & rhs) const noexcept {
16 auto [l,r] = fishnet::geometry::closestPoints(lhs,rhs);
17 return l == r || distanceFunction(l,r) <= maxDistanceInMeters;
18 }
19};
20
21template<fishnet::util::BiFunction<fishnet::geometry::Vec2DReal,fishnet::geometry::Vec2DReal, fishnet::math::DEFAULT_FLOATING_POINT> DistanceFunction, fishnet::geometry::Shape S>
32
std::function< fishnet::math::DEFAULT_FLOATING_POINT(const fishnet::geometry::Vec2DReal &, const fishnet::geometry::Vec2DReal &)> DistanceFunction
Definition DistanceFunction.hpp:17
A geometry enclosing an area: a ring, a polygon or a multi-polygon.
Definition IGeometry.hpp:23
static std::pair< Vec2DReal, Vec2DReal > closestPoints(ISegment auto const &lhs, ISegment auto const &rhs) noexcept
Compute the pair of nearest points for two segments.
Definition PolygonDistance.hpp:34
Distance BiPredicate Functor. Emits true if the distance between the two shapes is less or equal to t...
Definition DistancePredicate.hpp:11
DistanceFunction distanceFunction
Definition DistancePredicate.hpp:12
bool operator()(fishnet::geometry::Shape auto const &lhs, fishnet::geometry::Shape auto const &rhs) const noexcept
Definition DistancePredicate.hpp:15
double maxDistanceInMeters
Definition DistancePredicate.hpp:13
Definition DistancePredicate.hpp:22
DistanceFunction distanceFunction
Definition DistancePredicate.hpp:23
S referenceShape
Definition DistancePredicate.hpp:24
bool operator()(fishnet::geometry::Shape auto const &shape) const noexcept
Definition DistancePredicate.hpp:27
double maxDistanceInMeters
Definition DistancePredicate.hpp:25