Blast Node Edit Tools
Marge Blast Nodes
pattern1 = []
pattern2 = []
pattern1orig = []
stPattern = ""
sel = hou.selectedNodes()[0]
preBlast = sel.inputs()[0]
if preBlast.type().name() == 'blast':
origNode = preBlast.inputs()[0]
group1 = sel.parm("group").eval()
group1prims = preBlast.geometry().globPrims(group1)
for i in group1prims:
pattern1.append(i.number())
group2 = preBlast.parm("group").eval()
group2prims = origNode.geometry().globPrims(group2)
for i in group2prims:
pattern2.append(i.number())
pattern1.sort(), pattern2.sort()
pattern2exception = range(0,len(origNode.geometry().prims()))
for i in pattern2:
pattern2exception.remove(i)
for i in pattern1:
pattern1orig.append(pattern2exception[i])
stList = pattern2 + pattern1orig
stList.sort()
for i in range(0,len(stList)):
if i == len(stList) - 1:
stPattern += str(stList[i]) + " "
else:
if (stList[i-1]+1)!=stList[i] and (stList[i+1]-1)!=stList[i]:
stPattern += str(stList[i]) + " "
if (stList[i-1]+1)!=stList[i] and (stList[i+1]-1)==stList[i]:
stPattern += str(stList[i]) + "-"
if (stList[i-1]+1)==stList[i] and (stList[i+1]-1)!=stList[i]:
stPattern += str(stList[i]) + " "
preBlast.parm("group").set(stPattern)
sel.destroy()
Blast Set Reverse
sel = hou.selectedNodes()[0]
pattern = []
stPattern = ""
if sel.type().name() == 'blast':
origNode = sel.inputs()[0]
group1 = sel.parm("group").eval()
group1prims = origNode.geometry().globPrims(group1)
pattern = range(0, len(origNode.geometry().prims()))
for i in group1prims:
pattern.remove(i.number())
for i in range(0,len(pattern)):
if i == len(pattern) - 1:
stPattern += str(pattern[i]) + " "
else:
if (pattern[i-1]+1)!=pattern[i] and (pattern[i+1]-1)!=pattern[i]:
stPattern += str(pattern[i]) + " "
if (pattern[i-1]+1)!=pattern[i] and (pattern[i+1]-1)==pattern[i]:
stPattern += str(pattern[i]) + "-"
if (pattern[i-1]+1)==pattern[i] and (pattern[i+1]-1)!=pattern[i]:
stPattern += str(pattern[i]) + " "
sel.parm("group").set(stPattern)