#!/usr/bin/env python3
"""Render close-up QA views for surface continuity."""

from __future__ import annotations

import math
import sys
from pathlib import Path

import bpy
from mathutils import Vector

sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "model-silver-web"))
from build_silver_model import clear_scene, import_and_prepare, point_at, setup_studio  # noqa: E402


def main() -> None:
    args = sys.argv[sys.argv.index("--") + 1 :]
    source = Path(args[0]).resolve()
    output = Path(args[1]).resolve()
    output.mkdir(parents=True, exist_ok=True)
    clear_scene()
    obj = import_and_prepare(source)
    setup_studio(obj, output / "closeup-00.png")
    scene = bpy.context.scene
    scene.render.resolution_x = 1000
    scene.render.resolution_y = 760
    camera = scene.camera
    camera.data.lens = 82
    views = [
        (Vector((0.0, -1.75, 1.35)), Vector((0.0, -0.22, 0.02))),
        (Vector((1.6, -0.65, 1.15)), Vector((0.45, -0.15, 0.0))),
        (Vector((-1.6, -0.65, 1.15)), Vector((-0.45, -0.15, 0.0))),
    ]
    for index, (location, target) in enumerate(views):
        camera.location = location
        point_at(camera, target)
        scene.render.filepath = str(output / f"closeup-{index:02d}.png")
        bpy.ops.render.render(write_still=True)


if __name__ == "__main__":
    main()
