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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'io_scene_gltf2/blender/com/gltf2_blender_ui.py')
-rw-r--r--io_scene_gltf2/blender/com/gltf2_blender_ui.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/io_scene_gltf2/blender/com/gltf2_blender_ui.py b/io_scene_gltf2/blender/com/gltf2_blender_ui.py
new file mode 100644
index 00000000..59c364fb
--- /dev/null
+++ b/io_scene_gltf2/blender/com/gltf2_blender_ui.py
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: Apache-2.0
+# Copyright 2018-2022 The glTF-Blender-IO authors.
+
+import bpy
+from ..com.gltf2_blender_material_helpers import get_gltf_node_name, create_settings_group
+
+def create_gltf_ao_group(operator, group_name):
+
+ # create a new group
+ gltf_ao_group = bpy.data.node_groups.new(group_name, "ShaderNodeTree")
+
+ return gltf_ao_group
+
+class NODE_OT_GLTF_SETTINGS(bpy.types.Operator):
+ bl_idname = "node.gltf_settings_node_operator"
+ bl_label = "glTF Settings"
+
+
+ @classmethod
+ def poll(cls, context):
+ space = context.space_data
+ return space.type == "NODE_EDITOR" \
+ and context.object and context.object.active_material \
+ and context.object.active_material.use_nodes is True \
+ and bpy.context.preferences.addons['io_scene_gltf2'].preferences.settings_node_ui is True
+
+ def execute(self, context):
+ gltf_settings_node_name = get_gltf_node_name()
+ if gltf_settings_node_name in bpy.data.node_groups:
+ my_group = bpy.data.node_groups[get_gltf_node_name()]
+ else:
+ my_group = create_settings_group(gltf_settings_node_name)
+ node_tree = context.object.active_material.node_tree
+ new_node = node_tree.nodes.new("ShaderNodeGroup")
+ new_node.node_tree = bpy.data.node_groups[my_group.name]
+ return {"FINISHED"}
+
+
+def add_gltf_settings_to_menu(self, context) :
+ if bpy.context.preferences.addons['io_scene_gltf2'].preferences.settings_node_ui is True:
+ self.layout.operator("node.gltf_settings_node_operator")
+
+
+def register():
+ bpy.utils.register_class(NODE_OT_GLTF_SETTINGS)
+ bpy.types.NODE_MT_category_SH_NEW_OUTPUT.append(add_gltf_settings_to_menu)
+
+def unregister():
+ bpy.utils.unregister_class(NODE_OT_GLTF_SETTINGS)