diff --git a/source/blender/blenkernel/intern/action.cc b/source/blender/blenkernel/intern/action.cc index bad02645b3e..c9003bf9fb1 100644 --- a/source/blender/blenkernel/intern/action.cc +++ b/source/blender/blenkernel/intern/action.cc @@ -1184,7 +1184,7 @@ void BKE_pose_update_constraint_flags(bPose *pose) if (data->tar == nullptr || (data->tar->type == OB_ARMATURE && data->subtarget[0] == 0)) { - pchan->constflag |= PCHAN_HAS_TARGET; + pchan->constflag |= PCHAN_HAS_NO_TARGET; } /* negative rootbone = recalc rootbone index. used in do_versions */ diff --git a/source/blender/draw/engines/overlay/overlay_armature.cc b/source/blender/draw/engines/overlay/overlay_armature.cc index 92b8af20a20..176a655adfe 100644 --- a/source/blender/draw/engines/overlay/overlay_armature.cc +++ b/source/blender/draw/engines/overlay/overlay_armature.cc @@ -1211,8 +1211,8 @@ static void get_pchan_color_constraint(const ThemeWireColor *bcolor, get_pchan_color_solid(bcolor, solid_color); float4 constraint_color; - if (constflag & PCHAN_HAS_TARGET) { - constraint_color = G_draw.block.color_bone_pose_target; + if (constflag & PCHAN_HAS_NO_TARGET) { + constraint_color = G_draw.block.color_bone_pose_no_target; } else if (constflag & PCHAN_HAS_IK) { constraint_color = G_draw.block.color_bone_pose_ik; @@ -1823,11 +1823,11 @@ static void pchan_draw_ik_lines(const ArmatureDrawContext *ctx, if (parchan) { line_end = parchan->pose_head; - if (constflag & PCHAN_HAS_TARGET) { - drw_shgroup_bone_ik_lines(ctx, line_start, line_end); + if (constflag & PCHAN_HAS_NO_TARGET) { + drw_shgroup_bone_ik_no_target_lines(ctx, line_start, line_end); } else { - drw_shgroup_bone_ik_no_target_lines(ctx, line_start, line_end); + drw_shgroup_bone_ik_lines(ctx, line_start, line_end); } } break; diff --git a/source/blender/draw/engines/overlay/overlay_shader_shared.h b/source/blender/draw/engines/overlay/overlay_shader_shared.h index 54ec049225f..400cf8be8bf 100644 --- a/source/blender/draw/engines/overlay/overlay_shader_shared.h +++ b/source/blender/draw/engines/overlay/overlay_shader_shared.h @@ -159,7 +159,7 @@ struct ThemeColorData { float4 color_bone_pose_constraint; float4 color_bone_pose_ik; float4 color_bone_pose_spline_ik; - float4 color_bone_pose_target; + float4 color_bone_pose_no_target; float4 color_bone_solid; float4 color_bone_locked; float4 color_bone_active; diff --git a/source/blender/draw/intern/draw_common.cc b/source/blender/draw/intern/draw_common.cc index e358c13fa94..2f5d3caca25 100644 --- a/source/blender/draw/intern/draw_common.cc +++ b/source/blender/draw/intern/draw_common.cc @@ -112,14 +112,14 @@ void DRW_globals_update() UI_GetThemeColorBlendShade4fv(TH_WIRE, TH_BONE_POSE, 0.15f, 0, gb->color_bone_pose_active_unsel); UI_GetThemeColorBlendShade3fv( TH_WIRE_EDIT, TH_EDGE_SELECT, 0.15f, 0, gb->color_bone_active_unsel); - UI_COLOR_RGBA_FROM_U8(255, 150, 0, 80, gb->color_bone_pose_target); + UI_COLOR_RGBA_FROM_U8(255, 150, 0, 80, gb->color_bone_pose_no_target); UI_COLOR_RGBA_FROM_U8(255, 255, 0, 80, gb->color_bone_pose_ik); UI_COLOR_RGBA_FROM_U8(200, 255, 0, 80, gb->color_bone_pose_spline_ik); UI_COLOR_RGBA_FROM_U8(0, 255, 120, 80, gb->color_bone_pose_constraint); UI_GetThemeColor4fv(TH_BONE_SOLID, gb->color_bone_solid); UI_GetThemeColor4fv(TH_BONE_LOCKED_WEIGHT, gb->color_bone_locked); - copy_v4_fl4(gb->color_bone_ik_line, 0.8f, 0.5f, 0.0f, 1.0f); - copy_v4_fl4(gb->color_bone_ik_line_no_target, 0.8f, 0.8f, 0.2f, 1.0f); + copy_v4_fl4(gb->color_bone_ik_line, 0.8f, 0.8f, 0.0f, 1.0f); + copy_v4_fl4(gb->color_bone_ik_line_no_target, 0.8f, 0.5f, 0.2f, 1.0f); copy_v4_fl4(gb->color_bone_ik_line_spline, 0.8f, 0.8f, 0.2f, 1.0f); /* Curve */ diff --git a/source/blender/draw/intern/draw_common_shader_shared.h b/source/blender/draw/intern/draw_common_shader_shared.h index 6384808787e..bfefac9d84d 100644 --- a/source/blender/draw/intern/draw_common_shader_shared.h +++ b/source/blender/draw/intern/draw_common_shader_shared.h @@ -92,7 +92,7 @@ struct GlobalsUboStorage { float4 color_bone_pose_constraint; float4 color_bone_pose_ik; float4 color_bone_pose_spline_ik; - float4 color_bone_pose_target; + float4 color_bone_pose_no_target; float4 color_bone_solid; float4 color_bone_locked; float4 color_bone_active; @@ -207,7 +207,7 @@ BLI_STATIC_ASSERT_ALIGN(GlobalsUboStorage, 16) # define colorBonePoseConstraint globalsBlock.color_bone_pose_constraint # define colorBonePoseIK globalsBlock.color_bone_pose_ik # define colorBonePoseSplineIK globalsBlock.color_bone_pose_spline_ik -# define colorBonePoseTarget globalsBlock.color_bone_pose_target +# define colorBonePoseTarget globalsBlock.color_bone_pose_no_target # define colorBoneSolid globalsBlock.color_bone_solid # define colorBoneLocked globalsBlock.color_bone_locked # define colorBoneActive globalsBlock.color_bone_active diff --git a/source/blender/editors/object/object_constraint.cc b/source/blender/editors/object/object_constraint.cc index 26eae50c2fa..f3f5fa491ab 100644 --- a/source/blender/editors/object/object_constraint.cc +++ b/source/blender/editors/object/object_constraint.cc @@ -2751,7 +2751,7 @@ static int pose_ik_clear_exec(bContext *C, wmOperator * /*op*/) BKE_constraint_remove(&pchan->constraints, con); } } - pchan->constflag &= ~(PCHAN_HAS_IK | PCHAN_HAS_TARGET); + pchan->constflag &= ~(PCHAN_HAS_IK | PCHAN_HAS_NO_TARGET); if (prev_ob != ob) { prev_ob = ob; diff --git a/source/blender/editors/transform/transform_convert.cc b/source/blender/editors/transform/transform_convert.cc index 1a978649fea..c353a82413b 100644 --- a/source/blender/editors/transform/transform_convert.cc +++ b/source/blender/editors/transform/transform_convert.cc @@ -324,7 +324,7 @@ static bool pchan_autoik_adjust(bPoseChannel *pchan, short chainlen) bool changed = false; /* don't bother to search if no valid constraints */ - if ((pchan->constflag & (PCHAN_HAS_IK | PCHAN_HAS_TARGET)) == 0) { + if ((pchan->constflag & (PCHAN_HAS_IK | PCHAN_HAS_NO_TARGET)) == 0) { return changed; } diff --git a/source/blender/editors/transform/transform_convert_armature.cc b/source/blender/editors/transform/transform_convert_armature.cc index a110c308af6..1a1d1d2870f 100644 --- a/source/blender/editors/transform/transform_convert_armature.cc +++ b/source/blender/editors/transform/transform_convert_armature.cc @@ -232,7 +232,7 @@ static bConstraint *add_temporary_ik_constraint(bPoseChannel *pchan, nullptr, pchan, "TempConstraint", CONSTRAINT_TYPE_KINEMATIC); /* for draw, but also for detecting while pose solving */ - pchan->constflag |= (PCHAN_HAS_IK | PCHAN_HAS_TARGET); + pchan->constflag |= (PCHAN_HAS_IK | PCHAN_HAS_NO_TARGET); bKinematicConstraint *temp_con_data = static_cast(con->data); @@ -1655,7 +1655,7 @@ static void pose_grab_with_ik_clear(Main *bmain, Object *ob) /* clear all temporary lock flags */ pchan->ikflag &= ~(BONE_IK_NO_XDOF_TEMP | BONE_IK_NO_YDOF_TEMP | BONE_IK_NO_ZDOF_TEMP); - pchan->constflag &= ~(PCHAN_HAS_IK | PCHAN_HAS_TARGET); + pchan->constflag &= ~(PCHAN_HAS_IK | PCHAN_HAS_NO_TARGET); /* remove all temporary IK-constraints added */ for (con = static_cast(pchan->constraints.first); con; con = next) { @@ -1675,7 +1675,7 @@ static void pose_grab_with_ik_clear(Main *bmain, Object *ob) } pchan->constflag |= PCHAN_HAS_IK; if (data->tar == nullptr || (data->tar->type == OB_ARMATURE && data->subtarget[0] == 0)) { - pchan->constflag |= PCHAN_HAS_TARGET; + pchan->constflag |= PCHAN_HAS_NO_TARGET; } } } diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 92689354b19..0cf5cb5846b 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -389,15 +389,12 @@ typedef enum ePchan_Flag { /* PoseChannel constflag (constraint detection) */ typedef enum ePchan_ConstFlag { - PCHAN_HAS_IK = (1 << 0), - PCHAN_HAS_CONST = (1 << 1), - /* Only used for drawing pose-mode, not stored in channel. */ + PCHAN_HAS_IK = (1 << 0), /* Has IK constraint. */ + PCHAN_HAS_CONST = (1 << 1), /* Has any constraint. */ /* PCHAN_HAS_ACTION = (1 << 2), */ /* UNUSED */ - PCHAN_HAS_TARGET = (1 << 3), - /* Only for drawing pose-mode too. */ + PCHAN_HAS_NO_TARGET = (1 << 3), /* Has (spline) IK constraint but no target is set. */ /* PCHAN_HAS_STRIDE = (1 << 4), */ /* UNUSED */ - /* spline IK */ - PCHAN_HAS_SPLINEIK = (1 << 5), + PCHAN_HAS_SPLINEIK = (1 << 5), /* Has Spline IK constraint. */ } ePchan_ConstFlag; /* PoseChannel->ikflag */