[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52029] trunk/blender/source/blender: 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.

Campbell Barton ideasman42 at gmail.com
Fri Nov 9 09:28:16 CET 2012


Revision: 52029
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52029
Author:   campbellbarton
Date:     2012-11-09 08:28:14 +0000 (Fri, 09 Nov 2012)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenlib/PIL_time.h
    trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
    trunk/blender/source/blender/bmesh/operators/bmo_bevel.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
    trunk/blender/source/blender/editors/transform/transform.c
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2012-11-09 08:28:14 UTC (rev 52029)
@@ -727,7 +727,7 @@
 	 * 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 @@
 
 	/* 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 @@
 
 	/* clear persistent id */
 	if (level > 0)
-		persistent_id[level-1] = 0;
+		persistent_id[level - 1] = 0;
 }
 
 /* Returns a list of DupliObject

Modified: trunk/blender/source/blender/blenlib/PIL_time.h
===================================================================
--- trunk/blender/source/blender/blenlib/PIL_time.h	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/blenlib/PIL_time.h	2012-11-09 08:28:14 UTC (rev 52029)
@@ -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 @@
 	fflush(stdout);                                                           \
 } (void)0
 
-
+/**
+ * Given some function/expression:
+ *   TIMEIT_BENCH(some_function(), some_unique_description);
+ */
 #define TIMEIT_BENCH(expr, id)                                                \
 	{                                                                         \
 		TIMEIT_START(id);                                                     \

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_queries.c	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_queries.c	2012-11-09 08:28:14 UTC (rev 52029)
@@ -1024,7 +1024,12 @@
 		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 @@
 		}
 	}
 
-	return length / (float)tot;
+	if (tot) {
+		return length / (float)tot;
+	}
+	else {
+		return 0.0f;
+	}
 }
 
 

Modified: trunk/blender/source/blender/bmesh/operators/bmo_bevel.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_bevel.c	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/bmesh/operators/bmo_bevel.c	2012-11-09 08:28:14 UTC (rev 52029)
@@ -1155,8 +1155,7 @@
 	/* 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++;

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2012-11-09 08:28:14 UTC (rev 52029)
@@ -1214,7 +1214,7 @@
 
 			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);

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/editors/transform/transform.c	2012-11-09 08:28:14 UTC (rev 52029)
@@ -1223,7 +1223,7 @@
 				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;
 				}

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2012-11-09 07:29:27 UTC (rev 52028)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2012-11-09 08:28:14 UTC (rev 52029)
@@ -2979,9 +2979,12 @@
 				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) {




More information about the Bf-blender-cvs mailing list