cwisbg

# Distance testing

Aug 17th, 2018
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. # Distance testing
  2. from pymel.core import *
  3. import maya.api.OpenMaya as om
  4. import math
  5. import random as r
  6. import time
  7. start = time.clock()
  8.  
  9.  
  10. class thing:
  11.     def __init__(self, obj):
  12.         self.pos = obj.getTranslation()
  13.         self.obj = obj
  14.        
  15. def getDist(p1,p2):
  16.     dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2)
  17.     return dist
  18.    
  19. def getClose(p1,p2):
  20.     dist = (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2
  21.     return dist
  22.    
  23. p1 = thing(ls("pCube1")[0])
  24. p2Objs = ls("popGrp")[0].listRelatives(c=1)
  25. toList = []
  26. for c in p2Objs:
  27.     newThing = thing(c)
  28.     toList.append(newThing)
  29.  
  30.  
  31.  
  32. """
  33. startDistC = time.clock()
  34. recordC = 100000
  35. closestC = []
  36. for p2 in toList:
  37.    distC = getClose(p1.pos, p2.pos)
  38.    if distC < recordC:
  39.        closestC.insert(0, p2)
  40.        recordC = distC
  41. elapsedC = (time.clock() - startDistC)
  42. for s in closestC[:10]:
  43.    select(s.obj,add=1)
  44. """
  45. def getDist(p1,p2):
  46.     dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2)
  47.     return dist
  48. startDistD = time.clock()
  49. recordD = 100000
  50. closestD = []
  51. for p2 in toList:
  52.     dist = getDist(p1.pos, p2.pos)
  53.     if dist < 20:
  54.         closestD.append(p2.obj)
  55. select(closestD)      
  56. elapsedD = (time.clock() - startDistD)
  57.  
  58.  
  59.  
  60. #print "\n","Run time total Dist C:", elapsedC  
  61. print "\n","Run time total Dist D:", elapsedD
Advertisement
Add Comment
Please, Sign In to add comment