[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35884] trunk/blender: fixes in Bullet stuff, roll influence for raycast vehicles was broken,
Erwin Coumans
blender at erwincoumans.com
Tue Mar 29 20:44:18 CEST 2011
Revision: 35884
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35884
Author: erwin
Date: 2011-03-29 18:44:18 +0000 (Tue, 29 Mar 2011)
Log Message:
-----------
fixes in Bullet stuff, roll influence for raycast vehicles was broken,
enable the setPhysicsTicRate for BGE Python
Modified Paths:
--------------
trunk/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp
trunk/blender/extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
Modified: trunk/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp
===================================================================
--- trunk/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp 2011-03-29 16:52:26 UTC (rev 35883)
+++ trunk/blender/extern/bullet2/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp 2011-03-29 18:44:18 UTC (rev 35884)
@@ -254,20 +254,21 @@
}
#endif //
- m_cachedSeparatingAxis = newCachedSeparatingAxis;
//redundant m_simplexSolver->compute_points(pointOnA, pointOnB);
//are we getting any closer ?
if (previousSquaredDistance - squaredDistance <= SIMD_EPSILON * previousSquaredDistance)
{
- m_simplexSolver->backup_closest(m_cachedSeparatingAxis);
+// m_simplexSolver->backup_closest(m_cachedSeparatingAxis);
checkSimplex = true;
m_degenerateSimplex = 12;
break;
}
+ m_cachedSeparatingAxis = newCachedSeparatingAxis;
+
//degeneracy, this is typically due to invalid/uninitialized worldtransforms for a btCollisionObject
if (m_curIter++ > gGjkMaxIter)
{
@@ -294,7 +295,7 @@
if (!check)
{
//do we need this backup_closest here ?
- m_simplexSolver->backup_closest(m_cachedSeparatingAxis);
+// m_simplexSolver->backup_closest(m_cachedSeparatingAxis);
m_degenerateSimplex = 13;
break;
}
@@ -303,7 +304,7 @@
if (checkSimplex)
{
m_simplexSolver->compute_points(pointOnA, pointOnB);
- normalInB = pointOnA-pointOnB;
+ normalInB = m_cachedSeparatingAxis;
btScalar lenSqr =m_cachedSeparatingAxis.length2();
//valid normal
Modified: trunk/blender/extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp
===================================================================
--- trunk/blender/extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp 2011-03-29 16:52:26 UTC (rev 35883)
+++ trunk/blender/extern/bullet2/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp 2011-03-29 18:44:18 UTC (rev 35884)
@@ -698,7 +698,7 @@
btVector3 sideImp = m_axle[wheel] * m_sideImpulse[wheel];
#if defined ROLLING_INFLUENCE_FIX // fix. It only worked if car's up was along Y - VT.
- btVector3 vChassisWorldUp = getRigidBody()->getCenterOfMassTransform().getBasis().getColumn(1);
+ btVector3 vChassisWorldUp = getRigidBody()->getCenterOfMassTransform().getBasis().getColumn(m_indexUpAxis);
rel_pos -= vChassisWorldUp * (vChassisWorldUp.dot(rel_pos) * (1.f-wheelInfo.m_rollInfluence));
#else
rel_pos[m_indexUpAxis] *= wheelInfo.m_rollInfluence;
Modified: trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
===================================================================
--- trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h 2011-03-29 16:52:26 UTC (rev 35883)
+++ trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h 2011-03-29 18:44:18 UTC (rev 35884)
@@ -125,7 +125,11 @@
virtual void debugDrawWorld();
// virtual bool proceedDeltaTimeOneStep(float timeStep);
- virtual void setFixedTimeStep(bool useFixedTimeStep,float fixedTimeStep){};
+ virtual void setFixedTimeStep(bool useFixedTimeStep,float fixedTimeStep)
+ {
+ //based on DEFAULT_PHYSICS_TIC_RATE of 60 hertz
+ setNumTimeSubSteps(fixedTimeStep/60.f);
+ }
//returns 0.f if no fixed timestep is used
virtual float getFixedTimeStep(){ return 0.f;};
More information about the Bf-blender-cvs
mailing list