Quellcode durchsuchen

Reversed raytest results when needed

In some cases, native-bullet returns the ray results on a reversed order so it leads to unexpected bugs.
NemesisMate vor 9 Jahren
Ursprung
Commit
2a44aa4aec
1 geänderte Dateien mit 6 neuen und 0 gelöschten Zeilen
  1. 6 0
      jme3-bullet/src/main/java/com/jme3/bullet/PhysicsSpace.java

+ 6 - 0
jme3-bullet/src/main/java/com/jme3/bullet/PhysicsSpace.java

@@ -49,6 +49,7 @@ import com.jme3.scene.Spatial;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -788,6 +789,11 @@ public class PhysicsSpace {
     public List rayTest(Vector3f from, Vector3f to) {
         List results = new LinkedList();
         rayTest(from, to, results);
+        
+        if(results.getFirst().getHitFraction() > results.getLast().getHitFraction()) {
+            Collections.reverse(results);
+        }
+        
         return (List<PhysicsRayTestResult>) results;
     }