Skip to content

Instantly share code, notes, and snippets.

@zeffii
Created November 27, 2016 15:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeffii/4e0dcb36b68bbc26eaf0c14d8658a1db to your computer and use it in GitHub Desktop.
Save zeffii/4e0dcb36b68bbc26eaf0c14d8658a1db to your computer and use it in GitHub Desktop.
import bpy
from bpy.props import StringProperty, EnumProperty
from sverchok.node_tree import SverchCustomTreeNode
from sverchok.data_structure import (updateNode, enum_item as e)
NODE_TEMPO = True
node_details = {}
def make_ugen_class(name, node_details):
generated_classname = "SvNP" + name
return type(generated_classname, (SvNumpyBaseNode,), node_details[name])
class SvNumpyBaseNode(bpy.types.Node, SverchCustomTreeNode):
bl_idname = ""
bl_label = ""
def draw_buttons(self, context, layout):
layout.prop(self, 'sig')
def augment_node_dict(name, extend_dict):
node_details[name] = {"bl_idname": "SvNP" + name, "bl_label": name.title()}
node_details[name].update(extend_dict)
if NODE_TEMPO:
def sv_init2(self, context):
self.inputs.new("StringsSocket", "Illu2")
self.outputs.new("StringsSocket", "Illu2")
def process(self):
si = self.inputs
so = self.outputs
T = ['MESH', 'CURVE', 'SURFACE']
tempo_dict = {
'sig': EnumProperty(default='MESH', items=e(T), update=updateNode),
'sv_init': sv_init2,
'process': process
}
augment_node_dict('tempo2', tempo_dict)
classes = [make_ugen_class(name, node_details) for name in node_details.keys()]
def register():
_ = [bpy.utils.register_class(name) for name in classes]
def unregister():
_ = [bpy.utils.unregister_class(name) for name in classes]
register()
nodes = bpy.data.node_groups['NodeTree'].nodes
nodes.new('SvNPtempo2')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment