Commit: 379a754b83d6bea4591a9977f25536fdcc2780cb
Author: Martin Felke
Date:   Thu Oct 29 15:58:27 2015 +0100
Branches: fracture_modifier
https://developer.blender.org/rB379a754b83d6bea4591a9977f25536fdcc2780cb

changed volume calculation method for convex hull and triangle meshes, mass 
fractions should be calculated more accurately now, but note, might change 
behavior of older simulations !!!

===================================================================

M       source/blender/blenkernel/intern/rigidbody.c

===================================================================

diff --git a/source/blender/blenkernel/intern/rigidbody.c 
b/source/blender/blenkernel/intern/rigidbody.c
index 80e0098..53b843b 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -295,8 +295,6 @@ float BKE_rigidbody_calc_volume(DerivedMesh *dm, 
RigidBodyOb *rbo)
                 * NOTE: this may overestimate the volume, but other methods 
are overkill
                 */
                case RB_SHAPE_BOX:
-               case RB_SHAPE_CONVEXH:
-               case RB_SHAPE_TRIMESH:
                        volume = size[0] * size[1] * size[2];
                        if (size[0] == 0) {
                                volume = size[1] * size[2];
@@ -309,6 +307,22 @@ float BKE_rigidbody_calc_volume(DerivedMesh *dm, 
RigidBodyOb *rbo)
                        }
                        break;
 
+               case RB_SHAPE_CONVEXH:
+               case RB_SHAPE_TRIMESH:
+               {
+                       MVert *mvert = dm->getVertArray(dm);
+                       int totvert = dm->getNumVerts(dm);
+                       MLoopTri *mlooptri = dm->getLoopTriArray(dm);
+                       int tottri = dm->getNumLoopTri(dm);
+                       MLoop *mloop = dm->getLoopArray(dm);
+
+                       BKE_mesh_calc_volume(mvert, totvert, mlooptri, tottri, 
mloop, &volume, NULL);
+
+                       if (volume == 0.0f)
+                               volume = 0.00001f;
+                       break;
+               }
+
 #if 0 // XXX: not defined yet
                case RB_SHAPE_COMPOUND:
                        volume = 0.0f;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to