From f6e9481d600f3875ffccae1f226c0fc195db1030 Mon Sep 17 00:00:00 2001
From: Luc Maisonobe <luc@orekit.org>
Date: Fri, 14 Mar 2014 19:50:45 +0100
Subject: [PATCH] Added getLatitudeIndex and getLongitudeIndex in Tile.

---
 .../org/orekit/rugged/core/dem/SimpleTile.java   | 16 ++++++++++++++--
 .../java/org/orekit/rugged/core/dem/Tile.java    | 12 ++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java
index 1bf6f104..7030b1ed 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java
+++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/SimpleTile.java
@@ -183,11 +183,23 @@ public class SimpleTile implements Tile {
         return elevations[latitudeIndex * getLongitudeColumns() + longitudeIndex];
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public int getLatitudeIndex(double latitude) {
+        return (int) FastMath.floor((latitude  - minLatitude)  / latitudeStep);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public int getLontitudeIndex(double longitude) {
+        return (int) FastMath.floor((longitude - minLongitude) / longitudeStep);
+    }
+
     /** {@inheritDoc} */
     @Override
     public Location getLocation(final double latitude, final double longitude) {
-        final int latitudeIndex  = (int) FastMath.floor((latitude  - minLatitude)  / latitudeStep);
-        final int longitudeIndex = (int) FastMath.floor((longitude - minLongitude) / longitudeStep);
+        final int latitudeIndex  = getLatitudeIndex(latitude);
+        final int longitudeIndex = getLontitudeIndex(longitude);
         if (longitudeIndex < 0) {
             if (latitudeIndex < 0) {
                 return Location.SOUTH_WEST;
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java
index 73972733..c0ab6dcd 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java
+++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java
@@ -83,6 +83,18 @@ public interface Tile extends UpdatableTile {
      */
     int getLongitudeColumns();
 
+    /** Get the latitude index of a point.
+     * @param latitude geodetic latitude
+     * @return latirute index (it may lie outside of the tile!)
+     */
+    int getLatitudeIndex(double latitude);
+
+    /** Get the longitude index of a point.
+     * @param longitude geodetic latitude
+     * @return longitude index (it may lie outside of the tile!)
+     */
+    int getLontitudeIndex(double longitude);
+
     /** Get the minimum elevation in the tile.
      * @return minimum elevation in the tile
      */
-- 
GitLab