Summary of changes in PARAPET release 0.92 (dated 12/01/2001)

Summary for endusers (also to be read by developers)

in/output of any program is NOT affected, except the ECAT* utilities. If you don't use ECAT data, and you are only an enduser, there is no reason to upgrade (if you installed the patches to 0.91).

You do NOT have to change the recon_test_pack.

Changes to files that affect the user

utilities/convecat6_if

utilities/ifheaders_for_ecat7

utilities/manip_image.cxx

Summary for developers

Details

Changed files

(changed files are all in buildblock/, recon_buildblock/, display/, utilities/, include/ or include/recon_buildblock/)
buildblock/Scanner.cxx:
- BUG corrected: ordered parameters correctly for Advance

include/SegmentBySinogram.inl:
- corrected BUG in get_max_tangential_pos_num()

buildblock/SegmentBySinogram.cxx:
- corrected BUG in grow()
- enabled growing of axial_pos_num as well

buildblock/SegmentByView.cxx:
- enabled growing of axial_pos_num as well

buildblock/Viewgram.cxx
- enabled growing of axial_pos_num as well

include/RelatedViewgrams.*, buildblock/RelatedViewgrams.cxx:
- added operator*=(float) and /=, +=, -=
- added grow()
- added find_min(), find_max(), fill()
- removed #if 0 #endif stuff

include/Bin.*
- added operator==

include/ProjDataInfo*, buildblock/ProjDataInfo*.cxx:
- in get_tantheta() et al, replaced 4 args segment_num,view_num,ax_pos_num,
tang_pos_num with single argument of type const Bin&
- new functions ProjDataInfo::get_sampling_in_s(Bin&),
get_sampling_in_t(Bin&).
- new functions set_max_axial_pos_num() and set_min_axial_pos_num()
- more documentation
- moved some stuff from ProjDataInfo.inl to .cxx
- moved get_tantheta from ProjDataInfoCylindricalArcCorr to
ProjDataInfoCylindrical, and corrected BUG (was only ok
for non-spanned data)
- moved ProjDataInfoCylindrical constructors to new file
ProjDataInfoCylindrical.cxx


include/DataSymmetriesForViewSegmentNumbers.*
- removed proj_data_info arg from constructor, and the private member
- removed SymmetryOperation stuff
- BUG corrected in default implementation for
DataSymmetriesForViewSegmentNumbers::find_basic_view_segment_numbers

include/display.h, display/display_array.cxx:
- added display(RelatedViewgrams...);

include/stream.h:
- BUG correction: handle case of 0 length appropriately now

buildblock/VoxelsOnCartesianGrid.cxx:
- use new conventions for get_s()

buildblock/Makefile:
- removed   DataSymmetriesForViewSegmentNumbers_PET_CartesianGrid.cxx
- added   ProjDataInfoCylindrical.cxx


include/DiscretisedDensity.h, buildblock/DiscretisedDensity.cxx:
- changed the return type of DiscretisedDensity::read_from_file from a
shared_ptr to an ordinary pointer.
The reason for this change is that you cannot get rid of the shared_ptr
otherwise (without the data actually being deleted). Ideally, it should
return an auto_ptr though.

include/recon_buildblock/BackProjectorByBinUsingInterpolation.h and
recon_buildblock/BackProjectorByBinUsingInterpolation.cxx:
- use less include files in .h (decreases dependency)
- moved implementation of JacobianForIntBP constructor to .cxx
- changed type of symmetries_ptr private member

include/recon_buildblock/ForwardProjectorByBinUsingRayTracing.h and
recon_buildblock/ForwardProjectorByBinUsingRayTracing.cxx
- use less include files in .h (decreases dependency)
- changed type of symmetries_ptr private member

include/recon_buildblock/SymmetryOperation.h
- moved from buildblock
- added ProjMatrixElemsForOneBin stuff
- more doc

include/recon_buildblock/SymmetryOperations_PET_CartesianGrid.h, .inl
- moved from buildblock
- added ProjMatrixElemsForOneBin stuff
- more doc

recon_buildblock/Makefile:
added
DataSymmetriesForBins.cxx \
DataSymmetriesForBins_PET_CartesianGrid.cxx \
SymmetryOperation.cxx \
SymmetryOperations_PET_CartesianGrid.cxx \
ProjMatrixElemsForOneBin.cxx \
ProjMatrixByBin.cxx \
ProjMatrixByBinUsingRayTracing.cxx \
ForwardProjectorByBinUsingProjMatrixByBin.cxx \
BackProjectorByBinUsingProjMatrixByBin.cxx \
RayTraceVoxelsOnCartesianGrid.cxx


test/test_proj_data_info.cxx:
- used new convention for ProjDataInfo::get_s() et al

utilities/manip_image.cxx:
- added option for maximum on colour scale for display()

utilities/extract_segments.cxx:
- adjusted comments and include files

utilities/convecat6_if.cxx:
- added support for attenuation files

utilities/cti_utils.cxx:
- added support for attenuation files
- added support for data types different from 16 bit ints.
- added a bit more diagonistics for file IO errors

include/CTI/cti_utils.h:
- added cti_read_attn_subheader, get_attnheaders
- changed behaviour of get_scandata to allow different data types
- added file_data_to_host()

utilities/Tomo_cti.cxx:
- corrected 'fall through' bug in a switch statement
(find_scanner_from_mainheader)
- corrected BUG in allocation for cti data
- in ECAT6_to_VoxelsOnCartesianGrid( use cti_lookup to avoid mainheader.dmp)
- added support for attenuation files
- added support for data types different from 16 bit ints.

include/Tomo_cti.h:
- removed read_sinogram   (made static in .cxx file)

utilities/ifheaders_for_ecat7.cxx:
- corrected BUG by swapping segment order
- added support for attenuation sinograms
- check all 'matrices' in file instead of stopping at the first
missing 'matrix' (useful if you have only frame 13 in the file).
- changed output filenames to include the original extension to prevent
conflicts with .S and .A files.
e.g. "ifheaders_for_ecat7 bla.S" will result in files bla_S_f1g1b0d0.hs
etc.

moved files

moved include/SymmetryOperation* to include/recon_buildblock
moved buildblock/SymmetryOperation* to recon_buildblock
removed DataSymmetriesForViewSegmentNumbers_PET_CartesianGrid.* (made obsolete by recon_buildblock/DataSymmetriesForBins_PET_CartesianGrid.h)

new files

include/recon_buildblock/

DataSymmetriesForBins.h, .inl
DataSymmetriesForBins_PET_CartesianGrid.h, .inl
BackProjectorByBinUsingProjMatrixByBin.h
ForwardProjectorByBinUsingProjMatrixByBin.h
ProjMatrixByBin.h, .inl
ProjMatrixByBinUsingRayTracing.h
ProjMatrixElemsForOneBin..h, .inl
ProjMatrixElemsForOneBinValue.h, .inl
RayTraceVoxelsOnCartesianGrid.h
RelatedBins.h,.inl

buildblock

buildblock/ProjDataInfoCylindrical.cxx

recon_buildblock/

DataSymmetriesForBins.cxx
DataSymmetriesForBins_PET_CartesianGrid.cxx
BackProjectorByBinUsingProjMatrixByBin.cxx
ForwardProjectorByBinUsingProjMatrixByBin.cxx
ProjMatrixByBin.cxx
ProjMatrixByBinUsingRayTracing.cxx
ProjMatrixElemsForOneBin.cxx
RayTraceVoxelsOnCartesianGrid.cxx
SymmetryOperation.cxx
SymmetryOperations_PET_CartesianGrid.cxx
Last modified: Fri Jan 12 12:10:02 GMT 2001