[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53365] trunk/blender/source/blender/ editors/object/object_select.c: patch [#33687] select similar lamp
Campbell Barton
ideasman42 at gmail.com
Fri Dec 28 12:24:10 CET 2012
Revision: 53365
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53365
Author: campbellbarton
Date: 2012-12-28 11:24:07 +0000 (Fri, 28 Dec 2012)
Log Message:
-----------
patch [#33687] select similar lamp
by Saurabh Wankhade (sauraedron), with some edits.
Modified Paths:
--------------
trunk/blender/source/blender/editors/object/object_select.c
Modified: trunk/blender/source/blender/editors/object/object_select.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_select.c 2012-12-28 11:19:33 UTC (rev 53364)
+++ trunk/blender/source/blender/editors/object/object_select.c 2012-12-28 11:24:07 UTC (rev 53365)
@@ -42,6 +42,7 @@
#include "DNA_property_types.h"
#include "DNA_scene_types.h"
#include "DNA_armature_types.h"
+#include "DNA_lamp_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
@@ -525,6 +526,7 @@
{10, "COLOR", 0, "Color", "Object Color"},
{11, "PROPERTIES", 0, "Properties", "Game Properties"},
{12, "KEYINGSET", 0, "Keying Set", "Objects included in active Keying Set"},
+ {13, "LAMP_TYPE", 0, "Lamp Type", "Matching lamp types"},
{0, NULL, 0, NULL, NULL}
};
@@ -656,7 +658,25 @@
CTX_DATA_END;
return changed;
}
+static short select_similar_lamps(bContext *C, Object *ob)
+{
+ Lamp *la = ob->data;
+ short changed = 0;
+
+ CTX_DATA_BEGIN (C, Base *, base, selectable_bases)
+ {
+ if (base->object->type == OB_LAMP) {
+ Lamp *la_test = base->object->data;
+ if ((la->type == la_test->type) && !(base->flag & SELECT)) {
+ ED_base_object_select(base, BA_SELECT);
+ changed = 1;
+ }
+ }
+ }
+ CTX_DATA_END;
+ return changed;
+}
static short select_grouped_type(bContext *C, Object *ob)
{
short changed = 0;
@@ -803,7 +823,12 @@
BKE_report(op->reports, RPT_ERROR, "No active object");
return OPERATOR_CANCELLED;
}
-
+
+ if (nr == 13 && ob->type != OB_LAMP) {
+ BKE_report(op->reports, RPT_ERROR, "Active object must be a lamp");
+ return OPERATOR_CANCELLED;
+ }
+
if (nr == 1) changed |= select_grouped_children(C, ob, 1);
else if (nr == 2) changed |= select_grouped_children(C, ob, 0);
else if (nr == 3) changed |= select_grouped_parent(C);
@@ -816,6 +841,7 @@
else if (nr == 10) changed |= select_grouped_color(C, ob);
else if (nr == 11) changed |= select_grouped_gameprops(C, ob);
else if (nr == 12) changed |= select_grouped_keyingset(C, ob);
+ else if (nr == 13) changed |= select_similar_lamps(C, ob);
if (changed) {
WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C));
More information about the Bf-blender-cvs
mailing list