[Bf-blender-cvs] [20f3cbfb78b] master: Cleanup: More clear naming in UV vertex/element mappings

Sergey Sharybin noreply at git.blender.org
Mon Jul 16 15:45:11 CEST 2018


Commit: 20f3cbfb78b37fdc201d30be52a249cd08fa5d83
Author: Sergey Sharybin
Date:   Mon Jul 16 15:37:27 2018 +0200
Branches: master
https://developer.blender.org/rB20f3cbfb78b37fdc201d30be52a249cd08fa5d83

Cleanup: More clear naming in UV vertex/element mappings

Also use unsigned short for loop index within a polygon for UV vertex
mapping, which matches UV element mapping.

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

M	source/blender/blenkernel/BKE_mesh_mapping.h
M	source/blender/blenkernel/intern/mesh_mapping.c
M	source/blender/blenkernel/intern/subsurf_ccg.c
M	source/blender/editors/mesh/editmesh_utils.c
M	source/blender/editors/uvedit/uvedit_ops.c
M	source/blender/editors/uvedit/uvedit_smart_stitch.c

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

diff --git a/source/blender/blenkernel/BKE_mesh_mapping.h b/source/blender/blenkernel/BKE_mesh_mapping.h
index b5b5443574c..aedffb17ae6 100644
--- a/source/blender/blenkernel/BKE_mesh_mapping.h
+++ b/source/blender/blenkernel/BKE_mesh_mapping.h
@@ -50,8 +50,12 @@ typedef struct UvVertMap {
 
 typedef struct UvMapVert {
 	struct UvMapVert *next;
-	unsigned int f;
-	unsigned char tfindex, separate, flag;
+	unsigned int poly_index;
+	unsigned short loop_of_poly_index;
+	bool separate;
+	/* Zero-ed by map creation, left for use by specific areas. Is not
+	 * initialized to anything. */
+	unsigned char flag;
 } UvMapVert;
 
 /* UvElement stores per uv information so that we can quickly access information for a uv.
@@ -63,9 +67,9 @@ typedef struct UvElement {
 	/* Face the element belongs to */
 	struct BMLoop *l;
 	/* index in loop. */
-	unsigned short tfindex;
+	unsigned short loop_of_poly_index;
 	/* Whether this element is the first of coincident elements */
-	unsigned char separate;
+	bool separate;
 	/* general use flag */
 	unsigned char flag;
 	/* If generating element map with island sorting, this stores the island index */
diff --git a/source/blender/blenkernel/intern/mesh_mapping.c b/source/blender/blenkernel/intern/mesh_mapping.c
index 699d6bce2b0..953d3ff2f96 100644
--- a/source/blender/blenkernel/intern/mesh_mapping.c
+++ b/source/blender/blenkernel/intern/mesh_mapping.c
@@ -103,8 +103,8 @@ UvVertMap *BKE_mesh_uv_vert_map_create(
 			nverts = mp->totloop;
 
 			for (i = 0; i < nverts; i++) {
-				buf->tfindex = (unsigned char)i;
-				buf->f = a;
+				buf->loop_of_poly_index = (unsigned short)i;
+				buf->poly_index = a;
 				buf->separate = 0;
 				buf->next = vmap->vert[mloop[mp->loopstart + i].v];
 				vmap->vert[mloop[mp->loopstart + i].v] = buf;
@@ -134,19 +134,19 @@ UvVertMap *BKE_mesh_uv_vert_map_create(
 			v->next = newvlist;
 			newvlist = v;
 
-			uv = mloopuv[mpoly[v->f].loopstart + v->tfindex].uv;
+			uv = mloopuv[mpoly[v->poly_index].loopstart + v->loop_of_poly_index].uv;
 			lastv = NULL;
 			iterv = vlist;
 
 			while (iterv) {
 				next = iterv->next;
 
-				uv2 = mloopuv[mpoly[iterv->f].loopstart + iterv->tfindex].uv;
+				uv2 = mloopuv[mpoly[iterv->poly_index].loopstart + iterv->loop_of_poly_index].uv;
 				sub_v2_v2v2(uvdiff, uv2, uv);
 
 
 				if (fabsf(uv[0] - uv2[0]) < limit[0] && fabsf(uv[1] - uv2[1]) < limit[1] &&
-				    (!use_winding || winding[iterv->f] == winding[v->f]))
+				    (!use_winding || winding[iterv->poly_index] == winding[v->poly_index]))
 				{
 					if (lastv) lastv->next = next;
 					else vlist = next;
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 1f1270b85b6..dadffbf8fb4 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -285,11 +285,11 @@ static void get_face_uv_map_vert(UvVertMap *vmap, struct MPoly *mpoly, struct ML
 		for (nv = v = BKE_mesh_uv_vert_map_get_vert(vmap, ml[j].v); v; v = v->next) {
 			if (v->separate)
 				nv = v;
-			if (v->f == fi)
+			if (v->poly_index == fi)
 				break;
 		}
 
-		fverts[j] = SET_UINT_IN_POINTER(mpoly[nv->f].loopstart + nv->tfindex);
+		fverts[j] = SET_UINT_IN_POINTER(mpoly[nv->poly_index].loopstart + nv->loop_of_poly_index);
 	}
 }
 
@@ -337,7 +337,7 @@ static int ss_sync_from_uv(CCGSubSurf *ss, CCGSubSurf *origss, DerivedMesh *dm,
 		for (v = BKE_mesh_uv_vert_map_get_vert(vmap, i); v; v = v->next) {
 			if (v->separate) {
 				CCGVert *ssv;
-				int loopid = mpoly[v->f].loopstart + v->tfindex;
+				int loopid = mpoly[v->poly_index].loopstart + v->loop_of_poly_index;
 				CCGVertHDL vhdl = SET_INT_IN_POINTER(loopid);
 
 				copy_v2_v2(uv, mloopuv[loopid].uv);
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c
index 250d8ca23c1..7a344be8e5a 100644
--- a/source/blender/editors/mesh/editmesh_utils.c
+++ b/source/blender/editors/mesh/editmesh_utils.c
@@ -561,8 +561,8 @@ UvVertMap *BM_uv_vert_map_create(
 			}
 
 			BM_ITER_ELEM_INDEX(l, &liter, efa, BM_LOOPS_OF_FACE, i) {
-				buf->tfindex = i;
-				buf->f = a;
+				buf->loop_of_poly_index = i;
+				buf->poly_index = a;
 				buf->separate = 0;
 
 				buf->next = vmap->vert[BM_elem_index_get(l->v)];
@@ -593,10 +593,10 @@ UvVertMap *BM_uv_vert_map_create(
 			v->next = newvlist;
 			newvlist = v;
 
-			efa = BM_face_at_index(bm, v->f);
+			efa = BM_face_at_index(bm, v->poly_index);
 			/* tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY); */ /* UNUSED */
 
-			l = BM_iter_at_index(bm, BM_LOOPS_OF_FACE, efa, v->tfindex);
+			l = BM_iter_at_index(bm, BM_LOOPS_OF_FACE, efa, v->loop_of_poly_index);
 			luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
 			uv = luv->uv;
 
@@ -605,17 +605,17 @@ UvVertMap *BM_uv_vert_map_create(
 
 			while (iterv) {
 				next = iterv->next;
-				efa = BM_face_at_index(bm, iterv->f);
+				efa = BM_face_at_index(bm, iterv->poly_index);
 				/* tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY); */ /* UNUSED */
 
-				l = BM_iter_at_index(bm, BM_LOOPS_OF_FACE, efa, iterv->tfindex);
+				l = BM_iter_at_index(bm, BM_LOOPS_OF_FACE, efa, iterv->loop_of_poly_index);
 				luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
 				uv2 = luv->uv;
 
 				sub_v2_v2v2(uvdiff, uv2, uv);
 
 				if (fabsf(uvdiff[0]) < limit[0] && fabsf(uvdiff[1]) < limit[1] &&
-				    (!use_winding || winding[iterv->f] == winding[v->f]))
+				    (!use_winding || winding[iterv->poly_index] == winding[v->poly_index]))
 				{
 					if (lastv) lastv->next = next;
 					else vlist = next;
@@ -712,7 +712,7 @@ UvElementMap *BM_uv_element_map_create(
 				buf->l = l;
 				buf->separate = 0;
 				buf->island = INVALID_ISLAND;
-				buf->tfindex = i;
+				buf->loop_of_poly_index = i;
 
 				buf->next = element_map->vert[BM_elem_index_get(l->v)];
 				element_map->vert[BM_elem_index_get(l->v)] = buf;
@@ -825,7 +825,7 @@ UvElementMap *BM_uv_element_map_create(
 								map[element - element_map->buf] = islandbufsize;
 								islandbuf[islandbufsize].l = element->l;
 								islandbuf[islandbufsize].separate = element->separate;
-								islandbuf[islandbufsize].tfindex = element->tfindex;
+								islandbuf[islandbufsize].loop_of_poly_index = element->loop_of_poly_index;
 								islandbuf[islandbufsize].island =  nislands;
 								islandbufsize++;
 
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 3aacd9b4605..375dda7dd6a 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -1043,7 +1043,7 @@ static UvMapVert *uv_select_edgeloop_vertex_map_get(UvVertMap *vmap, BMFace *efa
 	for (iterv = first; iterv; iterv = iterv->next) {
 		if (iterv->separate)
 			first = iterv;
-		if (iterv->f == BM_elem_index_get(efa))
+		if (iterv->poly_index == BM_elem_index_get(efa))
 			return first;
 	}
 
@@ -1065,9 +1065,9 @@ static bool uv_select_edgeloop_edge_tag_faces(BMEditMesh *em, UvMapVert *first1,
 			if (iterv2->separate && iterv2 != first2)
 				break;
 
-			if (iterv1->f == iterv2->f) {
+			if (iterv1->poly_index == iterv2->poly_index) {
 				/* if face already tagged, don't do this edge */
-				efa = BM_face_at_index(em->bm, iterv1->f);
+				efa = BM_face_at_index(em->bm, iterv1->poly_index);
 				if (BM_elem_flag_test(efa, BM_ELEM_TAG))
 					return false;
 
@@ -1091,8 +1091,8 @@ static bool uv_select_edgeloop_edge_tag_faces(BMEditMesh *em, UvMapVert *first1,
 			if (iterv2->separate && iterv2 != first2)
 				break;
 
-			if (iterv1->f == iterv2->f) {
-				efa = BM_face_at_index(em->bm, iterv1->f);
+			if (iterv1->poly_index == iterv2->poly_index) {
+				efa = BM_face_at_index(em->bm, iterv1->poly_index);
 				BM_elem_flag_enable(efa, BM_ELEM_TAG);
 				break;
 			}
@@ -1301,16 +1301,16 @@ static void uv_select_linked(
 			for (iterv = vlist; iterv; iterv = iterv->next) {
 				if (iterv->separate)
 					startv = iterv;
-				if (iterv->f == a)
+				if (iterv->poly_index == a)
 					break;
 			}
 
 			for (iterv = startv; iterv; iterv = iterv->next) {
 				if ((startv != iterv) && (iterv->separate))
 					break;
-				else if (!flag[iterv->f]) {
-					flag[iterv->f] = 1;
-					stack[stacksize] = iterv->f;
+				else if (!flag[iterv->poly_index]) {
+					flag[iterv->poly_index] = 1;
+					stack[stacksize] = iterv->poly_index;
 					stacksize++;
 				}
 			}
@@ -2750,7 +2750,7 @@ static void uv_select_flush_from_tag_sticky_loc_internal(
 		if (vlist_iter->separate)
 			start_vlist = vlist_iter;
 
-		if (efa_index == vlist_iter->f)
+		if (efa_index == vlist_iter->poly_index)
 			break;
 
 		vlist_iter = vlist_iter->next;
@@ -2762,12 +2762,12 @@ static void uv_select_flush_from_tag_sticky_loc_internal(
 		if (vlist_iter != start_vlist && vlist_iter->separate)
 			break;
 
-		if (efa_index != vlist_iter->f) {
+		if (efa_index != vlist_iter->poly_index) {
 			BMLoop *l_other;
-			efa_vlist = BM_face_at_index(em->bm, vlist_iter->f);
+			efa_vlist = BM_face_at_index(em->bm, vlist_iter->poly_index);
 			/* tf_vlist = BM_ELEM_CD_GET_VOID_P(efa_vlist, cd_poly_tex_offset); */ /* UNUSED */
 
-			l_other = BM_iter_at_index(em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->tfindex);
+			l_other = BM_iter_at_index(em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->loop_of_poly_index);
 
 			uvedit_uv_select_set(em, scene, l_other, select, false, cd_loop_uv_offset);
 		}
@@ -4241,14 +4241,14 @@ static int uv_seams_from_islands_exec(bContext *C, wmOperator *op)
 				v1coincident = 0;
 
 			separated2 = 0;
-			efa1 = BM_face_at_index(bm, mv1->f);
+			efa1 = BM_face_at_index(bm, mv1->poly_index);
 			mvinit2 = vmap->vert[BM_elem_index_get(editedge->v2)];
 
 			for (mv2 = mvinit2; mv2; mv2 = mv2->next) {
 				if (mv2->separate)
 					mv2sep = mv2;
 
-				efa2 = BM_face_at_index(bm, mv2->f);
+				efa2 = BM_face_at_index(bm, mv2->poly_index);
 				if (efa1 == efa2) {
 					/* if v1 is not coincident no point in comparing */
 					if (v1coincident) {
diff --git a/source/blender/editors/uvedit/uvedit_smart_stitch.c b/source/blender/editors/uvedit/uvedit_smart_stitch.c
index e4452af4790..0b768350942 100644
--- a/source/blender/editors/uved

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list