diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-11-09 12:28:14 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-11-09 12:28:14 +0400 |
commit | eff734203ff7a0f4a4f97015c9f1f59632c75abf (patch) | |
tree | 8bcb05093f6a87ae154293e0b397f905e534669e /source/blender | |
parent | 9dcd7f3b0b55e49a18296a67863368a0c4fca8b0 (diff) |
add fallbacks for BM_vert_calc_shell_factor() and BM_vert_calc_mean_tagged_edge_length() to avoid divide by zero when a vertex has no connected geometry.
also style cleanup.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/anim.c | 6 | ||||
-rw-r--r-- | source/blender/blenlib/PIL_time.h | 7 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_queries.c | 14 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_bevel.c | 3 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 2 | ||||
-rw-r--r-- | source/blender/editors/transform/transform.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 9 |
7 files changed, 29 insertions, 14 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 1aed26db48d..f5c0660371b 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -727,7 +727,7 @@ static DupliObject *new_dupli_object(ListBase *lb, Object *ob, float mat[][4], i * goes first in the array. */ dob->persistent_id[0] = index; for (i = 1; i < level; i++) - dob->persistent_id[i] = persistent_id[level-1-i]; + dob->persistent_id[i] = persistent_id[level - 1 - i]; /* metaballs never draw in duplis, they are instead merged into one by the basis * mball outside of the group. this does mean that if that mball is not in the @@ -1647,7 +1647,7 @@ static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBas /* keep track of persistent id */ if (level > 0) - persistent_id[level-1] = index; + persistent_id[level - 1] = index; if (ob->transflag & OB_DUPLIPARTS) { ParticleSystem *psys = ob->particlesystem.first; @@ -1694,7 +1694,7 @@ static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBas /* clear persistent id */ if (level > 0) - persistent_id[level-1] = 0; + persistent_id[level - 1] = 0; } /* Returns a list of DupliObject diff --git a/source/blender/blenlib/PIL_time.h b/source/blender/blenlib/PIL_time.h index afad190ba23..c3e7e8486d9 100644 --- a/source/blender/blenlib/PIL_time.h +++ b/source/blender/blenlib/PIL_time.h @@ -20,7 +20,7 @@ * * The Original Code is: all of this file. * - * Contributor(s): none yet. + * Contributor(s): Campbell Barton * * ***** END GPL LICENSE BLOCK ***** */ @@ -76,7 +76,10 @@ void PIL_sleep_ms(int ms); fflush(stdout); \ } (void)0 - +/** + * Given some function/expression: + * TIMEIT_BENCH(some_function(), some_unique_description); + */ #define TIMEIT_BENCH(expr, id) \ { \ TIMEIT_START(id); \ diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c index ed36a86274c..8eb87cf29be 100644 --- a/source/blender/bmesh/intern/bmesh_queries.c +++ b/source/blender/bmesh/intern/bmesh_queries.c @@ -1024,7 +1024,12 @@ float BM_vert_calc_shell_factor(BMVert *v) accum_angle += face_angle; } - return accum_shell / accum_angle; + if (accum_angle != 0.0f) { + return accum_shell / accum_angle; + } + else { + return 1.0f; + } } /** @@ -1045,7 +1050,12 @@ float BM_vert_calc_mean_tagged_edge_length(BMVert *v) } } - return length / (float)tot; + if (tot) { + return length / (float)tot; + } + else { + return 0.0f; + } } diff --git a/source/blender/bmesh/operators/bmo_bevel.c b/source/blender/bmesh/operators/bmo_bevel.c index 8ced18d6d90..50d3598dba2 100644 --- a/source/blender/bmesh/operators/bmo_bevel.c +++ b/source/blender/bmesh/operators/bmo_bevel.c @@ -1155,8 +1155,7 @@ static void bevel_vert_construct(BMesh *bm, BevelParams *bp, BMOperator *op, BMV /* Gather input selected edges. * Only bevel selected edges that have exactly two incident faces. */ BMO_ITER (bme, &siter, bm, op, "geom", BM_EDGE) { - if ((bme->v1 == v) || (BM_edge_other_vert(bme, bme->v1) == v)) - { + if ((bme->v1 == v) || (BM_edge_other_vert(bme, bme->v1) == v)) { if (BM_edge_face_count(bme) == 2) { BMO_elem_flag_enable(bm, bme, EDGE_SELECTED); nsel++; diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 60cf9a3c4c4..db74179b569 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1214,7 +1214,7 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d) hmargin = 0.1f * (x2 - x1); vmargin = 0.05f * (y2 - y1); - uiDrawBox(GL_LINE_LOOP, x1 + hmargin, y1+vmargin, x2 - hmargin, y2 - vmargin, 2.0f); + uiDrawBox(GL_LINE_LOOP, x1 + hmargin, y1 + vmargin, x2 - hmargin, y2 - vmargin, 2.0f); hmargin = 0.035f * (x2 - x1); vmargin = 0.035f * (y2 - y1); diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 961e5c49ab2..1334db63865 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1223,7 +1223,7 @@ int transformEvent(TransInfo *t, wmEvent *event) break; case LEFTALTKEY: case RIGHTALTKEY: - if (ELEM(t->spacetype ,SPACE_SEQ, SPACE_VIEW3D)) { + if (ELEM(t->spacetype, SPACE_SEQ, SPACE_VIEW3D)) { t->flag |= T_ALT_TRANSFORM; t->redraw |= TREDRAW_HARD; } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 236ab264f8c..14244de00f6 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2979,9 +2979,12 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U event.keymodifier = 0; /* if test_break set, it catches this. Do not set with modifier presses. XXX Keep global for now? */ - if (event.type == ESCKEY && event.val == KM_PRESS && - event.shift == 0 && event.ctrl == 0 && event.alt == 0) - G.is_break = TRUE; + if ((event.type == ESCKEY && event.val == KM_PRESS) && + /* check other modifiers because ms-windows uses these to bring up the task manager */ + (event.shift == 0 && event.ctrl == 0 && event.alt == 0)) + { + G.is_break = TRUE; + } /* double click test - only for press */ if (event.val == KM_PRESS) { |