geometry-api-java
geometry-api-java copied to clipboard
OperatorCut is returning two empty geometries if there are no valid cuts. A geometry cursor containing only a null pointer should be returned instead.
The cases in question are
- the cuttee and the cutter don't intersect at all
- the cuttee is a polygon and cutter doesn't pass all the way through it
- the cuttee is a polyline, the cutter touches the cuttee but b_consider_touch is false.
Currently, a pointer to a geometry cursor is returned. There are two empty geometries in the cursor, one for the left cut and one for the right cut. It would be a more obvious signal to the user that there were no valid cuts if a null pointer was returned instead.
Here are some simple cases to reproduce the issues listed above.
cutter1: {"paths":[[[1.5,0.5],[2.5,0.5]]]}
cutter2: {"paths":[[[0.5,0.5],[1.5,0.5]]]}
cutter3: {"paths":[[[0.2,0.4],[0.6,0.8]]]}
polygon (cuttee): {"rings":[[[0,0],[0,1],[1,1],[1,0],[0,0]]]}
polyline (cuttee): {"paths":[[[0.0,0.6],[0.4,0.2],[0.5,0.5]]]}