[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60512] branches/soc-2013-rigid_body_sim/ source/blender/blenkernel/intern/rigidbody.c: rigidbody: Code cleanup

Sergej Reich sergej.reich at googlemail.com
Wed Oct 2 21:59:55 CEST 2013


Revision: 60512
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60512
Author:   sergof
Date:     2013-10-02 19:59:55 +0000 (Wed, 02 Oct 2013)
Log Message:
-----------
rigidbody: Code cleanup

Remove duplicate code.

Modified Paths:
--------------
    branches/soc-2013-rigid_body_sim/source/blender/blenkernel/intern/rigidbody.c

Modified: branches/soc-2013-rigid_body_sim/source/blender/blenkernel/intern/rigidbody.c
===================================================================
--- branches/soc-2013-rigid_body_sim/source/blender/blenkernel/intern/rigidbody.c	2013-10-02 19:54:24 UTC (rev 60511)
+++ branches/soc-2013-rigid_body_sim/source/blender/blenkernel/intern/rigidbody.c	2013-10-02 19:59:55 UTC (rev 60512)
@@ -233,6 +233,20 @@
 /* ************************************** */
 /* Setup Utilities - Validate Sim Instances */
 
+/* get the appropriate DerivedMesh based on rigid body mesh source */
+static DerivedMesh *rigidbody_get_mesh(Object *ob)
+{
+	if (ob->rigidbody_object->mesh_source == RBO_MESH_DEFORM) {
+		return ob->derivedDeform;
+	}
+	else if (ob->rigidbody_object->mesh_source == RBO_MESH_FINAL) {
+		return ob->derivedFinal;
+	}
+	else {
+		return CDDM_from_mesh(ob->data, ob);
+	}
+}
+
 /* create collision shape of mesh - convex hull */
 static rbCollisionShape *rigidbody_get_shape_convexhull_from_mesh(Object *ob, float margin, bool *can_embed)
 {
@@ -242,15 +256,7 @@
 	int totvert = 0;
 
 	if (ob->type == OB_MESH && ob->data) {
-		if (ob->rigidbody_object->mesh_source == RBO_MESH_DEFORM) {
-			dm = ob->derivedDeform;
-		}
-		else if (ob->rigidbody_object->mesh_source == RBO_MESH_FINAL) {
-			dm = ob->derivedFinal;
-		}
-		else {
-			dm = CDDM_from_mesh(ob->data, ob);
-		}
+		dm = rigidbody_get_mesh(ob);
 		mvert   = (dm) ? dm->getVertArray(dm) : NULL;
 		totvert = (dm) ? dm->getNumVerts(dm) : 0;
 	}
@@ -287,15 +293,7 @@
 		int tottris = 0;
 		int triangle_index = 0;
 
-		if (ob->rigidbody_object->mesh_source == RBO_MESH_DEFORM) {
-			dm = ob->derivedDeform;
-		}
-		else if (ob->rigidbody_object->mesh_source == RBO_MESH_FINAL) {
-			dm = ob->derivedFinal;
-		}
-		else {
-			dm = CDDM_from_mesh(ob->data, ob);
-		}
+		dm = rigidbody_get_mesh(ob);
 
 		/* ensure mesh validity, then grab data */
 		if (dm == NULL)
@@ -384,15 +382,7 @@
 		int totface;
 		int tottris = 0;
 		
-		if (ob->rigidbody_object->mesh_source == RBO_MESH_DEFORM) {
-			dm = ob->derivedDeform;
-		}
-		else if (ob->rigidbody_object->mesh_source == RBO_MESH_FINAL) {
-			dm = ob->derivedFinal;
-		}
-		else {
-			dm = CDDM_from_mesh(ob->data, ob);
-		}
+		dm = rigidbody_get_mesh(ob);
 
 		/* ensure mesh validity, then grab data */
 		BLI_assert(dm!= NULL); // RB_TODO need to make sure there's no case where deform derived mesh doesn't exist




More information about the Bf-blender-cvs mailing list