[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15484] trunk/blender/source/blender: scenes set pose objects would draw in posemode while weight painting if they were set to posemode in their scene .

Campbell Barton ideasman42 at gmail.com
Tue Jul 8 12:18:34 CEST 2008


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);





More information about the Bf-blender-cvs mailing list