Mesh: Replace auto smooth with node group #108014
|
@ -489,8 +489,7 @@ check_wiki_file_structure: .FORCE
|
|||
"$(BLENDER_DIR)/tools/check_wiki/check_wiki_file_structure.py"
|
||||
|
||||
check_spelling_py: .FORCE
|
||||
@cd "$(BUILD_DIR)" ; \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/tools/check_source/check_spelling.py" \
|
||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||
--match=".*\.(py)$$" \
|
||||
|
@ -499,8 +498,7 @@ check_spelling_py: .FORCE
|
|||
"$(BLENDER_DIR)/tools"
|
||||
|
||||
check_spelling_c: .FORCE
|
||||
@cd "$(BUILD_DIR)" ; \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/tools/check_source/check_spelling.py" \
|
||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||
--match=".*\.(c|cc|cpp|cxx|h|hh|hpp|hxx|inl|m|mm)$$" \
|
||||
|
@ -510,8 +508,7 @@ check_spelling_c: .FORCE
|
|||
"$(BLENDER_DIR)/intern/ghost"
|
||||
|
||||
check_spelling_shaders: .FORCE
|
||||
@cd "$(BUILD_DIR)" ; \
|
||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||
"$(BLENDER_DIR)/tools/check_source/check_spelling.py" \
|
||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||
--match=".*\.(osl|metal|msl|glsl)$$" \
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
#include "util/log.h"
|
||||
#include "util/math.h"
|
||||
|
||||
#include <ostream>
|
||||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
std::ostream &operator<<(std::ostream &os, const TileSize &tile_size)
|
||||
|
|
|
@ -1533,6 +1533,11 @@ GHOST_TSuccess GHOST_WindowWayland::setWindowCursorShape(GHOST_TStandardCursor s
|
|||
#endif
|
||||
const GHOST_TSuccess ok = system_->cursor_shape_set(shape);
|
||||
m_cursorShape = (ok == GHOST_kSuccess) ? shape : GHOST_kStandardCursorDefault;
|
||||
|
||||
if (ok == GHOST_kSuccess) {
|
||||
/* For the cursor to display when the event queue isn't being handled. */
|
||||
wl_display_flush(system_->wl_display_get());
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
@ -1550,7 +1555,14 @@ GHOST_TSuccess GHOST_WindowWayland::setWindowCustomCursorShape(
|
|||
#ifdef USE_EVENT_BACKGROUND_THREAD
|
||||
std::lock_guard lock_server_guard{*system_->server_mutex};
|
||||
#endif
|
||||
return system_->cursor_shape_custom_set(bitmap, mask, sizex, sizey, hotX, hotY, canInvertColor);
|
||||
const GHOST_TSuccess ok = system_->cursor_shape_custom_set(
|
||||
bitmap, mask, sizex, sizey, hotX, hotY, canInvertColor);
|
||||
|
||||
if (ok == GHOST_kSuccess) {
|
||||
/* For the cursor to display when the event queue isn't being handled. */
|
||||
wl_display_flush(system_->wl_display_get());
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
GHOST_TSuccess GHOST_WindowWayland::getCursorBitmap(GHOST_CursorBitmapRef *bitmap)
|
||||
|
@ -1695,7 +1707,12 @@ GHOST_TSuccess GHOST_WindowWayland::setWindowCursorVisibility(bool visible)
|
|||
#ifdef USE_EVENT_BACKGROUND_THREAD
|
||||
std::lock_guard lock_server_guard{*system_->server_mutex};
|
||||
#endif
|
||||
return system_->cursor_visibility_set(visible);
|
||||
const GHOST_TSuccess ok = system_->cursor_visibility_set(visible);
|
||||
if (ok == GHOST_kSuccess) {
|
||||
/* For the cursor to display when the event queue isn't being handled. */
|
||||
wl_display_flush(system_->wl_display_get());
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
GHOST_TSuccess GHOST_WindowWayland::setState(GHOST_TWindowState state)
|
||||
|
|
|
@ -55,6 +55,18 @@ class BakeOptions:
|
|||
do_clean: bool
|
||||
"""Remove redundant keyframes after baking."""
|
||||
|
||||
do_location: bool
|
||||
"""Bake location channels"""
|
||||
|
||||
do_rotation: bool
|
||||
"""Bake rotation channels"""
|
||||
|
||||
do_scale: bool
|
||||
"""Bake scale channels"""
|
||||
|
||||
do_bbone: bool
|
||||
"""Bake b-bone channels"""
|
||||
|
||||
|
||||
def bake_action(
|
||||
obj,
|
||||
|
@ -307,13 +319,17 @@ def bake_action_iter(
|
|||
paths_bbprops = [(base_fcurve_path + bbprop) for bbprop in BBONE_PROPS]
|
||||
|
||||
keyframes = KeyframesCo()
|
||||
keyframes.add_paths(path_location, 3)
|
||||
keyframes.add_paths(path_quaternion, 4)
|
||||
keyframes.add_paths(path_axis_angle, 4)
|
||||
keyframes.add_paths(path_euler, 3)
|
||||
keyframes.add_paths(path_scale, 3)
|
||||
|
||||
if pbone.bone.bbone_segments > 1:
|
||||
if bake_options.do_location:
|
||||
keyframes.add_paths(path_location, 3)
|
||||
if bake_options.do_rotation:
|
||||
keyframes.add_paths(path_quaternion, 4)
|
||||
keyframes.add_paths(path_axis_angle, 4)
|
||||
keyframes.add_paths(path_euler, 3)
|
||||
if bake_options.do_scale:
|
||||
keyframes.add_paths(path_scale, 3)
|
||||
|
||||
if bake_options.do_bbone and pbone.bone.bbone_segments > 1:
|
||||
for prop_name, path in zip(BBONE_PROPS, paths_bbprops):
|
||||
keyframes.add_paths(path, BBONE_PROPS_LENGTHS[prop_name])
|
||||
|
||||
|
@ -322,32 +338,35 @@ def bake_action_iter(
|
|||
for (f, matrix, bbones) in pose_info:
|
||||
pbone.matrix_basis = matrix[name].copy()
|
||||
|
||||
keyframes.extend_co_values(path_location, 3, f, pbone.location)
|
||||
if bake_options.do_location:
|
||||
keyframes.extend_co_values(path_location, 3, f, pbone.location)
|
||||
|
||||
if rotation_mode == 'QUATERNION':
|
||||
if quat_prev is not None:
|
||||
quat = pbone.rotation_quaternion.copy()
|
||||
quat.make_compatible(quat_prev)
|
||||
pbone.rotation_quaternion = quat
|
||||
quat_prev = quat
|
||||
del quat
|
||||
else:
|
||||
quat_prev = pbone.rotation_quaternion.copy()
|
||||
keyframes.extend_co_values(path_quaternion, 4, f, pbone.rotation_quaternion)
|
||||
elif rotation_mode == 'AXIS_ANGLE':
|
||||
keyframes.extend_co_values(path_axis_angle, 4, f, pbone.rotation_axis_angle)
|
||||
else: # euler, XYZ, ZXY etc
|
||||
if euler_prev is not None:
|
||||
euler = pbone.matrix_basis.to_euler(pbone.rotation_mode, euler_prev)
|
||||
pbone.rotation_euler = euler
|
||||
del euler
|
||||
euler_prev = pbone.rotation_euler.copy()
|
||||
keyframes.extend_co_values(path_euler, 3, f, pbone.rotation_euler)
|
||||
if bake_options.do_rotation:
|
||||
if rotation_mode == 'QUATERNION':
|
||||
if quat_prev is not None:
|
||||
quat = pbone.rotation_quaternion.copy()
|
||||
quat.make_compatible(quat_prev)
|
||||
pbone.rotation_quaternion = quat
|
||||
quat_prev = quat
|
||||
del quat
|
||||
else:
|
||||
quat_prev = pbone.rotation_quaternion.copy()
|
||||
keyframes.extend_co_values(path_quaternion, 4, f, pbone.rotation_quaternion)
|
||||
elif rotation_mode == 'AXIS_ANGLE':
|
||||
keyframes.extend_co_values(path_axis_angle, 4, f, pbone.rotation_axis_angle)
|
||||
else: # euler, XYZ, ZXY etc
|
||||
if euler_prev is not None:
|
||||
euler = pbone.matrix_basis.to_euler(pbone.rotation_mode, euler_prev)
|
||||
pbone.rotation_euler = euler
|
||||
del euler
|
||||
euler_prev = pbone.rotation_euler.copy()
|
||||
keyframes.extend_co_values(path_euler, 3, f, pbone.rotation_euler)
|
||||
|
||||
keyframes.extend_co_values(path_scale, 3, f, pbone.scale)
|
||||
if bake_options.do_scale:
|
||||
keyframes.extend_co_values(path_scale, 3, f, pbone.scale)
|
||||
|
||||
# Bendy Bones
|
||||
if pbone.bone.bbone_segments > 1:
|
||||
if bake_options.do_bbone and pbone.bone.bbone_segments > 1:
|
||||
bbone_shape = bbones[name]
|
||||
for prop_index, prop_name in enumerate(BBONE_PROPS):
|
||||
prop_len = BBONE_PROPS_LENGTHS[prop_name]
|
||||
|
@ -382,11 +401,14 @@ def bake_action_iter(
|
|||
path_scale = "scale"
|
||||
|
||||
keyframes = KeyframesCo()
|
||||
keyframes.add_paths(path_location, 3)
|
||||
keyframes.add_paths(path_quaternion, 4)
|
||||
keyframes.add_paths(path_axis_angle, 4)
|
||||
keyframes.add_paths(path_euler, 3)
|
||||
keyframes.add_paths(path_scale, 3)
|
||||
if bake_options.do_location:
|
||||
keyframes.add_paths(path_location, 3)
|
||||
if bake_options.do_rotation:
|
||||
keyframes.add_paths(path_quaternion, 4)
|
||||
keyframes.add_paths(path_axis_angle, 4)
|
||||
keyframes.add_paths(path_euler, 3)
|
||||
if bake_options.do_scale:
|
||||
keyframes.add_paths(path_scale, 3)
|
||||
|
||||
rotation_mode = obj.rotation_mode
|
||||
total_new_keys = len(obj_info)
|
||||
|
@ -394,28 +416,31 @@ def bake_action_iter(
|
|||
name = "Action Bake" # XXX: placeholder
|
||||
obj.matrix_basis = matrix
|
||||
|
||||
keyframes.extend_co_values(path_location, 3, f, obj.location)
|
||||
if bake_options.do_location:
|
||||
keyframes.extend_co_values(path_location, 3, f, obj.location)
|
||||
|
||||
if rotation_mode == 'QUATERNION':
|
||||
if quat_prev is not None:
|
||||
quat = obj.rotation_quaternion.copy()
|
||||
quat.make_compatible(quat_prev)
|
||||
obj.rotation_quaternion = quat
|
||||
quat_prev = quat
|
||||
del quat
|
||||
else:
|
||||
quat_prev = obj.rotation_quaternion.copy()
|
||||
keyframes.extend_co_values(path_quaternion, 4, f, obj.rotation_quaternion)
|
||||
if bake_options.do_rotation:
|
||||
if rotation_mode == 'QUATERNION':
|
||||
if quat_prev is not None:
|
||||
quat = obj.rotation_quaternion.copy()
|
||||
quat.make_compatible(quat_prev)
|
||||
obj.rotation_quaternion = quat
|
||||
quat_prev = quat
|
||||
del quat
|
||||
else:
|
||||
quat_prev = obj.rotation_quaternion.copy()
|
||||
keyframes.extend_co_values(path_quaternion, 4, f, obj.rotation_quaternion)
|
||||
|
||||
elif rotation_mode == 'AXIS_ANGLE':
|
||||
keyframes.extend_co_values(path_axis_angle, 4, f, obj.rotation_axis_angle)
|
||||
else: # euler, XYZ, ZXY etc
|
||||
if euler_prev is not None:
|
||||
obj.rotation_euler = matrix.to_euler(obj.rotation_mode, euler_prev)
|
||||
euler_prev = obj.rotation_euler.copy()
|
||||
keyframes.extend_co_values(path_euler, 3, f, obj.rotation_euler)
|
||||
elif rotation_mode == 'AXIS_ANGLE':
|
||||
keyframes.extend_co_values(path_axis_angle, 4, f, obj.rotation_axis_angle)
|
||||
else: # euler, XYZ, ZXY etc
|
||||
if euler_prev is not None:
|
||||
obj.rotation_euler = matrix.to_euler(obj.rotation_mode, euler_prev)
|
||||
euler_prev = obj.rotation_euler.copy()
|
||||
keyframes.extend_co_values(path_euler, 3, f, obj.rotation_euler)
|
||||
|
||||
keyframes.extend_co_values(path_scale, 3, f, obj.scale)
|
||||
if bake_options.do_scale:
|
||||
keyframes.extend_co_values(path_scale, 3, f, obj.scale)
|
||||
|
||||
if is_new_action:
|
||||
keyframes.insert_keyframes_into_new_action(total_new_keys, action, name)
|
||||
|
|
|
@ -397,8 +397,10 @@ class InfoPropertyRNA:
|
|||
type_str = (mathutils_fmt % "Euler") + " rotation" + dimension_str
|
||||
elif self.array_length == 4:
|
||||
type_str = (mathutils_fmt % "Quaternion") + " rotation" + dimension_str
|
||||
elif self.subtype in {"COORDINATES", "TRANSLATION", "DIRECTION", "VELOCITY",
|
||||
"ACCELERATION", "XYZ", "XYZ_LENGTH"}:
|
||||
elif self.subtype in {
|
||||
'COORDINATES', 'TRANSLATION', 'DIRECTION', 'VELOCITY',
|
||||
'ACCELERATION', 'XYZ', 'XYZ_LENGTH',
|
||||
}:
|
||||
if 2 <= self.array_length <= 4:
|
||||
type_str = (mathutils_fmt % "Vector") + dimension_str
|
||||
|
||||
|
|
|
@ -4799,7 +4799,7 @@ def km_pose(params):
|
|||
op_menu("VIEW3D_MT_bone_options_toggle", {"type": 'W', "value": 'PRESS', "shift": True}),
|
||||
op_menu("VIEW3D_MT_bone_options_enable", {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True}),
|
||||
op_menu("VIEW3D_MT_bone_options_disable", {"type": 'W', "value": 'PRESS', "alt": True}),
|
||||
("armature.layers_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
|
||||
("armature.collection_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
|
||||
op_menu("VIEW3D_MT_bone_collections", {"type": 'M', "value": 'PRESS', "shift": True}),
|
||||
("armature.move_to_collection", {"type": 'M', "value": 'PRESS'}, None),
|
||||
("transform.bbone_resize", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
|
||||
|
@ -5745,7 +5745,7 @@ def km_edit_armature(params):
|
|||
op_menu("VIEW3D_MT_bone_options_enable", {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True}),
|
||||
op_menu("VIEW3D_MT_bone_options_disable", {"type": 'W', "value": 'PRESS', "alt": True}),
|
||||
# Armature/bone layers.
|
||||
("armature.layers_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
|
||||
("armature.collection_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
|
||||
op_menu("VIEW3D_MT_bone_collections", {"type": 'M', "value": 'PRESS', "shift": True}),
|
||||
("armature.move_to_collection", {"type": 'M', "value": 'PRESS'}, None),
|
||||
# Special transforms.
|
||||
|
|
|
@ -447,8 +447,8 @@ def km_property_editor(params):
|
|||
("object.modifier_remove", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("report", True)]}),
|
||||
("object.modifier_copy", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
|
||||
# Grease pencil modifier panels
|
||||
("object.gpencil_modifier_remove", {"type": 'BACK_SPACE',
|
||||
"value": 'PRESS'}, {"properties": [("report", True)]}),
|
||||
("object.gpencil_modifier_remove",
|
||||
{"type": 'BACK_SPACE', "value": 'PRESS'}, {"properties": [("report", True)]}),
|
||||
("object.gpencil_modifier_remove", {"type": 'DEL', "value": 'PRESS'}, {"properties": [("report", True)]}),
|
||||
("object.gpencil_modifier_copy", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
|
||||
# ShaderFX panels
|
||||
|
|
|
@ -252,6 +252,18 @@ class NLA_OT_bake(Operator):
|
|||
),
|
||||
default={'POSE'},
|
||||
)
|
||||
channel_types: EnumProperty(
|
||||
name="Channels",
|
||||
description="Which channels to bake",
|
||||
options={'ENUM_FLAG'},
|
||||
items=(
|
||||
('LOCATION', "Location", "Bake location channels"),
|
||||
('ROTATION', "Rotation", "Bake rotation channels"),
|
||||
('SCALE', "Scale", "Bake scale channels"),
|
||||
('BBONE', "B-Bone", "Bake b-bone channels"),
|
||||
),
|
||||
default={'LOCATION', 'ROTATION', 'SCALE', 'BBONE'},
|
||||
)
|
||||
|
||||
def execute(self, context):
|
||||
from bpy_extras import anim_utils
|
||||
|
@ -263,7 +275,11 @@ class NLA_OT_bake(Operator):
|
|||
do_visual_keying=self.visual_keying,
|
||||
do_constraint_clear=self.clear_constraints,
|
||||
do_parents_clear=self.clear_parents,
|
||||
do_clean=self.clean_curves
|
||||
do_clean=self.clean_curves,
|
||||
do_location = 'LOCATION' in self.channel_types,
|
||||
do_rotation = 'ROTATION' in self.channel_types,
|
||||
do_scale = 'SCALE' in self.channel_types,
|
||||
do_bbone = 'BBONE' in self.channel_types,
|
||||
)
|
||||
|
||||
if bake_options.do_pose and self.only_selected:
|
||||
|
|
|
@ -89,15 +89,18 @@ def elems_depth_search(ele_init, depths, other_edges_over_cb, results_init=None)
|
|||
if type(ele_init) is bmesh.types.BMFace:
|
||||
test_ele = {
|
||||
l.face for v, depth in vert_depths.items()
|
||||
if depth >= depth_min for l in v.link_loops}
|
||||
if depth >= depth_min for l in v.link_loops
|
||||
}
|
||||
elif type(ele_init) is bmesh.types.BMEdge:
|
||||
test_ele = {
|
||||
e for v, depth in vert_depths.items()
|
||||
if depth >= depth_min for e in v.link_edges if not e.is_wire}
|
||||
if depth >= depth_min for e in v.link_edges if not e.is_wire
|
||||
}
|
||||
else:
|
||||
test_ele = {
|
||||
v for v, depth in vert_depths.items()
|
||||
if depth >= depth_min}
|
||||
if depth >= depth_min
|
||||
}
|
||||
|
||||
result_ele = set()
|
||||
|
||||
|
|
|
@ -882,11 +882,12 @@ class CLIP_OT_setup_tracking_scene(Operator):
|
|||
|
||||
@staticmethod
|
||||
def _getPlaneVertices(half_size, z):
|
||||
|
||||
return [(-half_size, -half_size, z),
|
||||
(half_size, -half_size, z),
|
||||
(half_size, half_size, z),
|
||||
(-half_size, half_size, z)]
|
||||
return [
|
||||
(-half_size, -half_size, z),
|
||||
(half_size, -half_size, z),
|
||||
(half_size, half_size, z),
|
||||
(-half_size, half_size, z),
|
||||
]
|
||||
|
||||
def _createGround(self, collection):
|
||||
vertices = self._getPlaneVertices(4.0, 0.0)
|
||||
|
|
|
@ -141,8 +141,10 @@ class MeshMirrorUV(Operator):
|
|||
if is_editmode:
|
||||
bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
|
||||
|
||||
meshes = [ob.data for ob in context.view_layer.objects.selected
|
||||
if ob.type == 'MESH' and ob.data.library is None]
|
||||
meshes = [
|
||||
ob.data for ob in context.view_layer.objects.selected
|
||||
if ob.type == 'MESH' and ob.data.library is None
|
||||
]
|
||||
|
||||
for mesh in meshes:
|
||||
mesh.tag = False
|
||||
|
|
|
@ -280,10 +280,11 @@ class NODE_OT_interface_item_new(NodeInterfaceOperator, Operator):
|
|||
item_type: EnumProperty(
|
||||
name="Item Type",
|
||||
description="Type of the item to create",
|
||||
items=[
|
||||
items=(
|
||||
('INPUT', "Input", ""),
|
||||
('OUTPUT', "Output", ""),
|
||||
('PANEL', "Panel", "")],
|
||||
('PANEL', "Panel", ""),
|
||||
),
|
||||
default='INPUT',
|
||||
)
|
||||
|
||||
|
|
|
@ -383,8 +383,7 @@ class ShapeTransfer(Operator):
|
|||
ob_add_shape(ob_other, orig_key_name)
|
||||
|
||||
# editing the final coords, only list that stores wrapped coords
|
||||
target_shape_coords = [v.co for v in
|
||||
ob_other.active_shape_key.data]
|
||||
target_shape_coords = [v.co for v in ob_other.active_shape_key.data]
|
||||
|
||||
median_coords = [[] for i in range(len(me.vertices))]
|
||||
|
||||
|
@ -464,8 +463,10 @@ class ShapeTransfer(Operator):
|
|||
|
||||
def execute(self, context):
|
||||
ob_act = context.active_object
|
||||
objects = [ob for ob in context.selected_editable_objects
|
||||
if ob != ob_act]
|
||||
objects = [
|
||||
ob for ob in context.selected_editable_objects
|
||||
if ob != ob_act
|
||||
]
|
||||
|
||||
if 1: # swap from/to, means we can't copy to many at once.
|
||||
if len(objects) != 1:
|
||||
|
@ -603,9 +604,11 @@ class MakeDupliFace(Operator):
|
|||
linked[obj.instance_collection].append(obj)
|
||||
|
||||
for data, objects in linked.items():
|
||||
face_verts = [axis for obj in objects
|
||||
for v in matrix_to_quad(obj.matrix_world)
|
||||
for axis in v]
|
||||
face_verts = [
|
||||
axis for obj in objects
|
||||
for v in matrix_to_quad(obj.matrix_world)
|
||||
for axis in v
|
||||
]
|
||||
nbr_verts = len(face_verts) // 3
|
||||
nbr_faces = nbr_verts // 4
|
||||
|
||||
|
|
|
@ -265,8 +265,10 @@ class QuickExplode(ObjectModeOperator, Operator):
|
|||
self.report({'ERROR'}, "Active object is not a mesh")
|
||||
return {'CANCELLED'}
|
||||
|
||||
mesh_objects = [obj for obj in context.selected_objects
|
||||
if obj.type == 'MESH' and obj != obj_act]
|
||||
mesh_objects = [
|
||||
obj for obj in context.selected_objects
|
||||
if obj.type == 'MESH' and obj != obj_act
|
||||
]
|
||||
mesh_objects.insert(0, obj_act)
|
||||
|
||||
if self.style == 'BLEND' and len(mesh_objects) != 2:
|
||||
|
@ -441,8 +443,10 @@ class QuickSmoke(ObjectModeOperator, Operator):
|
|||
return {'CANCELLED'}
|
||||
|
||||
context_override = context.copy()
|
||||
mesh_objects = [obj for obj in context.selected_objects
|
||||
if obj.type == 'MESH']
|
||||
mesh_objects = [
|
||||
obj for obj in context.selected_objects
|
||||
if obj.type == 'MESH'
|
||||
]
|
||||
min_co = Vector((100000.0, 100000.0, 100000.0))
|
||||
max_co = -min_co
|
||||
|
||||
|
@ -547,8 +551,10 @@ class QuickLiquid(Operator):
|
|||
return {'CANCELLED'}
|
||||
|
||||
context_override = context.copy()
|
||||
mesh_objects = [obj for obj in context.selected_objects
|
||||
if obj.type == 'MESH']
|
||||
mesh_objects = [
|
||||
obj for obj in context.selected_objects
|
||||
if obj.type == 'MESH'
|
||||
]
|
||||
min_co = Vector((100000.0, 100000.0, 100000.0))
|
||||
max_co = -min_co
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
|
|||
# to use the user setting, see: #61637
|
||||
# "orient_type": 'NORMAL',
|
||||
# Not a popular choice, too restrictive for retopo.
|
||||
# "constraint_axis": (True, True, False)})
|
||||
# "constraint_axis": (True, True, False),
|
||||
"constraint_axis": (False, False, False),
|
||||
"release_confirm": False,
|
||||
"alt_navigation": alt_navigation,
|
||||
|
|
|
@ -3195,13 +3195,12 @@ class WM_MT_splash_quick_setup(Menu):
|
|||
col = split.column()
|
||||
col.operator(
|
||||
"preferences.copy_prev",
|
||||
text=iface_(
|
||||
"Load Blender %d.%d Settings",
|
||||
"Operator") %
|
||||
old_version, icon='DUPLICATE',
|
||||
translate=False)
|
||||
text=iface_("Load Blender %d.%d Settings", "Operator") % old_version,
|
||||
icon='DUPLICATE',
|
||||
translate=False,
|
||||
)
|
||||
col.operator(
|
||||
"wm.url_open", text="See What's New...", icon='URL'
|
||||
"wm.url_open", text="See What's New...", icon='URL',
|
||||
).url = "https://wiki.blender.org/wiki/Reference/Release_Notes/4.0"
|
||||
col.separator(factor=2.0)
|
||||
|
||||
|
|
|
@ -535,7 +535,8 @@ class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_property_type = bpy.types.Bone, bpy.types.EditBone, bpy.types.PoseBone
|
||||
|
||||
@property
|
||||
|
|
|
@ -29,7 +29,8 @@ class CAMERA_PT_presets(PresetPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
|
||||
class CAMERA_PT_safe_areas_presets(PresetPanel, Panel):
|
||||
|
@ -41,7 +42,8 @@ class CAMERA_PT_safe_areas_presets(PresetPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
|
||||
class DATA_PT_context_camera(CameraButtonsPanel, Panel):
|
||||
|
@ -51,7 +53,8 @@ class DATA_PT_context_camera(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -73,7 +76,8 @@ class DATA_PT_lens(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -146,7 +150,8 @@ class DATA_PT_camera_stereoscopy(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -199,7 +204,8 @@ class DATA_PT_camera(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header_preset(self, _context):
|
||||
CAMERA_PT_presets.draw_panel_header(self.layout)
|
||||
|
@ -284,7 +290,8 @@ class DATA_PT_camera_background_image(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cam = context.camera
|
||||
|
@ -395,7 +402,8 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -432,7 +440,8 @@ class DATA_PT_camera_display_composition_guides(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -463,7 +472,8 @@ class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cam = context.camera
|
||||
|
@ -497,7 +507,8 @@ class DATA_PT_camera_safe_areas_center_cut(CameraButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cam = context.camera
|
||||
|
@ -525,7 +536,8 @@ class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Camera
|
||||
|
||||
|
|
|
@ -123,7 +123,8 @@ class DATA_PT_curve_texture_space(CurveButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -501,7 +502,8 @@ class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Curve
|
||||
|
||||
|
|
|
@ -25,7 +25,8 @@ class DATA_PT_context_curves(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -46,7 +47,8 @@ class DATA_PT_curves_surface(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -133,7 +135,8 @@ class DATA_PT_CURVES_attributes(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
curves = context.curves
|
||||
|
@ -162,7 +165,8 @@ class DATA_PT_custom_props_curves(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Curves if hasattr(bpy.types, "Curves") else None
|
||||
|
||||
|
|
|
@ -175,31 +175,31 @@ class DATA_PT_gpencil_layers(DataButtonsPanel, Panel):
|
|||
|
||||
class DATA_PT_gpencil_layer_masks(LayerDataButtonsPanel, GreasePencilLayerMasksPanel, Panel):
|
||||
bl_label = "Masks"
|
||||
bl_parent_id = 'DATA_PT_gpencil_layers'
|
||||
bl_parent_id = "DATA_PT_gpencil_layers"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DATA_PT_gpencil_layer_transform(LayerDataButtonsPanel, GreasePencilLayerTransformPanel, Panel):
|
||||
bl_label = "Transform"
|
||||
bl_parent_id = 'DATA_PT_gpencil_layers'
|
||||
bl_parent_id = "DATA_PT_gpencil_layers"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DATA_PT_gpencil_layer_adjustments(LayerDataButtonsPanel, GreasePencilLayerAdjustmentsPanel, Panel):
|
||||
bl_label = "Adjustments"
|
||||
bl_parent_id = 'DATA_PT_gpencil_layers'
|
||||
bl_parent_id = "DATA_PT_gpencil_layers"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DATA_PT_gpencil_layer_relations(LayerDataButtonsPanel, GreasePencilLayerRelationsPanel, Panel):
|
||||
bl_label = "Relations"
|
||||
bl_parent_id = 'DATA_PT_gpencil_layers'
|
||||
bl_parent_id = "DATA_PT_gpencil_layers"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DATA_PT_gpencil_layer_display(LayerDataButtonsPanel, GreasePencilLayerDisplayPanel, Panel):
|
||||
bl_label = "Display"
|
||||
bl_parent_id = 'DATA_PT_gpencil_layers'
|
||||
bl_parent_id = "DATA_PT_gpencil_layers"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
|
@ -390,7 +390,7 @@ class DATA_PT_gpencil_display(DataButtonsPanel, Panel):
|
|||
|
||||
class DATA_PT_gpencil_canvas(DataButtonsPanel, Panel):
|
||||
bl_label = "Canvas"
|
||||
bl_parent_id = 'DATA_PT_gpencil_display'
|
||||
bl_parent_id = "DATA_PT_gpencil_display"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw(self, context):
|
||||
|
|
|
@ -71,7 +71,8 @@ class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Lattice
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@ class DATA_PT_context_light(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -251,7 +252,8 @@ class DATA_PT_spot(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -278,7 +280,8 @@ class DATA_PT_custom_props_light(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Light
|
||||
|
||||
|
|
|
@ -167,7 +167,8 @@ class DATA_PT_context_mesh(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -189,7 +190,8 @@ class DATA_PT_texture_space(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -213,7 +215,8 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -275,7 +278,8 @@ class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -376,7 +380,8 @@ class DATA_PT_uv_texture(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -402,7 +407,8 @@ class DATA_PT_remesh(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -436,7 +442,8 @@ class DATA_PT_customdata(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -460,7 +467,8 @@ class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Mesh
|
||||
|
||||
|
@ -513,7 +521,8 @@ class DATA_PT_mesh_attributes(MeshButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
mesh = context.mesh
|
||||
|
@ -646,7 +655,8 @@ class DATA_PT_vertex_colors(DATA_PT_mesh_attributes, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
mesh = context.mesh
|
||||
|
|
|
@ -63,7 +63,8 @@ class DATA_PT_mball_texture_space(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -122,7 +123,8 @@ class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.MetaBall
|
||||
|
||||
|
|
|
@ -14,10 +14,14 @@ class ModifierButtonsPanel:
|
|||
|
||||
|
||||
class ModifierAddMenu:
|
||||
MODIFIER_TYPES_TO_LABELS = {enum_it.identifier: enum_it.name
|
||||
for enum_it in bpy.types.Modifier.bl_rna.properties['type'].enum_items_static}
|
||||
MODIFIER_TYPES_TO_ICONS = {enum_it.identifier: enum_it.icon
|
||||
for enum_it in bpy.types.Modifier.bl_rna.properties['type'].enum_items_static}
|
||||
MODIFIER_TYPES_TO_LABELS = {
|
||||
enum_it.identifier: enum_it.name
|
||||
for enum_it in bpy.types.Modifier.bl_rna.properties['type'].enum_items_static
|
||||
}
|
||||
MODIFIER_TYPES_TO_ICONS = {
|
||||
enum_it.identifier: enum_it.icon
|
||||
for enum_it in bpy.types.Modifier.bl_rna.properties['type'].enum_items_static
|
||||
}
|
||||
MODIFIER_TYPES_I18N_CONTEXT = bpy.types.Modifier.bl_rna.properties['type'].translation_context
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -25,7 +25,8 @@ class DATA_PT_context_pointcloud(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -108,7 +109,8 @@ class DATA_PT_pointcloud_attributes(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
pointcloud = context.pointcloud
|
||||
|
@ -137,7 +139,8 @@ class DATA_PT_custom_props_pointcloud(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.PointCloud if hasattr(bpy.types, "PointCloud") else None
|
||||
|
||||
|
|
|
@ -25,7 +25,8 @@ class DATA_PT_context_speaker(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -46,7 +47,8 @@ class DATA_PT_speaker(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -72,7 +74,8 @@ class DATA_PT_distance(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -100,7 +103,8 @@ class DATA_PT_cone(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -126,7 +130,8 @@ class DATA_PT_custom_props_speaker(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Speaker
|
||||
|
||||
|
|
|
@ -25,7 +25,8 @@ class DATA_PT_context_volume(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -46,7 +47,8 @@ class DATA_PT_volume_file(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -95,7 +97,8 @@ class DATA_PT_volume_grids(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -112,7 +115,8 @@ class DATA_PT_volume_render(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -148,7 +152,8 @@ class DATA_PT_volume_viewport_display(DataButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -171,12 +176,13 @@ class DATA_PT_volume_viewport_display(DataButtonsPanel, Panel):
|
|||
|
||||
class DATA_PT_volume_viewport_display_slicing(DataButtonsPanel, Panel):
|
||||
bl_label = ""
|
||||
bl_parent_id = 'DATA_PT_volume_viewport_display'
|
||||
bl_parent_id = "DATA_PT_volume_viewport_display"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
layout = self.layout
|
||||
|
@ -206,7 +212,8 @@ class DATA_PT_custom_props_volume(DataButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "object.data"
|
||||
_property_type = bpy.types.Volume
|
||||
|
||||
|
|
|
@ -68,7 +68,8 @@ class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "material"
|
||||
_property_type = bpy.types.Material
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ class MATERIAL_PT_gpencil_surface(GPMaterialButtonsPanel, Panel):
|
|||
|
||||
class MATERIAL_PT_gpencil_strokecolor(GPMaterialButtonsPanel, Panel):
|
||||
bl_label = "Stroke"
|
||||
bl_parent_id = 'MATERIAL_PT_gpencil_surface'
|
||||
bl_parent_id = "MATERIAL_PT_gpencil_surface"
|
||||
|
||||
def draw_header(self, context):
|
||||
ma = context.material
|
||||
|
@ -164,7 +164,7 @@ class MATERIAL_PT_gpencil_strokecolor(GPMaterialButtonsPanel, Panel):
|
|||
|
||||
class MATERIAL_PT_gpencil_fillcolor(GPMaterialButtonsPanel, Panel):
|
||||
bl_label = "Fill"
|
||||
bl_parent_id = 'MATERIAL_PT_gpencil_surface'
|
||||
bl_parent_id = "MATERIAL_PT_gpencil_surface"
|
||||
|
||||
def draw_header(self, context):
|
||||
ma = context.material
|
||||
|
|
|
@ -49,7 +49,8 @@ class RENDER_PT_format(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
_frame_rate_args_prev = None
|
||||
_preset_class = None
|
||||
|
@ -131,7 +132,8 @@ class RENDER_PT_frame_range(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -154,7 +156,8 @@ class RENDER_PT_time_stretching(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -175,7 +178,8 @@ class RENDER_PT_post_processing(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -197,7 +201,8 @@ class RENDER_PT_stamp(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -235,7 +240,8 @@ class RENDER_PT_stamp_note(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
@ -259,7 +265,8 @@ class RENDER_PT_stamp_burn(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
@ -287,7 +294,8 @@ class RENDER_PT_output(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -320,7 +328,8 @@ class RENDER_PT_output_views(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -344,7 +353,8 @@ class RENDER_PT_output_color_management(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
scene = context.scene
|
||||
|
@ -383,7 +393,8 @@ class RENDER_PT_encoding(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header_preset(self, _context):
|
||||
RENDER_PT_ffmpeg_presets.draw_panel_header(self.layout)
|
||||
|
@ -412,7 +423,8 @@ class RENDER_PT_encoding_video(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -492,7 +504,8 @@ class RENDER_PT_encoding_audio(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -538,7 +551,8 @@ class RENDER_PT_stereoscopy(RenderOutputButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw_header(self, context):
|
||||
|
|
|
@ -59,7 +59,8 @@ class PARTICLE_MT_context_menu(Menu):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -102,7 +103,8 @@ class PARTICLE_PT_hair_dynamics_presets(PresetPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
|
||||
class ParticleButtonsPanel:
|
||||
|
@ -160,7 +162,8 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -258,7 +261,8 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -314,7 +318,8 @@ class PARTICLE_PT_emission_source(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -355,7 +360,8 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -442,7 +448,8 @@ class PARTICLE_PT_hair_dynamics_collision(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -478,7 +485,8 @@ class PARTICLE_PT_hair_dynamics_structure(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -513,7 +521,8 @@ class PARTICLE_PT_hair_dynamics_volume(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -548,7 +557,8 @@ class PARTICLE_PT_cache(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -585,7 +595,8 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -638,7 +649,8 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -697,7 +709,8 @@ class PARTICLE_PT_rotation_angular_velocity(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -726,7 +739,8 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -783,7 +797,8 @@ class PARTICLE_PT_physics_fluid_advanced(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -832,7 +847,8 @@ class PARTICLE_PT_physics_fluid_springs(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -860,7 +876,8 @@ class PARTICLE_PT_physics_fluid_springs_viscoelastic(ParticleButtonsPanel, Panel
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -900,7 +917,8 @@ class PARTICLE_PT_physics_fluid_springs_advanced(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -928,7 +946,8 @@ class PARTICLE_PT_physics_boids_movement(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -985,7 +1004,8 @@ class PARTICLE_PT_physics_boids_battle(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1016,7 +1036,8 @@ class PARTICLE_PT_physics_boids_misc(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1045,7 +1066,8 @@ class PARTICLE_PT_physics_relations(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1104,7 +1126,8 @@ class PARTICLE_PT_physics_fluid_interaction(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1149,7 +1172,8 @@ class PARTICLE_PT_physics_deflection(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1179,7 +1203,8 @@ class PARTICLE_PT_physics_forces(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1210,7 +1235,8 @@ class PARTICLE_PT_physics_integration(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1248,7 +1274,8 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1350,7 +1377,8 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1401,7 +1429,8 @@ class PARTICLE_PT_render_extra(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1429,7 +1458,8 @@ class PARTICLE_PT_render_path(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1455,7 +1485,8 @@ class PARTICLE_PT_render_path_timing(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1487,7 +1518,8 @@ class PARTICLE_PT_render_object(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1516,7 +1548,8 @@ class PARTICLE_PT_render_collection(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1550,7 +1583,8 @@ class PARTICLE_PT_render_collection_use_count(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1602,7 +1636,8 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1665,7 +1700,8 @@ class PARTICLE_PT_children(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1722,7 +1758,8 @@ class PARTICLE_PT_children_parting(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1757,7 +1794,8 @@ class PARTICLE_PT_children_clumping(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1797,7 +1835,8 @@ class PARTICLE_PT_children_clumping_noise(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
|
||||
|
@ -1825,7 +1864,8 @@ class PARTICLE_PT_children_roughness(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1870,7 +1910,8 @@ class PARTICLE_PT_children_kink(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1924,7 +1965,8 @@ class PARTICLE_PT_field_weights(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1949,7 +1991,8 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -1969,7 +2012,8 @@ class PARTICLE_PT_force_fields_type1(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -1990,7 +2034,8 @@ class PARTICLE_PT_force_fields_type2(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -2012,7 +2057,8 @@ class PARTICLE_PT_force_fields_type1_falloff(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -2032,7 +2078,8 @@ class PARTICLE_PT_force_fields_type2_falloff(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -2051,7 +2098,8 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -2144,7 +2192,8 @@ class PARTICLE_PT_textures(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -2180,7 +2229,8 @@ class PARTICLE_PT_hair_shape(ParticleButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -2212,7 +2262,8 @@ class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "particle_system.settings"
|
||||
_property_type = bpy.types.ParticleSettings
|
||||
|
||||
|
|
|
@ -41,7 +41,8 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header_preset(self, _context):
|
||||
CLOTH_PT_presets.draw_panel_header(self.layout)
|
||||
|
@ -65,12 +66,13 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_physical_properties(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Physical Properties"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth'
|
||||
bl_parent_id = "PHYSICS_PT_cloth"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -93,12 +95,13 @@ class PHYSICS_PT_cloth_physical_properties(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Stiffness"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth_physical_properties'
|
||||
bl_parent_id = "PHYSICS_PT_cloth_physical_properties"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -128,12 +131,13 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_damping(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Damping"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth_physical_properties'
|
||||
bl_parent_id = "PHYSICS_PT_cloth_physical_properties"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -163,12 +167,13 @@ class PHYSICS_PT_cloth_damping(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_internal_springs(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Internal Springs"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth_physical_properties'
|
||||
bl_parent_id = "PHYSICS_PT_cloth_physical_properties"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cloth = context.cloth.settings
|
||||
|
@ -209,12 +214,13 @@ class PHYSICS_PT_cloth_internal_springs(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_pressure(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Pressure"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth_physical_properties'
|
||||
bl_parent_id = "PHYSICS_PT_cloth_physical_properties"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cloth = context.cloth.settings
|
||||
|
@ -256,13 +262,14 @@ class PHYSICS_PT_cloth_pressure(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Cache"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth'
|
||||
bl_parent_id = "PHYSICS_PT_cloth"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
md = context.cloth
|
||||
|
@ -271,13 +278,14 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_shape(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Shape"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth'
|
||||
bl_parent_id = "PHYSICS_PT_cloth"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -325,13 +333,14 @@ class PHYSICS_PT_cloth_shape(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Collisions"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth'
|
||||
bl_parent_id = "PHYSICS_PT_cloth"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -350,12 +359,13 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_object_collision(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Object Collisions"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth_collision'
|
||||
bl_parent_id = "PHYSICS_PT_cloth_collision"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cloth = context.cloth.collision_settings
|
||||
|
@ -390,12 +400,13 @@ class PHYSICS_PT_cloth_object_collision(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_self_collision(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Self Collisions"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth_collision'
|
||||
bl_parent_id = "PHYSICS_PT_cloth_collision"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
cloth = context.cloth.collision_settings
|
||||
|
@ -430,13 +441,14 @@ class PHYSICS_PT_cloth_self_collision(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_property_weights(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Property Weights"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth'
|
||||
bl_parent_id = "PHYSICS_PT_cloth"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -488,13 +500,14 @@ class PHYSICS_PT_cloth_property_weights(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Field Weights"
|
||||
bl_parent_id = 'PHYSICS_PT_cloth'
|
||||
bl_parent_id = "PHYSICS_PT_cloth"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
cloth = context.cloth.settings
|
||||
|
|
|
@ -57,7 +57,8 @@ class PHYSICS_PT_add(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -89,7 +89,8 @@ class PHYSICS_PT_dynamic_paint(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -109,12 +110,13 @@ class PHYSICS_PT_dynamic_paint(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_dynamic_paint_settings(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'PHYSICS_PT_dynamic_paint'
|
||||
bl_parent_id = "PHYSICS_PT_dynamic_paint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -202,7 +204,8 @@ class PHYSICS_PT_dp_surface_canvas(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -269,7 +272,8 @@ class PHYSICS_PT_dp_surface_canvas_paint_dry(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -309,7 +313,8 @@ class PHYSICS_PT_dp_surface_canvas_paint_dissolve(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -350,7 +355,8 @@ class PHYSICS_PT_dp_canvas_output(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -430,7 +436,8 @@ class PHYSICS_PT_dp_canvas_output_paintmaps(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -464,7 +471,8 @@ class PHYSICS_PT_dp_canvas_output_wetmaps(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -498,7 +506,8 @@ class PHYSICS_PT_dp_canvas_initial_color(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -536,13 +545,14 @@ class PHYSICS_PT_dp_canvas_initial_color(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_dp_effects(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Effects"
|
||||
bl_parent_id = 'PHYSICS_PT_dynamic_paint'
|
||||
bl_parent_id = "PHYSICS_PT_dynamic_paint"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -563,7 +573,8 @@ class PHYSICS_PT_dp_effects_spread(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -602,7 +613,8 @@ class PHYSICS_PT_dp_effects_drip(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -642,7 +654,8 @@ class PHYSICS_PT_dp_effects_drip_weights(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -670,7 +683,8 @@ class PHYSICS_PT_dp_effects_shrink(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -704,7 +718,8 @@ class PHYSICS_PT_dp_cache(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -728,7 +743,8 @@ class PHYSICS_PT_dp_brush_source(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -795,7 +811,8 @@ class PHYSICS_PT_dp_brush_source_color_ramp(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -826,7 +843,8 @@ class PHYSICS_PT_dp_brush_velocity(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -861,7 +879,8 @@ class PHYSICS_PT_dp_brush_velocity_color_ramp(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -886,7 +905,8 @@ class PHYSICS_PT_dp_brush_velocity_smudge(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -918,7 +938,8 @@ class PHYSICS_PT_dp_brush_wave(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -33,7 +33,8 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -54,12 +55,13 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_field_settings(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'PHYSICS_PT_field'
|
||||
bl_parent_id = "PHYSICS_PT_field"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -145,12 +147,13 @@ class PHYSICS_PT_field_settings(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_field_settings_kink(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Kink"
|
||||
bl_parent_id = 'PHYSICS_PT_field_settings'
|
||||
bl_parent_id = "PHYSICS_PT_field_settings"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -183,12 +186,13 @@ class PHYSICS_PT_field_settings_kink(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_field_settings_texture_select(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Texture"
|
||||
bl_parent_id = 'PHYSICS_PT_field_settings'
|
||||
bl_parent_id = "PHYSICS_PT_field_settings"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -214,7 +218,8 @@ class PHYSICS_PT_field_falloff(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -243,7 +248,8 @@ class PHYSICS_PT_field_falloff_angular(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -286,7 +292,8 @@ class PHYSICS_PT_field_falloff_radial(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -334,7 +341,8 @@ class PHYSICS_PT_collision(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -369,7 +377,8 @@ class PHYSICS_PT_collision_particle(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -419,7 +428,8 @@ class PHYSICS_PT_collision_softbody(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -102,7 +102,8 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -125,12 +126,13 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_settings(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -292,12 +294,13 @@ class PHYSICS_PT_settings(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_borders(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Border Collisions"
|
||||
bl_parent_id = 'PHYSICS_PT_settings'
|
||||
bl_parent_id = "PHYSICS_PT_settings"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -329,12 +332,13 @@ class PHYSICS_PT_borders(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Gas"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -365,13 +369,14 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_smoke_dissolve(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Dissolve"
|
||||
bl_parent_id = 'PHYSICS_PT_smoke'
|
||||
bl_parent_id = "PHYSICS_PT_smoke"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -413,13 +418,14 @@ class PHYSICS_PT_smoke_dissolve(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_fire(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Fire"
|
||||
bl_parent_id = 'PHYSICS_PT_smoke'
|
||||
bl_parent_id = "PHYSICS_PT_smoke"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -457,12 +463,13 @@ class PHYSICS_PT_fire(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_liquid(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Liquid"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -523,13 +530,14 @@ class PHYSICS_PT_liquid(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_flow_source(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Flow Source"
|
||||
bl_parent_id = 'PHYSICS_PT_settings'
|
||||
bl_parent_id = "PHYSICS_PT_settings"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -569,12 +577,13 @@ class PHYSICS_PT_flow_source(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_flow_initial_velocity(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Initial Velocity"
|
||||
bl_parent_id = 'PHYSICS_PT_settings'
|
||||
bl_parent_id = "PHYSICS_PT_settings"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -614,13 +623,14 @@ class PHYSICS_PT_flow_initial_velocity(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_flow_texture(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Texture"
|
||||
bl_parent_id = 'PHYSICS_PT_settings'
|
||||
bl_parent_id = "PHYSICS_PT_settings"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -669,13 +679,14 @@ class PHYSICS_PT_flow_texture(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_adaptive_domain(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Adaptive Domain"
|
||||
bl_parent_id = 'PHYSICS_PT_settings'
|
||||
bl_parent_id = "PHYSICS_PT_settings"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -725,13 +736,14 @@ class PHYSICS_PT_adaptive_domain(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_noise(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Noise"
|
||||
bl_parent_id = 'PHYSICS_PT_smoke'
|
||||
bl_parent_id = "PHYSICS_PT_smoke"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -809,13 +821,14 @@ class PHYSICS_PT_noise(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_mesh(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Mesh"
|
||||
bl_parent_id = 'PHYSICS_PT_liquid'
|
||||
bl_parent_id = "PHYSICS_PT_liquid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -908,13 +921,14 @@ class PHYSICS_PT_mesh(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_particles(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Particles"
|
||||
bl_parent_id = 'PHYSICS_PT_liquid'
|
||||
bl_parent_id = "PHYSICS_PT_liquid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1043,13 +1057,14 @@ class PHYSICS_PT_particles(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_viscosity(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Viscosity"
|
||||
bl_parent_id = 'PHYSICS_PT_liquid'
|
||||
bl_parent_id = "PHYSICS_PT_liquid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1087,13 +1102,14 @@ class PHYSICS_PT_viscosity(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_diffusion(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Diffusion"
|
||||
bl_parent_id = 'PHYSICS_PT_liquid'
|
||||
bl_parent_id = "PHYSICS_PT_liquid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1138,13 +1154,14 @@ class PHYSICS_PT_diffusion(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_guide(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Guides"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1208,13 +1225,14 @@ class PHYSICS_PT_guide(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_collections(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Collections"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1240,12 +1258,13 @@ class PHYSICS_PT_collections(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_cache(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Cache"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1327,13 +1346,14 @@ class PHYSICS_PT_cache(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_export(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Advanced"
|
||||
bl_parent_id = 'PHYSICS_PT_cache'
|
||||
bl_parent_id = "PHYSICS_PT_cache"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1376,13 +1396,14 @@ class PHYSICS_PT_export(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_field_weights(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Field Weights"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1398,7 +1419,7 @@ class PHYSICS_PT_field_weights(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_viewport_display(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Viewport Display"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
@ -1428,7 +1449,7 @@ class PHYSICS_PT_viewport_display(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_viewport_display_slicing(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Slice"
|
||||
bl_parent_id = 'PHYSICS_PT_viewport_display'
|
||||
bl_parent_id = "PHYSICS_PT_viewport_display"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
@ -1460,7 +1481,7 @@ class PHYSICS_PT_viewport_display_slicing(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_viewport_display_color(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Grid Display"
|
||||
bl_parent_id = 'PHYSICS_PT_viewport_display'
|
||||
bl_parent_id = "PHYSICS_PT_viewport_display"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
@ -1493,7 +1514,7 @@ class PHYSICS_PT_viewport_display_color(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_viewport_display_debug(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Vector Display"
|
||||
bl_parent_id = 'PHYSICS_PT_viewport_display'
|
||||
bl_parent_id = "PHYSICS_PT_viewport_display"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
@ -1534,7 +1555,7 @@ class PHYSICS_PT_viewport_display_debug(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_viewport_display_advanced(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Advanced"
|
||||
bl_parent_id = 'PHYSICS_PT_viewport_display'
|
||||
bl_parent_id = "PHYSICS_PT_viewport_display"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
@ -1569,13 +1590,14 @@ class PHYSICS_PT_viewport_display_advanced(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_fluid_domain_render(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Render"
|
||||
bl_parent_id = 'PHYSICS_PT_fluid'
|
||||
bl_parent_id = "PHYSICS_PT_fluid"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -25,7 +25,8 @@ class PHYSICS_PT_rigid_body(PHYSICS_PT_rigidbody_panel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -59,12 +60,13 @@ class PHYSICS_PT_rigid_body(PHYSICS_PT_rigidbody_panel, Panel):
|
|||
|
||||
class PHYSICS_PT_rigid_body_settings(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -95,12 +97,13 @@ class PHYSICS_PT_rigid_body_settings(PHYSICS_PT_rigidbody_panel, Panel):
|
|||
|
||||
class PHYSICS_PT_rigid_body_collisions(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Collisions"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -148,13 +151,14 @@ class PHYSICS_PT_rigid_body_collisions(PHYSICS_PT_rigidbody_panel, Panel):
|
|||
|
||||
class PHYSICS_PT_rigid_body_collisions_surface(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Surface Response"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_collisions'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_collisions"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -180,13 +184,14 @@ class PHYSICS_PT_rigid_body_collisions_surface(PHYSICS_PT_rigidbody_panel, Panel
|
|||
|
||||
class PHYSICS_PT_rigid_body_collisions_sensitivity(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Sensitivity"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_collisions'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_collisions"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -221,13 +226,14 @@ class PHYSICS_PT_rigid_body_collisions_sensitivity(PHYSICS_PT_rigidbody_panel, P
|
|||
|
||||
class PHYSICS_PT_rigid_body_collisions_collections(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Collections"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_collisions'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_collisions"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -247,13 +253,14 @@ class PHYSICS_PT_rigid_body_collisions_collections(PHYSICS_PT_rigidbody_panel, P
|
|||
|
||||
class PHYSICS_PT_rigid_body_dynamics(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Dynamics"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -284,13 +291,14 @@ class PHYSICS_PT_rigid_body_dynamics(PHYSICS_PT_rigidbody_panel, Panel):
|
|||
|
||||
class PHYSICS_PT_rigid_body_dynamics_deactivation(PHYSICS_PT_rigidbody_panel, Panel):
|
||||
bl_label = "Deactivation"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_dynamics'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_dynamics"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -19,7 +19,8 @@ class PHYSICS_PT_rigid_body_constraint(PHYSICS_PT_rigidbody_constraint_panel, Pa
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -38,12 +39,13 @@ class PHYSICS_PT_rigid_body_constraint(PHYSICS_PT_rigidbody_constraint_panel, Pa
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_settings(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -73,12 +75,13 @@ class PHYSICS_PT_rigid_body_constraint_settings(PHYSICS_PT_rigidbody_constraint_
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_objects(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Objects"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -98,12 +101,13 @@ class PHYSICS_PT_rigid_body_constraint_objects(PHYSICS_PT_rigidbody_constraint_p
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_override_iterations(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Override Iterations"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -128,12 +132,13 @@ class PHYSICS_PT_rigid_body_constraint_override_iterations(PHYSICS_PT_rigidbody_
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_limits(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Limits"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -149,12 +154,13 @@ class PHYSICS_PT_rigid_body_constraint_limits(PHYSICS_PT_rigidbody_constraint_pa
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_limits_linear(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Linear"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint_limits'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint_limits"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -210,12 +216,13 @@ class PHYSICS_PT_rigid_body_constraint_limits_linear(PHYSICS_PT_rigidbody_constr
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_limits_angular(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Angular"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint_limits'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint_limits"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -280,12 +287,13 @@ class PHYSICS_PT_rigid_body_constraint_limits_angular(PHYSICS_PT_rigidbody_const
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_motor(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Motor"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -301,12 +309,13 @@ class PHYSICS_PT_rigid_body_constraint_motor(PHYSICS_PT_rigidbody_constraint_pan
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_motor_angular(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Angular"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint_motor'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint_motor"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -341,12 +350,13 @@ class PHYSICS_PT_rigid_body_constraint_motor_angular(PHYSICS_PT_rigidbody_constr
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_motor_linear(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Linear"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint_motor'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint_motor"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -381,12 +391,13 @@ class PHYSICS_PT_rigid_body_constraint_motor_linear(PHYSICS_PT_rigidbody_constra
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_springs(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Springs"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -409,12 +420,13 @@ class PHYSICS_PT_rigid_body_constraint_springs(PHYSICS_PT_rigidbody_constraint_p
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_springs_angular(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Angular"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint_springs'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint_springs"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -461,12 +473,13 @@ class PHYSICS_PT_rigid_body_constraint_springs_angular(PHYSICS_PT_rigidbody_cons
|
|||
|
||||
class PHYSICS_PT_rigid_body_constraint_springs_linear(PHYSICS_PT_rigidbody_constraint_panel, Panel):
|
||||
bl_label = "Linear"
|
||||
bl_parent_id = 'PHYSICS_PT_rigid_body_constraint_springs'
|
||||
bl_parent_id = "PHYSICS_PT_rigid_body_constraint_springs"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -34,7 +34,8 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -48,13 +49,14 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_object(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Object"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -80,13 +82,14 @@ class PHYSICS_PT_softbody_object(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_simulation(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Simulation"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -102,13 +105,14 @@ class PHYSICS_PT_softbody_simulation(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Cache"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
md = context.soft_body
|
||||
|
@ -117,13 +121,14 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Goal"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
softbody = context.soft_body.settings
|
||||
|
@ -146,13 +151,14 @@ class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_goal_strengths(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Strengths"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody_goal'
|
||||
bl_parent_id = "PHYSICS_PT_softbody_goal"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -176,13 +182,14 @@ class PHYSICS_PT_softbody_goal_strengths(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_goal_settings(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody_goal'
|
||||
bl_parent_id = "PHYSICS_PT_softbody_goal"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -203,13 +210,14 @@ class PHYSICS_PT_softbody_goal_settings(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Edges"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
softbody = context.soft_body.settings
|
||||
|
@ -258,13 +266,14 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_edge_aerodynamics(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Aerodynamics"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody_edge'
|
||||
bl_parent_id = "PHYSICS_PT_softbody_edge"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -285,13 +294,14 @@ class PHYSICS_PT_softbody_edge_aerodynamics(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_edge_stiffness(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Stiffness"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody_edge'
|
||||
bl_parent_id = "PHYSICS_PT_softbody_edge"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
softbody = context.soft_body.settings
|
||||
|
@ -313,13 +323,14 @@ class PHYSICS_PT_softbody_edge_stiffness(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Self Collision"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
softbody = context.soft_body.settings
|
||||
|
@ -352,13 +363,14 @@ class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Solver"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -381,13 +393,14 @@ class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_solver_diagnostics(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Diagnostics"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody_solver'
|
||||
bl_parent_id = "PHYSICS_PT_softbody_solver"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -404,13 +417,14 @@ class PHYSICS_PT_softbody_solver_diagnostics(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_solver_helpers(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Helpers"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody_solver'
|
||||
bl_parent_id = "PHYSICS_PT_softbody_solver"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -431,13 +445,14 @@ class PHYSICS_PT_softbody_solver_helpers(PhysicButtonsPanel, Panel):
|
|||
|
||||
class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, Panel):
|
||||
bl_label = "Field Weights"
|
||||
bl_parent_id = 'PHYSICS_PT_softbody'
|
||||
bl_parent_id = "PHYSICS_PT_softbody"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
md = context.soft_body
|
||||
|
|
|
@ -54,7 +54,8 @@ class RENDER_PT_color_management(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
|
||||
|
@ -92,7 +93,8 @@ class RENDER_PT_color_management_display_settings(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -122,7 +124,8 @@ class RENDER_PT_color_management_curves(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
|
||||
|
@ -1057,7 +1060,8 @@ class RENDER_PT_gpencil(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -1149,7 +1153,8 @@ class RENDER_PT_simplify(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
@ -1166,7 +1171,8 @@ class RENDER_PT_simplify_viewport(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -1199,7 +1205,8 @@ class RENDER_PT_simplify_render(RenderButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -74,7 +74,8 @@ class TEXTURE_PT_preview(TextureButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -107,7 +108,8 @@ class TEXTURE_PT_context(TextureButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -150,7 +152,8 @@ class TEXTURE_PT_node(TextureButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -183,7 +186,8 @@ class TEXTURE_PT_clouds(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -219,7 +223,8 @@ class TEXTURE_PT_wood(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -260,7 +265,8 @@ class TEXTURE_PT_marble(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -298,7 +304,8 @@ class TEXTURE_PT_magic(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -321,7 +328,8 @@ class TEXTURE_PT_blend(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -347,7 +355,8 @@ class TEXTURE_PT_stucci(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -382,7 +391,8 @@ class TEXTURE_PT_image(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, _context):
|
||||
# TODO: maybe expose the template_ID from the template image here.
|
||||
|
@ -392,13 +402,14 @@ class TEXTURE_PT_image(TextureTypePanel, Panel):
|
|||
|
||||
class TEXTURE_PT_image_settings(TextureTypePanel, Panel):
|
||||
bl_label = "Settings"
|
||||
bl_parent_id = 'TEXTURE_PT_image'
|
||||
bl_parent_id = "TEXTURE_PT_image"
|
||||
tex_type = 'IMAGE'
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -424,7 +435,7 @@ def texture_filter_common(tex, layout):
|
|||
class TEXTURE_PT_image_sampling(TextureTypePanel, Panel):
|
||||
bl_label = "Sampling"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_parent_id = 'TEXTURE_PT_image'
|
||||
bl_parent_id = "TEXTURE_PT_image"
|
||||
tex_type = 'IMAGE'
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'}
|
||||
|
||||
|
@ -454,7 +465,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, Panel):
|
|||
class TEXTURE_PT_image_alpha(TextureTypePanel, Panel):
|
||||
bl_label = "Alpha"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_parent_id = 'TEXTURE_PT_image'
|
||||
bl_parent_id = "TEXTURE_PT_image"
|
||||
tex_type = 'IMAGE'
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'}
|
||||
|
||||
|
@ -477,7 +488,7 @@ class TEXTURE_PT_image_alpha(TextureTypePanel, Panel):
|
|||
class TEXTURE_PT_image_mapping(TextureTypePanel, Panel):
|
||||
bl_label = "Mapping"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_parent_id = 'TEXTURE_PT_image'
|
||||
bl_parent_id = "TEXTURE_PT_image"
|
||||
tex_type = 'IMAGE'
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'}
|
||||
|
||||
|
@ -529,7 +540,7 @@ class TEXTURE_PT_image_mapping(TextureTypePanel, Panel):
|
|||
class TEXTURE_PT_image_mapping_crop(TextureTypePanel, Panel):
|
||||
bl_label = "Crop"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_parent_id = 'TEXTURE_PT_image_mapping'
|
||||
bl_parent_id = "TEXTURE_PT_image_mapping"
|
||||
tex_type = 'IMAGE'
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'}
|
||||
|
||||
|
@ -557,7 +568,8 @@ class TEXTURE_PT_musgrave(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -606,7 +618,8 @@ class TEXTURE_PT_voronoi(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -643,7 +656,8 @@ class TEXTURE_PT_voronoi_feature_weights(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -668,7 +682,8 @@ class TEXTURE_PT_distortednoise(TextureTypePanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -697,7 +712,8 @@ class TextureSlotPanel(TextureButtonsPanel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -713,7 +729,8 @@ class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -785,7 +802,8 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -871,7 +889,8 @@ class TEXTURE_PT_colors(TextureButtonsPanel, TextureColorsPoll, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
@ -899,12 +918,13 @@ class TEXTURE_PT_colors(TextureButtonsPanel, TextureColorsPoll, Panel):
|
|||
class TEXTURE_PT_colors_ramp(TextureButtonsPanel, TextureColorsPoll, Panel):
|
||||
bl_label = "Color Ramp"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_parent_id = 'TEXTURE_PT_colors'
|
||||
bl_parent_id = "TEXTURE_PT_colors"
|
||||
COMPAT_ENGINES = {
|
||||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw_header(self, context):
|
||||
tex = context.texture
|
||||
|
@ -929,7 +949,8 @@ class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "texture"
|
||||
_property_type = Texture
|
||||
|
||||
|
|
|
@ -34,7 +34,8 @@ class VIEWLAYER_PT_layer(ViewLayerButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -27,7 +27,8 @@ class WORLD_PT_context_world(WorldButtonsPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -75,7 +76,8 @@ class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel):
|
|||
'BLENDER_RENDER',
|
||||
'BLENDER_EEVEE',
|
||||
'BLENDER_EEVEE_NEXT',
|
||||
'BLENDER_WORKBENCH'}
|
||||
'BLENDER_WORKBENCH',
|
||||
}
|
||||
_context_path = "world"
|
||||
_property_type = bpy.types.World
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ class CLIP_PT_marker_display(Panel):
|
|||
bl_space_type = 'CLIP_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Marker Display"
|
||||
bl_parent_id = 'CLIP_PT_display'
|
||||
bl_parent_id = "CLIP_PT_display"
|
||||
bl_ui_units_x = 13
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -77,7 +77,7 @@ class CLIP_PT_clip_display(Panel):
|
|||
bl_space_type = 'CLIP_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Clip Display"
|
||||
bl_parent_id = 'CLIP_PT_display'
|
||||
bl_parent_id = "CLIP_PT_display"
|
||||
bl_ui_units_x = 13
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -849,7 +849,7 @@ class CLIP_PT_track_settings_extras(CLIP_PT_tracking_panel, Panel):
|
|||
bl_region_type = 'UI'
|
||||
bl_category = "Track"
|
||||
bl_label = "Tracking Settings Extras"
|
||||
bl_parent_id = 'CLIP_PT_track_settings'
|
||||
bl_parent_id = "CLIP_PT_track_settings"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
@ -915,7 +915,7 @@ class CLIP_PT_tracking_lens(Panel):
|
|||
bl_category = "Track"
|
||||
bl_label = "Lens"
|
||||
bl_translation_context = i18n_contexts.id_camera
|
||||
bl_parent_id = 'CLIP_PT_tracking_camera'
|
||||
bl_parent_id = "CLIP_PT_tracking_camera"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -846,31 +846,31 @@ class DOPESHEET_PT_gpencil_mode(LayersDopeSheetPanel, Panel):
|
|||
|
||||
class DOPESHEET_PT_gpencil_layer_masks(LayersDopeSheetPanel, GreasePencilLayerMasksPanel, Panel):
|
||||
bl_label = "Masks"
|
||||
bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
|
||||
bl_parent_id = "DOPESHEET_PT_gpencil_mode"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DOPESHEET_PT_gpencil_layer_transform(LayersDopeSheetPanel, GreasePencilLayerTransformPanel, Panel):
|
||||
bl_label = "Transform"
|
||||
bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
|
||||
bl_parent_id = "DOPESHEET_PT_gpencil_mode"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DOPESHEET_PT_gpencil_layer_adjustments(LayersDopeSheetPanel, GreasePencilLayerAdjustmentsPanel, Panel):
|
||||
bl_label = "Adjustments"
|
||||
bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
|
||||
bl_parent_id = "DOPESHEET_PT_gpencil_mode"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DOPESHEET_PT_gpencil_layer_relations(LayersDopeSheetPanel, GreasePencilLayerRelationsPanel, Panel):
|
||||
bl_label = "Relations"
|
||||
bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
|
||||
bl_parent_id = "DOPESHEET_PT_gpencil_mode"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
class DOPESHEET_PT_gpencil_layer_display(LayersDopeSheetPanel, GreasePencilLayerDisplayPanel, Panel):
|
||||
bl_label = "Display"
|
||||
bl_parent_id = 'DOPESHEET_PT_gpencil_mode'
|
||||
bl_parent_id = "DOPESHEET_PT_gpencil_mode"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
||||
|
|
|
@ -1528,7 +1528,7 @@ class IMAGE_PT_overlay_guides(Panel):
|
|||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Guides"
|
||||
bl_parent_id = 'IMAGE_PT_overlay'
|
||||
bl_parent_id = "IMAGE_PT_overlay"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1569,7 +1569,7 @@ class IMAGE_PT_overlay_uv_edit(Panel):
|
|||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "UV Editing"
|
||||
bl_parent_id = 'IMAGE_PT_overlay'
|
||||
bl_parent_id = "IMAGE_PT_overlay"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1597,7 +1597,7 @@ class IMAGE_PT_overlay_uv_edit_geometry(Panel):
|
|||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Geometry"
|
||||
bl_parent_id = 'IMAGE_PT_overlay'
|
||||
bl_parent_id = "IMAGE_PT_overlay"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1629,7 +1629,7 @@ class IMAGE_PT_overlay_texture_paint(Panel):
|
|||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Geometry"
|
||||
bl_parent_id = 'IMAGE_PT_overlay'
|
||||
bl_parent_id = "IMAGE_PT_overlay"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -1651,7 +1651,7 @@ class IMAGE_PT_overlay_image(Panel):
|
|||
bl_space_type = 'IMAGE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Image"
|
||||
bl_parent_id = 'IMAGE_PT_overlay'
|
||||
bl_parent_id = "IMAGE_PT_overlay"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
|
|
@ -64,8 +64,9 @@ class NODE_HT_header(Header):
|
|||
|
||||
layout.separator_spacer()
|
||||
|
||||
types_that_support_material = {'MESH', 'CURVE', 'SURFACE', 'FONT', 'META',
|
||||
'GPENCIL', 'VOLUME', 'CURVES', 'POINTCLOUD'}
|
||||
types_that_support_material = {
|
||||
'MESH', 'CURVE', 'SURFACE', 'FONT', 'META', 'GPENCIL', 'VOLUME', 'CURVES', 'POINTCLOUD',
|
||||
}
|
||||
# disable material slot buttons when pinned, cannot find correct slot within id_from (#36589)
|
||||
# disable also when the selected object does not support materials
|
||||
has_material_slots = not snode.pin and ob_type in types_that_support_material
|
||||
|
@ -324,15 +325,15 @@ class NODE_MT_node(Menu):
|
|||
layout.operator("transform.resize")
|
||||
|
||||
layout.separator()
|
||||
layout.operator("node.clipboard_copy", text="Copy", icon="COPYDOWN")
|
||||
layout.operator("node.clipboard_copy", text="Copy", icon='COPYDOWN')
|
||||
layout.operator_context = 'EXEC_DEFAULT'
|
||||
layout.operator("node.clipboard_paste", text="Paste", icon="PASTEDOWN")
|
||||
layout.operator("node.clipboard_paste", text="Paste", icon='PASTEDOWN')
|
||||
layout.operator_context = 'INVOKE_REGION_WIN'
|
||||
layout.operator("node.duplicate_move", icon="DUPLICATE")
|
||||
layout.operator("node.duplicate_move", icon='DUPLICATE')
|
||||
layout.operator("node.duplicate_move_linked")
|
||||
|
||||
layout.separator()
|
||||
layout.operator("node.delete", icon="X")
|
||||
layout.operator("node.delete", icon='X')
|
||||
layout.operator("node.delete_reconnect")
|
||||
|
||||
layout.separator()
|
||||
|
@ -352,7 +353,7 @@ class NODE_MT_node(Menu):
|
|||
layout.operator("node.links_mute")
|
||||
|
||||
layout.separator()
|
||||
layout.operator("node.group_make", icon="NODETREE")
|
||||
layout.operator("node.group_make", icon='NODETREE')
|
||||
layout.operator("node.group_insert", text="Insert Into Group")
|
||||
layout.operator("node.group_edit").exit = False
|
||||
layout.operator("node.group_ungroup")
|
||||
|
@ -362,7 +363,7 @@ class NODE_MT_node(Menu):
|
|||
|
||||
if is_compositor:
|
||||
layout.separator()
|
||||
layout.operator("node.read_viewlayers", icon="RENDERLAYERS")
|
||||
layout.operator("node.read_viewlayers", icon='RENDERLAYERS')
|
||||
|
||||
|
||||
class NODE_MT_view_pie(Menu):
|
||||
|
@ -437,8 +438,10 @@ class NODE_PT_geometry_node_tool_object_types(Panel):
|
|||
snode = context.space_data
|
||||
group = snode.node_tree
|
||||
|
||||
types = [("is_type_mesh", "Mesh", 'MESH_DATA'),
|
||||
("is_type_curve", "Curves", 'CURVES_DATA')]
|
||||
types = [
|
||||
("is_type_mesh", "Mesh", 'MESH_DATA'),
|
||||
("is_type_curve", "Curves", 'CURVES_DATA'),
|
||||
]
|
||||
if context.preferences.experimental.use_new_point_cloud_type:
|
||||
types.append(("is_type_point_cloud", "Point Cloud", 'POINTCLOUD_DATA'))
|
||||
|
||||
|
@ -465,8 +468,10 @@ class NODE_PT_geometry_node_tool_mode(Panel):
|
|||
snode = context.space_data
|
||||
group = snode.node_tree
|
||||
|
||||
modes = [("is_mode_edit", "Edit Mode", 'EDITMODE_HLT'),
|
||||
("is_mode_sculpt", "Sculpt Mode", 'SCULPTMODE_HLT')]
|
||||
modes = (
|
||||
("is_mode_edit", "Edit Mode", 'EDITMODE_HLT'),
|
||||
("is_mode_sculpt", "Sculpt Mode", 'SCULPTMODE_HLT'),
|
||||
)
|
||||
|
||||
col = layout.column()
|
||||
col.active = group.is_tool
|
||||
|
@ -661,7 +666,7 @@ class NODE_PT_active_node_color(Panel):
|
|||
bl_category = "Node"
|
||||
bl_label = "Color"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_parent_id = 'NODE_PT_active_node_generic'
|
||||
bl_parent_id = "NODE_PT_active_node_generic"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -932,7 +937,6 @@ class NODE_PT_node_tree_interface(Panel):
|
|||
if active_item.item_type == 'SOCKET':
|
||||
layout.prop(active_item, "socket_type", text="Type")
|
||||
layout.prop(active_item, "description")
|
||||
layout.prop(active_item, "in_out", text="Input/Output")
|
||||
# Display descriptions only for Geometry Nodes, since it's only used in the modifier panel.
|
||||
if tree.type == 'GEOMETRY':
|
||||
field_socket_types = {
|
||||
|
@ -1175,7 +1179,7 @@ def node_panel(cls):
|
|||
node_cls.bl_region_type = 'UI'
|
||||
node_cls.bl_category = "Options"
|
||||
if hasattr(node_cls, "bl_parent_id"):
|
||||
node_cls.bl_parent_id = 'NODE_' + node_cls.bl_parent_id
|
||||
node_cls.bl_parent_id = "NODE_" + node_cls.bl_parent_id
|
||||
|
||||
return node_cls
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ class OUTLINER_MT_context_menu(Menu):
|
|||
|
||||
layout.separator()
|
||||
|
||||
layout.menu("OUTLINER_MT_liboverride", icon="LIBRARY_DATA_OVERRIDE")
|
||||
layout.menu("OUTLINER_MT_liboverride", icon='LIBRARY_DATA_OVERRIDE')
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
|
|
@ -266,7 +266,7 @@ class SEQUENCER_PT_overlay(Panel):
|
|||
class SEQUENCER_PT_preview_overlay(Panel):
|
||||
bl_space_type = 'SEQUENCE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'SEQUENCER_PT_overlay'
|
||||
bl_parent_id = "SEQUENCER_PT_overlay"
|
||||
bl_label = "Preview Overlays"
|
||||
|
||||
@classmethod
|
||||
|
@ -292,7 +292,7 @@ class SEQUENCER_PT_preview_overlay(Panel):
|
|||
class SEQUENCER_PT_sequencer_overlay(Panel):
|
||||
bl_space_type = 'SEQUENCE_EDITOR'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'SEQUENCER_PT_overlay'
|
||||
bl_parent_id = "SEQUENCER_PT_overlay"
|
||||
bl_label = "Sequencer Overlays"
|
||||
|
||||
@classmethod
|
||||
|
@ -933,6 +933,7 @@ class SEQUENCER_MT_strip_retiming(Menu):
|
|||
|
||||
def draw_strip_context(self, context):
|
||||
layout = self.layout
|
||||
strip = context.active_sequence_strip
|
||||
|
||||
layout.operator("sequencer.retiming_key_add")
|
||||
layout.operator("sequencer.retiming_freeze_frame_add")
|
||||
|
@ -941,12 +942,11 @@ class SEQUENCER_MT_strip_retiming(Menu):
|
|||
layout.operator("sequencer.retiming_reset")
|
||||
layout.separator()
|
||||
|
||||
icon = "CHECKBOX_DEHLT"
|
||||
if context.active_sequence_strip.show_retiming_keys:
|
||||
icon = "CHECKBOX_HLT"
|
||||
|
||||
layout.operator("sequencer.retiming_segment_speed_set")
|
||||
layout.operator("sequencer.retiming_show", icon=icon)
|
||||
layout.operator(
|
||||
"sequencer.retiming_show",
|
||||
icon='CHECKBOX_HLT' if (strip and strip.show_retiming_keys) else 'CHECKBOX_DEHLT',
|
||||
)
|
||||
|
||||
def draw_retiming_context(self, context):
|
||||
layout = self.layout
|
||||
|
@ -964,7 +964,7 @@ class SEQUENCER_MT_strip_retiming(Menu):
|
|||
layout.separator()
|
||||
|
||||
layout.operator("sequencer.retiming_segment_speed_set")
|
||||
layout.operator("sequencer.retiming_show", icon="CHECKBOX_HLT")
|
||||
layout.operator("sequencer.retiming_show", icon='CHECKBOX_HLT')
|
||||
|
||||
def draw(self, context):
|
||||
ed = context.scene.sequence_editor
|
||||
|
@ -1161,8 +1161,6 @@ class SEQUENCER_MT_context_menu(Menu):
|
|||
|
||||
layout.separator()
|
||||
|
||||
strip = context.active_sequence_strip
|
||||
|
||||
if strip:
|
||||
strip_type = strip.type
|
||||
selected_sequences_count = selected_sequences_len(context)
|
||||
|
@ -1259,11 +1257,6 @@ class SEQUENCER_MT_preview_context_menu(Menu):
|
|||
# TODO: support in preview.
|
||||
# layout.operator("sequencer.delete", text="Delete")
|
||||
|
||||
strip = context.active_sequence_strip
|
||||
|
||||
if strip:
|
||||
pass
|
||||
|
||||
|
||||
class SEQUENCER_MT_pivot_pie(Menu):
|
||||
bl_label = "Pivot Point"
|
||||
|
|
|
@ -235,6 +235,7 @@ class USERPREF_PT_interface_text(InterfacePanel, CenterAlignMixIn, Panel):
|
|||
flow.prop(view, "use_text_antialiasing", text="Anti-Aliasing")
|
||||
sub = flow.column()
|
||||
sub.active = view.use_text_antialiasing
|
||||
sub.prop(view, "use_text_render_subpixelaa", text="Subpixel Anti-Aliasing")
|
||||
sub.prop(view, "text_hinting", text="Hinting")
|
||||
|
||||
flow.prop(view, "font_path_ui")
|
||||
|
|
|
@ -1024,8 +1024,9 @@ class VIEW3D_MT_editor_menus(Menu):
|
|||
obj = context.active_object
|
||||
mode_string = context.mode
|
||||
edit_object = context.edit_object
|
||||
gp_edit = obj and obj.mode in {'EDIT_GPENCIL', 'PAINT_GPENCIL', 'SCULPT_GPENCIL',
|
||||
'WEIGHT_GPENCIL', 'VERTEX_GPENCIL'}
|
||||
gp_edit = obj and obj.mode in {
|
||||
'EDIT_GPENCIL', 'PAINT_GPENCIL', 'SCULPT_GPENCIL', 'WEIGHT_GPENCIL', 'VERTEX_GPENCIL',
|
||||
}
|
||||
tool_settings = context.tool_settings
|
||||
|
||||
layout.menu("VIEW3D_MT_view")
|
||||
|
@ -1155,8 +1156,9 @@ class VIEW3D_MT_transform_base:
|
|||
layout.operator("transform.bend", text="Bend")
|
||||
layout.operator("transform.push_pull", text="Push/Pull")
|
||||
|
||||
if context.mode in {'EDIT_MESH', 'EDIT_ARMATURE', 'EDIT_SURFACE', 'EDIT_CURVE',
|
||||
'EDIT_LATTICE', 'EDIT_METABALL'}:
|
||||
if context.mode in {
|
||||
'EDIT_MESH', 'EDIT_ARMATURE', 'EDIT_SURFACE', 'EDIT_CURVE', 'EDIT_LATTICE', 'EDIT_METABALL',
|
||||
}:
|
||||
layout.operator("transform.vertex_warp", text="Warp")
|
||||
layout.operator_context = 'EXEC_REGION_WIN'
|
||||
layout.operator("transform.vertex_random", text="Randomize").offset = 0.1
|
||||
|
@ -2633,7 +2635,7 @@ class VIEW3D_MT_object(Menu):
|
|||
|
||||
layout.separator()
|
||||
|
||||
layout.menu("VIEW3D_MT_object_liboverride", icon="LIBRARY_DATA_OVERRIDE")
|
||||
layout.menu("VIEW3D_MT_object_liboverride", icon='LIBRARY_DATA_OVERRIDE')
|
||||
layout.menu("VIEW3D_MT_object_relations")
|
||||
layout.menu("VIEW3D_MT_object_parent")
|
||||
layout.menu("VIEW3D_MT_object_constraints")
|
||||
|
@ -6323,7 +6325,7 @@ class VIEW3D_PT_shading_lighting(Panel):
|
|||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Lighting"
|
||||
bl_parent_id = 'VIEW3D_PT_shading'
|
||||
bl_parent_id = "VIEW3D_PT_shading"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -6445,7 +6447,7 @@ class VIEW3D_PT_shading_color(Panel):
|
|||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Wire Color"
|
||||
bl_parent_id = 'VIEW3D_PT_shading'
|
||||
bl_parent_id = "VIEW3D_PT_shading"
|
||||
|
||||
def _draw_color_type(self, context):
|
||||
layout = self.layout
|
||||
|
@ -6484,7 +6486,7 @@ class VIEW3D_PT_shading_options(Panel):
|
|||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Options"
|
||||
bl_parent_id = 'VIEW3D_PT_shading'
|
||||
bl_parent_id = "VIEW3D_PT_shading"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -6608,7 +6610,7 @@ class VIEW3D_PT_shading_render_pass(Panel):
|
|||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Render Pass"
|
||||
bl_parent_id = 'VIEW3D_PT_shading'
|
||||
bl_parent_id = "VIEW3D_PT_shading"
|
||||
COMPAT_ENGINES = {'BLENDER_EEVEE'}
|
||||
|
||||
@classmethod
|
||||
|
@ -6629,7 +6631,7 @@ class VIEW3D_PT_shading_compositor(Panel):
|
|||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_label = "Compositor"
|
||||
bl_parent_id = 'VIEW3D_PT_shading'
|
||||
bl_parent_id = "VIEW3D_PT_shading"
|
||||
bl_order = 10
|
||||
|
||||
@classmethod
|
||||
|
@ -6712,7 +6714,7 @@ class VIEW3D_PT_overlay(Panel):
|
|||
class VIEW3D_PT_overlay_guides(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay'
|
||||
bl_parent_id = "VIEW3D_PT_overlay"
|
||||
bl_label = "Guides"
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -6779,7 +6781,7 @@ class VIEW3D_PT_overlay_guides(Panel):
|
|||
class VIEW3D_PT_overlay_object(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay'
|
||||
bl_parent_id = "VIEW3D_PT_overlay"
|
||||
bl_label = "Objects"
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -6819,7 +6821,7 @@ class VIEW3D_PT_overlay_object(Panel):
|
|||
class VIEW3D_PT_overlay_geometry(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay'
|
||||
bl_parent_id = "VIEW3D_PT_overlay"
|
||||
bl_label = "Geometry"
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -6871,7 +6873,7 @@ class VIEW3D_PT_overlay_geometry(Panel):
|
|||
class VIEW3D_PT_overlay_motion_tracking(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay'
|
||||
bl_parent_id = "VIEW3D_PT_overlay"
|
||||
bl_label = "Motion Tracking"
|
||||
|
||||
def draw_header(self, context):
|
||||
|
@ -6958,7 +6960,7 @@ class VIEW3D_PT_overlay_edit_mesh(Panel):
|
|||
class VIEW3D_PT_overlay_edit_mesh_shading(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay_edit_mesh'
|
||||
bl_parent_id = "VIEW3D_PT_overlay_edit_mesh"
|
||||
bl_label = "Shading"
|
||||
|
||||
@classmethod
|
||||
|
@ -7035,7 +7037,7 @@ class VIEW3D_PT_overlay_edit_mesh_shading(Panel):
|
|||
class VIEW3D_PT_overlay_edit_mesh_measurement(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay_edit_mesh'
|
||||
bl_parent_id = "VIEW3D_PT_overlay_edit_mesh"
|
||||
bl_label = "Measurement"
|
||||
|
||||
@classmethod
|
||||
|
@ -7066,7 +7068,7 @@ class VIEW3D_PT_overlay_edit_mesh_measurement(Panel):
|
|||
class VIEW3D_PT_overlay_edit_mesh_normals(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay_edit_mesh'
|
||||
bl_parent_id = "VIEW3D_PT_overlay_edit_mesh"
|
||||
bl_label = "Normals"
|
||||
|
||||
@classmethod
|
||||
|
@ -7101,7 +7103,7 @@ class VIEW3D_PT_overlay_edit_mesh_normals(Panel):
|
|||
class VIEW3D_PT_overlay_edit_mesh_freestyle(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay_edit_mesh'
|
||||
bl_parent_id = "VIEW3D_PT_overlay_edit_mesh"
|
||||
bl_label = "Freestyle"
|
||||
|
||||
@classmethod
|
||||
|
@ -7675,7 +7677,7 @@ class VIEW3D_PT_annotation_onion(AnnotationOnionSkin, Panel):
|
|||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
bl_category = "View"
|
||||
bl_parent_id = 'VIEW3D_PT_grease_pencil'
|
||||
bl_parent_id = "VIEW3D_PT_grease_pencil"
|
||||
|
||||
# NOTE: this is just a wrapper around the generic GP Panel
|
||||
|
||||
|
@ -8441,7 +8443,7 @@ class VIEW3D_PT_curves_sculpt_grow_shrink_scaling(Panel):
|
|||
class VIEW3D_PT_viewport_debug(Panel):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'HEADER'
|
||||
bl_parent_id = 'VIEW3D_PT_overlay'
|
||||
bl_parent_id = "VIEW3D_PT_overlay"
|
||||
bl_label = "Viewport Debug"
|
||||
|
||||
@classmethod
|
||||
|
@ -8462,7 +8464,7 @@ class VIEW3D_AST_sculpt_brushes(bpy.types.AssetShelf):
|
|||
# "Asset Shelf" and the "Extended Asset Browser" experimental features are
|
||||
# enabled.
|
||||
|
||||
bl_space_type = "VIEW_3D"
|
||||
bl_space_type = 'VIEW_3D'
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -1650,7 +1650,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_settings(Panel, View3DPanel, GreasePen
|
|||
class VIEW3D_PT_tools_grease_pencil_brush_advanced(View3DPanel, Panel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_label = "Advanced"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_settings"
|
||||
bl_category = "Tool"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
bl_ui_units_x = 13
|
||||
|
@ -1730,7 +1730,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_advanced(View3DPanel, Panel):
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_brush_stroke(Panel, View3DPanel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_settings"
|
||||
bl_label = "Stroke"
|
||||
bl_category = "Tool"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
@ -1749,7 +1749,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_stroke(Panel, View3DPanel):
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_brush_stabilizer(Panel, View3DPanel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_stroke'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_stroke"
|
||||
bl_label = "Stabilize Stroke"
|
||||
bl_category = "Tool"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
@ -1783,7 +1783,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_stabilizer(Panel, View3DPanel):
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_brush_post_processing(View3DPanel, Panel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_stroke'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_stroke"
|
||||
bl_label = "Post-Processing"
|
||||
bl_category = "Tool"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
@ -1839,7 +1839,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_post_processing(View3DPanel, Panel):
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_brush_random(View3DPanel, Panel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_stroke'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_stroke"
|
||||
bl_label = "Randomize"
|
||||
bl_category = "Tool"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
@ -1956,7 +1956,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_paint_falloff(GreasePencilBrushFalloff
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_brush_gap_closure(View3DPanel, Panel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_advanced'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_advanced"
|
||||
bl_label = "Gap Closure"
|
||||
bl_category = "Tool"
|
||||
|
||||
|
@ -2064,7 +2064,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_sculpt_falloff(GreasePencilBrushFallof
|
|||
class VIEW3D_PT_tools_grease_pencil_sculpt_brush_advanced(GreasePencilSculptAdvancedPanel, View3DPanel, Panel):
|
||||
bl_context = ".greasepencil_sculpt"
|
||||
bl_label = "Advanced"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_sculpt_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_sculpt_settings"
|
||||
bl_category = "Tool"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
@ -2162,7 +2162,7 @@ class VIEW3D_PT_tools_grease_pencil_weight_paint_settings(Panel, View3DPanel, Gr
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_brush_weight_falloff(GreasePencilBrushFalloff, Panel, View3DPaintPanel):
|
||||
bl_context = ".greasepencil_weight"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_weight_paint_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_weight_paint_settings"
|
||||
bl_label = "Falloff"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
|
@ -2305,7 +2305,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_vertex_palette(View3DPanel, Panel):
|
|||
bl_context = ".greasepencil_vertex"
|
||||
bl_label = "Palette"
|
||||
bl_category = "Tool"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_vertex_color'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_vertex_color"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -2404,7 +2404,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_mix_palette(View3DPanel, Panel):
|
|||
bl_context = ".greasepencil_paint"
|
||||
bl_label = "Palette"
|
||||
bl_category = "Tool"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_mixcolor'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_mixcolor"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
@ -2449,7 +2449,7 @@ class VIEW3D_PT_tools_grease_pencil_brush_mix_palette(View3DPanel, Panel):
|
|||
# Grease Pencil Brush Appearance (one for each mode)
|
||||
class VIEW3D_PT_tools_grease_pencil_paint_appearance(GreasePencilDisplayPanel, Panel, View3DPanel):
|
||||
bl_context = ".greasepencil_paint"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_brush_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_brush_settings"
|
||||
bl_label = "Cursor"
|
||||
bl_category = "Tool"
|
||||
bl_ui_units_x = 15
|
||||
|
@ -2457,21 +2457,21 @@ class VIEW3D_PT_tools_grease_pencil_paint_appearance(GreasePencilDisplayPanel, P
|
|||
|
||||
class VIEW3D_PT_tools_grease_pencil_sculpt_appearance(GreasePencilDisplayPanel, Panel, View3DPanel):
|
||||
bl_context = ".greasepencil_sculpt"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_sculpt_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_sculpt_settings"
|
||||
bl_label = "Cursor"
|
||||
bl_category = "Tool"
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_grease_pencil_weight_appearance(GreasePencilDisplayPanel, Panel, View3DPanel):
|
||||
bl_context = ".greasepencil_weight"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_weight_paint_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_weight_paint_settings"
|
||||
bl_category = "Tool"
|
||||
bl_label = "Cursor"
|
||||
|
||||
|
||||
class VIEW3D_PT_tools_grease_pencil_vertex_appearance(GreasePencilDisplayPanel, Panel, View3DPanel):
|
||||
bl_context = ".greasepencil_vertex"
|
||||
bl_parent_id = 'VIEW3D_PT_tools_grease_pencil_vertex_paint_settings'
|
||||
bl_parent_id = "VIEW3D_PT_tools_grease_pencil_vertex_paint_settings"
|
||||
bl_category = "Tool"
|
||||
bl_label = "Cursor"
|
||||
|
||||
|
|
|
@ -501,9 +501,11 @@ class WholeCharacterMixin:
|
|||
# custom properties
|
||||
def doCustomProps(self, ks, bone):
|
||||
|
||||
prop_type_compat = {bpy.types.BoolProperty,
|
||||
bpy.types.IntProperty,
|
||||
bpy.types.FloatProperty}
|
||||
prop_type_compat = {
|
||||
bpy.types.BoolProperty,
|
||||
bpy.types.IntProperty,
|
||||
bpy.types.FloatProperty,
|
||||
}
|
||||
|
||||
# go over all custom properties for bone
|
||||
for prop in bone.keys():
|
||||
|
|
|
@ -349,6 +349,8 @@ enum {
|
|||
BLF_BAD_FONT = 1 << 16,
|
||||
/** This font is managed by the FreeType cache subsystem. */
|
||||
BLF_CACHED = 1 << 17,
|
||||
/** At small sizes glyphs are rendered at multiple subpixel positions. */
|
||||
BLF_RENDER_SUBPIXELAA = 1 << 18,
|
||||
};
|
||||
|
||||
#define BLF_DRAW_STR_DUMMY_MAX 1024
|
||||
|
|
|
@ -1121,8 +1121,8 @@ GlyphBLF *blf_glyph_ensure(FontBLF *font, GlyphCacheBLF *gc, const uint charcode
|
|||
#ifdef BLF_SUBPIXEL_AA
|
||||
GlyphBLF *blf_glyph_ensure_subpixel(FontBLF *font, GlyphCacheBLF *gc, GlyphBLF *g, int32_t pen_x)
|
||||
{
|
||||
if ((font->flags & (BLF_HINTING_NONE | BLF_MONOCHROME)) != 0) {
|
||||
/* Not if we are in mono mode (aliased) or if not hinting. */
|
||||
if (!(font->flags & BLF_RENDER_SUBPIXELAA) || (font->flags & BLF_MONOCHROME)) {
|
||||
/* Not if we are in mono mode (aliased) or the feature is turned off. */
|
||||
return g;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@ template<typename T> static inline T decltype_helper(T x)
|
|||
|
||||
#if defined(__GNUC__)
|
||||
# define BLI_NOINLINE __attribute__((noinline))
|
||||
#elif defined(_MSC_VER)
|
||||
# define BLI_NOINLINE __declspec(noinline)
|
||||
#else
|
||||
# define BLI_NOINLINE
|
||||
#endif
|
||||
|
|
|
@ -102,9 +102,10 @@ float BLI_polyfill_beautify_quad_rotate_calc_ex(const float v1[2],
|
|||
(ELEM(v3, v1, v2, v4) == false) && (ELEM(v4, v1, v2, v3) == false));
|
||||
|
||||
if (r_area) {
|
||||
*r_area = fabsf(area_2x_234) + fabsf(area_2x_241) +
|
||||
/* Include both pairs for predictable results. */
|
||||
fabsf(area_2x_123) + fabsf(area_2x_134) / 8.0f;
|
||||
*r_area = (fabsf(area_2x_234) + fabsf(area_2x_241) +
|
||||
/* Include both pairs for predictable results. */
|
||||
fabsf(area_2x_123) + fabsf(area_2x_134)) /
|
||||
8.0f;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -881,6 +881,10 @@ void blo_do_versions_userdef(UserDef *userdef)
|
|||
userdef->animation_flag |= USER_ANIM_SHOW_CHANNEL_GROUP_COLORS;
|
||||
}
|
||||
|
||||
if (!USER_VERSION_ATLEAST(400, 32)) {
|
||||
userdef->text_render |= USER_TEXT_RENDER_SUBPIXELAA;
|
||||
}
|
||||
|
||||
/**
|
||||
* Versioning code until next subversion bump goes here.
|
||||
*
|
||||
|
|
|
@ -70,8 +70,6 @@ void ARMATURE_OT_split(struct wmOperatorType *ot);
|
|||
void ARMATURE_OT_autoside_names(struct wmOperatorType *ot);
|
||||
void ARMATURE_OT_flip_names(struct wmOperatorType *ot);
|
||||
|
||||
void ARMATURE_OT_layers_show_all(struct wmOperatorType *ot);
|
||||
|
||||
void ARMATURE_OT_collection_add(struct wmOperatorType *ot);
|
||||
void ARMATURE_OT_collection_remove(struct wmOperatorType *ot);
|
||||
void ARMATURE_OT_collection_move(struct wmOperatorType *ot);
|
||||
|
|
|
@ -59,8 +59,6 @@ void ED_operatortypes_armature()
|
|||
WM_operatortype_append(ARMATURE_OT_autoside_names);
|
||||
WM_operatortype_append(ARMATURE_OT_flip_names);
|
||||
|
||||
WM_operatortype_append(ARMATURE_OT_layers_show_all);
|
||||
|
||||
WM_operatortype_append(ARMATURE_OT_collection_add);
|
||||
WM_operatortype_append(ARMATURE_OT_collection_remove);
|
||||
WM_operatortype_append(ARMATURE_OT_collection_move);
|
||||
|
|
|
@ -665,87 +665,6 @@ void POSE_OT_rotation_mode_set(wmOperatorType *ot)
|
|||
ot->srna, "type", rna_enum_object_rotation_mode_items, 0, "Rotation Mode", "");
|
||||
}
|
||||
|
||||
/* ********************************************** */
|
||||
|
||||
static bool armature_layers_poll(bContext *C)
|
||||
{
|
||||
/* Armature layers operators can be used in posemode OR editmode for armatures */
|
||||
return ED_operator_posemode(C) || ED_operator_editarmature(C);
|
||||
}
|
||||
|
||||
static bArmature *armature_layers_get_data(Object **ob)
|
||||
{
|
||||
bArmature *arm = nullptr;
|
||||
|
||||
/* Sanity checking and handling of posemode. */
|
||||
if (*ob) {
|
||||
Object *tob = BKE_object_pose_armature_get(*ob);
|
||||
if (tob) {
|
||||
*ob = tob;
|
||||
arm = static_cast<bArmature *>((*ob)->data);
|
||||
}
|
||||
else if ((*ob)->type == OB_ARMATURE) {
|
||||
arm = static_cast<bArmature *>((*ob)->data);
|
||||
}
|
||||
}
|
||||
|
||||
return arm;
|
||||
}
|
||||
|
||||
/* Show all armature layers */
|
||||
|
||||
static int pose_armature_layers_showall_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
bArmature *arm = armature_layers_get_data(&ob);
|
||||
int maxLayers = RNA_boolean_get(op->ptr, "all") ? 32 : 16;
|
||||
/* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
|
||||
bool layers[32] = {false};
|
||||
|
||||
/* sanity checking */
|
||||
if (arm == nullptr) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
/* use RNA to set the layers
|
||||
* although it would be faster to just set directly using bitflags, we still
|
||||
* need to setup a RNA pointer so that we get the "update" callbacks for free...
|
||||
*/
|
||||
PointerRNA ptr = RNA_id_pointer_create(&arm->id);
|
||||
|
||||
for (int i = 0; i < maxLayers; i++) {
|
||||
layers[i] = true;
|
||||
}
|
||||
|
||||
RNA_boolean_set_array(&ptr, "layers", layers);
|
||||
|
||||
/* NOTE: notifier might evolve. */
|
||||
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, ob);
|
||||
DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE);
|
||||
|
||||
/* done */
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void ARMATURE_OT_layers_show_all(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "Show All Layers";
|
||||
ot->idname = "ARMATURE_OT_layers_show_all";
|
||||
ot->description = "Make all armature layers visible";
|
||||
|
||||
/* callbacks */
|
||||
ot->exec = pose_armature_layers_showall_exec;
|
||||
ot->poll = armature_layers_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
||||
/* properties */
|
||||
ot->prop = RNA_def_boolean(
|
||||
ot->srna, "all", true, "All Layers", "Enable all layers or just the first 16 (top row)");
|
||||
}
|
||||
|
||||
/* ********************************************** */
|
||||
/* Show/Hide Bones */
|
||||
|
||||
|
|
|
@ -3803,6 +3803,7 @@ static void ui_do_but_textedit(
|
|||
but->pos = short(selend);
|
||||
but->selsta = short(selsta);
|
||||
but->selend = short(selend);
|
||||
data->sel_pos_init = selsta;
|
||||
retval = WM_UI_HANDLER_BREAK;
|
||||
changed = true;
|
||||
}
|
||||
|
|
|
@ -145,10 +145,11 @@ static int copy_data_path_button_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
}
|
||||
else {
|
||||
path = RNA_path_from_real_ID_to_property_index(bmain, &ptr, prop, 0, -1, &id);
|
||||
const int index_dim = (index != -1 && RNA_property_array_check(prop)) ? 1 : 0;
|
||||
path = RNA_path_from_real_ID_to_property_index(bmain, &ptr, prop, index_dim, index, &id);
|
||||
|
||||
if (!path) {
|
||||
path = RNA_path_from_ID_to_property(&ptr, prop);
|
||||
path = RNA_path_from_ID_to_property_index(&ptr, prop, index_dim, index);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1093,6 +1094,7 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
*r_path = nullptr;
|
||||
/* special case for bone constraints */
|
||||
char *path_from_bone = nullptr;
|
||||
const bool is_rna = !RNA_property_is_idprop(prop);
|
||||
/* Remove links from the collection list which don't contain 'prop'. */
|
||||
bool ensure_list_items_contain_prop = false;
|
||||
|
||||
|
@ -1104,7 +1106,7 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
*
|
||||
* Properties owned by the ID are handled by the 'if (ptr->owner_id)' case below.
|
||||
*/
|
||||
if (!RNA_property_is_idprop(prop) && RNA_struct_is_a(ptr->type, &RNA_PropertyGroup)) {
|
||||
if (is_rna && RNA_struct_is_a(ptr->type, &RNA_PropertyGroup)) {
|
||||
PointerRNA owner_ptr;
|
||||
char *idpath = nullptr;
|
||||
|
||||
|
@ -1112,7 +1114,7 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
if (NOT_RNA_NULL(owner_ptr = CTX_data_pointer_get_type(C, "active_pose_bone", &RNA_PoseBone)))
|
||||
{
|
||||
if (NOT_NULL(idpath = RNA_path_from_struct_to_idproperty(
|
||||
&owner_ptr, static_cast<IDProperty *>(ptr->data))))
|
||||
&owner_ptr, static_cast<const IDProperty *>(ptr->data))))
|
||||
{
|
||||
*r_lb = CTX_data_collection_get(C, "selected_pose_bones");
|
||||
}
|
||||
|
@ -1121,7 +1123,7 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
owner_ptr = RNA_pointer_create(owner_ptr.owner_id, &RNA_Bone, pchan->bone);
|
||||
|
||||
if (NOT_NULL(idpath = RNA_path_from_struct_to_idproperty(
|
||||
&owner_ptr, static_cast<IDProperty *>(ptr->data))))
|
||||
&owner_ptr, static_cast<const IDProperty *>(ptr->data))))
|
||||
{
|
||||
ui_context_selected_bones_via_pose(C, r_lb);
|
||||
}
|
||||
|
@ -1133,7 +1135,7 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
if (NOT_RNA_NULL(
|
||||
owner_ptr = CTX_data_pointer_get_type_silent(C, "active_bone", &RNA_EditBone)) &&
|
||||
NOT_NULL(idpath = RNA_path_from_struct_to_idproperty(
|
||||
&owner_ptr, static_cast<IDProperty *>(ptr->data))))
|
||||
&owner_ptr, static_cast<const IDProperty *>(ptr->data))))
|
||||
{
|
||||
*r_lb = CTX_data_collection_get(C, "selected_editable_bones");
|
||||
}
|
||||
|
@ -1205,8 +1207,11 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
else {
|
||||
*r_lb = CTX_data_collection_get(C, "selected_editable_sequences");
|
||||
}
|
||||
/* Account for properties only being available for some sequence types. */
|
||||
ensure_list_items_contain_prop = true;
|
||||
|
||||
if (is_rna) {
|
||||
/* Account for properties only being available for some sequence types. */
|
||||
ensure_list_items_contain_prop = true;
|
||||
}
|
||||
}
|
||||
else if (RNA_struct_is_a(ptr->type, &RNA_FCurve)) {
|
||||
*r_lb = CTX_data_collection_get(C, "selected_editable_fcurves");
|
||||
|
@ -1330,14 +1335,17 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
/* Special case when we do this for 'Sequence.lock'.
|
||||
* (if the sequence is locked, it won't be in "selected_editable_sequences"). */
|
||||
const char *prop_id = RNA_property_identifier(prop);
|
||||
if (STREQ(prop_id, "lock")) {
|
||||
if (is_rna && STREQ(prop_id, "lock")) {
|
||||
*r_lb = CTX_data_collection_get(C, "selected_sequences");
|
||||
}
|
||||
else {
|
||||
*r_lb = CTX_data_collection_get(C, "selected_editable_sequences");
|
||||
}
|
||||
/* Account for properties only being available for some sequence types. */
|
||||
ensure_list_items_contain_prop = true;
|
||||
|
||||
if (is_rna) {
|
||||
/* Account for properties only being available for some sequence types. */
|
||||
ensure_list_items_contain_prop = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (*r_path != nullptr);
|
||||
|
@ -1346,14 +1354,58 @@ bool UI_context_copy_to_selected_list(bContext *C,
|
|||
return false;
|
||||
}
|
||||
|
||||
if (RNA_property_is_idprop(prop)) {
|
||||
if (*r_path == nullptr) {
|
||||
*r_path = RNA_path_from_ptr_to_property_index(ptr, prop, 0, -1);
|
||||
BLI_assert(*r_path);
|
||||
}
|
||||
/* Always resolve custom-properties because they can always exist per-item. */
|
||||
ensure_list_items_contain_prop = true;
|
||||
}
|
||||
|
||||
if (ensure_list_items_contain_prop) {
|
||||
const char *prop_id = RNA_property_identifier(prop);
|
||||
LISTBASE_FOREACH_MUTABLE (CollectionPointerLink *, link, r_lb) {
|
||||
if ((ptr->type != link->ptr.type) &&
|
||||
(RNA_struct_type_find_property(link->ptr.type, prop_id) != prop))
|
||||
{
|
||||
BLI_remlink(r_lb, link);
|
||||
MEM_freeN(link);
|
||||
if (is_rna) {
|
||||
const char *prop_id = RNA_property_identifier(prop);
|
||||
LISTBASE_FOREACH_MUTABLE (CollectionPointerLink *, link, r_lb) {
|
||||
if ((ptr->type != link->ptr.type) &&
|
||||
(RNA_struct_type_find_property(link->ptr.type, prop_id) != prop))
|
||||
{
|
||||
BLI_remlink(r_lb, link);
|
||||
MEM_freeN(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
const bool prop_is_array = RNA_property_array_check(prop);
|
||||
const int prop_array_len = prop_is_array ? RNA_property_array_length(ptr, prop) : -1;
|
||||
const PropertyType prop_type = RNA_property_type(prop);
|
||||
LISTBASE_FOREACH_MUTABLE (CollectionPointerLink *, link, r_lb) {
|
||||
PointerRNA lptr;
|
||||
PropertyRNA *lprop = nullptr;
|
||||
RNA_path_resolve_property(&link->ptr, *r_path, &lptr, &lprop);
|
||||
|
||||
bool remove = false;
|
||||
if (lprop == nullptr) {
|
||||
remove = true;
|
||||
}
|
||||
else if (!RNA_property_is_idprop(lprop)) {
|
||||
remove = true;
|
||||
}
|
||||
else if (prop_type != RNA_property_type(lprop)) {
|
||||
remove = true;
|
||||
}
|
||||
else if (prop_is_array != RNA_property_array_check(lprop)) {
|
||||
remove = true;
|
||||
}
|
||||
else if (prop_is_array && (prop_array_len != RNA_property_array_length(&link->ptr, lprop)))
|
||||
{
|
||||
remove = true;
|
||||
}
|
||||
|
||||
if (remove) {
|
||||
BLI_remlink(r_lb, link);
|
||||
MEM_freeN(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1388,6 +1440,7 @@ bool UI_context_copy_to_selected_check(PointerRNA *ptr,
|
|||
RNA_path_resolve_property(ptr_link, path, &lptr, &lprop);
|
||||
}
|
||||
else {
|
||||
BLI_assert(!RNA_property_is_idprop(prop));
|
||||
lptr = *ptr_link;
|
||||
lprop = prop;
|
||||
}
|
||||
|
|
|
@ -440,7 +440,7 @@ void uiStyleInit()
|
|||
/* Set default flags based on UI preferences (not render fonts) */
|
||||
{
|
||||
const int flag_disable = (BLF_MONOCHROME | BLF_HINTING_NONE | BLF_HINTING_SLIGHT |
|
||||
BLF_HINTING_FULL);
|
||||
BLF_HINTING_FULL | BLF_RENDER_SUBPIXELAA);
|
||||
int flag_enable = 0;
|
||||
|
||||
if (U.text_render & USER_TEXT_HINTING_NONE) {
|
||||
|
@ -456,6 +456,9 @@ void uiStyleInit()
|
|||
if (U.text_render & USER_TEXT_DISABLE_AA) {
|
||||
flag_enable |= BLF_MONOCHROME;
|
||||
}
|
||||
if (U.text_render & USER_TEXT_RENDER_SUBPIXELAA) {
|
||||
flag_enable |= BLF_RENDER_SUBPIXELAA;
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (uiFont *, font, &U.uifonts) {
|
||||
if (font->blf_id != -1) {
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include "DNA_node_tree_interface_types.h"
|
||||
|
||||
#include "ED_node.hh"
|
||||
#include "ED_undo.hh"
|
||||
|
||||
#include "RNA_access.hh"
|
||||
#include "RNA_prototypes.h"
|
||||
|
@ -390,6 +391,7 @@ bool NodeSocketDropTarget::on_drop(bContext *C, const DragInfo &drag_info) const
|
|||
|
||||
/* General update */
|
||||
ED_node_tree_propagate_change(C, CTX_data_main(C), &nodetree);
|
||||
ED_undo_push(C, "Insert node group item");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -480,6 +482,7 @@ bool NodePanelDropTarget::on_drop(bContext *C, const DragInfo &drag_info) const
|
|||
|
||||
/* General update */
|
||||
ED_node_tree_propagate_change(C, CTX_data_main(C), &nodetree);
|
||||
ED_undo_push(C, "Insert node group item");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -2888,14 +2888,40 @@ void OBJECT_OT_vertex_group_normalize(wmOperatorType *ot)
|
|||
/** \name Vertex Group Normalize All Operator
|
||||
* \{ */
|
||||
|
||||
/*
|
||||
* For a given object, determine which target vertex group to normalize.
|
||||
*/
|
||||
static eVGroupSelect normalize_vertex_group_target(Object *ob)
|
||||
{
|
||||
/* Default to All Groups. */
|
||||
eVGroupSelect target_group = WT_VGROUP_ALL;
|
||||
|
||||
/* If armature is present, and armature is actively deforming the object
|
||||
(i.e armature modifier isn't disabled) use BONE DEFORM. */
|
||||
if (BKE_modifiers_is_deformed_by_armature(ob)) {
|
||||
|
||||
int defgroup_tot = BKE_object_defgroup_count(ob);
|
||||
bool *defgroup_validmap = BKE_object_defgroup_validmap_get(ob, defgroup_tot);
|
||||
|
||||
for (int i = 0; i < defgroup_tot; i++) {
|
||||
if (defgroup_validmap[i] == true) {
|
||||
target_group = WT_VGROUP_BONE_DEFORM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
MEM_freeN(defgroup_validmap);
|
||||
}
|
||||
|
||||
return target_group;
|
||||
}
|
||||
|
||||
static int vertex_group_normalize_all_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Object *ob = ED_object_context(C);
|
||||
|
||||
/* If armature is present, default to `Deform Bones` otherwise `All Groups`. */
|
||||
RNA_enum_set(op->ptr,
|
||||
"group_select_mode",
|
||||
BKE_modifiers_is_deformed_by_armature(ob) ? WT_VGROUP_BONE_DEFORM : WT_VGROUP_ALL);
|
||||
eVGroupSelect target_group = normalize_vertex_group_target(ob);
|
||||
|
||||
RNA_enum_set(op->ptr, "group_select_mode", target_group);
|
||||
|
||||
bool lock_active = RNA_boolean_get(op->ptr, "lock_active");
|
||||
eVGroupSelect subset_type = static_cast<eVGroupSelect>(
|
||||
|
|
|
@ -95,6 +95,7 @@ static void add_group_input_node_fn(nodes::LinkSearchOpParams ¶ms)
|
|||
NODE_INTERFACE_SOCKET_INPUT,
|
||||
nullptr);
|
||||
socket_iface->init_from_socket_instance(¶ms.socket);
|
||||
params.node_tree.tree_interface.active_item_set(&socket_iface->item);
|
||||
|
||||
bNode &group_input = params.add_node("NodeGroupInput");
|
||||
|
||||
|
|
|
@ -45,6 +45,8 @@
|
|||
|
||||
#include "ED_undo.hh"
|
||||
|
||||
#include "WM_api.hh"
|
||||
|
||||
using blender::nodes::NodeDeclaration;
|
||||
|
||||
namespace blender::ed::space_node {
|
||||
|
@ -775,6 +777,9 @@ static void node_panel_toggle_button_cb(bContext *C, void *panel_state_argv, voi
|
|||
panel_state->flag ^= NODE_PANEL_COLLAPSED;
|
||||
|
||||
ED_node_tree_propagate_change(C, bmain, ntree);
|
||||
|
||||
/* Make sure panel state updates from the Properties Editor, too. */
|
||||
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_NODE_VIEW, nullptr);
|
||||
}
|
||||
|
||||
static void ui_node_draw_panel(uiLayout &layout,
|
||||
|
|
|
@ -192,15 +192,19 @@ static Vector<CornerGroup> calc_corner_groups_for_vertex(const OffsetIndices<int
|
|||
return groups;
|
||||
}
|
||||
|
||||
/* Calculate groups of corners that are contiguously connected to each input vertex. */
|
||||
static Array<Vector<CornerGroup>> calc_all_corner_groups(const OffsetIndices<int> faces,
|
||||
const Span<int> corner_verts,
|
||||
const Span<int> corner_edges,
|
||||
const GroupedSpan<int> vert_to_corner_map,
|
||||
const GroupedSpan<int> edge_to_corner_map,
|
||||
const Span<int> corner_to_face_map,
|
||||
const BitSpan split_edges,
|
||||
const IndexMask &affected_verts)
|
||||
/* Calculate groups of corners that are contiguously connected to each input vertex.
|
||||
* BLI_NOINLINE because MSVC 17.7 has a codegen bug here, given there is only a single call to this
|
||||
* function, not inlining it for all platforms won't affect performance. See
|
||||
* https://developercommunity.visualstudio.com/t/10448291 for details. */
|
||||
BLI_NOINLINE static Array<Vector<CornerGroup>> calc_all_corner_groups(
|
||||
const OffsetIndices<int> faces,
|
||||
const Span<int> corner_verts,
|
||||
const Span<int> corner_edges,
|
||||
const GroupedSpan<int> vert_to_corner_map,
|
||||
const GroupedSpan<int> edge_to_corner_map,
|
||||
const Span<int> corner_to_face_map,
|
||||
const BitSpan split_edges,
|
||||
const IndexMask &affected_verts)
|
||||
{
|
||||
Array<Vector<CornerGroup>> corner_groups(affected_verts.size(), NoInitialization());
|
||||
affected_verts.foreach_index(GrainSize(512), [&](const int vert, const int mask) {
|
||||
|
|
|
@ -249,8 +249,8 @@ void VKContext::swap_buffers_pre_handler(const GHOST_VulkanSwapChainData &swap_c
|
|||
color_attachment->layout_ensure(*this, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
|
||||
|
||||
VkImageBlit image_blit = {};
|
||||
image_blit.srcOffsets[0] = {0, int32_t(swap_chain_data.extent.height) - 1, 0};
|
||||
image_blit.srcOffsets[1] = {int32_t(swap_chain_data.extent.width), 0, 1};
|
||||
image_blit.srcOffsets[0] = {0, color_attachment->height_get() - 1, 0};
|
||||
image_blit.srcOffsets[1] = {color_attachment->width_get(), 0, 1};
|
||||
image_blit.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
image_blit.srcSubresource.mipLevel = 0;
|
||||
image_blit.srcSubresource.baseArrayLayer = 0;
|
||||
|
|
|
@ -71,10 +71,10 @@ Array<VkRect2D, 16> VKFrameBuffer::vk_render_areas_get() const
|
|||
if (scissor_test_get()) {
|
||||
int scissor_rect[4];
|
||||
scissor_get(scissor_rect);
|
||||
render_area.offset.x = scissor_rect[0];
|
||||
render_area.offset.y = scissor_rect[1];
|
||||
render_area.extent.width = scissor_rect[2];
|
||||
render_area.extent.height = scissor_rect[3];
|
||||
render_area.offset.x = clamp_i(scissor_rect[0], 0, width_);
|
||||
render_area.offset.y = clamp_i(scissor_rect[1], 0, height_);
|
||||
render_area.extent.width = clamp_i(scissor_rect[2], 1, width_ - scissor_rect[0]);
|
||||
render_area.extent.height = clamp_i(scissor_rect[3], 1, height_ - scissor_rect[1]);
|
||||
}
|
||||
else {
|
||||
render_area.offset.x = 0;
|
||||
|
@ -288,11 +288,13 @@ static void blit_aspect(VKCommandBuffer &command_buffer,
|
|||
image_blit.dstSubresource.mipLevel = 0;
|
||||
image_blit.dstSubresource.baseArrayLayer = 0;
|
||||
image_blit.dstSubresource.layerCount = 1;
|
||||
image_blit.dstOffsets[0].x = dst_offset_x;
|
||||
image_blit.dstOffsets[0].y = dst_offset_y;
|
||||
image_blit.dstOffsets[0].x = min_ii(dst_offset_x, dst_texture.width_get());
|
||||
image_blit.dstOffsets[0].y = min_ii(dst_offset_y, dst_texture.height_get());
|
||||
image_blit.dstOffsets[0].z = 0;
|
||||
image_blit.dstOffsets[1].x = dst_offset_x + src_texture.width_get();
|
||||
image_blit.dstOffsets[1].y = dst_offset_y + src_texture.height_get();
|
||||
image_blit.dstOffsets[1].x = min_ii(dst_offset_x + src_texture.width_get(),
|
||||
dst_texture.width_get());
|
||||
image_blit.dstOffsets[1].y = min_ii(dst_offset_y + src_texture.height_get(),
|
||||
dst_texture.height_get());
|
||||
image_blit.dstOffsets[1].z = 1;
|
||||
|
||||
command_buffer.blit(dst_texture, src_texture, Span<VkImageBlit>(&image_blit, 1));
|
||||
|
|
|
@ -1338,6 +1338,8 @@ typedef enum eText_Draw_Options {
|
|||
USER_TEXT_HINTING_NONE = (1 << 1),
|
||||
USER_TEXT_HINTING_SLIGHT = (1 << 2),
|
||||
USER_TEXT_HINTING_FULL = (1 << 3),
|
||||
|
||||
USER_TEXT_RENDER_SUBPIXELAA = (1 << 4),
|
||||
} eText_Draw_Options;
|
||||
|
||||
/**
|
||||
|
|
|
@ -178,7 +178,7 @@ bool RNA_path_resolve_elements(PointerRNA *ptr, const char *path, struct ListBas
|
|||
* \param needle: Custom property object to find.
|
||||
* \return Relative path or NULL.
|
||||
*/
|
||||
char *RNA_path_from_struct_to_idproperty(PointerRNA *ptr, struct IDProperty *needle);
|
||||
char *RNA_path_from_struct_to_idproperty(PointerRNA *ptr, const struct IDProperty *needle);
|
||||
|
||||
/**
|
||||
* Find the actual ID pointer and path from it to the given ID.
|
||||
|
@ -196,6 +196,11 @@ char *RNA_path_from_real_ID_to_struct(struct Main *bmain,
|
|||
struct ID **r_real);
|
||||
|
||||
char *RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop);
|
||||
|
||||
char *RNA_path_from_ptr_to_property_index(const PointerRNA *ptr,
|
||||
PropertyRNA *prop,
|
||||
int index_dim,
|
||||
int index);
|
||||
/**
|
||||
* \param index_dim: The dimension to show, 0 disables. 1 for 1d array, 2 for 2d. etc.
|
||||
* \param index: The *flattened* index to use when \a `index_dim > 0`,
|
||||
|
|
|
@ -892,10 +892,8 @@ static void rna_def_node_interface_socket(BlenderRNA *brna)
|
|||
prop = RNA_def_property(srna, "in_out", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_bitflag_sdna(prop, nullptr, "flag");
|
||||
RNA_def_property_enum_items(prop, node_tree_interface_socket_in_out_items);
|
||||
RNA_def_property_enum_default(prop, NODE_INTERFACE_SOCKET_INPUT);
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||
RNA_def_property_ui_text(prop, "Input/Output Type", "Input or output socket type");
|
||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_NodeTreeInterfaceItem_update");
|
||||
|
||||
prop = RNA_def_property(srna, "hide_value", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "flag", NODE_INTERFACE_SOCKET_HIDE_VALUE);
|
||||
|
|
|
@ -797,14 +797,14 @@ static char *rna_idp_path_create(IDP_Chain *child_link)
|
|||
}
|
||||
|
||||
static char *rna_idp_path(PointerRNA *ptr,
|
||||
IDProperty *haystack,
|
||||
IDProperty *needle,
|
||||
const IDProperty *haystack,
|
||||
const IDProperty *needle,
|
||||
IDP_Chain *parent_link)
|
||||
{
|
||||
char *path = nullptr;
|
||||
IDP_Chain link;
|
||||
|
||||
IDProperty *iter;
|
||||
const IDProperty *iter;
|
||||
int i;
|
||||
|
||||
BLI_assert(haystack->type == IDP_GROUP);
|
||||
|
@ -861,7 +861,7 @@ static char *rna_idp_path(PointerRNA *ptr,
|
|||
}
|
||||
else if (iter->type == IDP_IDPARRAY) {
|
||||
if (prop->type == PROP_COLLECTION) {
|
||||
IDProperty *array = IDP_IDPArray(iter);
|
||||
const IDProperty *array = IDP_IDPArray(iter);
|
||||
if (needle >= array && needle < (iter->len + array)) { /* found! */
|
||||
link.name = iter->name;
|
||||
link.index = int(needle - array);
|
||||
|
@ -894,9 +894,9 @@ static char *rna_idp_path(PointerRNA *ptr,
|
|||
return path;
|
||||
}
|
||||
|
||||
char *RNA_path_from_struct_to_idproperty(PointerRNA *ptr, IDProperty *needle)
|
||||
char *RNA_path_from_struct_to_idproperty(PointerRNA *ptr, const IDProperty *needle)
|
||||
{
|
||||
IDProperty *haystack = RNA_struct_idprops(ptr, false);
|
||||
const IDProperty *haystack = RNA_struct_idprops(ptr, false);
|
||||
|
||||
if (haystack) { /* can fail when called on bones */
|
||||
return rna_idp_path(ptr, haystack, needle, nullptr);
|
||||
|
@ -916,7 +916,7 @@ static char *rna_path_from_ID_to_idpgroup(const PointerRNA *ptr)
|
|||
*/
|
||||
PointerRNA id_ptr = RNA_id_pointer_create(ptr->owner_id);
|
||||
|
||||
return RNA_path_from_struct_to_idproperty(&id_ptr, static_cast<IDProperty *>(ptr->data));
|
||||
return RNA_path_from_struct_to_idproperty(&id_ptr, static_cast<const IDProperty *>(ptr->data));
|
||||
}
|
||||
|
||||
ID *RNA_find_real_ID_and_path(ID *id, const char **r_path)
|
||||
|
@ -1067,21 +1067,12 @@ static void rna_path_array_multi_string_from_flat_index(const PointerRNA *ptr,
|
|||
}
|
||||
}
|
||||
|
||||
char *RNA_path_from_ID_to_property_index(const PointerRNA *ptr,
|
||||
PropertyRNA *prop,
|
||||
int index_dim,
|
||||
int index)
|
||||
static char *rna_path_from_ptr_to_property_index_ex(
|
||||
const PointerRNA *ptr, PropertyRNA *prop, int index_dim, int index, const char *path_prefix)
|
||||
{
|
||||
const bool is_rna = (prop->magic == RNA_MAGIC);
|
||||
const char *propname;
|
||||
char *ptrpath, *path;
|
||||
|
||||
if (!ptr->owner_id || !ptr->data) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* path from ID to the struct holding this property */
|
||||
ptrpath = RNA_path_from_ID_to_struct(ptr);
|
||||
char *path;
|
||||
|
||||
propname = RNA_property_identifier(prop);
|
||||
|
||||
|
@ -1095,18 +1086,17 @@ char *RNA_path_from_ID_to_property_index(const PointerRNA *ptr,
|
|||
ptr, prop, index_dim, index, index_str, sizeof(index_str));
|
||||
}
|
||||
|
||||
if (ptrpath) {
|
||||
if (path_prefix) {
|
||||
if (is_rna) {
|
||||
path = BLI_sprintfN("%s.%s%s", ptrpath, propname, index_str);
|
||||
path = BLI_sprintfN("%s.%s%s", path_prefix, propname, index_str);
|
||||
}
|
||||
else {
|
||||
char propname_esc[MAX_IDPROP_NAME * 2];
|
||||
BLI_str_escape(propname_esc, propname, sizeof(propname_esc));
|
||||
path = BLI_sprintfN("%s[\"%s\"]%s", ptrpath, propname_esc, index_str);
|
||||
path = BLI_sprintfN("%s[\"%s\"]%s", path_prefix, propname_esc, index_str);
|
||||
}
|
||||
MEM_freeN(ptrpath);
|
||||
}
|
||||
else if (RNA_struct_is_ID(ptr->type)) {
|
||||
else {
|
||||
if (is_rna) {
|
||||
path = BLI_sprintfN("%s%s", propname, index_str);
|
||||
}
|
||||
|
@ -1116,13 +1106,38 @@ char *RNA_path_from_ID_to_property_index(const PointerRNA *ptr,
|
|||
path = BLI_sprintfN("[\"%s\"]%s", propname_esc, index_str);
|
||||
}
|
||||
}
|
||||
else {
|
||||
path = nullptr;
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
char *RNA_path_from_ptr_to_property_index(const PointerRNA *ptr,
|
||||
PropertyRNA *prop,
|
||||
int index_dim,
|
||||
int index)
|
||||
{
|
||||
return rna_path_from_ptr_to_property_index_ex(ptr, prop, index_dim, index, nullptr);
|
||||
}
|
||||
|
||||
char *RNA_path_from_ID_to_property_index(const PointerRNA *ptr,
|
||||
PropertyRNA *prop,
|
||||
int index_dim,
|
||||
int index)
|
||||
{
|
||||
if (!ptr->owner_id || !ptr->data) {
|
||||
return nullptr;
|
||||
}
|
||||
/* Path from ID to the struct holding this property. */
|
||||
char *ptrpath = RNA_path_from_ID_to_struct(ptr);
|
||||
/* When there is no path and this is not an ID, there is no path to the ID. */
|
||||
char *path = ((ptrpath == nullptr) && !RNA_struct_is_ID(ptr->type)) ?
|
||||
nullptr :
|
||||
rna_path_from_ptr_to_property_index_ex(ptr, prop, index_dim, index, ptrpath);
|
||||
if (ptrpath != nullptr) {
|
||||
MEM_freeN(ptrpath);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
char *RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop)
|
||||
{
|
||||
return RNA_path_from_ID_to_property_index(ptr, prop, 0, -1);
|
||||
|
@ -1333,32 +1348,11 @@ char *RNA_path_struct_property_py(PointerRNA *ptr, PropertyRNA *prop, int index)
|
|||
return ret;
|
||||
}
|
||||
|
||||
char *RNA_path_property_py(const PointerRNA * /*ptr*/, PropertyRNA *prop, int index)
|
||||
char *RNA_path_property_py(const PointerRNA *ptr, PropertyRNA *prop, int index)
|
||||
{
|
||||
const bool is_rna = (prop->magic == RNA_MAGIC);
|
||||
const char *propname = RNA_property_identifier(prop);
|
||||
char *ret;
|
||||
|
||||
if ((index == -1) || (RNA_property_array_check(prop) == false)) {
|
||||
if (is_rna) {
|
||||
ret = BLI_strdup(propname);
|
||||
}
|
||||
else {
|
||||
char propname_esc[MAX_IDPROP_NAME * 2];
|
||||
BLI_str_escape(propname_esc, propname, sizeof(propname_esc));
|
||||
ret = BLI_sprintfN("[\"%s\"]", propname_esc);
|
||||
}
|
||||
if (RNA_property_array_check(prop) == false) {
|
||||
index = -1;
|
||||
}
|
||||
else {
|
||||
if (is_rna) {
|
||||
ret = BLI_sprintfN("%s[%d]", propname, index);
|
||||
}
|
||||
else {
|
||||
char propname_esc[MAX_IDPROP_NAME * 2];
|
||||
BLI_str_escape(propname_esc, propname, sizeof(propname_esc));
|
||||
ret = BLI_sprintfN("[\"%s\"][%d]", propname_esc, index);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
const int index_dim = (index == -1) ? 0 : 1;
|
||||
return RNA_path_from_ptr_to_property_index(ptr, prop, index_dim, index);
|
||||
}
|
||||
|
|
|
@ -3798,6 +3798,12 @@ static void rna_def_userdef_theme_space_nla(BlenderRNA *brna)
|
|||
RNA_def_property_ui_text(prop, "Channel", "Nonlinear Animation Channel");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
|
||||
prop = RNA_def_property(srna, "dopesheet_subchannel", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, nullptr, "ds_subchannel");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Sub-channel", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
|
||||
|
||||
prop = RNA_def_property(srna, "nla_track", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, nullptr, "nla_track");
|
||||
RNA_def_property_array(prop, 3);
|
||||
|
@ -5174,6 +5180,12 @@ static void rna_def_userdef_view(BlenderRNA *brna)
|
|||
prop, "Text Anti-Aliasing", "Smooth jagged edges of user interface text");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_text_update");
|
||||
|
||||
prop = RNA_def_property(srna, "use_text_render_subpixelaa", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, nullptr, "text_render", USER_TEXT_RENDER_SUBPIXELAA);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "Text Subpixel Anti-Aliasing", "Render text for optimal horizontal placement");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_text_update");
|
||||
|
||||
prop = RNA_def_property(srna, "text_hinting", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_bitflag_sdna(prop, nullptr, "text_render");
|
||||
RNA_def_property_enum_items(prop, text_hinting_items);
|
||||
|
|
|
@ -2452,6 +2452,11 @@ static int wm_userpref_read_exec(bContext *C, wmOperator *op)
|
|||
U.runtime.is_dirty = true;
|
||||
}
|
||||
|
||||
/* Ensure the correct icon textures are loaded. When the current theme didn't had an
|
||||
* #icon_border_intensity, but the loaded theme has, the icon with border intensity needs to be
|
||||
* loaded. */
|
||||
UI_icons_reload_internal_textures();
|
||||
|
||||
BKE_callback_exec_null(bmain, BKE_CB_EVT_EXTENSION_REPOS_UPDATE_POST);
|
||||
|
||||
/* Needed to recalculate UI scaling values (eg, #UserDef.inv_dpi_fac). */
|
||||
|
|
Loading…
Reference in New Issue