from lib.skn_anm import * def read_skn(filepath) -> AnmSkin: with open(filepath, "rb") as fp: r = AnmFile.parse(fp, AnmSkin) return r def main(): f = ["/home/tasty/Projects/gck-map-extract-objects/anm_skn/rp_l0.skn"] my_vertex = Vec3(-0.927200, 0.099500, 3.108000) mini_dist_v = Vec3(0, 0, 0) for p in f: skn = read_skn(p) pprint(skn.default_obj_dictionnary) pprint(skn.node_dictionnary) for obj_name, obj in skn.default_obj_dictionnary.items(): for cluster in obj.clusters: for vertex in cluster.vertices: if vertex.distance(my_vertex) < mini_dist_v.distance(my_vertex): mini_dist_v = vertex print("%s: dist=%s" % (mini_dist_v, mini_dist_v.distance(my_vertex))) if __name__ == "__main__": main()