diff options
author | Alexander Ewering <blender@instinctive.de> | 2003-07-18 19:50:33 +0400 |
---|---|---|
committer | Alexander Ewering <blender@instinctive.de> | 2003-07-18 19:50:33 +0400 |
commit | a65ce19175fde3034d4402d8a394d26fcd7907dc (patch) | |
tree | d38587196ed3fa9c2176c098900d7c275a8a42ff /source/blender/src/editgroup.c | |
parent | c2f92ace7963f92be0c96de24317cd5f2beb1008 (diff) |
Added "Group selection" menu (SHIFT-G), which offers the following options:
1 - Children
2 - Immediate Children
3 - Parent
4 - Objects on shared layers
1: Selects all direct children of the active object
2: Select all children, children's children etc. of the active object
3: Makes the parent of the current object active, and deselects the
active object
4: Selects all objects that share at least one layer with the active object
Useful for stepping through object hierarchies and for quickly selecting
objects belonging together.
See my message on bf-committers as well.
Diffstat (limited to 'source/blender/src/editgroup.c')
-rw-r--r-- | source/blender/src/editgroup.c | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/source/blender/src/editgroup.c b/source/blender/src/editgroup.c index 35f8fa6210a..2a43f6e6f47 100644 --- a/source/blender/src/editgroup.c +++ b/source/blender/src/editgroup.c @@ -146,87 +146,6 @@ void rem_selected_from_group(void) allqueue(REDRAWBUTSANIM, 0); } -void group_menu(void) -{ - Base *base; - GroupObject *go; - GroupKey *gk; - short nr, len; - char *str, tstr[40]; - - if(G.scene->group==NULL) return; - - /* make menu string */ - len= 60; - gk= G.scene->group->gkey.first; - while(gk) { - len+= 36; - gk= gk->next; - } - - str= MEM_mallocN(len, "groupmenu"); - strcpy(str, "Group options%t|Select members %x1"); - - if(G.scene->group->active) - strcat(str, "|Overwrite active key %x2|%l"); - - nr= 3; - gk= G.scene->group->gkey.first; - while(gk) { - sprintf(tstr, "|Load: %s %%x%d", gk->name, nr++); - strcat(str, tstr); - gk= gk->next; - } - - /* here we go */ - - nr= pupmenu(str); - MEM_freeN(str); - - if(nr==1) { - go= G.scene->group->gobject.first; - while(go) { - go->ob->flag |= SELECT; - go= go->next; - } - - /* nasty thing... that should be solved someday */ - base= FIRSTBASE; - while(base) { - base->flag= base->object->flag; - base= base->next; - } - - } - else if(nr==2) { - go= G.scene->group->gobject.first; - while(go) { - add_object_key(go, G.scene->group->active); - go= go->next; - } - - } - else if(nr>2) { - nr-= 2; - gk= G.scene->group->gkey.first; - while(gk) { - nr--; - if(nr==0) break; - gk= gk->next; - } - - G.scene->group->active= gk; - set_group_key(G.scene->group); - - } - - allqueue(REDRAWVIEW3D, 0); - allqueue(REDRAWBUTSANIM, 0); - allspace(REMAKEIPO, 0); - allqueue(REDRAWIPO, 0); -} - - void prev_group_key(Group *group) { GroupKey *gk= group->active; |