diff --git a/geo_list.py b/geo_list.py index b850d5e..49901c8 100644 --- a/geo_list.py +++ b/geo_list.py @@ -6,11 +6,17 @@ from geo import Geo show_triangles = False show_scales = False +do_dump = False def listGeo(fn, fh): geo = Geo() geo.loadFromFile(fh) for m in geo.models: + if do_dump and m.name.decode("utf-8") != dump_name: + continue + if do_dump: + m.dump() + return s = "%s : %s" % (geo.header_modelheader_name.decode("utf-8"), m.name.decode("utf-8")) if show_triangles: s += " : %d" % (m.tris and len(m.tris) or 0, ) @@ -21,11 +27,14 @@ def listGeo(fn, fh): def parseOption(opt): global show_triangles global show_scales + global do_dump for c in opt[1:]: if c == "t": show_triangles = True elif c == "s": show_scales = True + elif c == "d": + do_dump = True if len(sys.argv) <= 1: @@ -34,10 +43,15 @@ if len(sys.argv) <= 1: print("Options:") print(" -t Display triangle count.") print(" -s Display model scale.") + print(" -d Dump model.") exit() +dump_name = "" for i in range(1, len(sys.argv)): + if do_dump and not dump_name: + dump_name = sys.argv[i] + continue if sys.argv[i].startswith("-"): parseOption(sys.argv[i]) continue