import bpy
import sys
import os

# Argumentos após "--"
argv = sys.argv
argv = argv[argv.index("--") + 1:]

input_file = os.path.abspath(argv[0])
output_usdz = os.path.abspath(argv[1])

extension = os.path.splitext(input_file)[1].lower()

print("Modelo de entrada:", input_file)
print("Formato de entrada:", extension)
print("USDZ de saída:", output_usdz)

# Limpa completamente a cena
bpy.ops.object.select_all(action="SELECT")
bpy.ops.object.delete(use_global=False)

# Importa conforme o formato
if extension == ".obj":

    print("Importando OBJ...")

    bpy.ops.import_scene.obj(
        filepath=input_file
    )

elif extension == ".glb":

    print("Importando GLB...")

    bpy.ops.import_scene.gltf(
        filepath=input_file
    )

else:

    raise RuntimeError(
        "Formato não suportado para conversão USDZ: "
        + extension
    )

# Exporta USDZ
print("Exportando USDZ...")

bpy.ops.wm.usd_export(
    filepath=output_usdz
)

# Confirma que o arquivo realmente nasceu
if not os.path.isfile(output_usdz):
    raise RuntimeError(
        "O Blender terminou sem gerar o arquivo USDZ."
    )

if os.path.getsize(output_usdz) <= 0:
    raise RuntimeError(
        "O arquivo USDZ gerado está vazio."
    )

print("USDZ_CONVERTED_OK")