소스 검색

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 9 년 전
부모
커밋
2a44aa4aec
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  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;
     }