[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