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)