Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin Coumans <blender@erwincoumans.com>2006-12-04 07:13:42 +0300
committerErwin Coumans <blender@erwincoumans.com>2006-12-04 07:13:42 +0300
commit2ec5d00da91848ce8c56d383a23a35b76243b956 (patch)
tree293000afd2bfeb82b9633aa285407dcbb58f6fd7 /source/gameengine/Physics
parentfc691cdb5e0c23bf36e68a14903d6bc4d0cc5242 (diff)
fixed some motionstate synchronization issues
nearsensor was not synchronized at the start wheels not synchronized properly (one frame delay)
Diffstat (limited to 'source/gameengine/Physics')
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.cpp2
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp7
2 files changed, 6 insertions, 3 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index f6a087887f9..3ddac72618d 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -99,7 +99,7 @@ public:
m_blenderMotionState->setWorldPosition(worldTrans.getOrigin().getX(),worldTrans.getOrigin().getY(),worldTrans.getOrigin().getZ());
btQuaternion rotQuat = worldTrans.getRotation();
m_blenderMotionState->setWorldOrientation(rotQuat[0],rotQuat[1],rotQuat[2],rotQuat[3]);
-
+ m_blenderMotionState->calculateWorldTransformations();
}
};
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index 418271a5c46..edd4c2e2bb4 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -108,7 +108,8 @@ public:
{
btWheelInfo& info = m_vehicle->getWheelInfo(i);
PHY_IMotionState* motionState = (PHY_IMotionState*)info.m_clientInfo ;
- m_vehicle->updateWheelTransform(i,true);
+ // m_vehicle->updateWheelTransformsWS(info,false);
+ m_vehicle->updateWheelTransform(i,false);
btTransform trans = m_vehicle->getWheelInfo(i).m_worldTransform;
btQuaternion orn = trans.getRotation();
const btVector3& pos = trans.getOrigin();
@@ -463,7 +464,7 @@ bool CcdPhysicsEnvironment::proceedDeltaTime(double curTime,float timeStep)
for (i=0;i<numCtrl;i++)
{
CcdPhysicsController* ctrl = GetPhysicsController(i);
- //ctrl->SynchronizeMotionStates(timeStep);
+ ctrl->SynchronizeMotionStates(timeStep);
}
for (i=0;i<m_wrapperVehicles.size();i++)
@@ -829,6 +830,8 @@ void CcdPhysicsEnvironment::addSensor(PHY_IPhysicsController* ctrl)
}
//force collision detection with everything, including static objects (might hurt performance!)
ctrl1->GetRigidBody()->getBroadphaseHandle()->m_collisionFilterMask = btBroadphaseProxy::AllFilter;
+ ctrl1->GetRigidBody()->getBroadphaseHandle()->m_collisionFilterGroup = btBroadphaseProxy::AllFilter;
+ //todo: make this 'sensor'!
requestCollisionCallback(ctrl);
//printf("addSensor\n");