[Bf-blender-cvs] [e4e8e35] master: BMesh: maintain select-history when sorting

Campbell Barton noreply at git.blender.org
Wed Oct 7 06:47:19 CEST 2015


Commit: e4e8e359a15401a90f54db7131c1690a1bff385a
Author: Campbell Barton
Date:   Wed Oct 7 15:39:06 2015 +1100
Branches: master
https://developer.blender.org/rBe4e8e359a15401a90f54db7131c1690a1bff385a

BMesh: maintain select-history when sorting

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

M	source/blender/bmesh/intern/bmesh_mesh.c

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

diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c
index 115330c..9036e88 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.c
+++ b/source/blender/bmesh/intern/bmesh_mesh.c
@@ -1665,6 +1665,40 @@ void BM_mesh_remap(
 		}
 	}
 
+	/* Selection history */
+	{
+		BMEditSelection *ese;
+		for (ese = bm->selected.first; ese; ese = ese->next) {
+			switch (ese->htype) {
+				case BM_VERT:
+					if (vptr_map) {
+						ese->ele = BLI_ghash_lookup(vptr_map, ese->ele);
+						BLI_assert(ese->ele);
+					}
+					break;
+				case BM_EDGE:
+					if (eptr_map) {
+						ese->ele = BLI_ghash_lookup(eptr_map, ese->ele);
+						BLI_assert(ese->ele);
+					}
+					break;
+				case BM_FACE:
+					if (fptr_map) {
+						ese->ele = BLI_ghash_lookup(fptr_map, ese->ele);
+						BLI_assert(ese->ele);
+					}
+					break;
+			}
+		}
+	}
+
+	if (fptr_map) {
+		if (bm->act_face) {
+			bm->act_face = BLI_ghash_lookup(fptr_map, bm->act_face);
+			BLI_assert(bm->act_face);
+		}
+	}
+
 	if (vptr_map)
 		BLI_ghash_free(vptr_map, NULL, NULL);
 	if (eptr_map)




More information about the Bf-blender-cvs mailing list