[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59892] branches/soc-2013-rigid_body_sim/ intern/rigidbody/rb_bullet_api.cpp: rigidbody: Allow trigger objects to respond to collisions

Sergej Reich sergej.reich at googlemail.com
Fri Sep 6 19:58:54 CEST 2013


Revision: 59892
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59892
Author:   sergof
Date:     2013-09-06 17:58:54 +0000 (Fri, 06 Sep 2013)
Log Message:
-----------
rigidbody: Allow trigger objects to respond to collisions

It's still desirable to have trigger object interacting with the
simulation in many cases.
Will add separate ghost objects later to allow for triggers that don't
collide.

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-06 17:58:53 UTC (rev 59891)
+++ branches/soc-2013-rigid_body_sim/intern/rigidbody/rb_bullet_api.cpp	2013-09-06 17:58:54 UTC (rev 59892)
@@ -593,14 +593,16 @@
 		body->setCollisionFlags(body->getCollisionFlags() & ~btCollisionObject::CF_KINEMATIC_OBJECT);
 }
 
+void RB_body_suspend(rbRigidBody *object)
+{
+	object->saved_mass = RB_body_get_mass(object);
+	RB_body_set_mass(object, 0.0f);
+	object->suspended = true;
+}
+
 void RB_body_set_trigger(rbRigidBody *object, int trigger)
 {
-	btRigidBody *body = object->body;
 	object->is_trigger = trigger;
-	if (trigger)
-		body->setCollisionFlags(body->getCollisionFlags() | btCollisionObject::CF_NO_CONTACT_RESPONSE);
-	else
-		body->setCollisionFlags(body->getCollisionFlags() & ~btCollisionObject::CF_NO_CONTACT_RESPONSE);
 }
 
 /* ............ */




More information about the Bf-blender-cvs mailing list