"""
Viewpoint inspector — prints position, orientation and FOV to the console
once per second.  Attach as the controller of a dummy supervisor robot to
copy-paste exact camera values into field.wbt.
"""

from controller import Supervisor

robot    = Supervisor()
timestep = int(robot.getBasicTimeStep())
vp       = robot.getFromDef("VIEWPOINT")

step = 0
while robot.step(timestep) != -1:
    if step % 60 == 0:
        pos = vp.getField("position").getSFVec3f()
        ori = vp.getField("orientation").getSFRotation()
        fov = vp.getField("fieldOfView").getSFFloat()
        print(f"position:    {pos[0]:.3f} {pos[1]:.3f} {pos[2]:.3f}")
        print(f"orientation: {ori[0]:.3f} {ori[1]:.3f} {ori[2]:.3f} {ori[3]:.3f}")
        print(f"fieldOfView: {fov:.3f}\n")
    step += 1
