Geometry Nodes: Operator to wrap a modifier's node group #104546

Merged
Hans Goudey merged 19 commits from HooglyBoogly/blender:geometry-nodes-wrapper-operator into main 2023-02-14 18:22:04 +01:00
1 changed files with 7 additions and 2 deletions
Showing only changes of commit f0f8b79f76 - Show all commits

View File

@ -6,7 +6,7 @@ from bpy.types import Operator
from bpy.app.translations import pgettext_data as data_
def geometry_node_group_empty_new(name=data_("Geometry Nodes"), add_link=True):
def build_default_empty_geometry_node_group(name, add_link):
HooglyBoogly marked this conversation as resolved
Review

Better use two separate functions that call a common function instead of adding optional parameters to this one.

Better use two separate functions that call a common function instead of adding optional parameters to this one.
group = bpy.data.node_groups.new(name, 'GeometryNodeTree')
group.inputs.new('NodeSocketGeometry', data_("Geometry"))
group.outputs.new('NodeSocketGeometry', data_("Geometry"))
@ -25,6 +25,11 @@ def geometry_node_group_empty_new(name=data_("Geometry Nodes"), add_link=True):
return group
def geometry_node_group_empty_new():
build_default_empty_geometry_node_group(data_("Geometry Nodes"), True)
def get_context_modifier(context):
HooglyBoogly marked this conversation as resolved
Review

modifier may be None

modifier may be `None`
if context.area.type == 'PROPERTIES':
modifier = context.modifier
@ -110,7 +115,7 @@ class CreateModifierWrapperGroup(Operator):
return {'CANCELLED'}
wrapper_name = old_group.name + ".wrapper"
group = geometry_node_group_empty_new(name=wrapper_name, add_link=False)
group = build_default_empty_geometry_node_group(wrapper_name, False)
group_node = group.nodes.new("GeometryNodeGroup")
group_node.node_tree = old_group
group_node.update()