[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