forked from zclongpop123/BlackBox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_hierachy_md5.py
29 lines (24 loc) · 1007 Bytes
/
get_hierachy_md5.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#========================================
# author: changlong.zang
# mail: zclongpop@163.com
# date: Sun, 17 Jan 2016, 10:25:48
#========================================
import md5, pymel.core
import maya.OpenMaya as OpenMaya
#--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
def get_hierachy_md5(group_name, ignoreShape=True):
'''
'''
MD5 = md5.new()
geo_grp_pml_node = pymel.core.PyNode(group_name)
geo_grp_api_node = geo_grp_pml_node.__apimobject__()
dag_iterator = OpenMaya.MItDag()
if ignoreShape:
dag_iterator.reset(geo_grp_api_node, OpenMaya.MItDag.kDepthFirst, OpenMaya.MFn.kTransform)
else:
dag_iterator.reset(geo_grp_api_node, OpenMaya.MItDag.kDepthFirst)
while not dag_iterator.isDone():
MD5.update('{0}'.format(dag_iterator.depth()))
MD5.update('{0}'.format(dag_iterator.partialPathName()))
dag_iterator.next()
return MD5.hexdigest()