[Bf-blender-cvs] [7b83720] object_nodes: Some simplifying python functions for copying existing enum properties.

Lukas Tönne noreply at git.blender.org
Wed Dec 9 16:23:45 CET 2015


Commit: 7b8372081769ffe02d094a7a560d72a21d15902d
Author: Lukas Tönne
Date:   Wed Dec 9 15:44:14 2015 +0100
Branches: object_nodes
https://developer.blender.org/rB7b8372081769ffe02d094a7a560d72a21d15902d

Some simplifying python functions for copying existing enum properties.

===================================================================

M	release/scripts/nodes/common_nodes.py

===================================================================

diff --git a/release/scripts/nodes/common_nodes.py b/release/scripts/nodes/common_nodes.py
index dd5b866..7970fdf 100644
--- a/release/scripts/nodes/common_nodes.py
+++ b/release/scripts/nodes/common_nodes.py
@@ -24,6 +24,23 @@ from bpy.types import Operator, ObjectNode
 from bpy.props import *
 from node_compiler import NodeCompiler, NodeWrapper, InputWrapper, OutputWrapper
 
+
+def enum_property_copy(bpy_type, name):
+    prop = bpy_type.bl_rna.properties[name]
+    items = [(i.identifier, i.name, i.description, i.icon, i.value) for i in prop.enum_items]
+    return EnumProperty(name=prop.name,
+                        description=prop.description,
+                        default=prop.default,
+                        items=items)
+
+def enum_property_value_prop(name):
+    def fget(self):
+        return self.bl_rna.properties[name].enum_items[getattr(self, name)].value
+    return property(fget=fget)
+
+
+###############################################################################
+
 class NodeTreeBase():
     def bvm_compile(self, context, graph):
         compiler = NodeCompiler(context, graph)
@@ -303,9 +320,7 @@ class EulerTransformNode(CommonNodeBase, ObjectNode):
     bl_label = 'Euler Transform'
 
     euler_order = _prop_euler_order
-    @property
-    def euler_order_value(self):
-        return self.bl_rna.properties['euler_order'].enum_items[self.euler_order].value
+    euler_order_value = enum_property_value_prop('euler_order')
 
     def draw_buttons(self, context, layout):
         layout.prop(self, "euler_order")
@@ -332,9 +347,7 @@ class GetEulerNode(CommonNodeBase, ObjectNode):
     bl_label = 'Get Euler Angles'
 
     euler_order = _prop_euler_order
-    @property
-    def euler_order_value(self):
-        return self.bl_rna.properties['euler_order'].enum_items[self.euler_order].value
+    euler_order_value = enum_property_value_prop('euler_order')
 
     def draw_buttons(self, context, layout):
         layout.prop(self, "euler_order")




More information about the Bf-blender-cvs mailing list