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

Karl Wright edited comment on LUCENE-8257 at 4/17/18 6:09 AM:
--------------------------------------------------------------

For standard polygons, we wound up accepting the fact that points on the 
opposite sides of the world would be within the shape when there was a very 
tight angle between edge points, and even modified the bounds computation to 
allow it and compensate for it.

The "fix" involves having a backing sided plane for every edge that is 
perpendicular to both the edge end planes and goes through the center of the 
world.  But you don't want to have one unless the angle is very tiny, because 
it's expense you don't need and also because at larger angles it interferes 
with things.




was (Author: [email protected]):
For standard polygons, we wound up accepting the fact that points on the 
opposite sides of the world would be within the shape, and even modified the 
bounds computation to allow it.  The question is whether that is what you are 
seeing here?


> GeoComplexPolygon fails when points are near identical
> ------------------------------------------------------
>
>                 Key: LUCENE-8257
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8257
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/spatial3d
>            Reporter: Ignacio Vera
>            Assignee: Karl Wright
>            Priority: Major
>         Attachments: LUCENE-8257.patch
>
>
> When a polygon have two consecutive points very close to each other but not 
> numerically identical, we can get wrong results because planes defining that 
> edge intersects somewhere else on the world. At that point the following 
> check is evaluated to true:
> {code:java}
> if (edge.plane.evaluateIsZero(thePointX, thePointY, thePointZ) && 
> edge.startPlane.isWithin(thePointX, thePointY, thePointZ) && 
> edge.endPlane.isWithin(thePointX, thePointY, thePointZ)) {
>   return false;
> }{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