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

Karl Wright commented on LUCENE-8696:
-------------------------------------

I have confirmed that the above is indeed the issue.  I did this by checking 
whether intersection with the segment end planes was taking place, and it was.

There are two ways forward.  First way is to make this hack officially part of 
the code base.  That will probably be fine for real-world paths, because 
real-world paths are much narrower than what occurs in random testing.  The 
second fix would be to change how we represent segment endpoints, so that there 
is no gap between one of the points and the adjoining path segment.  The way to 
do that is to use TWO planes rather than one, but only when there are two 
adjoining segments and a gap is thus present.  Membership would be tricky 
because, depending on the specific conformation of the segment endpoint, EITHER 
plane or BOTH planes would need to match the point being tested.  But we could 
determine this by simply looking at the fourth point in the context of a plane 
constructed from the other three.

Such a change would finally make GeoPaths first-class citizens in the oblate 
world, at the cost of needing to have a second plane for each segment endpoint. 
 But there's no reason we can't use class inheritance to solve that problem 
too.  So a base SegmentEndpoint class or interface would have multiple 
implementations, and the right one could be picked at path construction time, 
to match the conformation.  For SPHERE planets, the simplest implementation 
would still be the one that got used.


> TestGeo3DPoint.testGeo3DRelations failure
> -----------------------------------------
>
>                 Key: LUCENE-8696
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8696
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/spatial3d
>            Reporter: Ignacio Vera
>            Assignee: Karl Wright
>            Priority: Major
>         Attachments: LUCENE-8696.patch
>
>
> Reproduce with:
> {code:java}
> ant test  -Dtestcase=TestGeo3DPoint -Dtests.method=testGeo3DRelations 
> -Dtests.seed=721195D0198A8470 -Dtests.slow=true -Dtests.badapples=true 
> -Dtests.locale=sr-RS -Dtests.timezone=Europe/Istanbul -Dtests.asserts=true 
> -Dtests.file.encoding=ISO-8859-1{code}
> Error:
> {code:java}
>    [junit4] FAILURE 1.16s | TestGeo3DPoint.testGeo3DRelations <<<
>    [junit4]    > Throwable #1: java.lang.AssertionError: invalid hits for 
> shape=GeoStandardPath: {planetmodel=PlanetModel.WGS84, 
> width=1.3439035240356338(77.00000000000001), 
> points={[[lat=2.4457272005608357E-47, 
> lon=0.017453291479645996([X=1.0009663787601641, Y=0.017471932090601616, 
> Z=2.448463612203698E-47])], [lat=2.4457272005608357E-47, 
> lon=0.8952476719156919([X=0.6260252093310985, Y=0.7812370940381473, 
> Z=2.448463612203698E-47])], [lat=2.4457272005608357E-47, 
> lon=0.6491968536639036([X=0.7974608400583222, Y=0.6052232384770843, 
> Z=2.448463612203698E-47])], [lat=-0.7718789008737459, 
> lon=0.9236607495528212([X=0.43181767034308555, Y=0.5714183775701452, 
> Z=-0.6971214014446648])]]}}{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to