import bpy, sys
a=sys.argv[sys.argv.index("--")+1:]
bpy.ops.wm.read_factory_settings(use_empty=True); bpy.ops.import_scene.gltf(filepath=a[0])
for o in list(bpy.context.scene.objects):
    if o.type=="MESH" and o.name.startswith("Ico"): bpy.data.objects.remove(o)
arm=[o for o in bpy.context.scene.objects if o.type=="ARMATURE"][0]; arm.data.pose_position="REST"; bpy.context.view_layer.update()
me=[o for o in bpy.context.scene.objects if o.type=="MESH"][0]; MW=me.matrix_world; A=arm.matrix_world
vs=[MW@v.co for v in me.data.vertices]
for n in ("Hips","LeftUpLeg","LeftLeg","LeftFoot","LeftToeBase","RightUpLeg","RightLeg","RightFoot","RightToeBase"):
    h=A@arm.data.bones[n].head_local; print("BONE %-12s (%.2f %.2f %.2f)"%(n,*h))
XMAX=float(a[1]) if len(a)>1 else 0.58
for z in (0.95,0.85,0.75,0.65,0.55,0.45,0.35,0.25,0.15,0.08,0.03):
    row=[]
    for sg in (1,-1):
        sl=[p for p in vs if abs(p.z-z)<0.03 and 0.06<sg*p.x<XMAX]
        row.append("%s n=%4d ctr(%.2f %.2f) x %.2f..%.2f y %.2f..%.2f"%("L" if sg>0 else "R",len(sl),sum(p.x for p in sl)/max(1,len(sl)),sum(p.y for p in sl)/max(1,len(sl)),min([p.x for p in sl] or [0]),max([p.x for p in sl] or [0]),min([p.y for p in sl] or [0]),max([p.y for p in sl] or [0])))
    print("LEG z=%.2f | %s | %s"%(z,row[0],row[1]))
