Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- addEdgeToList = True #add or remove from list
- chanceEdge = 50 #chance of occurance
- chanceObject = 50
- sortList = True #sorts the list
- edgeToDefine = ['x']
- nameOfEdge = 'test'
- if modifyList == True:
- for objSel in range( len( selectedObjects ) ):
- edgeToAdd = [[nameOfEdge,chanceEdge],[[str(selectedObjects[objSel]),edgeToDefine,chanceObject]]]
- #get previous value and update
- edgeAlreadyExists = -1
- objectExistsHere = -1
- objectExists = False
- for i in range( len( allEdges ) ):
- edgeInfo = allEdges[i][0]
- objInfo = allEdges[i][1]
- if edgeInfo[0] == edgeToAdd[0][0]: #check if edge name exists
- edgeAlreadyExists = i #index of edge name
- for j in range( len( objInfo ) ): #count number of existing values
- if objInfo[j][0] == edgeToAdd[1][0][0]: #check if object is in edge name
- objectExistsHere = j #index of object
- for m in range( len( objInfo[j][1] ) ): #loop through each matching axis
- for n in range( len( edgeToAdd[1][0][1] ) ): #loop for each selected axis
- if objInfo[j][1][m] == edgeToAdd[1][0][1][n]:
- objectExists = True
- if debugInfo == True:
- print "Object name: " + str(edgeToAdd[1][0][0])
- print "Edge index: " + str(edgeAlreadyExists)
- print "Object index: " + str(objectExistsHere)
- print "Entry exists: " + str(objectExists)
- print
- #add to list
- addEdges = edgeToAdd[1][0][1]
- if len( allEdges ) == 0:
- allEdges.append( edgeToAdd )
- elif ( objectExists == False or len( edgeToAdd[1][0][1] ) > 1 ) and addEdgeToList == True :
- existingEdges = allEdges[edgeAlreadyExists][1][objectExistsHere][1]
- if edgeAlreadyExists > -1:
- if objectExistsHere > -1:
- matchingValues = []
- #check for matching letters
- for i in range( len( addEdges ) ):
- for j in range( len( existingEdges ) ):
- alreadyExists = False
- for m in range( len( matchingValues ) ):
- if addEdges[i] == matchingValues[m]:
- alreadyExists = True
- if addEdges[i] == existingEdges[j] and alreadyExists == False:
- matchingValues.append( addEdges[i] )
- #subtract matching letters and add to list
- for i in range( len( addEdges ) ):
- currentEdge = addEdges[i]
- addToList = True
- for j in range( len( matchingValues ) ):
- if addEdges[i] == matchingValues[j]:
- addToList = False
- if addToList == True:
- allEdges[edgeAlreadyExists][1][objectExistsHere][1].append( addEdges[i] )
- elif objectExists == False:
- allEdges[edgeAlreadyExists][1].append( edgeToAdd[1][0] ) #add object
- elif objectExists == False:
- allEdges.append( edgeToAdd ) #add edge
- #remove from list
- if objectExists == True and addEdgeToList == False:
- if edgeAlreadyExists > -1:
- if objectExistsHere > -1:
- objectList = allEdges[edgeAlreadyExists][1]
- objectEdges = objectList[objectExistsHere][1]
- edgesToRemove = edgeToAdd[1][0][1]
- removeEdges = []
- #check to make sure letters still exist
- for i in range( len( objectEdges ) ):
- for j in range( len( edgesToRemove ) ):
- alreadyExists = False
- for k in range( len( removeEdges ) ):
- if objectEdges[i] == removeEdges[k]:
- alreadyExists = True
- if objectEdges[i] == edgesToRemove[j] and alreadyExists == False:
- removeEdges.append( edgesToRemove[j] )
- if len( objectEdges ) > len( edgesToRemove ): #remove individual letter
- for i in range( len( removeEdges ) ):
- allEdges[edgeAlreadyExists][1][objectExistsHere][1].remove( removeEdges[i] )
- else:
- if len( objectList ) > 1: #remove whole object
- objectList.remove( objectList[objectExistsHere] )
- else: #remove entire edge
- allEdges.remove( allEdges[edgeAlreadyExists] )
- #sort list
- if sortList == True:
- allEdges.sort()
- for i in range( len( allEdges ) ):
- allEdges[i][1].sort()
- for j in range( len( allEdges[i][1] ) ):
- allEdges[i][1][j][1].sort()
- #store list
- py.setAttr( 'infoStore.sides', str( allEdges ) )
Advertisement
Add Comment
Please, Sign In to add comment