[Bf-blender-cvs] [b45a464794d] temp-object-multi-mode: Fix index offset (uv unwrap works now)

Campbell Barton noreply at git.blender.org
Tue Mar 13 04:34:36 CET 2018


Commit: b45a464794d4974772141944a7daac8a57c43e2a
Author: Campbell Barton
Date:   Tue Mar 13 14:42:22 2018 +1100
Branches: temp-object-multi-mode
https://developer.blender.org/rBb45a464794d4974772141944a7daac8a57c43e2a

Fix index offset (uv unwrap works now)

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

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 16ccbae1581..67bb788ee61 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.c
+++ b/source/blender/bmesh/intern/bmesh_mesh.c
@@ -1181,9 +1181,6 @@ void BM_mesh_elem_index_ensure_ex(BMesh *bm, const char htype, int elem_offset[4
 			BM_ITER_MESH (ele, &iter, bm, BM_VERTS_OF_MESH) {
 				BM_elem_index_set(ele, index++); /* set_ok */
 			}
-			if (elem_offset) {
-				elem_offset[0] = index;
-			}
 			BLI_assert(elem_offset || index == bm->totvert);
 		}
 		else {
@@ -1200,9 +1197,6 @@ void BM_mesh_elem_index_ensure_ex(BMesh *bm, const char htype, int elem_offset[4
 			BM_ITER_MESH (ele, &iter, bm, BM_EDGES_OF_MESH) {
 				BM_elem_index_set(ele, index++); /* set_ok */
 			}
-			if (elem_offset) {
-				elem_offset[1] = index;
-			}
 			BLI_assert(elem_offset || index == bm->totedge);
 		}
 		else {
@@ -1236,11 +1230,6 @@ void BM_mesh_elem_index_ensure_ex(BMesh *bm, const char htype, int elem_offset[4
 				}
 			}
 
-			if (elem_offset) {
-				elem_offset[2] = index_loop;
-				elem_offset[3] = index;
-			}
-
 			BLI_assert(elem_offset || !update_face || index == bm->totface);
 			if (update_loop) {
 				BLI_assert(elem_offset || !update_loop || index_loop == bm->totloop);
@@ -1255,21 +1244,25 @@ finally:
 	bm->elem_index_dirty &= ~htype;
 	if (elem_offset) {
 		if (htype & BM_VERT) {
+			elem_offset[0] += bm->totvert;
 			if (elem_offset[0] != bm->totvert) {
 				bm->elem_index_dirty |= BM_VERT;
 			}
 		}
 		if (htype & BM_EDGE) {
+			elem_offset[1] += bm->totedge;
 			if (elem_offset[1] != bm->totedge) {
 				bm->elem_index_dirty |= BM_EDGE;
 			}
 		}
 		if (htype & BM_LOOP) {
+			elem_offset[2] += bm->totloop;
 			if (elem_offset[2] != bm->totloop) {
 				bm->elem_index_dirty |= BM_LOOP;
 			}
 		}
 		if (htype & BM_FACE) {
+			elem_offset[3] += bm->totface;
 			if (elem_offset[3] != bm->totface) {
 				bm->elem_index_dirty |= BM_FACE;
 			}



More information about the Bf-blender-cvs mailing list