Ver Fonte

Added warning for infinite PhysicsWorld raycast.

Lasse Öörni há 10 anos atrás
pai
commit
adc04560ce
1 ficheiros alterados com 9 adições e 0 exclusões
  1. 9 0
      Source/Urho3D/Physics/PhysicsWorld.cpp

+ 9 - 0
Source/Urho3D/Physics/PhysicsWorld.cpp

@@ -343,6 +343,9 @@ void PhysicsWorld::Raycast(PODVector<PhysicsRaycastResult>& result, const Ray& r
 {
     PROFILE(PhysicsRaycast);
 
+    if (maxDistance >= M_INFINITY)
+        LOGWARNING("Infinite maxDistance in physics raycast is not supported");
+
     btCollisionWorld::AllHitsRayResultCallback
         rayCallback(ToBtVector3(ray.origin_), ToBtVector3(ray.origin_ + maxDistance * ray.direction_));
     rayCallback.m_collisionFilterGroup = (short)0xffff;
@@ -367,6 +370,9 @@ void PhysicsWorld::RaycastSingle(PhysicsRaycastResult& result, const Ray& ray, f
 {
     PROFILE(PhysicsRaycastSingle);
 
+    if (maxDistance >= M_INFINITY)
+        LOGWARNING("Infinite maxDistance in physics raycast is not supported");
+
     btCollisionWorld::ClosestRayResultCallback
         rayCallback(ToBtVector3(ray.origin_), ToBtVector3(ray.origin_ + maxDistance * ray.direction_));
     rayCallback.m_collisionFilterGroup = (short)0xffff;
@@ -394,6 +400,9 @@ void PhysicsWorld::SphereCast(PhysicsRaycastResult& result, const Ray& ray, floa
 {
     PROFILE(PhysicsSphereCast);
 
+    if (maxDistance >= M_INFINITY)
+        LOGWARNING("Infinite maxDistance in physics sphere cast is not supported");
+
     btSphereShape shape(radius);
 
     btCollisionWorld::ClosestConvexResultCallback