import sys, time, resource
sys.path.insert(0, "scripts")
from common import CACHE, UP, fcp, load_mesh
sys.modules["fcp.encode"].MAX_ATOMS = 1 << 24
tol = float(sys.argv[1])
t = time.perf_counter()
d = fcp.encode(load_mesh("dog"), atoms=1 << 24, layers=2048, N=128, M=64, up=UP, device="cuda", fit_tol=tol)
(CACHE / f"b_dog_L2048_N128_M64_all_t{tol}.fcp").write_bytes(d.to_bytes())
print(f"dog fit_tol {tol}: {time.perf_counter()-t:.0f} s, parts {len(d.parts)}, atoms {d.n_atoms}, {d.nbytes/1e6:.2f} MB, peak {resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1e6:.1f} GB")
