[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13392] trunk/blender/source/blender/src/ editobject.c: Select linked particles (Shift+L)

Campbell Barton ideasman42 at gmail.com
Thu Jan 24 22:32:36 CET 2008


Revision: 13392
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13392
Author:   campbellbarton
Date:     2008-01-24 22:32:36 +0100 (Thu, 24 Jan 2008)

Log Message:
-----------
Select linked particles (Shift+L)

Modified Paths:
--------------
    trunk/blender/source/blender/src/editobject.c

Modified: trunk/blender/source/blender/src/editobject.c
===================================================================
--- trunk/blender/source/blender/src/editobject.c	2008-01-24 20:53:12 UTC (rev 13391)
+++ trunk/blender/source/blender/src/editobject.c	2008-01-24 21:32:36 UTC (rev 13392)
@@ -5142,7 +5142,7 @@
 	/* If you modify this menu, please remember to update view3d_select_linksmenu
 	 * in header_view3d.c and the menu in toolbox.c
 	 */
-	nr= pupmenu("Select Linked%t|Object Ipo%x1|ObData%x2|Material%x3|Texture%x4|DupliGroup%x5");
+	nr= pupmenu("Select Linked%t|Object Ipo%x1|ObData%x2|Material%x3|Texture%x4|DupliGroup%x5|ParticleSystem%x6");
 	
 	if (nr <= 0) return;
 	
@@ -5165,6 +5165,7 @@
 	 * Current Material: 3
 	 * Current Texture: 4
 	 * DupliGroup: 5
+	 * PSys: 6
 	 */
 	
 	
@@ -5190,6 +5191,9 @@
 	else if(nr==5) {
 		if(ob->dup_group==NULL) return;
 	}
+	else if(nr==6) {
+		if(ob->particlesystem.first==NULL) return;
+	}
 	else return;
 	
 	base= FIRSTBASE;
@@ -5218,6 +5222,7 @@
 								if(tex==mat1->mtex[b]->tex) {
 									base->flag |= SELECT;
 									changed = 1;
+									break;
 								}
 							}
 						}
@@ -5230,6 +5235,25 @@
 					 changed = 1;
 				}
 			}
+			else if(nr==6) {
+				/* loop through other, then actives particles*/
+				ParticleSystem *psys;
+				ParticleSystem *psys_act;
+				
+				for(psys=base->object->particlesystem.first; psys; psys=psys->next) {
+					for(psys_act=ob->particlesystem.first; psys_act; psys_act=psys_act->next) {
+						if (psys->part == psys_act->part) {
+							base->flag |= SELECT;
+							changed = 1;
+							break;
+						}
+					}
+					
+					if (base->flag & SELECT) {
+						break;
+					}
+				}
+			}
 			base->object->flag= base->flag;
 		}
 		base= base->next;





More information about the Bf-blender-cvs mailing list