[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32401] trunk/blender/source/blender: bugfix [#23412] Weightpaint and rotate around bones

Campbell Barton ideasman42 at gmail.com
Mon Oct 11 01:11:35 CEST 2010


Revision: 32401
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32401
Author:   campbellbarton
Date:     2010-10-11 01:11:34 +0200 (Mon, 11 Oct 2010)

Log Message:
-----------
bugfix [#23412] Weightpaint and rotate around bones
fixed by allowing an unselected armature to have its pose bones used in weightpaint mode.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/makesdna/DNA_scene_types.h

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-10-10 22:50:32 UTC (rev 32400)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-10-10 23:11:34 UTC (rev 32401)
@@ -5318,19 +5318,19 @@
 		createTransPose(C, t, ob);
 	}
 	else if (ob && (ob->mode & OB_MODE_WEIGHT_PAINT)) {
-		/* exception, we look for the one selected armature */
-		CTX_DATA_BEGIN(C, Object*, ob_armature, selected_objects)
-		{
-			if(ob_armature->type==OB_ARMATURE)
-			{
-				if((ob_armature->mode & OB_MODE_POSE) && ob_armature == modifiers_isDeformedByArmature(ob))
-				{
+		/* important that ob_armature can be set even when its not selected [#23412]
+		 * lines below just check is also visible */
+		Object *ob_armature= modifiers_isDeformedByArmature(ob);
+		if(ob_armature && ob_armature->mode & OB_MODE_POSE) {
+			Base *base_arm= object_in_scene(ob_armature, t->scene);
+			if(base_arm) {
+				View3D *v3d = t->view;
+				if(BASE_VISIBLE(v3d, base_arm)) {
 					createTransPose(C, t, ob_armature);
-					break;
 				}
 			}
+			
 		}
-		CTX_DATA_END;
 	}
 	else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT) 
 		&& PE_start_edit(PE_get_current(scene, ob))) {

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2010-10-10 22:50:32 UTC (rev 32400)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2010-10-10 23:11:34 UTC (rev 32401)
@@ -1038,6 +1038,7 @@
 #define TESTBASELIB_BGMODE(v3d, scene, base)   ( ((base)->flag & SELECT) && ((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
 #define BASE_EDITABLE_BGMODE(v3d, scene, base)   (((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0))
 #define BASE_SELECTABLE(v3d, base)	 ((base->lay & v3d->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0)
+#define BASE_VISIBLE(v3d, base)	 ((base->lay & v3d->lay) && (base->object->restrictflag & OB_RESTRICT_VIEW)==0)
 #define FIRSTBASE		scene->base.first
 #define LASTBASE		scene->base.last
 #define BASACT			(scene->basact)





More information about the Bf-blender-cvs mailing list