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/12/28 00:45:30 UTC
lucene-solr:branch_6x: LUCENE-7511: Introduce
Vector.MINIMUM_ANGULAR_RESOLUTION.
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x aceaafc15 -> d31f32b0f
LUCENE-7511: Introduce Vector.MINIMUM_ANGULAR_RESOLUTION.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/d31f32b0
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/d31f32b0
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/d31f32b0
Branch: refs/heads/branch_6x
Commit: d31f32b0f122c47330d7462c461ef14ec5652e4b
Parents: aceaafc
Author: Karl Wright <Da...@gmail.com>
Authored: Tue Dec 27 19:41:55 2016 -0500
Committer: Karl Wright <Da...@gmail.com>
Committed: Tue Dec 27 19:44:03 2016 -0500
----------------------------------------------------------------------
.../lucene/spatial3d/geom/GeoBBoxFactory.java | 34 ++++++++++----------
.../lucene/spatial3d/geom/GeoCircleFactory.java | 2 +-
.../spatial3d/geom/GeoPolygonFactory.java | 6 ++--
.../apache/lucene/spatial3d/geom/Vector.java | 4 +++
4 files changed, 25 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d31f32b0/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoBBoxFactory.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoBBoxFactory.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoBBoxFactory.java
index 3d0b8cb..d0427bc 100755
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoBBoxFactory.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoBBoxFactory.java
@@ -45,18 +45,18 @@ public class GeoBBoxFactory {
leftLon = -Math.PI;
if (rightLon > Math.PI)
rightLon = Math.PI;
- if ((Math.abs(leftLon + Math.PI) < Vector.MINIMUM_RESOLUTION && Math.abs(rightLon - Math.PI) < Vector.MINIMUM_RESOLUTION) ||
- (Math.abs(rightLon + Math.PI) < Vector.MINIMUM_RESOLUTION && Math.abs(leftLon - Math.PI) < Vector.MINIMUM_RESOLUTION)) {
- if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION && Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION)
+ if ((Math.abs(leftLon + Math.PI) < Vector.MINIMUM_ANGULAR_RESOLUTION && Math.abs(rightLon - Math.PI) < Vector.MINIMUM_ANGULAR_RESOLUTION) ||
+ (Math.abs(rightLon + Math.PI) < Vector.MINIMUM_ANGULAR_RESOLUTION && Math.abs(leftLon - Math.PI) < Vector.MINIMUM_ANGULAR_RESOLUTION)) {
+ if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION && Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION)
return new GeoWorld(planetModel);
- if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_RESOLUTION) {
- if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION || Math.abs(topLat + Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION)
+ if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
+ if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION || Math.abs(topLat + Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION)
return new GeoDegeneratePoint(planetModel, topLat, 0.0);
return new GeoDegenerateLatitudeZone(planetModel, topLat);
}
- if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION)
+ if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION)
return new GeoNorthLatitudeZone(planetModel, bottomLat);
- else if (Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION)
+ else if (Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION)
return new GeoSouthLatitudeZone(planetModel, topLat);
return new GeoLatitudeZone(planetModel, topLat, bottomLat);
}
@@ -65,7 +65,7 @@ public class GeoBBoxFactory {
if (extent < 0.0)
extent += Math.PI * 2.0;
if (topLat == Math.PI * 0.5 && bottomLat == -Math.PI * 0.5) {
- if (Math.abs(leftLon - rightLon) < Vector.MINIMUM_RESOLUTION)
+ if (Math.abs(leftLon - rightLon) < Vector.MINIMUM_ANGULAR_RESOLUTION)
return new GeoDegenerateLongitudeSlice(planetModel, leftLon);
if (extent >= Math.PI)
@@ -74,35 +74,35 @@ public class GeoBBoxFactory {
return new GeoLongitudeSlice(planetModel, leftLon, rightLon);
}
//System.err.println(" not longitude slice");
- if (Math.abs(leftLon - rightLon) < Vector.MINIMUM_RESOLUTION) {
- if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_RESOLUTION)
+ if (Math.abs(leftLon - rightLon) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
+ if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_ANGULAR_RESOLUTION)
return new GeoDegeneratePoint(planetModel, topLat, leftLon);
return new GeoDegenerateVerticalLine(planetModel, topLat, bottomLat, leftLon);
}
//System.err.println(" not vertical line");
if (extent >= Math.PI) {
- if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
//System.err.println(" wide degenerate line");
return new GeoWideDegenerateHorizontalLine(planetModel, topLat, leftLon, rightLon);
}
- if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return new GeoWideNorthRectangle(planetModel, bottomLat, leftLon, rightLon);
- } else if (Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION) {
+ } else if (Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return new GeoWideSouthRectangle(planetModel, topLat, leftLon, rightLon);
}
//System.err.println(" wide rect");
return new GeoWideRectangle(planetModel, topLat, bottomLat, leftLon, rightLon);
}
- if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_RESOLUTION) {
- if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION || Math.abs(topLat + Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(topLat - bottomLat) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
+ if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION || Math.abs(topLat + Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return new GeoDegeneratePoint(planetModel, topLat, 0.0);
}
//System.err.println(" horizontal line");
return new GeoDegenerateHorizontalLine(planetModel, topLat, leftLon, rightLon);
}
- if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(topLat - Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return new GeoNorthRectangle(planetModel, bottomLat, leftLon, rightLon);
- } else if (Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_RESOLUTION) {
+ } else if (Math.abs(bottomLat + Math.PI * 0.5) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return new GeoSouthRectangle(planetModel, topLat, leftLon, rightLon);
}
//System.err.println(" rectangle");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d31f32b0/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoCircleFactory.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoCircleFactory.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoCircleFactory.java
index ee75179..292790f 100644
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoCircleFactory.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoCircleFactory.java
@@ -34,7 +34,7 @@ public class GeoCircleFactory {
* @return a GeoCircle corresponding to what was specified.
*/
public static GeoCircle makeGeoCircle(final PlanetModel planetModel, final double latitude, final double longitude, final double radius) {
- if (radius < Vector.MINIMUM_RESOLUTION) {
+ if (radius < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return new GeoDegeneratePoint(planetModel, latitude, longitude);
}
return new GeoStandardCircle(planetModel, latitude, longitude, radius);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d31f32b0/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
index f0e4bcd..97bc230 100755
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoPolygonFactory.java
@@ -601,7 +601,7 @@ public class GeoPolygonFactory {
if (angleDelta > Math.PI) {
angleDelta -= Math.PI * 2.0;
}
- if (Math.abs(angleDelta - Math.PI) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(angleDelta - Math.PI) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return null;
}
//System.out.println(" angle delta = "+angleDelta);
@@ -624,7 +624,7 @@ public class GeoPolygonFactory {
if (angleDelta > Math.PI) {
angleDelta -= Math.PI * 2.0;
}
- if (Math.abs(angleDelta - Math.PI) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(angleDelta - Math.PI) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
return null;
}
//System.out.println(" angle delta = "+angleDelta);
@@ -634,7 +634,7 @@ public class GeoPolygonFactory {
// Clockwise == inside == negative
//System.out.println("Arcdistance = "+arcDistance);
- if (Math.abs(arcDistance) < Vector.MINIMUM_RESOLUTION) {
+ if (Math.abs(arcDistance) < Vector.MINIMUM_ANGULAR_RESOLUTION) {
// No idea what direction, so try another pole.
return null;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d31f32b0/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/Vector.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/Vector.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/Vector.java
index 7ebf453..852cac4 100755
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/Vector.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/Vector.java
@@ -29,6 +29,10 @@ public class Vector {
*/
public static final double MINIMUM_RESOLUTION = 1.0e-12;
/**
+ * Angular version of minimum resolution.
+ */
+ public static final double MINIMUM_ANGULAR_RESOLUTION = Math.PI * MINIMUM_RESOLUTION;
+ /**
* For squared quantities, the bound is squared too.
*/
public static final double MINIMUM_RESOLUTION_SQUARED = MINIMUM_RESOLUTION * MINIMUM_RESOLUTION;