Sfoglia il codice sorgente

terrain now checks the ray's limit when colliding

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9583 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
bre..ns 13 anni fa
parent
commit
b59ec271ca

+ 9 - 3
engine/src/terrain/com/jme3/terrain/geomipmap/TerrainQuad.java

@@ -254,9 +254,15 @@ public class TerrainQuad extends Node implements Terrain {
             picker = new BresenhamTerrainPicker(this);
 
         Vector3f intersection = picker.getTerrainIntersection(ray, results);
-        if (intersection != null)
-            return 1;
-        else
+        if (intersection != null) {
+            if (ray.getLimit() < Float.POSITIVE_INFINITY) {
+                if (results.getClosestCollision().getDistance() <= ray.getLimit())
+                    return 1; // in range
+                else
+                    return 0; // out of range
+            } else
+                return 1;
+        } else
             return 0;
     }