[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12361] trunk/blender/source/blender: made drawing curve handles in the 3d view optional - this is much nicer for editing curves with Automatic handles so you dont select a handle by mistake and change its type .

Campbell Barton cbarton at metavr.com
Tue Oct 23 20:56:43 CEST 2007


Revision: 12361
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12361
Author:   campbellbarton
Date:     2007-10-23 20:56:43 +0200 (Tue, 23 Oct 2007)

Log Message:
-----------
made drawing curve handles in the 3d view optional - this is much nicer for editing curves with Automatic handles so you dont select a handle by mistake and change its type.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/src/buttons_editing.c
    trunk/blender/source/blender/src/drawobject.c
    trunk/blender/source/blender/src/header_view3d.c

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2007-10-23 18:20:57 UTC (rev 12360)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2007-10-23 18:56:43 UTC (rev 12361)
@@ -599,10 +599,12 @@
 #define SCE_SNAP_TARGET_MEDIAN	2
 
 /* sce->selectmode */
-#define SCE_SELECT_VERTEX	1
+#define SCE_SELECT_VERTEX	1 /* for mesh */
 #define SCE_SELECT_EDGE		2
 #define SCE_SELECT_FACE		4
 
+#define SCE_SELECT_CU_HANDLES_HIDE 8 /* for curve, when flagged hide handles */ 
+
 /* sce->recalc (now in use by previewrender) */
 #define SCE_PRV_CHANGED		1
 

Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c	2007-10-23 18:20:57 UTC (rev 12360)
+++ trunk/blender/source/blender/src/buttons_editing.c	2007-10-23 18:56:43 UTC (rev 12361)
@@ -2943,13 +2943,16 @@
 		uiDefBut(block, BUT, B_SPINNURB, "Spin",	 400,160,150,20, 0, 0, 0, 0, 0, "Spin selected 360 degrees");
 	}
 	uiBlockBeginAlign(block);
-	uiDefBut(block, BUT,B_HIDE,		"Hide",			400,120,150,18, 0, 0, 0, 0, 0, "Hides selected faces");
-	uiDefBut(block, BUT,B_REVEAL,	"Reveal",		400,100,150,18, 0, 0, 0, 0, 0, "Reveals selected faces");
-	uiDefBut(block, BUT,B_SELSWAP,	"Select Swap",	400,80,150,18, 0, 0, 0, 0, 0, "Selects unselected faces, and deselects selected faces");
+	uiDefBut(block, BUT,B_HIDE,		"Hide",			400,140,150,18, 0, 0, 0, 0, 0, "Hides selected faces");
+	uiDefBut(block, BUT,B_REVEAL,	"Reveal",		400,120,150,18, 0, 0, 0, 0, 0, "Reveals selected faces");
+	uiDefBut(block, BUT,B_SELSWAP,	"Select Swap",	400,100,150,18, 0, 0, 0, 0, 0, "Selects unselected faces, and deselects selected faces");
 	uiBlockEndAlign(block);
 
-	uiDefButF(block, NUM,	REDRAWVIEW3D, "NSize:",	400, 40, 150, 19, &G.scene->editbutsize, 0.001, 1.0, 10, 0, "Normal size for drawing");
-
+	uiBlockBeginAlign(block);
+	uiDefButF(block, NUM,	REDRAWVIEW3D, "NSize:",	400, 60, 150, 19, &G.scene->editbutsize, 0.001, 1.0, 10, 0, "Normal size for drawing");
+	uiDefButBitI(block, TOGN, SCE_SELECT_CU_HANDLES_HIDE, REDRAWVIEW3D, "Draw Handles", 	400, 40, 150, 19, &G.scene->selectmode, 0, 0, 0, 0, "Draw curve handles in 3D view");
+	uiBlockEndAlign(block);
+	
 	if(G.obedit) {
 		uiBut *but;
 		uiBlockBeginAlign(block);

Modified: trunk/blender/source/blender/src/drawobject.c
===================================================================
--- trunk/blender/source/blender/src/drawobject.c	2007-10-23 18:20:57 UTC (rev 12360)
+++ trunk/blender/source/blender/src/drawobject.c	2007-10-23 18:56:43 UTC (rev 12361)
@@ -1357,12 +1357,17 @@
 				BezTriple *bezt = &nu->bezt[i];
 
 				if(bezt->hide==0) {
-					view3d_project_short_clip(curarea, bezt->vec[0], s, pmat, vmat);
-					func(userData, nu, NULL, bezt, 0, s[0], s[1]);
-					view3d_project_short_clip(curarea, bezt->vec[1], s, pmat, vmat);
-					func(userData, nu, NULL, bezt, 1, s[0], s[1]);
-					view3d_project_short_clip(curarea, bezt->vec[2], s, pmat, vmat);
-					func(userData, nu, NULL, bezt, 2, s[0], s[1]);
+					if (G.scene->selectmode & SCE_SELECT_CU_HANDLES_HIDE) {
+						view3d_project_short_clip(curarea, bezt->vec[1], s, pmat, vmat);
+						func(userData, nu, NULL, bezt, 1, s[0], s[1]);
+					} else {
+						view3d_project_short_clip(curarea, bezt->vec[0], s, pmat, vmat);
+						func(userData, nu, NULL, bezt, 0, s[0], s[1]);
+						view3d_project_short_clip(curarea, bezt->vec[1], s, pmat, vmat);
+						func(userData, nu, NULL, bezt, 1, s[0], s[1]);
+						view3d_project_short_clip(curarea, bezt->vec[2], s, pmat, vmat);
+						func(userData, nu, NULL, bezt, 2, s[0], s[1]);
+					}
 				}
 			}
 		}
@@ -2962,9 +2967,9 @@
 	float *fp;
 	unsigned int *col;
 	int a;
-
-	if(nu->hide) return;
 	
+	if(nu->hide || (G.scene->selectmode & SCE_SELECT_CU_HANDLES_HIDE)) return;
+	
 	glBegin(GL_LINES); 
 	
 	if( (nu->type & 7)==1) {
@@ -3030,9 +3035,13 @@
 		a= nu->pntsu;
 		while(a--) {
 			if(bezt->hide==0) {
-				if((bezt->f1 & 1)==sel) bglVertex3fv(bezt->vec[0]);
-				if((bezt->f2 & 1)==sel) bglVertex3fv(bezt->vec[1]);
-				if((bezt->f3 & 1)==sel) bglVertex3fv(bezt->vec[2]);
+				if (G.scene->selectmode & SCE_SELECT_CU_HANDLES_HIDE) {
+					if((bezt->f2 & 1)==sel) bglVertex3fv(bezt->vec[1]);
+				} else {
+					if((bezt->f1 & 1)==sel) bglVertex3fv(bezt->vec[0]);
+					if((bezt->f2 & 1)==sel) bglVertex3fv(bezt->vec[1]);
+					if((bezt->f3 & 1)==sel) bglVertex3fv(bezt->vec[2]);
+				}
 			}
 			bezt++;
 		}

Modified: trunk/blender/source/blender/src/header_view3d.c
===================================================================
--- trunk/blender/source/blender/src/header_view3d.c	2007-10-23 18:20:57 UTC (rev 12360)
+++ trunk/blender/source/blender/src/header_view3d.c	2007-10-23 18:56:43 UTC (rev 12361)
@@ -5184,7 +5184,7 @@
 			}
 			xco+= 20;
 		}
-
+		
 		uiDefIconBut(block, BUT, B_VIEWRENDER, ICON_SCENE_DEHLT, xco,0,XIC,YIC, NULL, 0, 1.0, 0, 0, "Render this window (hold CTRL for anim)");
 	
 		if (ob && (ob->flag & OB_POSEMODE)) {





More information about the Bf-blender-cvs mailing list