r345: *** empty log message ***
[ctsim.git] / ChangeLog
1 3.0.0alpha3 - Released 1/02/01  * ctsim: Added plotting of histograms           * imagefile.cpp: fixed bug in generation of 16-bit PNG images   * ezplot.cpp: adjusted xtick label displays for better placement
2         3.0alpha2 - Released 1/02/01            * ctsim: All functions of command-line tools are now in graphical ctsim         * ctsim: added generation of filter images      * ctsim: Added 2-image math functions (mul, add, div, sub)      * ctsim: Added export of imagefiles to graphic file formats     * ctsim: Added support for scaling imagefiles in new sizes      * ctsim: Added ability to save standard phantom definitions as  text files suitable for reading.                * ctsim: Add labels for image transformations and display of labels     when performing properties of images.   * processsignal.cpp: Fixed "off by one" bug in  shuffleNaturalToFourierOrder when n is even. Moved functions to fourier.cpp     * imagefile.cpp: Added FFTW library to imagefile processing. Converted  image math functions to complex-valued math.    * phantom.cpp: Added ability to save phantom files as ASCII text.       3.0alpha1 - Released 12/29/00   * Added PlotFile class to system, used by if2 and ctsim for row and column plots and comparison plots   * ctsim: Added image comparison statistics and image subtraction        * ctsim: Added plotting of rows & columns with y-axis scaling   * ctsim: Added row and column plot comparisons between two image        files.  * ctsim: Added "Process" menu to image file display with math   functions. Added 2-dimensional inverse Fourier to math  functions. Added support for complex (real/imaginary) images.   * mathfuncs.cpp: Reworked statistics algorithm to share between imagefile and plotfile classes. * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with        nsamples > 2.  Added generic mage math functions, moved from    if1.cpp and if2.cpp to imagefile.cpp. Added support complex     images. * array2dfile.cpp: Added code to support complex (real/imaginary)       images. * if1: Updated to handle error conditions, such as sqrt of a    negative number. Converted to use new ImageFile math functions.         * if2: Updated to output plot files and use new ImageFile class math functions  * if1: Updated to use new ImageFile class math functions        * ezplot: Reworked to better store colors/linestyles/symbols with       individual curves. Improved display of labels and ticks. Updated        to use POL class member variable. Updated to more C++ conventions.      * pol: converted to C++ class. Extracted HashTable to separate  class.          * sgp: Added linestyle settings 2.5.0 - 12/18/00    First Microsoft Windows GUI version   Modifications for Microsoft Visual C++ compilation.   Improved pjinfo to output binary headers and view data, useful  when manually compiling phantoms that vary during projection    process. Thanks to Ian Kay for idea and code submission.   Improved sorting to find median in ImageFile::statistics   Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay)    Changed reconstruction dialog to fix onto smaller screens   Fixed display of plotting in Projection views   Improved animation displays for Projections and Reconstructions   Changed code to explicitly use std:: namespace rather than   "namespace using std" statements   Fixed reconstruction scaling bug introduced in 2.0.6   Renamed if2img to ifexport, if-1 to if1, if-2 to if2          2.0.6 - 12/03/00   Fixed minor compilation problem with procsignal.h   Updated README file   Fixed bug when simulating projections and Trace == CONSOLE   Fixed scaling bug when performing redundant rotations around object   2.0.5 - 12/01/00   Improved compilation on RedHat 7   Changed some of ANSI C header files to C++ header files   Removed README.RedHat7  2.0.4 - 11/25/00   Added documentation for --geometry setting   Added README.RedHat7 document    2.0.3 - 11/20/00   Fixed bug in generation of binary PGM files   Fixed MPI compilation bug in phm2pj.cpp   Inverted y-axis output for pj2if (bug alert from Ian Kay)   2.0.2 - 11/8/00   Additions to man pages (Ian Kay)   Fix problem with reading of ASCII phantom files (Ian Kay)2.0.1 - 10/1/00   Fixed syntax error in fftw configuration   Slight modifications to support gcc v2.9.6   2.0.0 - 9/7/00   Version 2.0.0 released!   ctsim: Added Window menu to Main frame   ctsim: Disabled not support reconstruction method   Fixed obscure bug in sys_error   Fixed compilation in mingw environment not present   Fixed compilation in non-graphical environments           2.0.0-b12 - 9/4/00   ctsim: Added animation of reconstruction   ctsim: Added saving of dialog parameters for Projection & Reconstruction   ctsim: Added progress dialog for rasterization of phantom   ctsim: used setpriority to set lower priority   ctsim: fixed pReconstruct not being deleted causing scaling problem   ctsim: fixed projection animation dialog buttons2.0.0-b11 - 9/1/00   ctsim: Added projection graph to animation of projection collection      ctsim: Added single stepping to projection collection animation   ctsim: improved File/Properties display for projection files   ctsim: Added progress dialog for reconstructions   ctsim: Added file labels for projection and reconstruction images   ctsim: Made File/Properties bring up modal dialogs   Added reconstruction for Equilinear and Equiangular geometries   Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas   Separated reconstruction into Reconstructor class   Fixed center of detector adjustment for even number of detectors   Added --enable-static to generate statically linked programs     2.0.0-b10 - 8/25/00   ctsim: Added animation of projection collection processs   ctsim: Added Auto Scaling for image windows   ctsim: Change menus from "windowing" to "display scaling"   Added FieldOfView and FocalLength ratio parameters to projection collection   Added FocalLength & FieldOfView fields to projection data files   Added Projection collection for Equilinear and Equiangular geometries   Changed name of Rowland Phantom to correct name of Shepp-Logan   Fixed bug in backprojection selection       2.0.0-b9 - 8/22/00   Added RCS Id strings to executable files   Added RPM Spec file for RPM package creation   Added loading of ASCII phanthom definitions from files   Fixed compilation for non-SGP architectures    Decomposed SignalFilter class into ProcessSignal and SignalFilter classes   Added Filter-Generation option to reconstruction to allow direct or  inverse_fourier construction of filters   Added median to statistics and to auto-windowing      2.0.0-b8 - 8/1/00   Added line color support to SGP   Fixed lineAbs bug 2.0.0-b7 - 7/25/00   Finished support for dmallocxx library   Fixed bug in SignalFilter::convertFilterMethodNameToID()   Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to  G2 windows and well as WXWindows.   ctsim program: "Create Phantom" now shows phantom object   Fixed row-plot bug in if-2   Reworked EZPlot's multiple plot operation   2.0.0-b6 - 7/22/00   ctsim program: improved initial size and scroll area for image     and projection files   ctsim program: added rasterization parameters, projections parameters,   and reconstruction parameters dialogs   Moved char[] static definition from header files to c++ files   Completely reorganized option processing in classes to improve  expandability and to assist ctsim graphical user interface.     2.0.0-b5 - 7/17/00   ctsim program: Added dialog to set minimum/maximum display levels    Started ctsim.tex document file       2.0.0-b4 - 7/13/00   Fixed compiler warnings at -Wall level   Began work on CTSim program to be graphical front-end of all functions   Moved current src/*.cpp to tools/*.cpp   Made CTSim graphical front-end's home to be src/        2.0.0-b3 - 7/10/00   Added highly optimized backprojection method idiff3   Moved comparative stats to if-2 program from ifinfo   Fixed image display in if2img using G2 library   Added column-plot and row-plot options to if-2   Added autoselection of analytic/calculated spatial responses to SignalFilter   Added frequency-based preinterpolation to SignalFilter and idiff3     backprojection method. Currently, this technique is still under development and debugging   Moved graphic file writing to ImageFile class from if2img program2.0.0-b2 - 7/07/00     Cleaned up SignalFilter class   Added zeropad option to pjrec   Added zeropad options to html and cgi files   Added fourier_table and rfttw filter methods   Added FFTW routines to use real/half-complex transformations   2.0.0-b1 - 7/05/00   Updated trace level processing   Added trace level to SignalFilter   Fixed magnitude vs. real output bug in FFT/Fourier filter     1.9.9 - 7/04/00   Fixed const issue with ImageFileArray   Fixed Array2dFile::labelsCopy()   Added copy constructor and assignment for Array2dFileLabel class   Added Timer to if-2.cpp and ifinfo.cpp   Added beginning of frequency-based (DFT & FFT) filter to SignalFilter   Added option processing for filter-method for pjrec to choose   between convolution, dft, & fft filtering   Fixed format string for EZPlot so axis labels now print   Added support for FFTW library    1.9.8 - 6/27/2000   Rewrote Array2dFile class to be non-templated   Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.   Rewrote Array2dFileLabel class to make members private, added access routines   Removed timedate.cpp in favor of standard C library time/date functions   Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim   Added signature tag and creation date/time to projection files        1.9.7 - 6/25/2000   Standardized string option processing by classes. All classes use character strings to select options rather than numeric constants. Added fail() and failMessage() methods to verify that objects are created correctly by character strings.   Hid C++ assignment and copy constructors in classes that should not have assignment/copy   Rewrote ImageFile class   Started support for dmallocxx library, not finished   Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)   Updated ifinfo to show comparative statistics   Added printLabels() to Array2dFile class   Added printStatistics() to ImageFile class    1.9.6 - 6/22/2000   Moved conversion filter name/id to Filter class   Moved conversion backprojection name/id to Backproj class   Added MPI broadcasting of strings     1.9.5 - 6/21/2000   Merged proj_reconstr into class Projections   Used auto_ptr in Projections::reconstruct to make sure destructor is always called   Code cleanup in projections.cpp   Moved conversion of phantom names/id to Phantom class          1.9.4 - 6/20/2000   Converted projection files to C++ library with frnetorderstream   Converted image files to C++ library with frnetorderstream   Converted filter and convolution to object-oriented code   Changed default image file to float from double -- Changable in imagefile.h   Optimized image file writing on little-endian architectures   Updated README and INSTALL    1.9.3 - 6/19/2000   Reorganized source files   MPI bug fixed to phm2pj.cpp      1.9.2 - 6/18/2000   Reorganized include files   Fixed const pointers in strfuncs        1.9.1 - 6/16/2000   Renamed directories, moved source files, combined source files   to change from 6 libraries to 3 libraries (libctsim, libctsupport,   and libctgraphics)    1.9.0 - 6/15/2000   Skip versions to make version 2.0 the first fully C++ version   Renamed Raysums to Projections throughout files   Renamed Detector to Scanner   Converted Scanner and Projecions to full object-oriented    0.6.1 - 6/12/2000   Converted Phantom and PhantomElements to Object-Oriented   Converted Detector to Object-Oriented    0.6.0-b3 - 6/10/2000   Improved Integer backprojection method   Fixed nearest neighbor to be truly nearest neighbor     Made linear interpolation more integer arithmetic -> speed improvement   Finished converting all C files to C++   Converted all use of malloc/free to C++ new/delete   Began object-oriented conversion of Phantom and Projection structures    0.6.0-b2 - 6/8/2000   Converted MPI data structures to C++ object   Made ImageFile directly inherit from Array2dFile    0.6.0-b1 - 6/6/2000   First C++ conversions   Portable IF (image file) format implemented with objects (SDF removed)    - Now all data files are cross-platform compatible   Converted from MPI to MPI++   Converted backprojection to object-oriented   Removed MTX from libkmath as no longer need -- replaced with C++ matrices                      0.5.4 - 6/4/2000   Simpilifed endian handling   0.5.4-b3 - 6/1/2000   Added support for 64-bit (IA64) CPU   Removed broken B-spline interpolation   Added support for cygwin platform under Windows 2000   Added support for 16-bit PNG graphics        0.5.4-b2 - 5/16/2000   Added compile-time configuration of endian order0.5.4-b1 - 5/14/2000   Modified the raysum file format to be platform independent        0.5.3 - 5/11/2000   Added Microsoft VC compatibility   Cleaned up compilation warnings in libgraph      0.5.2-b5 - 5/7/2000   Continued conversion to ANSI C       Removed old CRT routines     0.5.2-b4 - 5/4/2000   Renamed pictures to phantoms, objects to phantom elements   Continued code cleanup        0.5.2-b3 - 4/30/200    More code cleanup with reorganizing libraries    Added --log and --exp to sdf-1    Allowed negative numbers for window levels in CGI interface0.5.2-b2 - 4/30/200    Continued code cleanup      0.5.2-b1 - 4/29/2000    Fixed a few MPI bugs    Better documented, coded raysum in-memory on on-disk options    0.5.1 - 4/28/2000    Cleaned out library that wasn't being used by CTSim             Modified ctsim.cgi to read in configuration file ctsim.conf0.5.0 - 4/27/2000     First open source distribution for GNU/Linux      6/1999   Converted to GNU/Linux  added MPI support via LAM library      1983-84   Developed under MS-DOS and IBM EGA graphics