#!/usr/bin/perl

use strict;
use warnings;

use File::Temp qw/tempdir/;
use File::Spec;
use Image::Size;
use Panotools::Script;

for my $mov (@ARGV)
{
    my $tempdir = tempdir (CLEANUP => 1);
    warn $tempdir;
    my $stubcube = File::Spec->catfile ($tempdir, 'cube');
    system ('qtvr2img', $mov, $stubcube);
    $mov = File::Spec->rel2abs ($mov);

    my ($width, $height) = imgsize ($stubcube.'_0.pnm');

    my $erect = new Panotools::Script;
    $erect->Panorama->Set (h => int ($width * 1.5708),
                           w => 2 * int ($width * 1.5708),
                           n => '"TIFF"', E => 0);
    $erect->Image->[0] = new Panotools::Script::Line::Image;
    $erect->Image->[0]->Set (f => 0, w => $width, h => $height, v => 90, Eev => 0,
                             r => 0, p => 0, y => 0, n => "\"$stubcube"."_0.pnm\"");
    $erect->Image->[1] = new Panotools::Script::Line::Image;
    $erect->Image->[1]->Set (f => 0, w => $width, h => $height, v => 90, Eev => 0,
                             r => 0, p => 0, y => 90, n => "\"$stubcube"."_1.pnm\"");
    $erect->Image->[2] = new Panotools::Script::Line::Image;
    $erect->Image->[2]->Set (f => 0, w => $width, h => $height, v => 90, Eev => 0,
                             r => 0, p => 0, y => 180, n => "\"$stubcube"."_2.pnm\"");
    $erect->Image->[3] = new Panotools::Script::Line::Image;
    $erect->Image->[3]->Set (f => 0, w => $width, h => $height, v => 90, Eev => 0,
                             r => 0, p => 0, y => -90, n => "\"$stubcube"."_3.pnm\"");
    $erect->Image->[4] = new Panotools::Script::Line::Image;
    $erect->Image->[4]->Set (f => 0, w => $width, h => $height, v => 90, Eev => 0,
                             r => 0, p => 90, y => 0, n => "\"$stubcube"."_4.pnm\"");
    $erect->Image->[5] = new Panotools::Script::Line::Image;
    $erect->Image->[5]->Set (f => 0, w => $width, h => $height, v => 90, Eev => 0,
                             r => 0, p => -90, y => 0, n => "\"$stubcube"."_5.pnm\"");
    $erect->Stitch ("$mov.tif");

}
