diff options
author | Ton Roosendaal <ton@blender.org> | 2010-12-12 21:16:54 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2010-12-12 21:16:54 +0300 |
commit | ba2edc007b0adcf422c97398ecd706e78c342044 (patch) | |
tree | 87a743e1cc699251ab323e4e967add97c376ac56 /source/blender/editors/space_view3d/drawarmature.c | |
parent | 826cf81d34b7778b75fee93f1905e227ea9c0515 (diff) |
Bugfix #25179
Armature properties: layer buttons now show which ones are in use,
like object layers.
Diffstat (limited to 'source/blender/editors/space_view3d/drawarmature.c')
-rw-r--r-- | source/blender/editors/space_view3d/drawarmature.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c index c0db86b46f9..3ab86505bcf 100644 --- a/source/blender/editors/space_view3d/drawarmature.c +++ b/source/blender/editors/space_view3d/drawarmature.c @@ -1585,6 +1585,9 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, short do_dashed= 3, draw_wire= 0; short flag, constflag; + /* being set below */ + arm->layer_used= 0; + /* hacky... prevent outline select from drawing dashed helplines */ glGetFloatv(GL_LINE_WIDTH, &tmp); if (tmp > 1.1) do_dashed &= ~1; @@ -1631,6 +1634,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { bone= pchan->bone; + arm->layer_used |= bone->layer; if ( (bone) && !(bone->flag & (BONE_HIDDEN_P|BONE_HIDDEN_PG)) ) { if (bone->layer & arm->layer) { @@ -1776,6 +1780,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { bone= pchan->bone; + arm->layer_used |= bone->layer; if ((bone) && !(bone->flag & (BONE_HIDDEN_P|BONE_HIDDEN_PG))) { if (bone->layer & arm->layer) { @@ -1948,6 +1953,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) unsigned int index; int flag; + /* being set in code below */ + arm->layer_used= 0; + /* envelope (deform distance) */ if(arm->drawtype==ARM_ENVELOPE) { /* precalc inverse matrix for drawing screen aligned */ @@ -2020,6 +2028,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt) index= 0; /* do selection codes */ for (eBone=arm->edbo->first; eBone; eBone=eBone->next) { + arm->layer_used |= eBone->layer; if (eBone->layer & arm->layer) { if ((eBone->flag & BONE_HIDDEN_A)==0) { |