From e143be989d2c21c97f4dafc4b0252d0ad7d32afe Mon Sep 17 00:00:00 2001
From: sesteves <sroesteves@gmail.com>
Date: Tue, 9 Aug 2016 20:19:23 +0100
Subject: [PATCH] minor

---
 .../MultiLayerModel.java                      | 23 ++++++++++++++-----
 .../MultiLayerModelTest.java                  |  5 ++++
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java b/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java
index 50dcb737..5d535ee0 100644
--- a/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java
+++ b/src/main/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModel.java
@@ -95,30 +95,41 @@ public class MultiLayerModel implements AtmosphericRefraction {
             if (previousRefractionIndex > 0) {
                 theta2 = FastMath.asin(previousRefractionIndex * FastMath.sin(theta1) / entry.getValue());
 
-                // get los
+                // get new los
                 double a = FastMath.sqrt((1 - FastMath.pow(FastMath.cos(theta2), 2)) /
                         (1 - FastMath.pow(FastMath.cos(theta1), 2)));
                 double b = a * FastMath.cos(theta1) - FastMath.cos(theta2);
                 los = new Vector3D(a, los, b, zenith);
+                System.out.println("LOS: " + los);
 
                 theta1 = theta2;
             }
 
+            if (altitude > entry.getKey()) {
+                break;
+            }
+
             // get intersection point
             ExtendedEllipsoid ellipsoid = atmosphericEllipsoids.get(entry.getKey());
             gp = ellipsoid.pointOnGround(pos, los, 0.0);
+            gp = new NormalizedGeodeticPoint(gp.getLatitude(), gp.getLongitude(), entry.getKey(), 0.0);
+
+            System.out.println("GP: " + gp);
+
             pos = ellipsoid.transform(gp);
             zenith = gp.getZenith();
 
-            if (altitude > entry.getKey()) {
-                break;
-            }
             previousRefractionIndex = entry.getValue();
         }
 
-        System.out.println("GP: " + gp + ", LOS: " + los);
 
-        NormalizedGeodeticPoint newGeodeticPoint = tile.cellIntersection(gp, los, 0, 0);
+        gp = new NormalizedGeodeticPoint(gp.getLatitude(), gp.getLongitude(), 17, 0.0);
+        NormalizedGeodeticPoint newGeodeticPoint = tile.cellIntersection(gp, los,
+                tile.getFloorLatitudeIndex(gp.getLatitude()), tile.getFloorLongitudeIndex(gp.getLongitude()));
+
+        System.out.println("latitude and longitude indexes: " + tile.getFloorLatitudeIndex(gp.getLatitude()) + ", " +
+                tile.getFloorLongitudeIndex(gp.getLongitude()));
+
         return newGeodeticPoint;
     }
 }
diff --git a/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java b/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java
index cde2b8ae..9d723028 100644
--- a/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java
+++ b/src/test/java/org/orekit/rugged/atmosphericrefraction/MultiLayerModelTest.java
@@ -60,6 +60,11 @@ public class MultiLayerModelTest extends AbstractAlgorithmTest {
         System.out.println("TILE: minlat: " + tile.getMinimumLatitude() + ", maxlat: " + tile.getMaximumLatitude() +
                 ", minlon: " + tile.getMinimumLongitude() + ", maxlon: " + tile.getMaximumLongitude());
 
+
+        System.out.println("IS IT NULL? " +
+                (tile.cellIntersection(intersection, los, tile.getFloorLatitudeIndex(intersection.getLatitude()),
+                        tile.getFloorLongitudeIndex(intersection.getLongitude())) == null));
+
         MultiLayerModel model = new MultiLayerModel();
         GeodeticPoint gp = model.getPointOnGround(position, los, intersection.getZenith(), intersection.getAltitude(),
                 tile);
-- 
GitLab