[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54818] trunk/blender/source/blender/ makesrna/intern/rna_rigidbody.c: rigidbody: Allow collision groups to be animated

Sergej Reich sergej.reich at googlemail.com
Sun Feb 24 16:53:31 CET 2013


Revision: 54818
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54818
Author:   sergof
Date:     2013-02-24 15:53:30 +0000 (Sun, 24 Feb 2013)
Log Message:
-----------
rigidbody: Allow collision groups to be animated

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_rigidbody.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_rigidbody.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_rigidbody.c	2013-02-24 15:40:28 UTC (rev 54817)
+++ trunk/blender/source/blender/makesrna/intern/rna_rigidbody.c	2013-02-24 15:53:30 UTC (rev 54818)
@@ -234,6 +234,20 @@
 #endif
 }
 
+static void rna_RigidBodyOb_collision_groups_set(PointerRNA *ptr, const int *values)
+{
+	RigidBodyOb *rbo = (RigidBodyOb *)ptr->data;
+	int i;
+
+	for (i = 0; i < 20; i++) {
+		if (values[i])
+			rbo->col_groups |= (1 << i);
+		else
+			rbo->col_groups &= ~(1 << i);
+	}
+	rbo->flag |= RBO_FLAG_NEEDS_VALIDATE;
+}
+
 static void rna_RigidBodyOb_kinematic_state_set(PointerRNA *ptr, int value)
 {
 	RigidBodyOb *rbo = (RigidBodyOb *)ptr->data;
@@ -812,6 +826,7 @@
 	prop = RNA_def_property(srna, "collision_groups", PROP_BOOLEAN, PROP_LAYER_MEMBER);
 	RNA_def_property_boolean_sdna(prop, NULL, "col_groups", 1);
 	RNA_def_property_array(prop, 20);
+	RNA_def_property_boolean_funcs(prop, NULL, "rna_RigidBodyOb_collision_groups_set");
 	RNA_def_property_ui_text(prop, "Collision Groups", "Collision Groups Rigid Body belongs to");
 	RNA_def_property_update(prop, NC_OBJECT | ND_POINTCACHE, "rna_RigidBodyOb_reset");
 	RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);




More information about the Bf-blender-cvs mailing list