[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55662] trunk/blender/source/blender/ editors/space_view3d/drawobject.c: minor improvement to edge-angle-drawing, when transforming verts draw the angle of the opposite edge since this is the angle thats being changed .

Campbell Barton ideasman42 at gmail.com
Fri Mar 29 05:38:11 CET 2013


Revision: 55662
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55662
Author:   campbellbarton
Date:     2013-03-29 04:38:10 +0000 (Fri, 29 Mar 2013)
Log Message:
-----------
minor improvement to edge-angle-drawing, when transforming verts draw the angle of the opposite edge since this is the angle thats being changed.

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

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2013-03-29 04:22:51 UTC (rev 55661)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2013-03-29 04:38:10 UTC (rev 55662)
@@ -2662,13 +2662,20 @@
 
 		eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL);
 		for (; eed; eed = BM_iter_step(&iter)) {
-			/* draw selected edges, or edges next to selected verts while draging */
-			if (BM_elem_flag_test(eed, BM_ELEM_SELECT) ||
-			    (do_moving && (BM_elem_flag_test(eed->v1, BM_ELEM_SELECT) ||
-			                   BM_elem_flag_test(eed->v2, BM_ELEM_SELECT))))
-			{
-				BMFace *f_a, *f_b;
-				if (BM_edge_face_pair(eed, &f_a, &f_b)) {
+			BMLoop *l_a, *l_b;
+			if (BM_edge_loop_pair(eed, &l_a, &l_b)) {
+				/* draw selected edges, or edges next to selected verts while draging */
+				if (BM_elem_flag_test(eed, BM_ELEM_SELECT) ||
+				    (do_moving && (BM_elem_flag_test(eed->v1, BM_ELEM_SELECT) ||
+				                   BM_elem_flag_test(eed->v2, BM_ELEM_SELECT) ||
+				                   /* special case, this is useful to show when vertes connected to this edge via a
+				                    * face are being transformed */
+				                   BM_elem_flag_test(l_a->next->next->v, BM_ELEM_SELECT) ||
+				                   BM_elem_flag_test(l_b->prev->v, BM_ELEM_SELECT)       ||
+				                   BM_elem_flag_test(l_a->next->next->v, BM_ELEM_SELECT) ||
+				                   BM_elem_flag_test(l_b->prev->v, BM_ELEM_SELECT)
+				                   )))
+				{
 					float angle;
 					copy_v3_v3(v1, eed->v1->co);
 					copy_v3_v3(v2, eed->v2->co);
@@ -2678,14 +2685,14 @@
 					if (do_global) {
 						float no_a[3];
 						float no_b[3];
-						copy_v3_v3(no_a, f_a->no);
-						copy_v3_v3(no_b, f_b->no);
+						copy_v3_v3(no_a, l_a->f->no);
+						copy_v3_v3(no_b, l_b->f->no);
 						mul_mat3_m4_v3(ob->imat, no_a);
 						mul_mat3_m4_v3(ob->imat, no_b);
 						angle = angle_v3v3(no_a, no_b);
 					}
 					else {
-						angle = angle_normalized_v3v3(f_a->no, f_b->no);
+						angle = angle_normalized_v3v3(l_a->f->no, l_b->f->no);
 					}
 
 					BLI_snprintf(numstr, sizeof(numstr), "%.3f", is_rad ? angle : RAD2DEGF(angle));




More information about the Bf-blender-cvs mailing list