You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kw...@apache.org on 2016/04/29 02:31:00 UTC
[16/25] lucene-solr:branch_6x: Flesh out remaining methods
Flesh out remaining methods
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f9a4a08c
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f9a4a08c
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f9a4a08c
Branch: refs/heads/branch_6x
Commit: f9a4a08ce003f3d30af9332158cf386db22866ef
Parents: 3a0dbbe
Author: Karl Wright <Da...@gmail.com>
Authored: Wed Apr 27 08:26:03 2016 -0400
Committer: Karl Wright <Da...@gmail.com>
Committed: Thu Apr 28 20:24:53 2016 -0400
----------------------------------------------------------------------
.../spatial3d/geom/GeoComplexPolygon.java | 31 +++++++++++++++-----
1 file changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f9a4a08c/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoComplexPolygon.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoComplexPolygon.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoComplexPolygon.java
index 9b0fd1f..47ca961 100644
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoComplexPolygon.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoComplexPolygon.java
@@ -254,8 +254,25 @@ class GeoComplexPolygon extends GeoBasePolygon {
@Override
protected double outsideDistance(final DistanceStyle distanceStyle, final double x, final double y, final double z) {
- // MHL
- return 0.0;
+ double minimumDistance = Double.MAX_VALUE;
+ for (final Edge shapeStartEdge : shapeStartEdges) {
+ Edge shapeEdge = shapeStartEdge;
+ while (true) {
+ final double newDist = distanceStyle.computeDistance(shapeEdge.startPoint, x, y, z);
+ if (newDist < minimumDistance) {
+ minimumDistance = newDist;
+ }
+ final double newPlaneDist = distanceStyle.computeDistance(planetModel, shapeEdge.plane, x, y, z, shapeEdge.startPlane, shapeEdge.endPlane);
+ if (newPlaneDist < minimumDistance) {
+ minimumDistance = newPlaneDist;
+ }
+ shapeEdge = shapeEdge.next;
+ if (shapeEdge == shapeStartEdge) {
+ break;
+ }
+ }
+ }
+ return minimumDistance;
}
/**
@@ -1002,19 +1019,19 @@ class GeoComplexPolygon extends GeoBasePolygon {
@Override
public boolean equals(Object o) {
- // MHL
- return false;
+ // Way too expensive to do this the hard way, so each complex polygon will be considered unique.
+ return this == o;
}
@Override
public int hashCode() {
- // MHL
- return 0;
+ // Each complex polygon is considered unique.
+ return System.identityHashCode(this);
}
@Override
public String toString() {
- return "GeoComplexPolygon: {planetmodel=" + planetModel + "}";
+ return "GeoComplexPolygon: {planetmodel=" + planetModel + ", number of shapes="+shapeStartEdges.length+", address="+ Integer.toHexString(hashCode())+"}";
}
}