Opened 7 years ago
Closed 7 years ago
#11233 closed Feature Requests (duplicate)
User defined spatial predicate within Boost Geometry
Reported by: | Owned by: | Barend Gehrels | |
---|---|---|---|
Milestone: | To Be Determined | Component: | geometry |
Version: | Boost 1.56.0 | Severity: | Problem |
Keywords: | geometry relate | Cc: |
Description
I need to determine whether the interiors of two geometries intersect. An InteriorsIntersect predicate is not specified by OGC or Boost Geometry but is defined by the DE-9IM matrix:
T * * * * * * * *
I've created my own predicate using the relate function in Boost Geometry.
namespace bgr = boost::geometry::detail::relate; using InteriorsIntersectMask = bgr::static_mask<'T','*','*','*','*','*','*','*','*'>; template<typename Geom1, typename Geom2> inline bool interiorsIntersect(const Geom1& geom1, const Geom2& geom2) { return bgr::relate<InteriorsIntersectMask>(geom1, geom2); }
This works great. My only concern is that the relate function and static_mask type are not documented as part of the Boost Geometry API and are implementation details as far as I can tell. Is it safe to use relate in this way? Is there an alternative to achieving the same goal using Boost Geometry? Ideally I would like to see relate be an algorithm within boost/geometry/algorithms.
A duplicate of: https://svn.boost.org/trac/boost/ticket/11232