[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45909] trunk/blender/source/blender/bmesh /tools/BME_bevel.c: fix [#30997] Bevel angle option is broken ( bevel vertex only)

Campbell Barton ideasman42 at gmail.com
Tue Apr 24 07:38:11 CEST 2012


Revision: 45909
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45909
Author:   campbellbarton
Date:     2012-04-24 05:38:11 +0000 (Tue, 24 Apr 2012)
Log Message:
-----------
fix [#30997] Bevel angle option is broken (bevel vertex only)

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/tools/BME_bevel.c

Modified: trunk/blender/source/blender/bmesh/tools/BME_bevel.c
===================================================================
--- trunk/blender/source/blender/bmesh/tools/BME_bevel.c	2012-04-24 05:28:19 UTC (rev 45908)
+++ trunk/blender/source/blender/bmesh/tools/BME_bevel.c	2012-04-24 05:38:11 UTC (rev 45909)
@@ -785,7 +785,7 @@
 	return dot_v3v3(vec3, vec4);
 }
 
-static float UNUSED_FUNCTION(BME_bevel_get_angle_vert)(BMVert *v)
+static float BME_bevel_get_angle_vert(BMVert *v)
 {
 	BMIter iter;
 	BMLoop *l;
@@ -803,10 +803,11 @@
 	BM_ITER_ELEM (l, &iter, v, BM_LOOPS_OF_VERT) {
 		/* could cache from before */
 		BM_loop_calc_face_normal(l, n_tmp);
-		angle_diff += angle_normalized_v3v3(n, n_tmp) * (BM_loop_calc_face_angle(l) * (float)(M_PI * 0.5));
+		angle_diff += angle_normalized_v3v3(n, n_tmp) * (BM_loop_calc_face_angle(l));
 	}
 
-	return angle_diff;
+	/* return cosf(angle_diff + 0.001f); */ /* compare with dot product */
+	return angle_diff * 0.5f;
 }
 
 static void BME_bevel_add_vweight(BME_TransData_Head *td, BMesh *bm, BMVert *v, float weight, float factor, int options)
@@ -851,8 +852,7 @@
 	BMVert *v;
 	BMIter iter;
 	float weight;
-//	const float threshold = (options & BME_BEVEL_ANGLE) ? cosf(angle + 0.001) : 0.0f;
-	(void)angle;
+	/* const float threshold = (options & BME_BEVEL_ANGLE) ? cosf(angle + 0.001) : 0.0f; */ /* UNUSED */
 
 	BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
 		weight = 0.0f;
@@ -867,14 +867,12 @@
 			else if (options & BME_BEVEL_WEIGHT) {
 				weight = BM_elem_float_data_get(&bm->vdata, v, CD_BWEIGHT);
 			}
-#if 0 // not working well
 			else if (options & BME_BEVEL_ANGLE) {
 				/* dont set weight_v1/weight_v2 here, add direct */
-				if (BME_bevel_get_angle_vert(bm, v) < threshold) {
+				if (BME_bevel_get_angle_vert(v) > angle) {
 					weight = 1.0f;
 				}
 			}
-#endif
 			else {
 				weight = 1.0f;
 			}




More information about the Bf-blender-cvs mailing list