[Bf-blender-cvs] [9dcabad] fracture_modifier: fix for trimesh shape, in case of fracture modifier take physical mesh from each meshisland as shape mesh now
Martin Felke
noreply at git.blender.org
Sun Oct 11 21:52:07 CEST 2015
Commit: 9dcabad07b0bcf57268a16512bb00701ff0448d1
Author: Martin Felke
Date: Sun Oct 11 21:51:58 2015 +0200
Branches: fracture_modifier
https://developer.blender.org/rB9dcabad07b0bcf57268a16512bb00701ff0448d1
fix for trimesh shape, in case of fracture modifier take physical mesh from each meshisland as shape mesh now
===================================================================
M source/blender/blenkernel/intern/rigidbody.c
===================================================================
diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index f418771..b5562e4 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -752,7 +752,8 @@ static rbCollisionShape *rigidbody_get_shape_trimesh_from_mesh_shard(MeshIsland
int tottri;
const MLoop *mloop;
- dm = rigidbody_get_mesh(ob);
+ //dm = rigidbody_get_mesh(ob);
+ dm = mi->physics_mesh;
/* ensure mesh validity, then grab data */
if (dm == NULL)
@@ -815,12 +816,15 @@ static rbCollisionShape *rigidbody_get_shape_trimesh_from_mesh_shard(MeshIsland
}
}
+#if 0
/* cleanup temp data */
if (dm && ob->rigidbody_object->mesh_source == RBO_MESH_BASE) {
dm->needsFree = 1;
dm->release(dm);
dm = NULL;
}
+#endif
+
}
else {
printf("ERROR: cannot make Triangular Mesh collision shape for non-Mesh object\n");
@@ -2700,11 +2704,11 @@ static void rigidbody_update_sim_ob(Scene *scene, RigidBodyWorld *rbw, Object *o
int totvert = dm->getNumVerts(dm);
BoundBox *bb = BKE_object_boundbox_get(ob);
- if (RB_shape_get_num_verts(rbo->physics_shape) != totvert || rbo->mesh_source == RBO_MESH_FINAL)
+ if (RB_shape_get_num_verts(rbo->physics_shape) != totvert)
{
if (mi != NULL)
{
- //fracture modifier case
+ //fracture modifier case TODO, update mi->physicsmesh somehow and redraw
rbo->flag |= RBO_FLAG_NEEDS_RESHAPE;
validateShard(rbw, mi, ob, false, false);
}
More information about the Bf-blender-cvs
mailing list