You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2016/12/30 15:57:03 UTC

[27/50] [abbrv] lucene-solr:jira/solr-9854: LUCENE-7511: Introduce Vector.MINIMUM_ANGULAR_RESOLUTION.

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/283b329b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/283b329b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/283b329b

Branch: refs/heads/jira/solr-9854
Commit: 283b329bbbd8b6a8f9c75ec4e79ca4034c910e88
Parents: 9bd1528
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:41:55 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/283b329b/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/283b329b/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/283b329b/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/283b329b/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;