in common/utils/mesh.py [0:0]
def load_skeleton(self, path, joint_num):
# load joint info (name, parent_id)
skeleton = [{} for _ in range(joint_num)]
with open(path) as fp:
for line in fp:
if line[0] == '#': continue
splitted = line.split(' ')
joint_name, joint_id, joint_parent_id = splitted
joint_id, joint_parent_id = int(joint_id), int(joint_parent_id)
skeleton[joint_id]['name'] = joint_name
skeleton[joint_id]['parent_id'] = joint_parent_id
if joint_name.endswith('null'):
skeleton[joint_id]['DoF'] = np.array([0,0,0],dtype=np.float32)
elif joint_name.endswith('3'):
skeleton[joint_id]['DoF'] = np.array([0,0,1],dtype=np.float32)
elif joint_name.endswith('2'):
skeleton[joint_id]['DoF'] = np.array([0,0,1],dtype=np.float32)
elif joint_name.endswith('1'):
skeleton[joint_id]['DoF'] = np.array([1,1,1],dtype=np.float32)
elif joint_name.endswith('thumb0'):
skeleton[joint_id]['DoF'] = np.array([1,1,1],dtype=np.float32)
else:
skeleton[joint_id]['DoF'] = np.array([0,0,0],dtype=np.float32)
# save child_id
for i in range(len(skeleton)):
joint_child_id = []
for j in range(len(skeleton)):
if skeleton[j]['parent_id'] == i:
joint_child_id.append(j)
skeleton[i]['child_id'] = joint_child_id
self.skeleton = skeleton