| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/asset')
| -rwxr-xr-x | src/asset/src/generate_frontier_tiles.py | 67 | 
1 files changed, 54 insertions, 13 deletions
| diff --git a/src/asset/src/generate_frontier_tiles.py b/src/asset/src/generate_frontier_tiles.py index 47870f3..a1f89c8 100755 --- a/src/asset/src/generate_frontier_tiles.py +++ b/src/asset/src/generate_frontier_tiles.py @@ -2,27 +2,68 @@  import xml.etree.ElementTree as XML  import sys +SVG_PREFIX = "{http://www.w3.org/2000/svg}" +G_TAG = SVG_PREFIX + "g" + +################################################################################ +def get_xml (filename): +    model_root = XML.parse(filename) + +    if (model_root == None): +        print("Could not open SVG file " + filename + ".") +        exit(-1) + +    return model_root + +def get_model (filename): +    model_root = get_xml(filename) + +    result = model_root.findall(G_TAG+"[1]/*") + +    if (len(result) == 0): +        print("Could not find content in model file (" + filename + ")") +        exit(-1) + +    return result + +def replace_group_by (root_node, group_name, new_content, filename): +    target_group = root_node.find(G_TAG+"[@id='" + group_name + "']") + +    if (target_group == None): +        print("Could not find group " + group_name + " in " + filename) +        exit(-1) + +    for e in target_group: +        target_group.remove(e) + +    target_group.extend(new_content) +################################################################################ +  if (len(sys.argv) < 3):      print("Usage: <A> <B> <TEMPLATES>")      exit(-1) -model_a = XML.parse(sys.argv[1]).findall("./svg/g[1]/*") -model_b = XML.parse(sys.argv[2]).findall("./svg/g[1]/*") +model_a = get_model(sys.argv[1]) +model_b = get_model(sys.argv[2]) + +if ((model_b == None) or (len(model_b) == 0)): +    print("Could not find content in model B (" + sys.argv[2] + ")") +    exit(-1) +  current_arg = 3 -while (current_arg <= 3): -    template_root = XML.parse(sys.argv[current_arg]) +while (current_arg < len(sys.argv)): +    filename = sys.argv[current_arg]      current_arg += 1 -    template_model_a = template_root.find("./svg/g[id='models_layer']/g[id='bg_a_model']") -    template_model_b = template_root.find("/svg/g[id='models_layer']/g[id='bg_b_model']") -    for e in template_model_a: -        template_model_a.remove(e) +    template_root = get_xml(filename) + +    models_layer = template_root.find(G_TAG+"[@id='models_layer']") -    for e in template_model_b: -        template_model_b.remove(e) +    if (models_layer == None): +        print("Could not find model layer in file " + filename + ".") -    template_model_a.extend(model_a) -    template_model_b.extend(model_b) +    replace_group_by(models_layer, "bg_a_model", model_a, filename) +    replace_group_by(models_layer, "bg_b_model", model_b, filename) -    template_root.write("/tmp/test" + str(current_arg) + ".xml") +    template_root.write("/tmp/test" + str(current_arg) + ".svg") | 


