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