[ https://issues.apache.org/jira/browse/LUCENE-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16435140#comment-16435140 ]
Ignacio Vera commented on LUCENE-8245: -------------------------------------- The issue with the testComplexPolygonPlaneOutsideWorld is straight forward: The test build the following below plane which it is just outside of the world by just a bit: [A=1.0, B=0.0; C=0.0; D=-1.0000000000009952] Because we are testing the validity of the plane in the following way: {code:java} if (fixedXBelowPlane.D - planetModel.getMaximumXValue() >= Vector.MINIMUM_RESOLUTION || planetModel.getMinimumXValue() - fixedXBelowPlane.D >= Vector.MINIMUM_RESOLUTION) { fixedXBelowPlane = null; }{code} we are allowing bellow planes that are just a bit outside of the world.I think we should change those checks to: {code:java} Plane fixedXBelowPlane = new Plane(travelPlaneFixedX, false); if (fixedXBelowPlane.D - planetModel.getMaximumXValue() >= Vector.MINIMUM_RESOLUTION || planetModel.getMinimumXValue() - fixedXBelowPlane.D >= -1 * Vector.MINIMUM_RESOLUTION) { fixedXBelowPlane = null; }{code} So below planes are never outside of the world. > GeoComplexPolygon fails when intersection of travel plane with edge is near > polygon point > ----------------------------------------------------------------------------------------- > > Key: LUCENE-8245 > URL: https://issues.apache.org/jira/browse/LUCENE-8245 > Project: Lucene - Core > Issue Type: Bug > Components: modules/spatial3d > Reporter: Ignacio Vera > Assignee: Karl Wright > Priority: Major > Fix For: 6.7, 7.4, master (8.0) > > Attachments: LUCENE-8245-case2.patch, LUCENE-8245.jpg, > LUCENE-8245.patch, LUCENE-8245_Polygon.patch, LUCENE-8245_Random.patch, > LUCENE-8245_case3.patch > > > When a travel plane crosses an edge close to an edge point , it is possible > that the above and below planes crosses different edges. In the current > implementation one of the crosses is missed because we only check edges that > are crossed by the main plain and the {{within}} result is wrong. > One possible fix is to check always the intersection of planes and edges > regardless if they are crossed by main plane. That fixed the above issue but > shows other issues like travel planes crossing two edges when it should be > only one due to the fuzziness at edge intersections. > Not sure of a fix so I add the test showing the issue. > > -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org