import sys, time, resource
sys.path.insert(0, "scripts")
from common import CACHE, UP, fcp, load_mesh
import cutfix  # noqa: F401
sys.modules["fcp.encode"].MAX_ATOMS = 1 << 24
name, layers = sys.argv[1], int(sys.argv[2])
t = time.perf_counter()
d = fcp.encode(load_mesh(name), atoms=1 << 24, layers=layers, N=128, M=64, up=UP, device="cuda")
(CACHE / f"bf_{name}_L{layers}_N128_M64_all.fcp").write_bytes(d.to_bytes())
print(f"{name} L{layers} cut fix: {time.perf_counter()-t:.0f} s, parts {len(d.parts)}, longest {max(b-a+1 for _, a, b in d.parts)}, atoms {d.n_atoms}, {d.nbytes/1e6:.2f} MB, peak {resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1e6:.1f} GB")
