[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