[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23351] trunk/blender/source/blender/ editors: Fix combined pose + weight paint mode, was using wrong object
Brecht Van Lommel
brecht at blender.org
Sat Sep 19 17:48:47 CEST 2009
Revision: 23351
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23351
Author: blendix
Date: 2009-09-19 17:48:47 +0200 (Sat, 19 Sep 2009)
Log Message:
-----------
Fix combined pose + weight paint mode, was using wrong object
in a few places, missing some checks.
Modified Paths:
--------------
trunk/blender/source/blender/editors/armature/editarmature.c
trunk/blender/source/blender/editors/space_view3d/drawarmature.c
trunk/blender/source/blender/editors/space_view3d/view3d_select.c
trunk/blender/source/blender/editors/transform/transform_conversions.c
Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c 2009-09-19 14:16:02 UTC (rev 23350)
+++ trunk/blender/source/blender/editors/armature/editarmature.c 2009-09-19 15:48:47 UTC (rev 23351)
@@ -4333,7 +4333,7 @@
}
/* in weightpaint we select the associated vertex group too */
- if (ob->mode & OB_MODE_WEIGHT_PAINT) {
+ if (OBACT && OBACT->mode & OB_MODE_WEIGHT_PAINT) {
if (nearBone->flag & BONE_ACTIVE) {
ED_vgroup_select_by_name(OBACT, nearBone->name);
DAG_id_flush_update(&OBACT->id, OB_RECALC_DATA);
Modified: trunk/blender/source/blender/editors/space_view3d/drawarmature.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawarmature.c 2009-09-19 14:16:02 UTC (rev 23350)
+++ trunk/blender/source/blender/editors/space_view3d/drawarmature.c 2009-09-19 15:48:47 UTC (rev 23351)
@@ -2513,7 +2513,11 @@
/* drawing posemode selection indices or colors only in these cases */
if(!(base->flag & OB_FROMDUPLI)) {
if(G.f & G_PICKSEL) {
- if(ob->mode & OB_MODE_POSE)
+ if(OBACT && (OBACT->mode & OB_MODE_WEIGHT_PAINT)) {
+ if(ob==modifiers_isDeformedByArmature(OBACT))
+ arm->flag |= ARM_POSEMODE;
+ }
+ else if(ob->mode & OB_MODE_POSE)
arm->flag |= ARM_POSEMODE;
}
else if(ob->mode & OB_MODE_POSE) {
@@ -2530,8 +2534,8 @@
if ((flag & DRAW_SCENESET)==0) {
if(ob==OBACT)
arm->flag |= ARM_POSEMODE;
- else if(ob->mode & OB_MODE_WEIGHT_PAINT) {
- if(OBACT && ob==modifiers_isDeformedByArmature(OBACT))
+ else if(OBACT && (OBACT->mode & OB_MODE_WEIGHT_PAINT)) {
+ if(ob==modifiers_isDeformedByArmature(OBACT))
arm->flag |= ARM_POSEMODE;
}
draw_pose_paths(scene, v3d, rv3d, ob);
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_select.c 2009-09-19 14:16:02 UTC (rev 23350)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_select.c 2009-09-19 15:48:47 UTC (rev 23351)
@@ -1148,7 +1148,7 @@
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE, basact->object);
/* in weightpaint, we use selected bone to select vertexgroup, so no switch to new active object */
- if(basact->object->mode & OB_MODE_WEIGHT_PAINT) {
+ if(BASACT && BASACT->object->mode & OB_MODE_WEIGHT_PAINT) {
/* prevent activating */
basact= NULL;
}
Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c 2009-09-19 14:16:02 UTC (rev 23350)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c 2009-09-19 15:48:47 UTC (rev 23351)
@@ -5289,7 +5289,7 @@
{
if(ob_armature->type==OB_ARMATURE)
{
- if(ob_armature->mode & OB_MODE_POSE)
+ if((ob_armature->mode & OB_MODE_POSE) && ob_armature == modifiers_isDeformedByArmature(ob))
{
createTransPose(C, t, ob_armature);
break;
More information about the Bf-blender-cvs
mailing list