Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding=utf-8
- """
- docstring with a period.
- and two lines.
- """
- pfix = "ppf_"
- # parameters type: ["name, label, default, r_min, r_max"]
- params = {"f": ["slerp", "crwl"], "v": ["fwd", "up"], "t": ["flip", "init"], "s": ["natt,Normal Att", "tatt,Tangent Att", "matt, Matrix Att"]}
- print "++ VEX++ \n"
- print "// Get UI Parameters \n"
- for key in params:
- if key == "f":
- print "// float"
- for att in params[key]:
- name = att.split(",")[0]
- line = "float " + name + " = ch(\"" + pfix + name + "\") ;"
- print line
- print ""
- if key == "v":
- print "// vector"
- for att in params[key]:
- name = att.split(",")[0]
- line = "vector " + name + " = chv(\"" + pfix + name + "\") ;"
- print line
- print ""
- if key == "i" or key == "t":
- print "// integer"
- for att in params[key]:
- name = att.split(",")[0]
- line = "int " + name + " = chi(\"" + pfix + name + "\") ;"
- print line
- print ""
- elif key == "s":
- print "// string"
- for att in params[key]:
- name = att.split(",")[0]
- line = "string " + name + " = chs(\"" + pfix + name + "\") ;"
- print line
- print ""
- print "\n // Override with Existing Attributes \n"
- for key in params:
- if key == "f":
- print "// float"
- for att in params[key]:
- name = att.split(",")[0]
- line = "if(! hasprimattrib(0, \"" + pfix + name + "\")) f@" + pfix + name + " = " + name + " ;"
- print line
- print ""
- elif key == "v":
- print "// vector"
- for att in params[key]:
- name = att.split(",")[0]
- line = "if(! hasprimattrib(0, \"" + pfix + name + "\")) v@" + pfix + name + " = " + name + " ;"
- print line
- print ""
- elif key == "i" or key == "t":
- print "// integer"
- for att in params[key]:
- name = att.split(",")[0]
- line = "if(! hasprimattrib(0, \"" + pfix + name + "\")) i@" + pfix + name + " = " + name + " ;"
- print line
- print ""
- elif key == "s":
- print "// string"
- for att in params[key]:
- name = att.split(",")[0]
- line = "if(! hasprimattrib(0, \"" + pfix + name + "\") && " + name + " != \"\") s@" + pfix + name + " = " + name + " ;"
- print line
- print ""
- print "\n ++ Python UI Create Paramaters ++ \n"
- # functions
- def filliterargs(args, maxsize, defaultval, r_min, r_max):
- """list(args, defaultval) float(r_min, r_max)."""
- for n in range(len(args), 5):
- args.append("")
- if args[1] == "":
- args[1] = args[0].title()
- if args[2] == "":
- args[2] = str(list(defaultval))
- if args[3] == "":
- args[3] = str(r_min)
- if args[4] == "":
- args[4] = str(r_max)
- return args
- def fillsingleargs(args, maxsize, defaultval):
- """list(args, defaultval) float(r_min, r_max)."""
- for n in range(len(args), 5):
- args.append("")
- if args[1] == "":
- args[1] = args[0].title()
- if args[2] == "":
- args[2] = str(defaultval)
- return args
- print "nd = hou.selectedNodes()[0] # first selected node\n"
- print "group = nd.parmTemplateGroup()\n"
- for key in params:
- if key == "f":
- print "# float"
- for att in params[key]:
- args = att.split(",")
- args = filliterargs(args, 5, [0], 0, 10)
- name, label, val, r_min, r_max = args[0], args[1], args[2], args[3], args[4]
- pycode = "group.addParmTemplate(hou.FloatParmTemplate(\"" + pfix + name + "\", \"" + label + "\", 1, " + val + ", " + r_min + ", " + r_max + "))"
- print pycode
- print ""
- if key == "v":
- print "# vector"
- for att in params[key]:
- args = att.split(",")
- args = filliterargs(args, 5, [0, 0, 0], 0, 10)
- name, label, val, r_min, r_max = args[0], args[1], args[2], args[3], args[4]
- pycode = "group.addParmTemplate(hou.FloatParmTemplate(\"" + pfix + name + "\", \"" + label + "\", 3, " + val + ", " + r_min + ", " + r_max + "))"
- print pycode
- print ""
- if key == "i":
- print "# int"
- for att in params[key]:
- args = att.split(",")
- args = filliterargs(args, 5, [0], 0, 10)
- name, label, val, r_min, r_max = args[0], args[1], args[2], args[3], args[4]
- pycode = "group.addParmTemplate(hou.IntParmTemplate(\"" + pfix + name + "\", \"" + label + "\", 1, " + val + ", " + r_min + ", " + r_max + "))"
- print pycode
- print ""
- if key == "t":
- print "# toggle"
- for att in params[key]:
- args = att.split(",")
- args = fillsingleargs(args, 3, 0)
- name, label, val, r_min, r_max = args[0], args[1], args[2], args[3], args[4]
- pycode = "group.addParmTemplate(hou.ToggleParmTemplate(\"" + pfix + name + "\", \"" + label + "\", " + val + "))"
- print pycode
- print ""
- if key == "s":
- print "# string"
- for att in params[key]:
- args = att.split(",")
- args = filliterargs(args, 3, [""], "", "")
- name, label, val, r_min, r_max = args[0], args[1], args[2], args[3], args[4]
- pycode = "group.addParmTemplate(hou.StringParmTemplate(\"" + pfix + name + "\", \"" + label + "\", 1, " + val + "))"
- print pycode
- print ""
- print "nd.setParmTemplateGroup(group)\n"
- print ""
Advertisement
Add Comment
Please, Sign In to add comment