boostorg / boostorg/geometry

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

Ouverte
#483 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
C++
Étoiles
517
Forks
232
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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`.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.