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:
Diffstat (limited to 'release/scripts/startup/bl_ui')
-rw-r--r--release/scripts/startup/bl_ui/properties_data_curves.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_output.py16
-rw-r--r--release/scripts/startup/bl_ui/properties_paint_common.py72
-rw-r--r--release/scripts/startup/bl_ui/properties_particle.py1
-rw-r--r--release/scripts/startup/bl_ui/space_clip.py6
-rw-r--r--release/scripts/startup/bl_ui/space_image.py33
-rw-r--r--release/scripts/startup/bl_ui/space_node.py1
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py2
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py5
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py89
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py65
11 files changed, 173 insertions, 125 deletions
diff --git a/release/scripts/startup/bl_ui/properties_data_curves.py b/release/scripts/startup/bl_ui/properties_data_curves.py
index ff0eabeb7d9..df80bdb4552 100644
--- a/release/scripts/startup/bl_ui/properties_data_curves.py
+++ b/release/scripts/startup/bl_ui/properties_data_curves.py
@@ -44,7 +44,13 @@ class DATA_PT_curves_surface(DataButtonsPanel, Panel):
layout.use_property_split = True
layout.prop(ob.data, "surface")
- layout.prop(ob.data, "surface_uv_map", text="UV Map")
+ has_surface = ob.data.surface is not None
+ if has_surface:
+ layout.prop_search(ob.data, "surface_uv_map", ob.data.surface.data, "uv_layers", text="UV Map")
+ else:
+ row = layout.row()
+ row.prop(ob.data, "surface_uv_map", text="UV Map")
+ row.enabled = has_surface
class CURVES_MT_add_attribute(Menu):
diff --git a/release/scripts/startup/bl_ui/properties_output.py b/release/scripts/startup/bl_ui/properties_output.py
index ca0e698500e..61384f25afb 100644
--- a/release/scripts/startup/bl_ui/properties_output.py
+++ b/release/scripts/startup/bl_ui/properties_output.py
@@ -380,7 +380,14 @@ class RENDER_PT_encoding_video(RenderOutputButtonsPanel, Panel):
layout = self.layout
ffmpeg = context.scene.render.ffmpeg
- needs_codec = ffmpeg.format in {'AVI', 'QUICKTIME', 'MKV', 'OGG', 'MPEG4', 'WEBM'}
+ needs_codec = ffmpeg.format in {
+ 'AVI',
+ 'QUICKTIME',
+ 'MKV',
+ 'OGG',
+ 'MPEG4',
+ 'WEBM'
+ }
if needs_codec:
layout.prop(ffmpeg, "codec")
@@ -391,7 +398,12 @@ class RENDER_PT_encoding_video(RenderOutputButtonsPanel, Panel):
layout.prop(ffmpeg, "use_lossless_output")
# Output quality
- use_crf = needs_codec and ffmpeg.codec in {'H264', 'MPEG4', 'WEBM'}
+ use_crf = needs_codec and ffmpeg.codec in {
+ 'H264',
+ 'MPEG4',
+ 'WEBM',
+ 'AV1'
+ }
if use_crf:
layout.prop(ffmpeg, "constant_rate_factor")
diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py
index 72a87703bd5..0e49a506e73 100644
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@ -928,60 +928,80 @@ def brush_settings_advanced(layout, context, brush, popover=False):
use_frontface = False
if mode == 'SCULPT':
+ sculpt = context.tool_settings.sculpt
capabilities = brush.sculpt_capabilities
use_accumulate = capabilities.has_accumulate
use_frontface = True
col = layout.column(heading="Auto-Masking", align=True)
- # topology automasking
+ col = layout.column(align=True)
col.prop(brush, "use_automasking_topology", text="Topology")
-
- # face masks automasking
col.prop(brush, "use_automasking_face_sets", text="Face Sets")
- # boundary edges/face sets automasking
+ layout.separator()
+
+ col = layout.column(align=True)
col.prop(brush, "use_automasking_boundary_edges", text="Mesh Boundary")
col.prop(brush, "use_automasking_boundary_face_sets", text="Face Sets Boundary")
- col.prop(brush, "use_automasking_cavity", text="Cavity")
- col.prop(brush, "use_automasking_cavity_inverted", text="Cavity (Inverted)")
- col.prop(brush, "use_automasking_start_normal", text="Area Normal")
- col.prop(brush, "use_automasking_view_normal", text="View Normal")
- col.separator()
- col.prop(brush, "automasking_boundary_edges_propagation_steps")
+ if brush.use_automasking_boundary_edges or brush.use_automasking_boundary_face_sets:
+ col = layout.column()
+ col.use_property_split = False
+ split = col.split(factor=0.4)
+ col = split.column()
+ split.prop(brush, "automasking_boundary_edges_propagation_steps")
- sculpt = context.tool_settings.sculpt
+ layout.separator()
- if brush.use_automasking_start_normal:
- col.separator()
+ col = layout.column(align=True)
+ row = col.row()
+ row.prop(brush, "use_automasking_cavity", text="Cavity")
- col.prop(sculpt, "automasking_start_normal_limit")
- col.prop(sculpt, "automasking_start_normal_falloff")
+ is_cavity_active = brush.use_automasking_cavity or brush.use_automasking_cavity_inverted
- if brush.use_automasking_view_normal:
- col.separator()
+ if is_cavity_active:
+ row.operator("sculpt.mask_from_cavity", text="Create Mask")
- col.prop(brush, "use_automasking_view_occlusion", text="Occlusion")
- col.prop(sculpt, "automasking_view_normal_limit")
- col.prop(sculpt, "automasking_view_normal_falloff")
+ col.prop(brush, "use_automasking_cavity_inverted", text="Cavity (inverted)")
- if brush.use_automasking_cavity or brush.use_automasking_cavity_inverted:
- col.separator()
+ if is_cavity_active:
+ col = layout.column(align=True)
+ col.prop(brush, "automasking_cavity_factor", text="Factor")
+ col.prop(brush, "automasking_cavity_blur_steps", text="Blur")
- col.prop(brush, "automasking_cavity_factor", text="Cavity Factor")
- col.prop(brush, "automasking_cavity_blur_steps", text="Cavity Blur")
- col.prop(brush, "use_automasking_custom_cavity_curve", text="Use Curve")
+ col = layout.column()
+ col.prop(brush, "use_automasking_custom_cavity_curve", text="Custom Curve")
if brush.use_automasking_custom_cavity_curve:
col.template_curve_mapping(brush, "automasking_cavity_curve")
layout.separator()
+ col = layout.column(align=True)
+ col.prop(brush, "use_automasking_view_normal", text="View Normal")
+
+ if brush.use_automasking_view_normal:
+ col.prop(brush, "use_automasking_view_occlusion", text="Occlusion")
+ subcol = col.column(align=True)
+ subcol.active = not brush.use_automasking_view_occlusion
+ subcol.prop(sculpt, "automasking_view_normal_limit", text="Limit")
+ subcol.prop(sculpt, "automasking_view_normal_falloff", text="Falloff")
+
+ col = layout.column()
+ col.prop(brush, "use_automasking_start_normal", text="Area Normal")
+
+ if brush.use_automasking_start_normal:
+ col = layout.column(align=True)
+ col.prop(sculpt, "automasking_start_normal_limit", text="Limit")
+ col.prop(sculpt, "automasking_start_normal_falloff", text="Falloff")
+
+ layout.separator()
+
# sculpt plane settings
if capabilities.has_sculpt_plane:
layout.prop(brush, "sculpt_plane")
- col = layout.column(heading="Use Original", align=True)
+ col = layout.column(heading="Original", align=True)
col.prop(brush, "use_original_normal", text="Normal")
col.prop(brush, "use_original_plane", text="Plane")
layout.separator()
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index c42275fcd54..8567ddb9372 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -239,6 +239,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
bl_label = "Emission"
+ bl_translation_context = i18n_contexts.id_particlesettings
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_EEVEE_NEXT', 'BLENDER_WORKBENCH'}
@classmethod
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index c337e8018e6..54b3a20f966 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -2,7 +2,10 @@
import bpy
from bpy.types import Panel, Header, Menu, UIList
-from bpy.app.translations import pgettext_iface as iface_
+from bpy.app.translations import (
+ pgettext_iface as iface_,
+ contexts as i18n_contexts,
+)
from bl_ui.utils import PresetPanel
from bl_ui.properties_grease_pencil_common import (
AnnotationDrawingToolsPanel,
@@ -1751,6 +1754,7 @@ class CLIP_MT_marker_pie(Menu):
class CLIP_MT_tracking_pie(Menu):
# Tracking Operators
bl_label = "Tracking"
+ bl_translation_context = i18n_contexts.id_movieclip
@classmethod
def poll(cls, context):
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index cefa4bf7d1d..fcbd7bb423d 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -1528,36 +1528,23 @@ class IMAGE_PT_overlay_guides(Panel):
layout.active = overlay.show_overlays
row = layout.row()
- row_el = row.column()
- row_el.prop(overlay, "show_grid_background", text="Grid")
+ row.prop(overlay, "show_grid_background", text="Grid")
if overlay.show_grid_background:
- layout.use_property_split = True
-
- col = layout.column(align=False, heading="Grid Over Image")
- col.use_property_decorate = False
- row = col.row(align=True)
- sub = row.row(align=True)
- sub.prop(uvedit, "show_grid_over_image", text="")
+ sub = row.row()
+ sub.prop(uvedit, "show_grid_over_image", text="Over Image")
sub.active = sima.image is not None
- col = layout.column(align=False, heading="Fixed Subdivisions")
- col.use_property_decorate = False
+ layout.row().prop(uvedit, "grid_shape_source", expand=True)
- row = col.row(align=True)
- sub = row.row(align=True)
- sub.prop(uvedit, "use_custom_grid", text="")
- if uvedit.use_custom_grid:
- row = layout.row()
- row.use_property_split = True
- row.use_property_decorate = False
- sub = sub.row(align=True)
- sub.prop(uvedit, "custom_grid_subdivisions", text="")
+ layout.use_property_split = True
+ layout.use_property_decorate = False
row = layout.row()
- row.use_property_split = True
- row.use_property_decorate = False
- row.prop(uvedit, "tile_grid_shape", text="Tiles")
+ row.prop(uvedit, "custom_grid_subdivisions", text="Fixed Subdivisions")
+ row.active = uvedit.grid_shape_source == 'FIXED'
+
+ layout.prop(uvedit, "tile_grid_shape", text="Tiles")
class IMAGE_PT_overlay_uv_edit(Panel):
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index f4070a8289d..593c6400529 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -318,6 +318,7 @@ class NODE_MT_node(Menu):
layout.operator("node.clipboard_copy", text="Copy")
layout.operator("node.clipboard_paste", text="Paste")
layout.operator("node.duplicate_move")
+ layout.operator("node.duplicate_move_linked")
layout.operator("node.delete")
layout.operator("node.delete_reconnect")
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index a99df1164a0..e703cf7f9c6 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -683,7 +683,7 @@ class SEQUENCER_MT_add(Menu):
elif bpy_data_movieclips_len > 0:
layout.operator_menu_enum("sequencer.movieclip_strip_add", "clip", text="Clip", icon='TRACKER')
else:
- layout.menu("SEQUENCER_MT_add_empty", text="Clip", icon='TRACKER')
+ layout.menu("SEQUENCER_MT_add_empty", text="Clip", text_ctxt=i18n_contexts.id_movieclip, icon='TRACKER')
del bpy_data_movieclips_len
bpy_data_masks_len = len(bpy.data.masks)
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index a9736feb057..53999f3c154 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -397,17 +397,18 @@ class USERPREF_PT_edit_objects_duplicate_data(EditingPanel, CenterAlignMixIn, Pa
# col.prop(edit, "use_duplicate_fcurve", text="F-Curve") # Not implemented.
col.prop(edit, "use_duplicate_curves", text="Curves")
col.prop(edit, "use_duplicate_grease_pencil", text="Grease Pencil")
+ col.prop(edit, "use_duplicate_lattice", text="Lattice")
col = flow.column()
- col.prop(edit, "use_duplicate_lattice", text="Lattice")
col.prop(edit, "use_duplicate_light", text="Light")
col.prop(edit, "use_duplicate_lightprobe", text="Light Probe")
col.prop(edit, "use_duplicate_material", text="Material")
col.prop(edit, "use_duplicate_mesh", text="Mesh")
col.prop(edit, "use_duplicate_metaball", text="Metaball")
+ col.prop(edit, "use_duplicate_node_tree", text="Node Tree")
+ col.prop(edit, "use_duplicate_particle", text="Particle")
col = flow.column()
- col.prop(edit, "use_duplicate_particle", text="Particle")
if hasattr(edit, "use_duplicate_pointcloud"):
col.prop(edit, "use_duplicate_pointcloud", text="Point Cloud")
col.prop(edit, "use_duplicate_speaker", text="Speaker")
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index ada2993a16f..39684aaf161 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -838,12 +838,18 @@ class VIEW3D_HT_header(Header):
text="Guides",
)
- layout.separator_spacer()
+ elif object_mode == 'SCULPT':
+ layout.popover(
+ panel="VIEW3D_PT_sculpt_automasking",
+ text="",
+ icon="MOD_MASK"
+ )
+
else:
# Transform settings depending on tool header visibility
VIEW3D_HT_header.draw_xform_template(layout, context)
- layout.separator_spacer()
+ layout.separator_spacer()
# Viewport Settings
layout.popover(
@@ -3012,6 +3018,7 @@ class VIEW3D_MT_brush_paint_modes(Menu):
layout.prop(brush, "use_paint_vertex", text="Vertex Paint")
layout.prop(brush, "use_paint_weight", text="Weight Paint")
layout.prop(brush, "use_paint_image", text="Texture Paint")
+ layout.prop(brush, "use_paint_sculpt_curves", text="Sculpt Curves")
class VIEW3D_MT_paint_vertex(Menu):
@@ -3356,8 +3363,7 @@ class VIEW3D_MT_face_sets(Menu):
op = layout.operator("sculpt.face_set_change_visibility", text='Invert Visible Face Sets')
op.mode = 'INVERT'
- op = layout.operator("sculpt.face_set_change_visibility", text='Show All Face Sets')
- op.mode = 'SHOW_ALL'
+ op = layout.operator("sculpt.reveal_all", text='Show All Face Sets')
layout.separator()
@@ -5518,8 +5524,7 @@ class VIEW3D_MT_sculpt_face_sets_edit_pie(Menu):
op = pie.operator("sculpt.face_set_change_visibility", text='Invert Visible')
op.mode = 'INVERT'
- op = pie.operator("sculpt.face_set_change_visibility", text='Show All')
- op.mode = 'SHOW_ALL'
+ op = pie.operator("sculpt.reveal_all", text='Show All')
class VIEW3D_MT_wpaint_vgroup_lock_pie(Menu):
@@ -7682,6 +7687,77 @@ class VIEW3D_PT_paint_weight_context_menu(Panel):
)
+class VIEW3D_PT_sculpt_automasking(Panel):
+ bl_space_type = 'VIEW_3D'
+ bl_region_type = 'HEADER'
+ bl_label = "Auto-Masking"
+ bl_ui_units_x = 10
+
+ def draw(self, context):
+ layout = self.layout
+
+ tool_settings = context.tool_settings
+ sculpt = tool_settings.sculpt
+ layout.label(text="Auto-Masking")
+
+ col = layout.column(align=True)
+ col.prop(sculpt, "use_automasking_topology", text="Topology")
+ col.prop(sculpt, "use_automasking_face_sets", text="Face Sets")
+
+ col.separator()
+
+ col = layout.column(align=True)
+ col.prop(sculpt, "use_automasking_boundary_edges", text="Mesh Boundary")
+ col.prop(sculpt, "use_automasking_boundary_face_sets", text="Face Sets Boundary")
+
+ if sculpt.use_automasking_boundary_edges or sculpt.use_automasking_boundary_face_sets:
+ col.prop(sculpt.brush, "automasking_boundary_edges_propagation_steps")
+
+ col.separator()
+
+ col = layout.column(align=True)
+ row = col.row()
+ row.prop(sculpt, "use_automasking_cavity", text="Cavity")
+
+ is_cavity_active = sculpt.use_automasking_cavity or sculpt.use_automasking_cavity_inverted
+
+ if is_cavity_active:
+ row.operator("sculpt.mask_from_cavity", text="Create Mask")
+
+ col.prop(sculpt, "use_automasking_cavity_inverted", text="Cavity (inverted)")
+
+ if is_cavity_active:
+ col = layout.column(align=True)
+ col.prop(sculpt, "automasking_cavity_factor", text="Factor")
+ col.prop(sculpt, "automasking_cavity_blur_steps", text="Blur")
+
+ col = layout.column()
+ col.prop(sculpt, "use_automasking_custom_cavity_curve", text="Custom Curve")
+
+ if sculpt.use_automasking_custom_cavity_curve:
+ col.template_curve_mapping(sculpt, "automasking_cavity_curve")
+
+ col.separator()
+
+ col = layout.column(align=True)
+ col.prop(sculpt, "use_automasking_view_normal", text="View Normal")
+
+ if sculpt.use_automasking_view_normal:
+ col.prop(sculpt, "use_automasking_view_occlusion", text="Occlusion")
+ subcol = col.column(align=True)
+ subcol.active = not sculpt.use_automasking_view_occlusion
+ subcol.prop(sculpt, "automasking_view_normal_limit", text="Limit")
+ subcol.prop(sculpt, "automasking_view_normal_falloff", text="Falloff")
+
+ col = layout.column()
+ col.prop(sculpt, "use_automasking_start_normal", text="Area Normal")
+
+ if sculpt.use_automasking_start_normal:
+ col = layout.column(align=True)
+ col.prop(sculpt, "automasking_start_normal_limit", text="Limit")
+ col.prop(sculpt, "automasking_start_normal_falloff", text="Falloff")
+
+
class VIEW3D_PT_sculpt_context_menu(Panel):
# Only for popover, these are dummy values.
bl_space_type = 'VIEW_3D'
@@ -8072,6 +8148,7 @@ classes = (
VIEW3D_PT_gpencil_sculpt_context_menu,
VIEW3D_PT_gpencil_weight_context_menu,
VIEW3D_PT_gpencil_draw_context_menu,
+ VIEW3D_PT_sculpt_automasking,
VIEW3D_PT_sculpt_context_menu,
TOPBAR_PT_gpencil_materials,
TOPBAR_PT_gpencil_vertexcolor,
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 3357676bf2f..fec156580cf 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -52,6 +52,8 @@ class VIEW3D_MT_brush_context_menu(Menu):
elif context.sculpt_object:
layout.prop_menu_enum(brush, "sculpt_tool")
layout.operator("brush.reset")
+ elif context.tool_settings.curves_sculpt:
+ layout.prop_menu_enum(brush, "curves_sculpt_tool")
class VIEW3D_MT_brush_gpencil_context_menu(Menu):
@@ -81,22 +83,6 @@ class VIEW3D_MT_brush_gpencil_context_menu(Menu):
layout.operator("gpencil.brush_reset_all")
-class VIEW3D_MT_brush_context_menu_paint_modes(Menu):
- bl_label = "Enabled Modes"
-
- def draw(self, context):
- layout = self.layout
-
- settings = UnifiedPaintPanel.paint_settings(context)
- brush = settings.brush
-
- layout.prop(brush, "use_paint_sculpt", text="Sculpt")
- layout.prop(brush, "use_paint_uv_sculpt", text="UV Sculpt")
- layout.prop(brush, "use_paint_vertex", text="Vertex Paint")
- layout.prop(brush, "use_paint_weight", text="Weight Paint")
- layout.prop(brush, "use_paint_image", text="Texture Paint")
-
-
class View3DPanel:
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
@@ -964,52 +950,6 @@ class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel):
col.prop(sculpt, "use_sculpt_delay_updates")
col.prop(sculpt, "use_deform_only")
- col.separator()
-
- col = layout.column(heading="Auto-Masking", align=True)
-
- col.prop(sculpt, "use_automasking_topology", text="Topology")
- col.prop(sculpt, "use_automasking_face_sets", text="Face Sets")
- col.prop(sculpt, "use_automasking_boundary_edges", text="Mesh Boundary")
- col.prop(sculpt, "use_automasking_boundary_face_sets", text="Face Sets Boundary")
- col.prop(sculpt, "use_automasking_cavity", text="Cavity")
- col.prop(sculpt, "use_automasking_cavity_inverted", text="Cavity (Inverted)")
- col.prop(sculpt, "use_automasking_start_normal", text="Area Normal")
- col.prop(sculpt, "use_automasking_view_normal", text="View Normal")
-
- if sculpt.use_automasking_start_normal:
- col.separator()
-
- col.prop(sculpt, "automasking_start_normal_limit")
- col.prop(sculpt, "automasking_start_normal_falloff")
-
- if sculpt.use_automasking_view_normal:
- col.separator()
-
- col.prop(sculpt, "use_automasking_view_occlusion", text="Occlusion")
- col.prop(sculpt, "automasking_view_normal_limit")
- col.prop(sculpt, "automasking_view_normal_falloff")
-
- col.separator()
- col.prop(sculpt.brush, "automasking_boundary_edges_propagation_steps")
-
- if sculpt.use_automasking_cavity or sculpt.use_automasking_cavity_inverted:
- col.separator()
-
- col2 = col.column()
- props = col2.operator("sculpt.mask_from_cavity", text="Mask From Cavity")
- props.use_automask_settings = True
-
- col2 = col.column()
-
- col2.prop(sculpt, "automasking_cavity_factor", text="Cavity Factor")
- col2.prop(sculpt, "automasking_cavity_blur_steps", text="Cavity Blur")
-
- col2.prop(sculpt, "use_automasking_custom_cavity_curve", text="Use Curve")
-
- if sculpt.use_automasking_custom_cavity_curve:
- col2.template_curve_mapping(sculpt, "automasking_cavity_curve")
-
class VIEW3D_PT_sculpt_options_gravity(Panel, View3DPaintPanel):
bl_context = ".sculpt_mode" # dot on purpose (access from topbar)
@@ -2419,7 +2359,6 @@ class VIEW3D_PT_gpencil_brush_presets(Panel, PresetPanel):
classes = (
VIEW3D_MT_brush_context_menu,
VIEW3D_MT_brush_gpencil_context_menu,
- VIEW3D_MT_brush_context_menu_paint_modes,
VIEW3D_PT_tools_object_options,
VIEW3D_PT_tools_object_options_transform,
VIEW3D_PT_tools_meshedit_options,