[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56453] trunk/blender/source/blender/ editors/space_view3d/view3d_select.c: edge_inside_circle was doing redundant float -> int -> float conversion, also dist_squared_to_line_segment_v2 is quite simple so remove radius checks .

Campbell Barton ideasman42 at gmail.com
Wed May 1 19:27:14 CEST 2013


Revision: 56453
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56453
Author:   campbellbarton
Date:     2013-05-01 17:27:14 +0000 (Wed, 01 May 2013)
Log Message:
-----------
edge_inside_circle was doing redundant float -> int -> float conversion, also dist_squared_to_line_segment_v2 is quite simple so remove radius checks.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_select.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_select.c	2013-05-01 17:14:33 UTC (rev 56452)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_select.c	2013-05-01 17:27:14 UTC (rev 56453)
@@ -1593,23 +1593,8 @@
 
 bool edge_inside_circle(const float cent[2], float radius, const float screen_co_a[2], const float screen_co_b[2])
 {
-	int radius_squared = radius * radius;
-
-	/* check points in circle itself */
-	if (len_squared_v2v2(cent, screen_co_a) <= radius_squared) {
-		return true;
-	}
-	if (len_squared_v2v2(cent, screen_co_b) <= radius_squared) {
-		return true;
-	}
-	else {
-		/* pointdistline */
-		if (dist_squared_to_line_segment_v2(cent, screen_co_a, screen_co_b) < (float)radius_squared) {
-			return true;
-		}
-	}
-
-	return false;
+	const float radius_squared = radius * radius;
+	return (dist_squared_to_line_segment_v2(cent, screen_co_a, screen_co_b) < radius_squared);
 }
 
 static void do_paintvert_box_select__doSelectVert(void *userData, MVert *mv, const float screen_co[2], int UNUSED(index))
@@ -2333,7 +2318,7 @@
 {
 	CircleSelectUserData *data = userData;
 
-	if (edge_inside_circle(data->mval_fl, (int)data->radius, screen_co_a, screen_co_b)) {
+	if (edge_inside_circle(data->mval_fl, data->radius, screen_co_a, screen_co_b)) {
 		BM_edge_select_set(data->vc->em->bm, eed, data->select);
 	}
 }




More information about the Bf-blender-cvs mailing list