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 2017/12/04 17:48:46 UTC

[02/50] lucene-solr:jira/solr-11458-2: LUCENE-8061: Add convenience factory methods for building solids and BBoxes using bounds objects. Committed in part on behalf of Ignacio Vera.

LUCENE-8061: Add convenience factory methods for building solids and BBoxes using bounds objects.  Committed in part on behalf of Ignacio Vera.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/558fc4b5
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/558fc4b5
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/558fc4b5

Branch: refs/heads/jira/solr-11458-2
Commit: 558fc4b52b3b8ae08d5730c440d44762a301f133
Parents: e33e78c
Author: Karl Wright <Da...@gmail.com>
Authored: Wed Nov 22 15:02:23 2017 -0500
Committer: Karl Wright <Da...@gmail.com>
Committed: Wed Nov 22 15:02:23 2017 -0500

----------------------------------------------------------------------
 .../apache/lucene/spatial3d/geom/GeoBBoxFactory.java | 15 +++++++++++++++
 .../lucene/spatial3d/geom/XYZSolidFactory.java       | 12 ++++++++++++
 2 files changed, 27 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/558fc4b5/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 12d479b..28b3a79 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
@@ -116,4 +116,19 @@ public class GeoBBoxFactory {
     return new GeoRectangle(planetModel, topLat, bottomLat, leftLon, rightLon);
   }
 
+  /**
+   * Create a geobbox of the right kind given the specified {@link LatLonBounds}.
+   *
+   * @param planetModel is the planet model
+   * @param bounds    are the bounds
+   * @return a GeoBBox corresponding to what was specified.
+   */
+  public static GeoBBox makeGeoBBox(final PlanetModel planetModel, LatLonBounds bounds) {
+    final double topLat = (bounds.checkNoTopLatitudeBound()) ? Math.PI * 0.5 : bounds.getMaxLatitude();
+    final double bottomLat = (bounds.checkNoBottomLatitudeBound()) ? -Math.PI * 0.5 : bounds.getMinLatitude();
+    final double leftLon = (bounds.checkNoLongitudeBound()) ? -Math.PI : bounds.getLeftLongitude();
+    final double rightLon = (bounds.checkNoLongitudeBound()) ? Math.PI : bounds.getRightLongitude();
+    return makeGeoBBox(planetModel, topLat, bottomLat, leftLon, rightLon);
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/558fc4b5/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZSolidFactory.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZSolidFactory.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZSolidFactory.java
index 25ea400..14b9bb6 100644
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZSolidFactory.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/XYZSolidFactory.java
@@ -64,4 +64,16 @@ public class XYZSolidFactory {
     return new StandardXYZSolid(planetModel, minX, maxX, minY, maxY, minZ, maxZ);
   }
   
+  /**
+   * Create a XYZSolid of the right kind given (x,y,z) bounds.
+   * @param planetModel is the planet model
+   * @param bounds is the XYZ bounds object.
+   * @return the solid.
+   */
+  public static XYZSolid makeXYZSolid(final PlanetModel planetModel, final XYZBounds bounds) {
+    return makeXYZSolid(planetModel, bounds.getMinimumX(), bounds.getMaximumX(),
+      bounds.getMinimumY(), bounds.getMaximumY(),
+      bounds.getMinimumZ(), bounds.getMaximumZ());
+  }
+
 }