Fix T60390: add Cycles texture node mapping settings to node editor sidebar
These were missing from the UI previously.
This commit is contained in:
parent
a6efbe95cf
commit
b3b335c398
Notes:
blender-bot
2023-05-03 10:14:48 +02:00
Referenced by issue #60390, Image Texture Node - mapping settings ignored in the viewport textured mode
|
@ -168,50 +168,6 @@ class TEXTURE_PT_node(TextureButtonsPanel, Panel):
|
|||
layout.template_node_view(ntree, node, None)
|
||||
|
||||
|
||||
class TEXTURE_PT_node_mapping(TextureButtonsPanel, Panel):
|
||||
bl_label = "Mapping"
|
||||
bl_context = "texture"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
node = context.texture_node
|
||||
# TODO(sergey): perform a faster/nicer check?
|
||||
return node and hasattr(node, "texture_mapping") and (context.engine in cls.COMPAT_ENGINES)
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.use_property_split = True
|
||||
layout.use_property_decorate = False # No animation.
|
||||
|
||||
flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=False)
|
||||
|
||||
node = context.texture_node
|
||||
|
||||
mapping = node.texture_mapping
|
||||
|
||||
col = flow.column()
|
||||
col.prop(mapping, "vector_type")
|
||||
|
||||
col.separator()
|
||||
|
||||
col = col.column(align=True)
|
||||
col.prop(mapping, "mapping_x", text="Projection X")
|
||||
col.prop(mapping, "mapping_y", text="Y")
|
||||
col.prop(mapping, "mapping_z", text="Z")
|
||||
|
||||
col.separator()
|
||||
|
||||
col = flow.column()
|
||||
col.column().prop(mapping, "translation")
|
||||
|
||||
col = flow.column()
|
||||
col.column().prop(mapping, "rotation")
|
||||
|
||||
col = flow.column()
|
||||
col.column().prop(mapping, "scale")
|
||||
|
||||
|
||||
class TextureTypePanel(TextureButtonsPanel):
|
||||
|
||||
@classmethod
|
||||
|
@ -918,7 +874,6 @@ classes = (
|
|||
TEXTURE_PT_preview,
|
||||
TEXTURE_PT_context,
|
||||
TEXTURE_PT_node,
|
||||
TEXTURE_PT_node_mapping,
|
||||
TEXTURE_PT_clouds,
|
||||
TEXTURE_PT_wood,
|
||||
TEXTURE_PT_marble,
|
||||
|
|
|
@ -508,6 +508,43 @@ class NODE_PT_active_node_properties(Panel):
|
|||
socket.draw(context, row, node, iface_(socket.name, socket.bl_rna.translation_context))
|
||||
|
||||
|
||||
class NODE_PT_texture_mapping(Panel):
|
||||
bl_space_type = 'NODE_EDITOR'
|
||||
bl_region_type = 'UI'
|
||||
bl_category = "Node"
|
||||
bl_label = "Texture Mapping"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
node = context.active_node
|
||||
return node and hasattr(node, "texture_mapping") and (context.engine in cls.COMPAT_ENGINES)
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
layout.use_property_split = True
|
||||
layout.use_property_decorate = False # No animation.
|
||||
|
||||
node = context.active_node
|
||||
mapping = node.texture_mapping
|
||||
|
||||
layout.prop(mapping, "vector_type")
|
||||
|
||||
layout.separator()
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.prop(mapping, "mapping_x", text="Projection X")
|
||||
col.prop(mapping, "mapping_y", text="Y")
|
||||
col.prop(mapping, "mapping_z", text="Z")
|
||||
|
||||
layout.separator()
|
||||
|
||||
layout.prop(mapping, "translation")
|
||||
layout.prop(mapping, "rotation")
|
||||
layout.prop(mapping, "scale")
|
||||
|
||||
|
||||
# Node Backdrop options
|
||||
class NODE_PT_backdrop(Panel):
|
||||
bl_space_type = 'NODE_EDITOR'
|
||||
|
@ -655,6 +692,7 @@ classes = (
|
|||
NODE_PT_active_node_generic,
|
||||
NODE_PT_active_node_color,
|
||||
NODE_PT_active_node_properties,
|
||||
NODE_PT_texture_mapping,
|
||||
NODE_PT_backdrop,
|
||||
NODE_PT_quality,
|
||||
NODE_PT_grease_pencil,
|
||||
|
|
Loading…
Reference in New Issue