Fri Mar 9 00:56:54 PST 2001 <pstarka@cs.sfu.ca>
	* First version of working source
	* uses very slow interpolation
	* filters are hard coded
	* uses .raw extension
	* real header is XSize YSize ZSize bytes_per_number
	* includes linux Makefile, VC project
	* save directory has possibly useful code
	* see TODO

Fri Mar 9 01:08:10 PST 2001 <pstarka@cs.sfu.ca>
	* Steve's filters are implemented. BUT I had to
	  reverse the linear filter to make it work.
	  His others may need this too.

Mon Mar 12 19:16:15 PST 2001 <pstarka@cs.sfu.ca>
	* added Image_io.h/cpp which has functions for
	  reading pvp and fvr headers and file
	* PVP and FVR formats are nearly identical:
	  header: PVP or FVR <ws>
	          XSize <ws> YSize <ws> ZSize <ws>
                  [ bytes per number ] <ws>
                  [ binary info where x is fast and z is slow ]
	* The other difference is that PVP is assumed
	  integer, and FVR is raw bytes
	* Reading a pvp file converts d bytes into floats,
	  but fvr reads d bytes raw.
	* Read/Write routines still need to be more
	  versatile in handling whitespace and errors

Sun Mar 18 00:45:56 PST 2001 <pstarka@cs.sfu.ca>
	* This was actually a few days ago, but I created
	  Transform.h and transforms/FFT.cpp; see the comment
	  in Transform.h to see how this works. In essence,
	  I took all FFT and shifting code out of Volume.cpp

Sun Mar 18 03:19:34 PST 2001 <pstarka@cs.sfu.ca>
	* Added in wraps. It's messy but works. We should actually
	  deallocate ALL memory and read in the fvr
	  file and wrap simultaneously. This took far too 
	  long to write because scoord() was using XSize, not
	  SliceXSize!!! Awful bug that took hours to find.

Mon Mar 19 12:15:15 PST 2001 <pstarka@cs.sfu.ca>
	* Reading a pvp file now reads, preprocesses, writes fvr.
	  Then it deallocates all memory and calls the read
	  fvr routine.
	* Read fvr zero pads filter_width / 2 on both sides
	  during the read operation. Then calls wrapVolume()
	  which fills in the zeroes with mod wraps.
	* This eliminates having 2 copies of the transformed
	  data in memory at a time and removes redundant code
	  between reading pvp and fvr files.

Mon Mar 19 16:35:33 PST 2001 <pstarka@cs.sfu.ca>
	* Interpolation is now optimized!! There are N^2 mods,
	  linear pointer indexing, etc ... Previously there
	  were N^2 L^3 mods and all coordinates were calculated
	  as needed.
	* Still doing twice as much interpolation as needed though.

Mon Mar 19 19:22:04 PST 2001 <pstarka@cs.sfu.ca>
	* Added fn Volume::computeSlice() which does the
	  work. Volume::getSliceData() now only does a scale
	  and bias. Now scaling no longer reinterpolates!!!

Tue Mar 20 01:44:52 PST 2001 <pstarka@cs.sfu.ca>
	* Torstens filters now work!! This uses Steve's
	  original wrapper, modified a bit. These needed to
	  be reversed from the way he had them, this is
	  probably true for all his filters.
	* All filters are now in the `filter' directory so
	  that they're all together.
	* Main should be modified sometime so that the current
	  filter is not hardcoded.

Tue Mar 20 14:42:17 PST 2001 <pstarka@cs.sfu.ca>
	* 2D transform is out-of-place. Spatial slice is now
	  m_SSlice.
	* Added Voluem::clearImage() which sets all elements
	  of m_Slice to 0.
	* Volume::scaleAndBias() now works on m_SSlice and
	  uses pointer notation.

Sat Mar 24 02:01:31 PST 2001 <pstarka@cs.sfu.ca>
	* Added bandpass filter
	* Added basic progressive refinement code
	* some ringing when cutting out high freq.

Sun Mar 25 01:32:10 PST 2001 <pstarka@cs.sfu.ca>
	* Changed algorithm slightly. Uses in-place xform
	  and the copy operation is part of the first
	  2D shift.

Sun Mar 25 19:03:00 PST 2001 <pstarka@cs.sfu.ca>
	* Added in overloaded interpolation without the
	  bandpass filter, for the sake of speed.
	* Added conditional compilation so that the second
	  copy of the picture (only necessary for PR) can
	  be removed for the sake of both speed and memory.
	* Put main programs into UI directory.
	* Added in a benchmark main program which does RUNS
	  repetitions of 3 rotations (one for each axis).
	  It does not do the screen blit though, and on my
	  machine I'm getting 7.3 - 7.6 fps for 256^3 data
	  and extent 2 filter.

Tue Mar 27 12:38:32 PST 2001 <pstarka@cs.sfu.ca>
	* Added slice oversampling

