[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