Revision: 15484
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15484
Author:   campbellbarton
Date:     2008-07-08 12:18:34 +0200 (Tue, 08 Jul 2008)

Log Message:
-----------
scenes set pose objects would draw in posemode while weight painting if they 
were set to posemode in their scene.

Modified Paths:
--------------
    trunk/blender/source/blender/include/BDR_drawobject.h
    trunk/blender/source/blender/include/BIF_editarmature.h
    trunk/blender/source/blender/src/drawarmature.c
    trunk/blender/source/blender/src/drawobject.c
    trunk/blender/source/blender/src/drawview.c

Modified: trunk/blender/source/blender/include/BDR_drawobject.h
===================================================================
--- trunk/blender/source/blender/include/BDR_drawobject.h       2008-07-08 
07:30:38 UTC (rev 15483)
+++ trunk/blender/source/blender/include/BDR_drawobject.h       2008-07-08 
10:18:34 UTC (rev 15484)
@@ -63,6 +63,7 @@
 /* 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);
 

Modified: trunk/blender/source/blender/include/BIF_editarmature.h
===================================================================
--- trunk/blender/source/blender/include/BIF_editarmature.h     2008-07-08 
07:30:38 UTC (rev 15483)
+++ trunk/blender/source/blender/include/BIF_editarmature.h     2008-07-08 
10:18:34 UTC (rev 15484)
@@ -80,7 +80,7 @@
 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);

Modified: trunk/blender/source/blender/src/drawarmature.c
===================================================================
--- trunk/blender/source/blender/src/drawarmature.c     2008-07-08 07:30:38 UTC 
(rev 15483)
+++ trunk/blender/source/blender/src/drawarmature.c     2008-07-08 10:18:34 UTC 
(rev 15484)
@@ -2500,7 +2500,7 @@
 /* ********************************** 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 @@
                                                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; 
                        

Modified: trunk/blender/source/blender/src/drawobject.c
===================================================================
--- trunk/blender/source/blender/src/drawobject.c       2008-07-08 07:30:38 UTC 
(rev 15483)
+++ trunk/blender/source/blender/src/drawobject.c       2008-07-08 10:18:34 UTC 
(rev 15484)
@@ -4620,7 +4620,7 @@
        }
        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 @@
        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 @@
 
        /* 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 @@
                        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);

Modified: trunk/blender/source/blender/src/drawview.c
===================================================================
--- trunk/blender/source/blender/src/drawview.c 2008-07-08 07:30:38 UTC (rev 
15483)
+++ trunk/blender/source/blender/src/drawview.c 2008-07-08 10:18:34 UTC (rev 
15484)
@@ -3097,7 +3097,7 @@
                        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 @@
                                        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);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to