import sys,struct,numpy as np; sys.path.insert(0,'.'); from floor import * t=443; x,y,z,rot,mi,_=mp['A'][t]; recs=[r for g in trak[mi].coll for r in g] def planes(r): return [struct.unpack_from(' n127.p = d/32 (p in units)... return pts # local (engine) -> world: local=(lz_w', -lx_w') for rot 3072 => dx=-lz, dz=lx a=-rot/4096*2*math.pi def toworld(p): lx,ly,lz=p # invert lx=c*dx+s*dz, lz=c*dz-s*dx with s=sin(a'),c=cos(a'), a'=(-rot)*2pi/4096 s,c=math.sin(a),math.cos(a) dx=c*lx-s*lz; dz=s*lx+c*lz return (x+dx,y+ly,-z+dz) for i in [int(v) for v in sys.argv[1:]]: r=recs[i]; P=planes(r) print('poly',i,'type',r[0],'surface n',[v/127 for v in P[0][:3]]) for p in corners(r): print(' local',np.round(p,4),' world',np.round(toworld(p),4))