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-25 05:02:13 +0300
committerErwin Coumans <blender@erwincoumans.com>2006-12-25 05:02:13 +0300
commite820cdf6a0ab757cd83ffafd0ea04d736c3faa63 (patch)
treec412336bc8dcee4fad535e46205ddffd905ac37e /source/gameengine/Physics
parent0e094ffcab8ae40ce06584c02292102d53ece77d (diff)
fixing some issues: force needs to wake up objects, property sensor issue, island activation issue
Diffstat (limited to 'source/gameengine/Physics')
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.cpp11
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp2
2 files changed, 13 insertions, 0 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index 3ddac72618d..d3eb4db6f35 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -379,6 +379,10 @@ void CcdPhysicsController::ApplyTorque(float torqueX,float torqueY,float torque
{
btVector3 torque(torqueX,torqueY,torqueZ);
btTransform xform = m_body->getCenterOfMassTransform();
+ if (torque.length2() > (SIMD_EPSILON*SIMD_EPSILON))
+ {
+ m_body->activate();
+ }
if (local)
{
torque = xform.getBasis()*torque;
@@ -389,6 +393,13 @@ void CcdPhysicsController::ApplyTorque(float torqueX,float torqueY,float torque
void CcdPhysicsController::ApplyForce(float forceX,float forceY,float forceZ,bool local)
{
btVector3 force(forceX,forceY,forceZ);
+
+ if (force.length2() > (SIMD_EPSILON*SIMD_EPSILON))
+ {
+ m_body->activate();
+ }
+
+
btTransform xform = m_body->getCenterOfMassTransform();
if (local)
{
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index 57fe533825e..bb6b62c7edc 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -653,6 +653,8 @@ void CcdPhysicsEnvironment::removeConstraint(int constraintId)
btTypedConstraint* constraint = m_dynamicsWorld->getConstraint(i);
if (constraint->getUserConstraintId() == constraintId)
{
+ constraint->getRigidBodyA().activate();
+ constraint->getRigidBodyB().activate();
m_dynamicsWorld->removeConstraint(constraint);
break;
}