Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2014
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.24 KB | None | 0 0
  1. addEdgeToList = True #add or remove from list
  2. chanceEdge = 50 #chance of occurance
  3. chanceObject = 50
  4. sortList = True #sorts the list
  5.  
  6. edgeToDefine = ['x']
  7. nameOfEdge = 'test'
  8.  
  9. if modifyList == True:
  10.     for objSel in range( len( selectedObjects ) ):
  11.         edgeToAdd = [[nameOfEdge,chanceEdge],[[str(selectedObjects[objSel]),edgeToDefine,chanceObject]]]
  12.         #get previous value and update
  13.         edgeAlreadyExists = -1
  14.         objectExistsHere = -1
  15.         objectExists = False
  16.         for i in range( len( allEdges ) ):
  17.             edgeInfo = allEdges[i][0]
  18.             objInfo = allEdges[i][1]
  19.             if edgeInfo[0] == edgeToAdd[0][0]: #check if edge name exists
  20.                 edgeAlreadyExists = i #index of edge name
  21.                 for j in range( len( objInfo ) ): #count number of existing values
  22.                     if objInfo[j][0] == edgeToAdd[1][0][0]: #check if object is in edge name
  23.                         objectExistsHere = j #index of object
  24.                         for m in range( len( objInfo[j][1] ) ): #loop through each matching axis
  25.                             for n in range( len( edgeToAdd[1][0][1] ) ): #loop for each selected axis
  26.                                 if objInfo[j][1][m] == edgeToAdd[1][0][1][n]:
  27.                                     objectExists = True
  28.         if debugInfo == True:
  29.             print "Object name: " + str(edgeToAdd[1][0][0])
  30.             print "Edge index: " + str(edgeAlreadyExists)
  31.             print "Object index: " + str(objectExistsHere)
  32.             print "Entry exists: " + str(objectExists)
  33.             print
  34.         #add to list
  35.         addEdges = edgeToAdd[1][0][1]
  36.         if len( allEdges ) == 0:
  37.             allEdges.append( edgeToAdd )
  38.         elif ( objectExists == False or len( edgeToAdd[1][0][1] ) > 1 ) and addEdgeToList == True :
  39.             existingEdges = allEdges[edgeAlreadyExists][1][objectExistsHere][1]
  40.             if edgeAlreadyExists > -1:
  41.                 if objectExistsHere > -1:
  42.                     matchingValues = []
  43.                     #check for matching letters
  44.                     for i in range( len( addEdges ) ):
  45.                         for j in range( len( existingEdges ) ):
  46.                             alreadyExists = False
  47.                             for m in range( len( matchingValues ) ):
  48.                                 if addEdges[i] == matchingValues[m]:
  49.                                     alreadyExists = True
  50.                             if addEdges[i] == existingEdges[j] and alreadyExists == False:
  51.                                 matchingValues.append( addEdges[i] )
  52.                     #subtract matching letters and add to list
  53.                     for i in range( len( addEdges ) ):
  54.                         currentEdge = addEdges[i]
  55.                         addToList = True
  56.                         for j in range( len( matchingValues ) ):
  57.                             if addEdges[i] == matchingValues[j]:
  58.                                 addToList = False
  59.                         if addToList == True:
  60.                             allEdges[edgeAlreadyExists][1][objectExistsHere][1].append( addEdges[i] )
  61.                 elif objectExists == False:
  62.                     allEdges[edgeAlreadyExists][1].append( edgeToAdd[1][0] ) #add object
  63.             elif objectExists == False:
  64.                 allEdges.append( edgeToAdd ) #add edge
  65.                
  66.         #remove from list
  67.         if objectExists == True and addEdgeToList == False:
  68.             if edgeAlreadyExists > -1:
  69.                 if objectExistsHere > -1:
  70.                     objectList = allEdges[edgeAlreadyExists][1]
  71.                     objectEdges = objectList[objectExistsHere][1]
  72.                     edgesToRemove = edgeToAdd[1][0][1]
  73.                     removeEdges = []
  74.                     #check to make sure letters still exist
  75.                     for i in range( len( objectEdges ) ):
  76.                         for j in range( len( edgesToRemove ) ):
  77.                             alreadyExists = False
  78.                             for k in range( len( removeEdges ) ):
  79.                                 if objectEdges[i] == removeEdges[k]:
  80.                                     alreadyExists = True
  81.                             if objectEdges[i] == edgesToRemove[j] and alreadyExists == False:
  82.                                 removeEdges.append( edgesToRemove[j] )
  83.                     if len( objectEdges ) > len( edgesToRemove ): #remove individual letter
  84.                         for i in range( len( removeEdges ) ):
  85.                             allEdges[edgeAlreadyExists][1][objectExistsHere][1].remove( removeEdges[i] )
  86.                     else:
  87.                         if len( objectList ) > 1: #remove whole object
  88.                             objectList.remove( objectList[objectExistsHere] )
  89.                         else: #remove entire edge
  90.                             allEdges.remove( allEdges[edgeAlreadyExists] )
  91.        
  92.         #sort list
  93.         if sortList == True:
  94.             allEdges.sort()
  95.             for i in range( len( allEdges ) ):
  96.                 allEdges[i][1].sort()
  97.                 for j in range( len( allEdges[i][1] ) ):
  98.                     allEdges[i][1][j][1].sort()
  99.        
  100.         #store list
  101.         py.setAttr( 'infoStore.sides', str( allEdges ) )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement