Skip to content

Instantly share code, notes, and snippets.

@zeffii
Last active November 27, 2016 13:05
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/ab4bd9efae406305579abb1e7ae5e9e5 to your computer and use it in GitHub Desktop.
Save zeffii/ab4bd9efae406305579abb1e7ae5e9e5 to your computer and use it in GitHub Desktop.
shorthand for sverchok machine classes
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_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 True:
def sv_init(self, context):
self.inputs.new("StringsSocket", "Illu")
self.outputs.new("StringsSocket", "Illu")
T = ['MESH','CURVE','SURFACE']
tempo_dict = {
'sig': EnumProperty(default='MESH', items=e(T), update=updateNode),
'sv_init': sv_init
}
augment_node_dict('tempo', 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('SvNPtempo')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment