[Bf-blender-cvs] [b360c9d7f9d] soc-2018-bevel: cleanup of extend edge data and fixed minor errors

Rohan Rathi noreply at git.blender.org
Tue Jul 3 20:34:39 CEST 2018


Commit: b360c9d7f9d1fbb85b6cb71109da39731e3870c6
Author: Rohan Rathi
Date:   Wed Jul 4 00:04:03 2018 +0530
Branches: soc-2018-bevel
https://developer.blender.org/rBb360c9d7f9d1fbb85b6cb71109da39731e3870c6

cleanup of extend edge data and fixed minor errors

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

M	source/blender/bmesh/tools/bmesh_bevel.c
M	source/blender/modifiers/intern/MOD_bevel.c

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

diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c
index 789c2ae4c63..0a8ff3546be 100644
--- a/source/blender/bmesh/tools/bmesh_bevel.c
+++ b/source/blender/bmesh/tools/bmesh_bevel.c
@@ -1551,13 +1551,13 @@ static void check_edge_data_seam_sharp_edges(BevVert *bv, int flag, bool neg)
 		int flag_count = 0;
 		EdgeHalf *ne = e->next;
 		
-		while ((!neg && !EDGE_DATA_CHECK(e, flag) || (neg && EDGE_DATA_CHECK(e, flag))) && ne != efirst) {
+		while ((!neg && !EDGE_DATA_CHECK(ne, flag) || (neg && EDGE_DATA_CHECK(ne, flag))) && ne != efirst) {
 			if (ne->is_bev)
 				flag_count++;
 			ne = ne->next;
 		}
-		if (ne == e || (ne == efirst && (!neg && !EDGE_DATA_CHECK(e, flag) ||
-										(neg && EDGE_DATA_CHECK(e, flag))))) {
+		if (ne == e || (ne == efirst && (!neg && !EDGE_DATA_CHECK(efirst, flag) ||
+										(neg && EDGE_DATA_CHECK(efirst, flag))))) {
 			break;
 		}
  		if (flag == BM_ELEM_SEAM)
@@ -1657,6 +1657,8 @@ static void bevel_extend_edge_data(BevVert *bv)
 
 static void bevel_harden_normals_mode(BMesh *bm, BevelParams *bp, BevVert *bv, BMOperator *op)
 {
+	if (bp->hnmode == BEVEL_HN_NONE)
+		return;
 	int mode = 1;
 
 	VMesh *vm = bv->vmesh;
@@ -1726,69 +1728,6 @@ static void bevel_harden_normals_mode(BMesh *bm, BevelParams *bp, BevVert *bv, B
 	} while (bcur != bstart);
 }
 
-static void bevel_fix_normal_shading_continuity(BevelParams *bp, BMesh *bm, BevVert *bv)
-{
-	GHash *faceHash = bp->faceHash;
-	VMesh *vm = bv->vmesh;
-	BoundVert *bcur = bv->vmesh->boundstart, *start = bcur;
-	int ns = vm->seg;
-	int ns2 = ns / 2;
-
-	BMLoop *l;
-	BMIter liter;
-
-	int cd_clnors_offset = CustomData_get_offset(&bm->ldata, CD_CUSTOMLOOPNORMAL);
-	float ref = 20.0f;
-
-	do {
-		for (int i = 0; i <= ns; i++) {
-			BMVert *v1 = mesh_vert(vm, bcur->index, 0, i)->v;
-			BMEdge *e;
-			BMIter eiter;
-
-			BM_ITER_ELEM(e, &eiter, v1, BM_EDGES_OF_VERT) {
-				BMFace *f_a, *f_b;
-				BM_edge_face_pair(e, &f_a, &f_b);
-
-				bool _f_a = false, _f_b = false;
-				if (f_a)
-					_f_a = BLI_ghash_haskey(faceHash, f_a);
-				if (f_b)
-					_f_b = BLI_ghash_haskey(faceHash, f_b);
-				if (_f_a ^ _f_b) {
-
-					BM_ITER_ELEM(l, &liter, v1, BM_LOOPS_OF_VERT) {
-
-						if (l->f == f_a || l->f == f_b) {
-							const int l_index = BM_elem_index_get(l);
-							short *clnors = BM_ELEM_CD_GET_VOID_P(l, cd_clnors_offset);
-							float n_final[3], pow_a[3], pow_b[3];
-
-							zero_v3(n_final);
-							copy_v3_v3(pow_a, f_a->no);
-							copy_v3_v3(pow_b, f_b->no);
-							if (_f_a) {
-								mul_v3_fl(pow_a, ns / ref);
-								mul_v3_fl(pow_b, ref / ns);
-							}
-							else {
-								mul_v3_fl(pow_b, ns / ref);
-								mul_v3_fl(pow_a, ref / ns);
-							}
-							add_v3_v3(n_final, pow_a);
-							add_v3_v3(n_final, pow_b);
-							normalize_v3(n_final);
-
-							BKE_lnor_space_custom_normal_to_data(bm->lnor_spacearr->lspacearr[l_index], n_final, clnors);
-						}
-					}
-				}
-			}
-		}
-		bcur = bcur->next;
-	} while (bcur != start);
-}
-
 /* Set the any_seam property for a BevVert and all its BoundVerts */
 static void set_bound_vert_seams(BevVert *bv, bool mark_seam, bool mark_sharp)
 {
@@ -3761,7 +3700,7 @@ static void bevel_build_rings(BevelParams *bp, BMesh *bm, BevVert *bv)
 		vm1 = adj_vmesh(bp, bv);
 	}
 
-	bool do_fix_shading_bv = ((bp->faceHash != NULL) && bv->fix_shading);
+	bool do_fix_shading_bv = bp->faceHash != NULL;
 
 	/* copy final vmesh into bv->vmesh, make BMVerts and BMFaces */
 	vm = bv->vmesh;
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c
index f89494f7c71..a61705646e6 100644
--- a/source/blender/modifiers/intern/MOD_bevel.c
+++ b/source/blender/modifiers/intern/MOD_bevel.c
@@ -190,14 +190,14 @@ static void bevel_mod_harden_normals(BevelModifierData *bmd, BMesh *bm, float hn
 							mul_v3_v3fl(cur, lfan_pivot->f->no, BM_face_calc_area(lfan_pivot->f));
 							add_v3_v3(cn_wght, cur);
 						}
-						if (!BM_elem_flag_test(e_next, BM_ELEM_TAG) || (e_next == e_org)) {
-							break;
-						}
-						lfan_pivot = lfan_pivot_next;
 						if (!BLI_ghash_haskey(faceHash, f)) {
 							recon_face = f;
 							recon_face_count++;
 						}
+						if (!BM_elem_flag_test(e_next, BM_ELEM_TAG) || (e_next == e_org)) {
+							break;
+						}
+						lfan_pivot = lfan_pivot_next;
 					}
 
 					normalize_v3(cn_wght);



More information about the Bf-blender-cvs mailing list