Revision: 16368
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16368
Author:   ben2610
Date:     2008-09-05 01:07:43 +0200 (Fri, 05 Sep 2008)

Log Message:
-----------
Partial repair of raycast system with Bullet 2.71. Still to be done: face and 
normal information

Modified Paths:
--------------
    
branches/sim_physics/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp

Modified: 
branches/sim_physics/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
===================================================================
--- 
branches/sim_physics/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp 
    2008-09-04 23:05:00 UTC (rev 16367)
+++ 
branches/sim_physics/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp 
    2008-09-04 23:07:43 UTC (rev 16368)
@@ -721,17 +721,20 @@
        {
        }
 
-       virtual bool    NeedRayCast(btCollisionObject* object)
+       virtual bool needsCollision(btBroadphaseProxy* proxy0) const
        {
+               if (!(proxy0->m_collisionFilterGroup & m_collisionFilterMask))
+                       return false;
+               if (!(m_collisionFilterGroup & proxy0->m_collisionFilterMask))
+                       return false;
+               btCollisionObject* object = 
(btCollisionObject*)proxy0->m_clientObject;
                CcdPhysicsController* phyCtrl = 
static_cast<CcdPhysicsController*>(object->getUserPointer());
-               if (phyCtrl != m_phyRayFilter.m_ignoreController)
-               {
-                       return m_phyRayFilter.needBroadphaseRayCast(phyCtrl);
-               }
-               return false;
+               if (phyCtrl == m_phyRayFilter.m_ignoreController)
+                       return false;
+               return m_phyRayFilter.needBroadphaseRayCast(phyCtrl);
        }
 
-       virtual float   AddSingleResult( btCollisionWorld::LocalRayResult& 
rayResult)
+       virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult& 
rayResult,bool normalInWorldSpace)
        {
                CcdPhysicsController* curHit = 
static_cast<CcdPhysicsController*>(rayResult.m_collisionObject->getUserPointer());
                // save shape information as 
ClosestRayResultCallback::AddSingleResult() does not do it
@@ -744,8 +747,7 @@
                        m_hitTriangleShape = NULL;
                        m_hitTriangleIndex = 0;
                }
-               bool normalInWorldspace = true;
-               return 
ClosestRayResultCallback::addSingleResult(rayResult,normalInWorldspace);
+               return 
ClosestRayResultCallback::addSingleResult(rayResult,normalInWorldSpace);
        }
 
 };


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to