Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2022-01-06 15:42:45 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2022-01-06 16:43:18 +0300
commit1785286ecc908366f1c2935cfdc5287571563628 (patch)
tree8c4804e34a49458bed589a8e92fe8f74ed9017c3 /release
parent7bcf21e66e2e46042b027b4481fa9866e64fe9a1 (diff)
Bone Overlay: support changing bone wireframe opacity.
When weight painting the bone overlay is extremely intrusive, effectively requiring either extensive use of hiding individual bones, or disabling the whole bone overlay between selections. This addresses the issue by adding a bone opacity slider that is used for the 'wireframe' armature drawing mode. It directly controls the uniform opacity as a straightforward option. Differential Revision: https://developer.blender.org/D11804
Diffstat (limited to 'release')
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 3fd19dd70cf..7d8e74ed7ce 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -6504,18 +6504,38 @@ class VIEW3D_PT_overlay_sculpt(Panel):
row.prop(overlay, "sculpt_mode_face_sets_opacity", text="Face Sets")
-class VIEW3D_PT_overlay_pose(Panel):
+class VIEW3D_PT_overlay_bones(Panel):
bl_space_type = 'VIEW_3D'
bl_region_type = 'HEADER'
bl_parent_id = 'VIEW3D_PT_overlay'
- bl_label = "Pose Mode"
+ bl_label = "Bones"
+
+ @staticmethod
+ def is_using_wireframe(context):
+ shading = VIEW3D_PT_shading.get_shading(context)
+
+ if shading.type == 'WIREFRAME' or shading.show_xray:
+ return True
+
+ mode = context.mode
+
+ if mode in ('POSE', 'PAINT_WEIGHT'):
+ armature = context.pose_object
+ elif mode == 'EDIT_ARMATURE':
+ armature = context.edit_object
+ else:
+ return False
+
+ return armature and armature.display_type == 'WIRE'
@classmethod
def poll(cls, context):
mode = context.mode
return (
(mode == 'POSE') or
- (mode == 'PAINT_WEIGHT' and context.pose_object)
+ (mode == 'PAINT_WEIGHT' and context.pose_object) or
+ (mode in ('EDIT_ARMATURE', 'OBJECT') and
+ VIEW3D_PT_overlay_bones.is_using_wireframe(context))
)
def draw(self, context):
@@ -6534,10 +6554,13 @@ class VIEW3D_PT_overlay_pose(Panel):
sub = row.row()
sub.active = display_all and overlay.show_xray_bone
sub.prop(overlay, "xray_alpha_bone", text="Fade Geometry")
- else:
+ elif mode == 'PAINT_WEIGHT':
row = col.row()
row.prop(overlay, "show_xray_bone")
+ if VIEW3D_PT_overlay_bones.is_using_wireframe(context):
+ col.prop(overlay, "bone_wire_alpha")
+
class VIEW3D_PT_overlay_texture_paint(Panel):
bl_space_type = 'VIEW_3D'
@@ -7705,7 +7728,7 @@ classes = (
VIEW3D_PT_overlay_texture_paint,
VIEW3D_PT_overlay_vertex_paint,
VIEW3D_PT_overlay_weight_paint,
- VIEW3D_PT_overlay_pose,
+ VIEW3D_PT_overlay_bones,
VIEW3D_PT_overlay_sculpt,
VIEW3D_PT_snapping,
VIEW3D_PT_proportional_edit,