forked from bartvdbraak/blender
scenes set pose objects would draw in posemode while weight painting if they were set to posemode in their scene.
This commit is contained in:
parent
878a5303f3
commit
a166def7b3
@ -63,6 +63,7 @@ void get_local_bounds(struct Object *ob, float *center, float *size);
|
||||
/* drawing flags: */
|
||||
#define DRAW_PICKING 1
|
||||
#define DRAW_CONSTCOLOR 2
|
||||
#define DRAW_SCENESET 4
|
||||
void draw_object(struct Base *base, int flag);
|
||||
void drawaxes(float size, int flag, char drawtype);
|
||||
|
||||
|
@ -80,7 +80,7 @@ void clear_armature(struct Object *ob, char mode);
|
||||
void delete_armature(void);
|
||||
void deselectall_armature(int toggle, int doundo);
|
||||
void deselectall_posearmature (struct Object *ob, int test, int doundo);
|
||||
int draw_armature(struct Base *base, int dt);
|
||||
int draw_armature(struct Base *base, int dt, int flag);
|
||||
|
||||
void extrude_armature(int forked);
|
||||
void subdivide_armature(int numcuts);
|
||||
|
@ -2500,7 +2500,7 @@ static void draw_ghost_poses(Base *base)
|
||||
/* ********************************** Armature Drawing - Main ************************* */
|
||||
|
||||
/* called from drawobject.c, return 1 if nothing was drawn */
|
||||
int draw_armature(Base *base, int dt)
|
||||
int draw_armature(Base *base, int dt, int flag)
|
||||
{
|
||||
Object *ob= base->object;
|
||||
bArmature *arm= ob->data;
|
||||
@ -2544,15 +2544,16 @@ int draw_armature(Base *base, int dt)
|
||||
if (arm->ghostep)
|
||||
draw_ghost_poses(base);
|
||||
}
|
||||
if ((flag & DRAW_SCENESET)==0) {
|
||||
if(ob==OBACT)
|
||||
arm->flag |= ARM_POSEMODE;
|
||||
else if(G.f & G_WEIGHTPAINT)
|
||||
arm->flag |= ARM_POSEMODE;
|
||||
|
||||
if(ob==OBACT)
|
||||
arm->flag |= ARM_POSEMODE;
|
||||
else if(G.f & G_WEIGHTPAINT)
|
||||
arm->flag |= ARM_POSEMODE;
|
||||
|
||||
draw_pose_paths(ob);
|
||||
draw_pose_paths(ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
draw_pose_channels(base, dt);
|
||||
arm->flag &= ~ARM_POSEMODE;
|
||||
|
||||
|
@ -4620,7 +4620,7 @@ static void drawSolidSelect(Base *base)
|
||||
}
|
||||
else if(ob->type==OB_ARMATURE) {
|
||||
if(!(ob->flag & OB_POSEMODE)) {
|
||||
draw_armature(base, OB_WIRE);
|
||||
draw_armature(base, OB_WIRE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4741,7 +4741,7 @@ void drawRBpivot(bRigidBodyJointConstraint *data){
|
||||
setlinestyle(0);
|
||||
}
|
||||
|
||||
/* flag can be DRAW_PICKING and/or DRAW_CONSTCOLOR */
|
||||
/* flag can be DRAW_PICKING and/or DRAW_CONSTCOLOR, DRAW_SCENESET */
|
||||
void draw_object(Base *base, int flag)
|
||||
{
|
||||
static int warning_recursive= 0;
|
||||
@ -4943,7 +4943,7 @@ void draw_object(Base *base, int flag)
|
||||
|
||||
/* draw outline for selected solid objects, mesh does itself */
|
||||
if((G.vd->flag & V3D_SELECT_OUTLINE) && ob->type!=OB_MESH) {
|
||||
if(dt>OB_WIRE && dt<OB_TEXTURE && ob!=G.obedit) {
|
||||
if(dt>OB_WIRE && dt<OB_TEXTURE && ob!=G.obedit && (flag && DRAW_SCENESET)==0) {
|
||||
if (!(ob->dtx&OB_DRAWWIRE) && (ob->flag&SELECT) && !(flag&DRAW_PICKING)) {
|
||||
drawSolidSelect(base);
|
||||
}
|
||||
@ -5090,7 +5090,7 @@ void draw_object(Base *base, int flag)
|
||||
break;
|
||||
case OB_ARMATURE:
|
||||
if(dt>OB_WIRE) set_gl_material(0); // we use defmaterial
|
||||
empty_object= draw_armature(base, dt);
|
||||
empty_object= draw_armature(base, dt, flag);
|
||||
break;
|
||||
default:
|
||||
drawaxes(1.0, flag, OB_ARROWS);
|
||||
|
@ -3097,7 +3097,7 @@ void drawview3dspace(ScrArea *sa, void *spacedata)
|
||||
if(v3d->lay & base->lay) {
|
||||
|
||||
BIF_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f);
|
||||
draw_object(base, DRAW_CONSTCOLOR);
|
||||
draw_object(base, DRAW_CONSTCOLOR|DRAW_SCENESET);
|
||||
|
||||
if(base->object->transflag & OB_DUPLI) {
|
||||
draw_dupli_objects_color(v3d, base, TH_WIRE);
|
||||
@ -3319,7 +3319,7 @@ void drawview3d_render(struct View3D *v3d, int winx, int winy, float winmat[][4]
|
||||
where_is_object(base->object);
|
||||
|
||||
BIF_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f);
|
||||
draw_object(base, DRAW_CONSTCOLOR);
|
||||
draw_object(base, DRAW_CONSTCOLOR|DRAW_SCENESET);
|
||||
|
||||
if(base->object->transflag & OB_DUPLI) {
|
||||
draw_dupli_objects(v3d, base);
|
||||
|
Loading…
Reference in New Issue
Block a user