Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Distance testing
- from pymel.core import *
- import maya.api.OpenMaya as om
- import math
- import random as r
- import time
- start = time.clock()
- class thing:
- def __init__(self, obj):
- self.pos = obj.getTranslation()
- self.obj = obj
- def getDist(p1,p2):
- dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2)
- return dist
- def getClose(p1,p2):
- dist = (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2
- return dist
- p1 = thing(ls("pCube1")[0])
- p2Objs = ls("popGrp")[0].listRelatives(c=1)
- toList = []
- for c in p2Objs:
- newThing = thing(c)
- toList.append(newThing)
- """
- startDistC = time.clock()
- recordC = 100000
- closestC = []
- for p2 in toList:
- distC = getClose(p1.pos, p2.pos)
- if distC < recordC:
- closestC.insert(0, p2)
- recordC = distC
- elapsedC = (time.clock() - startDistC)
- for s in closestC[:10]:
- select(s.obj,add=1)
- """
- def getDist(p1,p2):
- dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2)
- return dist
- startDistD = time.clock()
- recordD = 100000
- closestD = []
- for p2 in toList:
- dist = getDist(p1.pos, p2.pos)
- if dist < 20:
- closestD.append(p2.obj)
- select(closestD)
- elapsedD = (time.clock() - startDistD)
- #print "\n","Run time total Dist C:", elapsedC
- print "\n","Run time total Dist D:", elapsedD
Advertisement
Add Comment
Please, Sign In to add comment