#! /usr/bin/perl foreach $_ (split(/:/, $ENV{'PATH'})) { push(@INC, $_), last if -f "$_/tfm.pl"; } require 'tfm.pl'; $fovy = 71; # Y-axis field of view (included in .wf file) $start = $ARGV[0] || "0 0 0 0.703464 -90.24 -29.3133"; # starting "jump" view $axis = $ARGV[1] || "0 0 1"; # rotation axis $center = $ARGV[2] || "0 0 0"; # fixed point of rotation $angle = 360; # rotate through this total angle $time = 25; # seconds duration $fps = 20; # ... assuming this many frames/sec ### # Now construct a .wf path (loadable with the "Path..." button) $nframes = $time * $fps; $perframe = ($nframes == 0) ? 0 : $angle / $nframes; @c2w0 = &vd2tfm( split(' ', $start) ); # initial camera-to-world tfm @axis = split(' ', $axis); @axis = (0,0,1) unless @axis == 3; @center = split(' ', $center); for($i = 0; $i <= $nframes; $i++) { $theta = $i * $perframe; # angle in degrees @Trot = &tfm( @axis, $theta, @center ); @c2w = &tmul( @c2w0, @Trot ); @vd = &tfm2vd( @c2w ); printf "%.7g %.7g %.7g %.7g %.7g %.7g %s\n", @vd, $fovy; }