Flypaths in Partiview

makerecordscript.pl can be used to make an executable file with lots of "echo where" statements. For example, if you say

   perl makerecordscript.pl myrec 2000

Then myrec will 2000 "echo where" calls. If you now open partiview, making sure that your output is redirected to a file, e.g.

  partiview myfile.cf > tmpfile &

Then pressing tab and typing "async myrec" will start a bunch of where calls being made. Note that you can keep your screensize small and later play your path with a large screen.

When recording is complete, process tmpfile with where2wf.pl, using

  perl where2wf.pl tmpfile mypath

This creates

Other useful utilities

removeduplines.pl removes duplicate lines from files. So if you say

   perl removeduplines.pl file1 file2

Then every time a line in file1 is the same as that as the line before it, it doesnt appear in file2. Note that file1 and file2 should be different.

Why do we need this? Because often when you're recording flypaths, even when moving quickly, the same point gets recorded twice by Partiview. Even when using the update command while recording. Use "perl removeduplines oldfile.wf newfile.wf" to fix this.

pickpart.pl : picks part of a file. If you say

   perl pickpart.pl k n infile outfile

Then every n-th line, starting with the k-th, of infile goes into outfile.

wf2dists.pl produces a distance file corresponding to a flypath file.

   perl wf2dists.pl wffile distfile factor

The k-th line of distfile has the distance, multiplied by factor, of the camera in the k-th line of wffile to the origin.

wf2jumpsnap.pl takes blah.wf and produces blah_jump, a file that (once made executable) can be asynced to go through the flypath in the same way as blah_snap does. blah_snap takes pictures at each step, blah_jump does not.

interpolcmdinwf.pl can be used to interpolate commands in a blah_snap and blah_jump file. For example, I wanted to increase the slum value at each stage of snapping through zoomout_snap and place this in zoomout_snap_incslum, so I called

  perl interpolcmdinwf.pl zoomout_snap zoomout_snap_incslum min\(0.5,0.1+0.05\*log\(1+DIST\)\) g8 slum DISTDEPVALUE

For every line of the form "echo snap x y z ..." in zoomout_snap, the distance DIST = (x*x + y*y + z*z)^0.5 was computed and then DISTDEPVALUE = min(0.5,0.1+0.05*log(1+DIST)) was computed, and then the line "echo g8 slum DISTDEPVALUE" (with the appropriate numerical substitution) was inserted after the "echo snap..." command in zoomout_snap_incslum. Note that the min command doesnt come with Perl, there's a function in interpolcmdinwf.pl that defines it. The exact definition of DISTDEPVALUE is completely dependent on the situation. Here I wanted the slum value for the objects in g8 to increase quite quickly from 0.1, but not to be more than 0.5.