[Bf-blender-cvs] [afa2287ea30] fracture_modifier: fix, do not recalculate autohide when only changing automerge dist

Martin Felke noreply at git.blender.org
Wed Jun 14 12:49:34 CEST 2017


Commit: afa2287ea30a170d6517a56630704ab4cf6022d1
Author: Martin Felke
Date:   Wed Jun 14 12:23:56 2017 +0200
Branches: fracture_modifier
https://developer.blender.org/rBafa2287ea30a170d6517a56630704ab4cf6022d1

fix, do not recalculate autohide when only changing automerge dist

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

M	source/blender/blenkernel/intern/fracture.c
M	source/blender/makesrna/intern/rna_fracture.c
M	source/blender/modifiers/intern/MOD_fracture.c

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

diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index 2a9e13c0515..a5a564c917c 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -2805,6 +2805,15 @@ int BKE_fracture_update_visual_mesh(FractureModifierData *fmd, Object *ob, bool
 	if (!fmd->visible_mesh_cached)
 		return 0;
 
+	//store start mesh in order to be able to change autohide dist based on it later in sim too !
+	if (fmd->dm) {
+		fmd->dm->needsFree = 1;
+		fmd->dm->release(fmd->dm);
+		fmd->dm = NULL;
+	}
+
+	fmd->dm = CDDM_copy(fmd->visible_mesh_cached);
+
 	dm = fmd->visible_mesh_cached;
 	mv = dm->getVertArray(dm);
 	totvert = dm->getNumVerts(dm);
diff --git a/source/blender/makesrna/intern/rna_fracture.c b/source/blender/makesrna/intern/rna_fracture.c
index 0f342e0333d..fecf0b0402c 100644
--- a/source/blender/makesrna/intern/rna_fracture.c
+++ b/source/blender/makesrna/intern/rna_fracture.c
@@ -900,7 +900,7 @@ void RNA_def_fracture(BlenderRNA *brna)
 
 	prop = RNA_def_property(srna, "automerge_dist", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "automerge_dist");
-	RNA_def_property_float_funcs(prop, NULL, "rna_FractureModifier_automerge_dist_set", NULL);
+	//RNA_def_property_float_funcs(prop, NULL, "rna_FractureModifier_automerge_dist_set", NULL);
 	RNA_def_property_range(prop, 0.0f, 10.0f);
 	RNA_def_property_ui_text(prop, "Automerge Distance",
  "Distance between faces below which vertices of both faces should be merged; (costs performance, use with smooth objects and fix normals to better hide cracks)");
diff --git a/source/blender/modifiers/intern/MOD_fracture.c b/source/blender/modifiers/intern/MOD_fracture.c
index bd44b3fa737..56ba4b17d8c 100644
--- a/source/blender/modifiers/intern/MOD_fracture.c
+++ b/source/blender/modifiers/intern/MOD_fracture.c
@@ -5070,7 +5070,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 			}
 		}
 
-		if (fmd->visible_mesh_cached) {
+		if (fmd->visible_mesh_cached && fmd->dm) {
 
 			if (fmd->refresh_autohide) {
 
@@ -5081,11 +5081,11 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 						fmd->face_pairs = BLI_ghash_int_new("face_pairs");
 					}
 
-					make_face_pairs(fmd, fmd->visible_mesh_cached, ob);
+					make_face_pairs(fmd, fmd->dm, ob);
 
 
 					free_shared_verts(&fmd->shared_verts);
-					make_shared_vert_groups(fmd, fmd->visible_mesh_cached, &fmd->shared_verts);
+					make_shared_vert_groups(fmd, fmd->dm, &fmd->shared_verts);
 				}
 
 				fmd->refresh_autohide = false;




More information about the Bf-blender-cvs mailing list