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:
authorBenoit Bolsee <benoit.bolsee@online.be>2012-05-30 00:30:33 +0400
committerBenoit Bolsee <benoit.bolsee@online.be>2012-05-30 00:30:33 +0400
commit58bc424b3c46ee3ee6644ff578671670c2a1c8ec (patch)
tree147b691cecd0286e750fd73f0c6a2edad8ab9b90 /source/gameengine/Physics/Bullet
parent1d4ab9daf0ef38066469fb86bed0fc24b2e1bbda (diff)
BGE #30734: add support for physics linear and angular thresholds and deactivation time from python and GUI.
======================== The linear and angular thresholds set the speed limit (in m/s) and rotation limit (in rad/s) under which a rigid body will go to sleep (stop moving) if it stays below the limits for a time equal or longer than the deactivation time (sleeping is disabled is deactivation time is set to 0). These settings help reducing the processing spent on Physics during the game. Previously they were only accessible from python but not working because of a bug. Now the python functions are working and the settings are available in the Physics panel of the World settings when using the Blender Game render engine. Python API: import PhysicsConstraints PhysicsConstraints.setDeactivationLinearTreshold(float) PhysicsConstraints.setDeactivationAngularTreshold(float)
Diffstat (limited to 'source/gameengine/Physics/Bullet')
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index 92a9b405b7c..21158a9461d 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -60,8 +60,8 @@ extern float gDeactivationTime;
extern bool gDisableDeactivation;
-float gLinearSleepingTreshold = 0.8f;
-float gAngularSleepingTreshold = 1.0f;
+float gLinearSleepingTreshold;
+float gAngularSleepingTreshold;
btVector3 startVel(0,0,0);//-10000);
@@ -519,6 +519,7 @@ void CcdPhysicsController::CreateRigidbody()
body->setAngularFactor(0.f);
}
body->setContactProcessingThreshold(m_cci.m_contactProcessingThreshold);
+ body->setSleepingThresholds(gLinearSleepingTreshold, gAngularSleepingTreshold);
}
if (m_object && m_cci.m_do_anisotropic)