You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Karl Wright (JIRA)" <ji...@apache.org> on 2018/03/16 10:34:00 UTC

[jira] [Comment Edited] (LUCENE-8211) GeoComplexPolygon throws error when checking within() for a point parallel to test point

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

Karl Wright edited comment on LUCENE-8211 at 3/16/18 10:33 AM:
---------------------------------------------------------------

[~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: an X plane, a Y plane, and a Z plane.  A path is constructed from the interior point is on to the "check point".  When your "check point" is on the same plane as the interior point in any one of these dimensions, then travel along that particular plane is no longer necessary to get from the interior point to your check point, so only travel on *two* planes, or even *one* plane, 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.



was (Author: kwright@metacarta.com):
[~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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org