[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