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

Karl Wright commented on LUCENE-8280:
-------------------------------------

Here's the debugging output for the problematic leg, where we go from the 
in-set intersection point, to the out-of-set check point.  Note that we 
actually do run into the place where the polygon almost crosses itself, but we 
don't detect a crossing there.

We do properly detect an "exit" on one side from the travel plane.  But since 
there's no entrance on the other side, we don't consider that a crossing.

I think that there's a flaw in the logic when we start at a point already known 
to be on an edge.  Any exit, either side, should count as a crossing in that 
case.  But let me think this through carefully before I change anything.

{code}
   [junit4]   1>  Finding whether 
[-0.9876510422569805,-1.2095236875745584E-16,0.16311061810965483] is in-set, 
based on travel from [X=-0.6376117950289407, Y=-1.2095236875745584E-16, 
Z=-0.7692219331120902] along [A=0.0, B=1.0; C=0.0; D=1.2095236875745584E-16] 
(value=-1.2095236875745584E-16)
   
   [junit4]   1>  Edge [[lat=2.4457272005608357E-47, 
lon=-0.6244585784444767([X=0.8121874885299789, Y=-0.5853122613567737, 
Z=2.448463612203698E-47])] --> [lat=-0.914670478121684, 
lon=2.4457272005608357E-47([X=0.609446252447186, Y=1.4905392768899487E-47, 
Z=-0.7915752112532345])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=1.2095236875745584E-16]
   [junit4]   1>   There are no intersection points within bounds.
   [junit4]   1>    Endpoint(s) of edge are on travel plane!
   [junit4]   1>  Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=1.2095236875745584E-16]
   [junit4]   1>   Above crossings: 0; below crossings: 0
   
   [junit4]   1>  Edge [[lat=-0.737919215699403, 
lon=-1.0814374159521924([X=0.34764272191418555, Y=-0.6527705659008658, 
Z=-0.6724777381306498])] --> [lat=-0.2581712131420987, 
lon=-3.141592653589793([X=-0.9677277372221494, Y=-1.1851246758352164E-16, 
Z=-0.2555423342455023])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=1.2095236875745584E-16]
   [junit4]   1>   There were intersection points!
   [junit4]   1>  Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=1.2095236875745584E-16]
   [junit4]   1>   Above crossings: 1; below crossings: 0
   
   [junit4]   1>  Edge [[lat=-0.914670478121684, 
lon=2.4457272005608357E-47([X=0.609446252447186, Y=1.4905392768899487E-47, 
Z=-0.7915752112532345])] --> [lat=-0.737919215699403, 
lon=-1.0814374159521924([X=0.34764272191418555, Y=-0.6527705659008658, 
Z=-0.6724777381306498])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=1.2095236875745584E-16]
   [junit4]   1>   There are no intersection points within bounds.
   [junit4]   1>    Endpoint(s) of edge are on travel plane!
   [junit4]   1>  Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=1.2095236875745584E-16]
   [junit4]   1>   Above crossings: 0; below crossings: 0
   
   [junit4]   1>  Edge [[lat=-0.40516490647074055, 
lon=2.4457272005608357E-47([X=0.919584346757591, Y=2.2490524500750083E-47, 
Z=-0.39440489992508504])] --> [lat=2.4457272005608357E-47, 
lon=-0.6244585784444767([X=0.8121874885299789, Y=-0.5853122613567737, 
Z=2.448463612203698E-47])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=1.2095236875745584E-16]
   [junit4]   1>   There are no intersection points within bounds.
   [junit4]   1>    Endpoint(s) of edge are on travel plane!
   [junit4]   1>  Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=1.2095236875745584E-16]
   [junit4]   1>   Above crossings: 0; below crossings: 0
   
   [junit4]   1>  Edge [[lat=-0.2581712131420987, 
lon=-3.141592653589793([X=-0.9677277372221494, Y=-1.1851246758352164E-16, 
Z=-0.2555423342455023])] --> [lat=-0.40516490647074055, 
lon=2.4457272005608357E-47([X=0.919584346757591, Y=2.2490524500750083E-47, 
Z=-0.39440489992508504])]] potentially crosses travel plane [A=0.0, B=1.0; 
C=0.0; D=1.2095236875745584E-16]
   [junit4]   1>   Planes were identical
   [junit4]   1>  Edge intersects travel plane [A=0.0, B=1.0; C=0.0; 
D=1.2095236875745584E-16]
   [junit4]   1>   Above crossings: 0; below crossings: 0
   
   [junit4]   1>  Check point in set? true
{code}


> Repeatable failure for GeoConvexPolygons
> ----------------------------------------
>
>                 Key: LUCENE-8280
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8280
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/spatial3d
>            Reporter: Karl Wright
>            Assignee: Karl Wright
>            Priority: Major
>
> Reproduce with:
> {code}
> ant test  -Dtestcase=TestGeo3DPoint -Dtests.method=testGeo3DRelations 
> -Dtests.seed=1F49469C1989BC0 -Dtests.slow=true -Dtests.badapples=true 
> -Dtests.locale=fr-BE -Dtests.timezone=Europe/Malta -Dtests.asserts=true 
> -Dtests.file.encoding=Cp1252
> {code}



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