[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13334] trunk/blender/source/blender: Added object mode select random ( use for changing the group instances of many objects to vary them without selecting manually - leaves /sticks etc)

Campbell Barton ideasman42 at gmail.com
Mon Jan 21 19:09:05 CET 2008


Revision: 13334
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13334
Author:   campbellbarton
Date:     2008-01-21 19:09:05 +0100 (Mon, 21 Jan 2008)

Log Message:
-----------
Added object mode select random (use for changing the group instances of many objects to vary them without selecting manually - leaves/sticks etc)

Modified Paths:
--------------
    trunk/blender/source/blender/include/BIF_editview.h
    trunk/blender/source/blender/src/editseq.c
    trunk/blender/source/blender/src/editview.c
    trunk/blender/source/blender/src/header_view3d.c
    trunk/blender/source/blender/src/toolbox.c

Modified: trunk/blender/source/blender/include/BIF_editview.h
===================================================================
--- trunk/blender/source/blender/include/BIF_editview.h	2008-01-21 18:08:57 UTC (rev 13333)
+++ trunk/blender/source/blender/include/BIF_editview.h	2008-01-21 18:09:05 UTC (rev 13334)
@@ -44,6 +44,7 @@
 void	circle_select(void);
 void	deselectall(void);
 void	selectswap(void);
+void	selectrandom(void);
 void	selectall_type(short obtype);
 void	selectall_layer(unsigned int layernum);
 void	draw_sel_circle(short *mval, short *mvalo, float rad, float rado, int selecting);

Modified: trunk/blender/source/blender/src/editseq.c
===================================================================
--- trunk/blender/source/blender/src/editseq.c	2008-01-21 18:08:57 UTC (rev 13333)
+++ trunk/blender/source/blender/src/editseq.c	2008-01-21 18:09:05 UTC (rev 13334)
@@ -3690,7 +3690,7 @@
 	Sequence *seq;
 	
 	ed= G.scene->ed;
-	if(!ed) return NULL;
+	if(!ed) return;
 	
 	for(seq= ed->seqbasep->first; seq; seq= seq->next) {
 		if ((seq->flag & SELECT) && (seq->flag & SEQ_LOCK)==0) {

Modified: trunk/blender/source/blender/src/editview.c
===================================================================
--- trunk/blender/source/blender/src/editview.c	2008-01-21 18:08:57 UTC (rev 13333)
+++ trunk/blender/source/blender/src/editview.c	2008-01-21 18:09:05 UTC (rev 13334)
@@ -64,6 +64,7 @@
 #include "BLI_blenlib.h"
 #include "BLI_arithb.h"
 #include "BLI_editVert.h"
+#include "BLI_rand.h" /* random object selection */
 
 #include "BKE_armature.h"
 #include "BKE_depsgraph.h"
@@ -1046,7 +1047,32 @@
 	BIF_undo_push("Select Inverse");
 }
 
+/* inverts object selection */
+void selectrandom(void)
+{
+	Base *base;
+	static short randfac = 50;
+	if(button(&randfac,0, 100,"Percentage:")==0) return;
+	
+	for(base= FIRSTBASE; base; base= base->next) {
+		if(base->lay & G.vd->lay &&
+		  (base->object->restrictflag & OB_RESTRICT_VIEW)==0
+		) {
+			if (!TESTBASE(base) && ( (BLI_frand() * 100) < randfac)) {
+				select_base_v3d(base, BA_SELECT);
+				base->object->flag= base->flag;
+			}
+		}
+	}
 
+	allqueue(REDRAWVIEW3D, 0);
+	allqueue(REDRAWDATASELECT, 0);
+	allqueue(REDRAWNLA, 0);
+	
+	countall();
+	BIF_undo_push("Select Random");
+}
+
 /* selects all objects of a particular type, on currently visible layers */
 void selectall_type(short obtype) 
 {

Modified: trunk/blender/source/blender/src/header_view3d.c
===================================================================
--- trunk/blender/source/blender/src/header_view3d.c	2008-01-21 18:08:57 UTC (rev 13333)
+++ trunk/blender/source/blender/src/header_view3d.c	2008-01-21 18:09:05 UTC (rev 13334)
@@ -914,6 +914,9 @@
 	case 2: /* inverse */
 		selectswap();
 		break;
+	case 3: /* random */
+		selectrandom();
+		break;
 	}
 	allqueue(REDRAWVIEW3D, 0);
 }
@@ -932,6 +935,8 @@
 	
 	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A",			0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
 	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse",						0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
+	uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Random",							0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
+	
 	uiDefIconTextBlockBut(block, view3d_select_object_layermenu, NULL, ICON_RIGHTARROW_THIN, "Select All by Layer", 0, yco-=20, 120, 19, "");
 	uiDefIconTextBlockBut(block, view3d_select_object_typemenu, NULL, ICON_RIGHTARROW_THIN, "Select All by Type", 0, yco-=20, 120, 19, "");
 		

Modified: trunk/blender/source/blender/src/toolbox.c
===================================================================
--- trunk/blender/source/blender/src/toolbox.c	2008-01-21 18:08:57 UTC (rev 13333)
+++ trunk/blender/source/blender/src/toolbox.c	2008-01-21 18:09:05 UTC (rev 13334)
@@ -901,6 +901,7 @@
 {	0, "SEPR",				0, NULL},
 {	0, "Select/Deselect All|A", 	1, NULL},
 {	0, "Inverse",			2, NULL},
+{	0, "Random",			3, NULL},
 {	0, "Select All by Layer", 	0, 		tb_object_select_layer},
 {	0, "Select All by Type", 	0, 		tb_object_select_type},
 {	0, "SEPR",				0, NULL},





More information about the Bf-blender-cvs mailing list