boostorg / boostorg/geometry

Feature Request: Resolve Algorithm Inconsistency between segment/box and linestring/ring

オープン
#483 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
C++
スター
517
フォーク
232
PR マージ指標
30日以内にマージされた PR はありません

説明

I tested some algorithms for binary combinations of
- `boost::geometry::model::d2::point_xy`
- `boost::geometry::model::polygon`
- `boost::geometry::model::box`
- `boost::geometry::model::ring`
- `boost::geometry::model::segment`
- `boost::geometry::model::linestring`

as input and found inconsistencies (some are documented).

The following functions do not support `segment` or `box` even though they do `linestring` and `ring`:
- `covered_by`
- `crosses`
- `overlaps`
- `relation`
- `touches`

For example `crosses(linestring, ring)` works but `crosses(segment, box)` does not.

The following functions do not support only `(box, box, output_collection)`
- `difference`
- `intersection`
- `sym_difference`
- `union_`

For example `union_(box, ring, output_collection)` works.

If I understand correctly `segemnt` ⊂ `linestring` and `box` ⊂ `ring` ⊂ `polygon` hold (actually convertible).
These inconsistencies are not intuitive and force users to convert `segment` and `box`.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。