Opened 7 years ago

Closed 7 years ago

#11233 closed Feature Requests (duplicate)

User defined spatial predicate within Boost Geometry

Reported by: Frank Hippmann <frank.hippmann@…> 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.

Change History (1)

comment:1 by awulkiew, 7 years ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.