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