[ 
https://issues.apache.org/jira/browse/LUCENE-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16430471#comment-16430471
 ] 

Karl Wright commented on LUCENE-8245:
-------------------------------------

Last bit of debugging until later:

{code}
   [junit4]   1>   Travel outer point [X=1.0, Y=6.831927763163421E-13, 
Z=-1.4926898632243605E-13]; edgeplane=2.5243548967072378E-29; 
travelOutsidePlane=-1.0097419586828951E-28; 
edgestartplane=-6.993093735168714E-13; edgeendplane=-0.6515740933786793
   [junit4]   1>  Edge added 1 to outerCrossingCount
{code}

The bad crossing point it finds is (it appears) on the wrong side of the edge's 
start cutoff plane, at a value of  -6.993093735168714E-13, which is *almost* 
big enough to get it kicked out, but not quite.

The interesting thing is that the precision of sidedness checks in general 
(which is what this is, in fact) is MUCH higher than 1e-12.  But if we 
decreased MINIMUM_RESOLUTION globally, we would not fix the issue, because the 
above/below planes get closer to the travel plane by exactly a proportional 
amount.  Maybe it would be possible, though, to have a tighter bound on 
SidedPlane.isWithin() than we'd have elsewhere?  Or maybe we could apply an 
alternate, tighter filter in the case of the crossing points in 
GeoComplexPolygon alone.  I'll have to think this through.


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

Reply via email to