[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16368] branches/sim_physics/source/ gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp: Partial repair of raycast system with Bullet 2.71.
Benoit Bolsee
benoit.bolsee at online.be
Fri Sep 5 01:07:52 CEST 2008
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);
}
};
More information about the Bf-blender-cvs
mailing list