[
https://issues.apache.org/jira/browse/LUCENE-8211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401718#comment-16401718
]
Karl Wright commented on LUCENE-8211:
-------------------------------------
[~ivera], the logic in this class counts the edge crossings starting at the
interior point (which is what you are calling the "test point") and going to
the point to determine membership of (you are calling this the "check point").
In order to do this, it potentially assesses crossings on three planes: the X
plane the interior point is on, the Y plane the interior point is on, and the Z
plane the interior point is on. When your "check point" is on the same plane
as the interior point in any one of these dimensions, then travel along that
plane is no longer necessary to get from the interior point to your check
point, so only travel on *two* planes is done. There is obviously special case
logic to detect that situation.
This code is quite tricky and I will have to look at this on a day that isn't a
workday to have the time to sort it out.
> GeoComplexPolygon throws error when checking within() for a point parallel to
> test point
> ----------------------------------------------------------------------------------------
>
> Key: LUCENE-8211
> URL: https://issues.apache.org/jira/browse/LUCENE-8211
> Project: Lucene - Core
> Issue Type: Bug
> Components: modules/spatial3d
> Reporter: Ignacio Vera
> Assignee: Karl Wright
> Priority: Major
> Attachments: LUCENE-8211.patch
>
>
> If a GeoComplexPolygon is created with test point (x, y, z) and we try to
> check if point(-x,-y,-z) is {{within()}}then an error is thrown. It seems we
> need to handle the case when a point is parallel to the test point but not
> identical.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]