1
我需要確定兩個幾何體的內部是否相交。一個InteriorsIntersect謂語不被OGC或升壓幾何規定,而是由DE-9IM矩陣(see also)定義:Boost幾何體內用戶定義的空間謂詞
T * *
* * *
* * *
我已經使用升壓幾何的relate
功能創建了自己的謂語。
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。我唯一擔心的是relate
函數和static_mask
類型沒有作爲Boost Geometry API的一部分記錄下來,並且就我所知道的實現細節而言。以這種方式使用relate
安全嗎?使用Boost幾何實現相同的目標是否有其他選擇?理想情況下,我希望relate
是boost/geometry/algorithms
內的算法。