def handlePosition(position, coos, svg, role_of): ids = [] if Debug: print "handlePosition", position.getAttribute('id'), coos [translation, angle] = extract_transform(position.getAttribute('transform')) new_translation = view_mapping(translation) position.setAttribute('transform', make_transform(new_translation, angle)) svg = printAttr('g', position, ('id', 'transform'), svg) role_of = extract_role(position, role_of) for child in position.childNodes: if child.nodeName == 'rect': [id, coos, svg] = handleRect(child, coos, svg) if Debug: print "after handleRect:", coos ids.append(id) if child.nodeName == 'label': svg = handleLabel(child, svg) for cid in cids: if cid in ids: print 'before handlePOsition', cid, coos[cid], translation, angle for id in ids: coos = apply_transform(id, new_translation, angle, coos) for cid in cids: if cid in ids: print 'after handlePOsition', cid, coos[cid], translation, angle svg.append('</g>') return [ids, coos, svg, role_of]
def handlePositionGroup(group, coos, svg, role_of): ids = [] if Debug: print "handlePositionGroup", coos svg = printAttr('g', group, ('id', 'transform'), svg) for child in group.childNodes: if child.nodeName == 'position': [new_ids, coos, svg, role_of] = handlePosition(child, coos, svg, role_of) ids += new_ids [translation, angle] = extract_transform(group.getAttribute('transform')) new_translation = view_mapping(translation) group.setAttribute('transform', make_transform(new_translation, angle)) # for cid in cids: # print 'posgroup', cid, 'before', coos[cid], translation, angle for id in ids: coos = apply_transform(id, new_translation, angle, coos) for cid in cids: if cid in ids: print 'posgroup', cid, 'result', coos[cid], translation, angle svg.append('</g>') return [coos, svg, role_of]