[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60286] branches/soc-2013-rigid_body_sim/ intern/rigidbody/rb_bullet_api.cpp: rigidbody: Fix conflict between collision and time based activation
Sergej Reich
sergej.reich at googlemail.com
Sat Sep 21 07:12:08 CEST 2013
Revision: 60286
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60286
Author: sergof
Date: 2013-09-21 05:12:08 +0000 (Sat, 21 Sep 2013)
Log Message:
-----------
rigidbody: Fix conflict between collision and time based activation
Now do more thorough check.
Modified Paths:
--------------
branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp
Modified: branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp
===================================================================
--- branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp 2013-09-21 05:12:07 UTC (rev 60285)
+++ branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp 2013-09-21 05:12:08 UTC (rev 60286)
@@ -159,11 +159,27 @@
rbRigidBody *rb0 = (rbRigidBody *)((btRigidBody *)collisionPair.m_pProxy0->m_clientObject)->getUserPointer();
rbRigidBody *rb1 = (rbRigidBody *)((btRigidBody *)collisionPair.m_pProxy1->m_clientObject)->getUserPointer();
- if (rb1->suspended && !(rb1->activation_type == ACTIVATION_TRIGGER && !rb0->is_trigger)) {
- activate(rb1);
+ if (rb1->suspended) {
+ switch(rb1->activation_type) {
+ case ACTIVATION_COLLISION:
+ activate(rb1);
+ break;
+ case ACTIVATION_TRIGGER:
+ if (rb0->is_trigger)
+ activate(rb1);
+ break;
+ }
}
- if (rb0->suspended && !(rb0->activation_type == ACTIVATION_TRIGGER && !rb1->is_trigger)) {
- activate(rb0);
+ if (rb0->suspended) {
+ switch(rb0->activation_type) {
+ case ACTIVATION_COLLISION:
+ activate(rb0);
+ break;
+ case ACTIVATION_TRIGGER:
+ if (rb1->is_trigger)
+ activate(rb0);
+ break;
+ }
}
dispatcher.defaultNearCallback(collisionPair, dispatcher, dispatchInfo);
}
More information about the Bf-blender-cvs
mailing list