Notes:

Release Name: 0.2.9

Notes:

This is a minor release, with the main changes being the following:

- added overlay feature to MRView
- fix some issues in handling of GE DICOM data
- performance improvements for tracks2prob

Changes:
=======================================================================
VERSION 0.2.9
=======================================================================

24-08-2010 Robert Smith <r.smith@brain.org.au>
    * cmd/tracks2prob.cpp:
      fix bug in handling of multiple contributions to a single voxel from a single track

04-08-2010 Robert Smith <r.smith@brain.org.au>
    * cmd/tracks2prob.cpp:
      reverted to previous interpretation of track 'density'
      (no scaling factor, finer interpolation & unary track->voxel contribution)

    * lib/point.h:
      added const qualifier to declaration of member function Point::cross()


28-07-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/tractography/track_list_item.h:
      increased allocator slab size to 32MB to force release of RAM to OS on close()

    * doc/faq.html:
      add entry about issues with the Analyse image format

    * doc/install/unix.html:
      remove obsolote installation instructions for 64 bit systems

    * sysconf/linux.py:
      switch '-march' option to 'native' to allow compilation on 64-bit systems
      without manual editing (suggested by Rob Smith).


21-07-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * src/dwi/SH.h:
    * src/dwi/SH.cpp:
      improved SH::delta() function

    * src/mrview/sidebar/overlay.h:
    * src/mrview/sidebar/overlay.cpp:
    * src/mrview/sidebar/main.h:
    * src/mrview/sidebar/main.cpp:
      added new overlay sidebar tool


16-07-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/image.cpp:
      check for readable data in GE private DW tags before assigning

    * lib/file/dicom/element.cpp:
      fix bug in handling of big-endian files


15-07-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * build: 
      fix to allow the use of symbolic links (problem identified by Rob
      Smith)

    * Doxyfile: version number upped to 0.2.9

    * lib/mrtrix.h: MRTRIX_MICRO_VERSION upped to 9


14-07-2010 Robert Smith <r.smith@brain.org.au>
    * cmd/tracks2prob.cpp:
      major overhaul of tracks2prob



=======================================================================
VERSION 0.2.8
=======================================================================

15-03-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/mrtrix.h:
    * lib/file/dicom/tree.cpp:
      add shorten() function to reduce long filenames 


12-03-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/tractography/track_list.h:
    * src/mrview/sidebar/tractography/track_list.cpp:
    * src/mrview/sidebar/tractography/track_list_item.h:
    * src/mrview/sidebar/tractography/track_list_item.cpp:
      a few bug fixes for the colour handling and support for depth blend on
      64 bit systems
    
04-03-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/scaling.h: 
      fix automatic windowing in the presence of infinite or NaN voxel values.

03-03-2010 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/normalise_tracks.cpp: 
      skip points in the tracks file if they are outside the supplied warp

    * cmd/streamtrack.cpp:
    * src/dwi/tractography/tracker/base.h:
    * src/dwi/tractography/tracker/base.cpp:
      new option to stop tracking as soon as track enters any include region.

    * cmd/streamtrack.cpp:
    * src/dwi/tractography/tracker/base.h:
    * src/dwi/tractography/tracker/base.cpp:
      new option to prevent tri-linear interpolation of mask regions.

    * src/dwi/tractography/tracker/base.h:
    * src/dwi/tractography/tracker/base.cpp:
    * src/dwi/tractography/tracker/dt_stream.cpp:
    * src/dwi/tractography/tracker/sd_stream.cpp:
    * src/dwi/tractography/tracker/sd_prob.cpp:
      tracking now stops immediately before the track leaves the mask, rather
      than immediately after.

    * lib/file/dicom/image.h:
    * lib/file/dicom/image.cpp:
    * lib/file/dicom/mapper.cpp:
      improved GE gradient information support

    * lib/file/dicom/element.cpp: fix bug in handling of IS sequences

09-12-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/mapper.cpp: handle zero directions in gradient scheme
    * lib/file/dicom/image.cpp: preliminary GE gradient information support

02-12-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/key_value.cpp: minor bug that prevented reading read-only files

27-11-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/pane.cpp:
    * src/dwi/render_frame.cpp:
      minor change to receive mouse move events on newer linux distributions (e.g. Ubuntu Karmic)

04-11-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/average.cpp: fix -axis option

29-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/mrabs.cpp: new command to take absolute value of image intensities

14-10-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/mrtrix.cpp: fix parse_float() to handle NaN in string specification

13-10-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/streamtrack.cpp: 
      - clarified the meaning of command-line options "number" & "maxnum"
      - fixed incorrect default setting of "maxnum" value

25-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/dwi2SH.cpp:
    * cmd/csdeconv.cpp:
    * cmd/sdeconv.cpp: fix documentation of SH coefficient storage convention

22-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/orientation_plot.cpp: add config option to set background colour

17-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/dwi2tensor.cpp: improved support for images that might use a different dimension for the DWI

17-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/image.cpp: added preliminary support to read Philips DW information

17-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/app.cpp: fix bug in command-line parsing (fix supplied by Tom Close)
    
11-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * src/dwi/SH.cpp: fix bug in computation of second derivative of SH series (pointed out by Ben Jeurissen).
    
09-09-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/csa_entry.h:
    * lib/file/dicom/element.cpp:
      include <cstdio> to allow compilation on Fedora 11


=======================================================================
VERSION 0.2.7
=======================================================================

24-08-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * src/dwi/tensor.h: use sqrt(1.5) instead of sqrt(3/2) when computing the
    FA. This was rounded down to 1 since the compiler assumed integer
    arithmetic (thanks to Kerstin Pannek for pointing this out).

16-08-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/resample_tracks.cpp: Improved the track resampling routine to allow for curved tracks.

13-08-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/gen_unit_warp.cpp: Added command to generate unitary warp. This is
    intended for use with other normalisation programs. The unitary warp field
    generated by this program can be warped by a third party normalisation
    routine, so that the relevant warp field can be recovered in the right
    format for use with MRtrix.

    * cmd/gen_ROI.cpp:
    * cmd/resample_tracks.cpp:
    * cmd/sample_tracks.cpp: Added a few programs to perform track-specific analyses

23-07-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/format/nifti1.cpp: Fix bitwise read handling for NIfTI format

26-06-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/streamtrack.cpp: added "maxnum" option to limit the number of tracks attempted

10-06-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/image.cpp: fix handling of acquisition matrix when the rows & columns are interchanged.

27-05-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/mrstats.cpp: added option to dump voxel intensities into a text file

20-05-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/mrstats.cpp: added option to build intensity histogram

19-05-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/csdeconv.cpp: fix incorrect setting of the threshold option - it was set 
      to a value 100 times lower than specified (reported by Ben Jeurissen).

18-05-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/threshold.cpp: reset scale & offset of output image to ensure proper binary output

01-05-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * src/dwi/tractography/file.cpp: fix minor bug that caused first point of
    first track to be omitted (reported by Tom Close).

01-04-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/normalise_tracks.cpp: added command to apply normalisation transform to tracks.


=======================================================================
VERSION 0.2.6
=======================================================================

21-03-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/streamtrack.cpp: fix minor bug that caused tracking to hang on 64-bit machines

18-03-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * src/dwi/tractography/tracker/base.h: 
    * src/dwi/tractography/tracker/base.cpp: 
      fix serious bug that caused the tracking to be incorrect with obliquely aligned data sets

17-03-2009 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/element.h:
    * lib/file/dicom/element.cpp:
      modify to allow use of either TR1 unordered map or SGI hash_map for the DICOM dictionary

    * lib/hash_map.h: Use the C++ TR1 unordered_map instead of hash_map by default
      This avoids compilation warnings on newer compilers. The old SGI hash_map can be used by removing 
      the USE_TR1 macro on the command-line (i.e. remove the '-DUSE_TR1' entry in the cpp_flags 
      line of the relevant sysconf file).

    * lib/image/header.cpp: additional sanity checks in sanitise_transform(): 
      - make sure voxel sizes are finite numbers
      - make sure all entries in the transform matrix are finite.
      use sane defaults otherwise.

19-12-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/mapper.cpp: handle cases where the data size is greater than expected, 
      and interpret as multi-channel data.

    * lib/file/dicom/quick_scan.h: 
    * lib/file/dicom/quick_scan.cpp: 
    * lib/file/dicom/tree.cpp: various sanity checks to ignore non-image DICOM files

18-12-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/format/dicom.cpp: handle cases where no series have been selected

    * lib/file/dicom/element.cpp: printout of DICOM group & element is now in hexadecimal

    * lib/file/dicom/select_cmdline.cpp: change numbering of series to handle cases where the series number is not set

    * src/mrview/image.cpp: fix random crashes in MRView when the "View->snap to image axes" option is unticked.

    * src/dwi/SH.cpp: modify precomputation to allow thread-safe operation

    * src/dwi/tractography/tracker/dt_stream.h:
    * src/dwi/tractography/tracker/dt_stream.cpp: modify eigenvector computation to allow thread-safe operation
    
    * cmd/streamtrack.cpp: added multithreading capability
    
17-12-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/mrstats.cpp: new command to compute voxelwise statistics

    * cmd/tensor_metrics.cpp: new command to compute various tensor-derived metrics

    * src/dwi/tensor.h: minor changes to tidy up the code

15-12-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/tractography/track_list_item.h:
    * src/mrview/sidebar/tractography/track_list_item.cpp:
    * src/mrview/sidebar/tractography/track_list.h:
    * src/mrview/sidebar/tractography/track_list.cpp:
      a few bug fixes + memory performance improvements for the depth blend option
    
12-12-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/screen_capture.h:
    * src/mrview/sidebar/screen_capture.cpp:
      new sidebar tool for taking screenshots in MRView

01-12-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/orientation_plot.cpp: fix problems with invalid focus position when the tool is first initialised.

31-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/mrtrix.h: include <cstring> & <cstdlib> to allow compilation on Fedora 9

    * cmd/sdeconv.cpp: 
    * cmd/csdeconv.cpp: 
      use MR::Ptr instead of std::auto_ptr

    * cmd/mrinfo.cpp: remove obsolete -dicom & -csa options

    * lib/file/dicom/element.cpp: only attempt to read a "truncated format" DICOM file if the extension is ".dcm"

    * lib/get_set.h:
      - replace get::T and put::T() methods with template get<T>() & put<T>() methods
      - add get/put template specialisations for bool, int8 and uint8
      - remove obsolete ArrayXX classes
      - move MR::ByteOrder namespace & methods from lib/mrtrix.h to here

    * lib/image/mapper.cpp: use template get<T>() & put<T>() methods from lib/get_set.h

    * cmd/tracks2prob.cpp: various optimisations to improve performance

    * lib/file/dicom/mapper.cpp: scale b-value by gradient magnitude and normalise gradient direction

29-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/dwi/SH.cpp: fix precomputed value calculation to handle rounding errors in the angle

    * cmd/streamtrack.cpp:
    * src/dwi/tractography/tracker/base.h:
    * src/dwi/tractography/tracker/base.cpp:
      fix init_direction handling

24-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/disp_profile.cpp: various improvements
      - set lmax based on SH values provided
      - set title based on row of SH coefficients currently displayed
      - use shift modifier to scroll through 10 rows at a time
      - add menu entry to normalise plot amplitude

    * src/dwi/render_frame.h: add functions to normalise plot amplitude

    * src/dwi/render_frame.cpp: scale plot by SH(0,0) coefficient when normalise option is set

17-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * build: update script to allow use with separate projects

    * lib/app.h: add SET_VERSION_DEFAULT, SET_VERSION, SET_AUTHOR and SET_COPYRIGHT macros

    * lib/app.cpp: modify version information printed out by "-version" option
      to take account of new command version, copyright and author variables
    
    * cmd/disp_profile.cpp: add option -response to display response function

15-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/mrconvert.cpp: add -layout option to manipulate data ordering within the image file

    * cmd/mrconvert.cpp: fix -prs option handling

    * cmd/mrconvert.cpp:
    * lib/file/dicom/mapper.h:
    * lib/file/dicom/mapper.cpp:
    * lib/image/format/dicom.cpp:
    * src/dialog/file.cpp: 
      remove MR::DICOM_DW_gradients_PRS flag

03-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/find_SH_peaks.cpp: fix bug in looping structure to allow processing of whole data set.

02-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/mrtrix.h: change Exception silencing to a priority level changing approach

02-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/element.cpp: extra sanity check to make sure that each element fits within the file.

01-10-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/object.cpp: sanitise axes prior to creating an image 

    * lib/image/axis.h: added sanitise() method to correct inconsistent axes ordering

23-09-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/csa_entry.h: fix handling of ascii floating-point numbers 
      on locales that use a comma as the decimal separator.

15-09-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/quickscan.cpp: 
    * lib/file/dicom/tree.cpp:
    * lib/file/dicom/patient.cpp:
    * lib/file/dicom/study.cpp:
      handle files even when any of the study, series or patient description fields are blank

08-09-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/image.h,
    * lib/file/dicom/image.cpp,
    * lib/file/dicom/mapper.cpp: 
      fix handling of mosaic slice ordering (using SliceNormalVector entry in CSA header)

    * Doxyfile: version number upped to 0.2.6

    * lib/mrtrix.h: MRTRIX_MICRO_VERSION upped to 6


=======================================================================
VERSION 0.2.5
=======================================================================

23-09-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/file/dicom/csa_entry.h: fix handling of ascii floating-point numbers on locales 
      that use a comma as the decimal separator.

03-09-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * doc: a number of updates
    - new FAQ section
    - document NIfTI format
    - other minor updates

02-09-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/format/mrtrix.cpp: add capacity to create temporary files for use through pipes

    * lib/mrtrix.h: added is_temporary() method to identify temporary files

    * lib/image/format/mri.cpp: remove temporary file creation capacity

    * lib/image/object.cpp: update temporary file handling (i.e. those sent via pipes)
    - switch to MRtrix format as the standard format for temporary files
    - handle any type of image supplied through the standard input

    * lib/file/mmap.h: tidied up class structure (MMap::Base is now private to MMap)

    * src/dwi/tractography/tracker/base.h: handle rare cases where gen_seed() would fail

    * lib/image/format/analyse.cpp: add support for reading NIfTI-1.1 hdr/img pairs

29-08-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/object.cpp: in create(), finalise the byte order after the handler's check() method 
      to allow different file formats to override the data type more easily.

    * cmd/mrtransform.cpp: new command to re-orient or reslice images (needed
      to apply transforms supplied by FSL's FLIRT command).

27-08-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/format/nifti1.cpp: support for reading/writing NIfTI-1.1 *.nii files

    * Doxyfile: version number upped to 0.2.5

    * lib/mrtrix.h: MRTRIX_MICRO_VERSION upped to 5


=======================================================================
VERSION 0.2.4
=======================================================================

04-08-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * doc/install/unix.html: add documentation on compilation on 64-bit systems
    
28-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/dwi2tensor.cpp: fix option parsing to allow multiple ignoreslices and ignorestudies instances
    
24-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/orientation_plot.cpp: added support for overlay of orientation plot on main window

22-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/mrtrix.h: fix va_list handing in printf()

21-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/data_type.cpp: add definitions for all static const declarations 
      to avoid linking errors.

21-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * sysconf/linux.py: add '-fPIC' flag to compiler command

18-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * build: handle 'command not found' cases and provide a more helpful error message

15-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * improve support for 64 bit systems (thanks to Sebastian Jentschke for helping out):
      - remove use of MR::Offset
      - use gsize for most file operations
      - use gssize where a signed quantity is required

14-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/tractography/track_list_item.h: fixed Track::index() for use on 64 systems.
      now uses gsize rather than guint in pointer arithmetic

11-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/image/format/mri/cpp: fixed TMPFILE_ROOT_LEN - now set to 7

09-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/mrview/sidebar/orientation_plot.cpp: set color using config file

    * Doxyfile: version number upped to 0.2.4

    * lib/mrtrix.h: MRTRIX_MICRO_VERSION upped to 4


=======================================================================
VERSION 0.2.3
=======================================================================

09-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * lib/mrtrix.h: added getline() method to handle Unix/DOS end-of-line

    * cmd/import_tracks.cpp: new command to import tracks stored 
      in ascii text files into MRtrix format for display in MRView

08-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * doc: amend documentation to describe configuration files 

    * src/mrview/sidebar/orientation_plot.cpp: add option to disable tri-linear interpolation

    * src/mrview/sidebar/main.cpp: rename "diffusion profile" to "orientation plot"
      also renamed src/mrview/sidebar/diffusion_profile.* accordingly

    * lib/image/format/analyse.cpp: issue info statement about left-right encoding

    * lib/file/config.h: fixed get_int() & get_float()
      They were previously declared as returning bool

    * lib/file/config.cpp: fixed get_int() & get_float()
      They were previously defined as returning bool

    * cmd/csdeconv.cpp: use NumberOfThreads entry in config file 
      rather than NUMBER_OF_PROCESSORS environment variable

07-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * cmd/disp_profile.cpp: remove use of Math::Matrix::transpose() 
      to flip row vector (transpose expects square matrices)

    * cmd/csdeconv.cpp: fix multithreading
      - map SH_obj before launching threads
      - set/test against boolean "done" for end of data

04-07-2008 J-Donald Tournier <d.tournier@brain.org.au>
    * src/quaternion.h: test for rounding errors in Quaternion::from_matrix().
      In certain cases, a negative number was passed to sqrt()

    * Doxyfile: version number upped to 0.2.3

    * lib/mrtrix.h: MRTRIX_MICRO_VERSION upped to 3