[
https://issues.apache.org/jira/browse/LUCENE-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16435140#comment-16435140
]
Ignacio Vera edited comment on LUCENE-8245 at 4/12/18 8:37 AM:
---------------------------------------------------------------
The issue with the testComplexPolygonPlaneOutsideWorld is straight forward:
The test build the following below plane which it is just outside of the world
by just a bit:
[A=1.0, B=0.0; C=0.0; D=-1.0000000000009952]
Because we are testing the validity of the plane in the following way:
{code:java}
if (fixedXBelowPlane.D - planetModel.getMaximumXValue() >=
Vector.MINIMUM_RESOLUTION || planetModel.getMinimumXValue() -
fixedXBelowPlane.D >= Vector.MINIMUM_RESOLUTION) {
fixedXBelowPlane = null;
}{code}
we are allowing bellow planes that are just a bit outside of the world.I think
we should change those checks to:
{code:java}
Plane fixedXBelowPlane = new Plane(travelPlaneFixedX, false);
if (fixedXBelowPlane.D - planetModel.getMaximumXValue() >=
Vector.MINIMUM_RESOLUTION || fixedXBelowPlane.D -
planetModel.getMinimumXValue() <= Vector.MINIMUM_RESOLUTION) {
fixedXBelowPlane = null;
}{code}
So below planes are never outside of the world.
was (Author: ivera):
The issue with the testComplexPolygonPlaneOutsideWorld is straight forward:
The test build the following below plane which it is just outside of the world
by just a bit:
[A=1.0, B=0.0; C=0.0; D=-1.0000000000009952]
Because we are testing the validity of the plane in the following way:
{code:java}
if (fixedXBelowPlane.D - planetModel.getMaximumXValue() >=
Vector.MINIMUM_RESOLUTION || planetModel.getMinimumXValue() -
fixedXBelowPlane.D >= Vector.MINIMUM_RESOLUTION) {
fixedXBelowPlane = null;
}{code}
we are allowing bellow planes that are just a bit outside of the world.I think
we should change those checks to:
{code:java}
Plane fixedXBelowPlane = new Plane(travelPlaneFixedX, false);
if (fixedXBelowPlane.D - planetModel.getMaximumXValue() >=
Vector.MINIMUM_RESOLUTION || planetModel.getMinimumXValue() -
fixedXBelowPlane.D >= -1 * Vector.MINIMUM_RESOLUTION) {
fixedXBelowPlane = null;
}{code}
So below planes are never outside of the world.
> GeoComplexPolygon fails when intersection of travel plane with edge is near
> polygon point
> -----------------------------------------------------------------------------------------
>
> Key: LUCENE-8245
> URL: https://issues.apache.org/jira/browse/LUCENE-8245
> Project: Lucene - Core
> Issue Type: Bug
> Components: modules/spatial3d
> Reporter: Ignacio Vera
> Assignee: Karl Wright
> Priority: Major
> Fix For: 6.7, 7.4, master (8.0)
>
> Attachments: LUCENE-8245-case2.patch, LUCENE-8245.jpg,
> LUCENE-8245.patch, LUCENE-8245_Polygon.patch, LUCENE-8245_Random.patch,
> LUCENE-8245_case3.patch
>
>
> When a travel plane crosses an edge close to an edge point , it is possible
> that the above and below planes crosses different edges. In the current
> implementation one of the crosses is missed because we only check edges that
> are crossed by the main plain and the {{within}} result is wrong.
> One possible fix is to check always the intersection of planes and edges
> regardless if they are crossed by main plane. That fixed the above issue but
> shows other issues like travel planes crossing two edges when it should be
> only one due to the fuzziness at edge intersections.
> Not sure of a fix so I add the test showing the issue.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]