r10736: Automated commit for Debian build of ctsim upstream-version-4.4.1
[ctsim.git] / ChangeLog
1 Aug 22, 2005  Version 4.4.1
2         * work-around for compilation problems on Fedora 4 and wxWin 2.4.2
3         
4 Aug 22, 2005  Version 4.4.0
5         * Changes in configure.ac for X.org compatibility with Debian Etch
6         and FC4. May not be backward compatibility with XFree86.
7         
8 Aug 10, 2004  Version 4.3.2, Version 4.3.3
9         * Minor changes in man pages to fix groff warnings
10
11 Nov 1, 2003  Version 4.3.1
12         * Add support for SuSE AMD64
13
14 Oct 5, 2003  Version 4.3.0
15         * Ported to incompatible FFTW3 library. CTSim will no longer compile or run with FFTW2. 
16         * Save FFTW3 in $HOME/.fftw3-wisdom on platforms where getenv function is available
17         
18 Oct 3, 2003  Version 4.2.7
19         * Add support for building on RedHat AMD64 
20
21 Sep 30, 2003  Version 4.2.7
22         * Fix minor issue with floating point difference backprojection, add
23         optimization
24         
25         * Fix building with newest versions of automake 1.7
26
27         * Add support for 8-byte longs [for example, Athlon64] in
28         integer difference backprojection allowing for 64-bit integer
29         math.
30
31 Mar 22, 2003  Version 4.2.3
32
33         * Added Fourier reconstruction method
34
35         * Support gcc 3.2, wxWindows 2.4, and MacOS X
36
37         * Fix polar interpolation
38         
39 Jun 26, 2002  Version 3.5.6
40
41         * Fix minor color PNG image importing bug
42         
43         * Bug fix for building on Debian alpha platform
44
45         * Fix g++ compilation warnings
46         
47 Jun 13, 2002  Version 3.5.5
48         
49         * Fix printing of version number
50         
51         * Minor bug fixes
52
53         * Updated Win32 compatibility
54         
55 Jun 8, 2002  Version 3.5.4
56
57         * Print version number in log window with About command
58         
59         * Fix problem with captions not showing on some windows. Reworked
60         creation of new windows.
61         
62         * Disabled status bar on 3d views
63         
64         * Fix bug in configure.ac that prevented using compiler
65         optimizations.
66
67         * Updated About splash screen
68         
69 May 29, 2002  Version 3.5.3
70         * Added support for g++ 3.04 compiler
71         
72 May 8, 2002  Version 3.5.2
73         * configure: improved CTN (DICOM) installation search
74         * src/ctsim.cpp: Fixed initial image size with import command
75
76 May 5, 2002  Version 3.5.1
77
78         New Features:
79
80         * ctsim: Added tips to be displayed at startup and via the help menu.
81         * ctsim: Added center-detector concept. Allow for detector array
82         to be any arbitrary distance from center of scanner. As a result,
83         projection files are not incompatible with previous version of
84         CTSim.
85         * ctsim: Added threaded tasks and background manager for 
86         background processing as well as taking advantage of multiple-CPU's 
87         on SMP systems.  (Microsoft Windows only)
88         * ctsim: Added plot t-theta sampling to projection file menu.
89         * ctsim: Added Reconstruction with Rebinning for faster
90         divergent beam reconstructions.
91         * ctsim: Added import and export of DICOM image files.
92         * ctsim: Added PPM, PGM, and PNG file import to imagefile.
93         * ctsim: Added FFT/IFFT of columns of image files.
94         * ctsim: Added clipboard cut/copy/paste for image files.
95         * ctsim: Added region of interest to reconstructions.
96         * ctsim: Added Convert Rectangular Image to Projection files
97         * ctsim: Added "Verbose Logging", "Startup Tips", and
98         "Background processes" options  to Preferences dialog.
99         * ctsim: Added plotting of projection file histograms.
100         * plotfile: Added scattergram plot functions
101         * ctsim: Added accelerator key for File-Properties
102         * ctsim: Improved wireframe 3-d display to remove hidden
103         surfaces.
104         * backprojectors.cpp: Added setting of axis extent and increment
105         to reconstructions.
106         * projections.cpp: Can read and reconstruct SIEMENS AR.STAR DICOM
107         projection data files.
108         
109         Bug Fixes:
110
111         * views.cpp: reduced calls to progress bar update, significant speedup
112         * views.cpp,ctsim.cpp: Fixed bug with window frames sometimes
113         not being displayed on Unix platforms.
114         * views.cpp: Added out-of-memory checks to display for huge
115         image and projection files.
116         * filter.cpp: Fixed Hanning parameter to be 0.5 rather than 0.54
117         * imagefile.cpp: Fixed scaling factor in fftRows
118         * imagefile.cpp: Fixed bug when performing magnitude() on real-valued
119         image.
120         * sgp.cpp: Fixed bug in drawCircle.
121         * distribution: fixed problem with documentation files not
122         being included with the distribution (Reported by Ian Kay).
123         * sgp.cpp/ezplot.cpp: Improved plotting with markers.
124         * fixed ctsimtext shell when giving no parameters to function-name
125         * phm2if, phm2pj: Updated help messages for renamed phantoms
126         
127 3.0.3 - Released 2/20/01
128
129         * ctsim: Fixed core dump on Linux with OpenGL
130
131         * ctsim: Fixed context-sensitive help on Linux
132
133         * ctsim: Fixed About box on Linux
134         
135 3.0.2 - Released 2/20/01
136
137         * scanner.cpp: Fixed bug when number of detectors was even.
138
139         * ctsim: Improved error handling when trying to convert
140         divergent projections into polar form.
141         
142 3.0.1 - Released 2/19/01
143
144         * ctsim: Fixed dialog box for reconstruction so that
145         rotation angle setting will stay fixed in-between use
146         of the dialog box.
147
148         * syserror: Fixed display bug for trace messages
149
150         * ctsim: MSVC optimization bug work-around, compiler 
151         options changed.
152         
153 3.0.0 - Released 2/19/01
154
155         * ctsim: Massive update/fix to online help and print manual.
156
157         * ctsim: Added context-sensitive help to dialog boxes
158         
159         * ctsim: Reformated all dialog boxes, much nicer now.
160         
161         * ctsim: Improved accelerator key handling
162         
163         * global: Added Hanning filter.
164
165         * global: Improved default parameters to that all defaults give
166         sensible output.
167         
168 3.0.0beta1 - Released 2/11/01
169
170         * ctsim: Added most-recently-used files to File menu with
171         registry storage between executions.
172
173         * ctsim: Hides arcane features unless enabled by Preferences dialog
174         
175         * ctsim: Added MDI interface for Windows version and made it default for Windows.
176
177         * ctsim: Added 3-D wireframe view of images (uses OpenGL)
178         
179         * ctsim: Added graphical About box
180
181         * ctsim: Escape key now removes cursor lines from image file view
182
183         * ctsim: Added Revert to ImageFile menu
184         
185         * ctsim: Added accelerator (hotkeys) to frames
186
187         * ctsim: Online help added!
188
189         * backprojector: Added cubic interpolation
190         
191         * ctsim: Added icons to Frames on X-Window and MS Windows versions
192
193         * ctsim: Fixed tick-label placement for plots on projection and
194         reconstruction dialogs.
195
196         * timer.h: Add use of _ftime when compiling on MSVC
197
198         * global: Projection files are not compatible with previous version
199         due to new scanner definitions.
200         
201         * global: deleted concept of field-of-view and added
202           view ratio and scan ratio concepts.
203         
204         * ctsim: Fixed crash on shutdown bug
205
206         * pjinfo: Fixed bug when doing --dump and not specifing --endview
207
208         * phm2pj: Fixed MPI bug with broadcasting of variables
209         
210         * ctsimtext-lam: Changes for first version to compile under lam
211
212         
213 3.0.0alpha5 - Released 1/12/00
214
215         * ctsim: Added EZPlotDialog, used by debugging plots in
216         procsignal.cpp
217         
218         * ctsimtext: Fixed bugs for MSVC and with empty input lines. Fixed 
219         bug in parsing command-line parameters.
220
221         * views.cpp: Fixed bug in copying of labels from images to
222         plotfiles
223         
224         * syserror.cpp: fixed reporting for fatal errors
225
226         * projections.cpp: fixed MSVC failure with std:: namespace
227
228         * procsignal.cpp: fixed bug in equiangular reconstructions
229         for frequency/inverse-fourier filtering
230         
231 3.0.0alpha4 - Released 1/09/01
232
233         * ctsim: Added reset to full-intensity scale menu item
234
235         * ctsim: Add conversion of projections to polar plot [Thanks to
236         Ian Kay for reference and math hints in polar bilinear scaling]
237
238         * ctsim: improve bilinear scaling of image size [Thanks to Ian Kay
239         for math tips]
240
241         * ctsim: imagefile labels are now copied to plotfiles
242
243         * ctsim: Added more analyze menuitems
244         
245         * ctsimtext: First version. All command-line tools are now accessed
246         through this master shell. Has both command-line and interactive
247         interface
248         
249         * ctsim: Fixed initialization of min/max bug for PlotFiles
250
251         * ezplot: Cleaned up y-tick label placement
252
253         * sgp: Added better support for projection/reconstruction animation
254         
255 3.0.0alpha3 - Released 1/02/01
256
257         * ctsim: Added plotting of histograms
258         
259         * imagefile.cpp: fixed bug in generation of 16-bit PNG images
260
261         * ezplot.cpp: adjusted xtick label displays for better placement
262         
263 3.0alpha2 - Released 1/02/01
264         
265         * ctsim: All functions of command-line tools are now in graphical ctsim
266         
267         * ctsim: added generation of filter images
268
269         * ctsim: Added 2-image math functions (mul, add, div, sub)
270
271         * ctsim: Added export of imagefiles to graphic file formats
272
273         * ctsim: Added support for scaling imagefiles in new sizes
274
275         * ctsim: Added ability to save standard phantom definitions as
276         text files suitable for reading.
277         
278         * ctsim: Add labels for image transformations and display of labels
279         when performing properties of images.
280
281         * processsignal.cpp: Fixed "off by one" bug in
282         shuffleNaturalToFourierOrder when n is even. Moved functions to
283         fourier.cpp
284
285         * imagefile.cpp: Added FFTW library to imagefile processing. Converted
286         image math functions to complex-valued math.
287
288         * phantom.cpp: Added ability to save phantom files as ASCII text.
289         
290 3.0alpha1 - Released 12/29/00
291
292         * Added PlotFile class to system, used by if2 and ctsim for row
293         and column plots and comparison plots
294
295         * ctsim: Added image comparison statistics and image subtraction
296
297         * ctsim: Added plotting of rows & columns with y-axis scaling 
298
299         * ctsim: Added row and column plot comparisons between two image
300         files.
301
302         * ctsim: Added "Process" menu to image file display with math
303         functions. Added 2-dimensional inverse Fourier to math
304         functions. Added support for complex (real/imaginary) images.
305
306         * mathfuncs.cpp: Reworked statistics algorithm to share between
307         imagefile and plotfile classes.
308
309         * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
310         nsamples > 2.  Added generic mage math functions, moved from
311         if1.cpp and if2.cpp to imagefile.cpp. Added support complex
312         images.
313
314         * array2dfile.cpp: Added code to support complex (real/imaginary)
315         images.
316
317         * if1: Updated to handle error conditions, such as sqrt of a
318         negative number. Converted to use new ImageFile math functions.
319         
320         * if2: Updated to output plot files and use new ImageFile class
321         math functions
322
323         * if1: Updated to use new ImageFile class math functions
324
325         * ezplot: Reworked to better store colors/linestyles/symbols with
326         individual curves. Improved display of labels and ticks. Updated
327         to use POL class member variable. Updated to more C++ conventions.
328
329         * pol: converted to C++ class. Extracted HashTable to separate
330         class.
331         
332         * sgp: Added linestyle settings
333         
334 2.5.0 - 12/18/00 
335    First Microsoft Windows GUI version
336    Modifications for Microsoft Visual C++ compilation.
337    Improved pjinfo to output binary headers and view data, useful
338         when manually compiling phantoms that vary during projection
339         process. Thanks to Ian Kay for idea and code submission.
340    Improved sorting to find median in ImageFile::statistics
341    Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay) 
342    Changed reconstruction dialog to fix onto smaller screens
343    Fixed display of plotting in Projection views
344    Improved animation displays for Projections and Reconstructions
345    Changed code to explicitly use std:: namespace rather than 
346         "namespace using std" statements
347    Fixed reconstruction scaling bug introduced in 2.0.6
348    Renamed if2img to ifexport, if-1 to if1, if-2 to if2
349         
350 2.0.6 - 12/03/00
351    Fixed minor compilation problem with procsignal.h
352    Updated README file
353    Fixed bug when simulating projections and Trace == CONSOLE
354    Fixed scaling bug when performing redundant rotations around object
355         
356 2.0.5 - 12/01/00
357    Improved compilation on RedHat 7
358    Changed some of ANSI C header files to C++ header files
359    Removed README.RedHat7
360         
361 2.0.4 - 11/25/00
362    Added documentation for --geometry setting
363    Added README.RedHat7 document
364          
365 2.0.3 - 11/20/00
366    Fixed bug in generation of binary PGM files
367    Fixed MPI compilation bug in phm2pj.cpp
368    Inverted y-axis output for pj2if (bug alert from Ian Kay)
369         
370 2.0.2 - 11/8/00
371    Additions to man pages (Ian Kay)
372    Fix problem with reading of ASCII phantom files (Ian Kay)
373
374 2.0.1 - 10/1/00
375    Fixed syntax error in fftw configuration
376    Slight modifications to support gcc v2.9.6
377         
378 2.0.0 - 9/7/00
379    Version 2.0.0 released!
380    ctsim: Added Window menu to Main frame
381    ctsim: Disabled not support reconstruction method
382    Fixed obscure bug in sys_error
383    Fixed compilation in mingw environment not present
384    Fixed compilation in non-graphical environments      
385         
386 2.0.0-b12 - 9/4/00
387    ctsim: Added animation of reconstruction
388    ctsim: Added saving of dialog parameters for Projection & Reconstruction
389    ctsim: Added progress dialog for rasterization of phantom
390    ctsim: used setpriority to set lower priority
391    ctsim: fixed pReconstruct not being deleted causing scaling problem
392    ctsim: fixed projection animation dialog buttons
393
394 2.0.0-b11 - 9/1/00
395    ctsim: Added projection graph to animation of projection collection  
396    ctsim: Added single stepping to projection collection animation
397    ctsim: improved File/Properties display for projection files
398    ctsim: Added progress dialog for reconstructions
399    ctsim: Added file labels for projection and reconstruction images
400    ctsim: Made File/Properties bring up modal dialogs
401    Added reconstruction for Equilinear and Equiangular geometries
402    Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
403    Separated reconstruction into Reconstructor class
404    Fixed center of detector adjustment for even number of detectors
405    Added --enable-static to generate statically linked programs
406         
407 2.0.0-b10 - 8/25/00
408    ctsim: Added animation of projection collection processs
409    ctsim: Added Auto Scaling for image windows
410    ctsim: Change menus from "windowing" to "display scaling"
411    Added FieldOfView and FocalLength ratio parameters to projection collection
412    Added FocalLength & FieldOfView fields to projection data files
413    Added Projection collection for Equilinear and Equiangular geometries
414    Changed name of Rowland Phantom to correct name of Shepp-Logan
415    Fixed bug in backprojection selection
416         
417 2.0.0-b9 - 8/22/00
418    Added RCS Id strings to executable files
419    Added RPM Spec file for RPM package creation
420    Added loading of ASCII phanthom definitions from files
421    Fixed compilation for non-SGP architectures 
422    Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
423    Added Filter-Generation option to reconstruction to allow direct or 
424         inverse_fourier construction of filters
425    Added median to statistics and to auto-windowing
426         
427 2.0.0-b8 - 8/1/00
428    Added line color support to SGP
429    Fixed lineAbs bug
430         
431 2.0.0-b7 - 7/25/00
432    Finished support for dmallocxx library
433    Fixed bug in SignalFilter::convertFilterMethodNameToID()
434    Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to 
435         G2 windows and well as WXWindows.
436    ctsim program: "Create Phantom" now shows phantom object
437    Fixed row-plot bug in if-2
438    Reworked EZPlot's multiple plot operation
439         
440 2.0.0-b6 - 7/22/00
441    ctsim program: improved initial size and scroll area for image 
442         and projection files
443    ctsim program: added rasterization parameters, projections parameters,
444         and reconstruction parameters dialogs
445    Moved char[] static definition from header files to c++ files
446    Completely reorganized option processing in classes to improve
447         expandability and to assist ctsim graphical user interface.
448         
449 2.0.0-b5 - 7/17/00
450    ctsim program: Added dialog to set minimum/maximum display levels 
451    Started ctsim.tex document file
452         
453 2.0.0-b4 - 7/13/00
454    Fixed compiler warnings at -Wall level
455    Began work on CTSim program to be graphical front-end of all functions
456    Moved current src/*.cpp to tools/*.cpp
457    Made CTSim graphical front-end's home to be src/
458         
459 2.0.0-b3 - 7/10/00
460    Added highly optimized backprojection method idiff3
461    Moved comparative stats to if-2 program from ifinfo
462    Fixed image display in if2img using G2 library
463    Added column-plot and row-plot options to if-2
464    Added autoselection of analytic/calculated spatial responses to SignalFilter
465    Added frequency-based preinterpolation to SignalFilter and idiff3
466         backprojection method. Currently, this technique is still under
467         development and debugging
468    Moved graphic file writing to ImageFile class from if2img program
469
470 2.0.0-b2 - 7/07/00  
471    Cleaned up SignalFilter class
472    Added zeropad option to pjrec
473    Added zeropad options to html and cgi files
474    Added fourier_table and rfttw filter methods
475    Added FFTW routines to use real/half-complex transformations
476         
477 2.0.0-b1 - 7/05/00
478    Updated trace level processing
479    Added trace level to SignalFilter
480    Fixed magnitude vs. real output bug in FFT/Fourier filter
481         
482 1.9.9 - 7/04/00
483    Fixed const issue with ImageFileArray
484    Fixed Array2dFile::labelsCopy()
485    Added copy constructor and assignment for Array2dFileLabel class
486    Added Timer to if-2.cpp and ifinfo.cpp
487    Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
488    Added option processing for filter-method for pjrec to choose
489         between convolution, dft, & fft filtering
490    Fixed format string for EZPlot so axis labels now print
491    Added support for FFTW library
492         
493 1.9.8 - 6/27/2000
494    Rewrote Array2dFile class to be non-templated
495    Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
496    Rewrote Array2dFileLabel class to make members private, added access routines
497    Removed timedate.cpp in favor of standard C library time/date functions
498    Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
499    Added signature tag and creation date/time to projection files
500         
501 1.9.7 - 6/25/2000
502    Standardized string option processing by classes. All classes use character strings
503         to select options rather than numeric constants. Added fail() and failMessage()
504         methods to verify that objects are created correctly by character strings.
505    Hid C++ assignment and copy constructors in classes that should not have assignment/copy
506    Rewrote ImageFile class
507    Started support for dmallocxx library, not finished
508    Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
509    Updated ifinfo to show comparative statistics
510    Added printLabels() to Array2dFile class
511    Added printStatistics() to ImageFile class
512         
513 1.9.6 - 6/22/2000
514    Moved conversion filter name/id to Filter class
515    Moved conversion backprojection name/id to Backproj class
516    Added MPI broadcasting of strings
517         
518 1.9.5 - 6/21/2000
519    Merged proj_reconstr into class Projections
520    Used auto_ptr in Projections::reconstruct to make sure destructor is always called
521    Code cleanup in projections.cpp
522    Moved conversion of phantom names/id to Phantom class
523         
524 1.9.4 - 6/20/2000
525    Converted projection files to C++ library with frnetorderstream
526    Converted image files to C++ library with frnetorderstream
527    Converted filter and convolution to object-oriented code
528    Changed default image file to float from double -- Changable in imagefile.h
529    Optimized image file writing on little-endian architectures
530    Updated README and INSTALL
531         
532 1.9.3 - 6/19/2000
533    Reorganized source files
534    MPI bug fixed to phm2pj.cpp
535         
536 1.9.2 - 6/18/2000
537    Reorganized include files
538    Fixed const pointers in strfuncs
539         
540 1.9.1 - 6/16/2000
541    Renamed directories, moved source files, combined source files
542    to change from 6 libraries to 3 libraries (libctsim, libctsupport,
543    and libctgraphics)
544         
545 1.9.0 - 6/15/2000
546    Skip versions to make version 2.0 the first fully C++ version
547    Renamed Raysums to Projections throughout files
548    Renamed Detector to Scanner
549    Converted Scanner and Projecions to full object-oriented
550         
551 0.6.1 - 6/12/2000
552    Converted Phantom and PhantomElements to Object-Oriented
553    Converted Detector to Object-Oriented
554         
555 0.6.0-b3 - 6/10/2000
556    Improved Integer backprojection method
557         Fixed nearest neighbor to be truly nearest neighbor
558         Made linear interpolation more integer arithmetic -> speed improvement
559    Finished converting all C files to C++
560    Converted all use of malloc/free to C++ new/delete
561    Began object-oriented conversion of Phantom and Projection structures
562         
563 0.6.0-b2 - 6/8/2000
564    Converted MPI data structures to C++ object
565    Made ImageFile directly inherit from Array2dFile
566         
567 0.6.0-b1 - 6/6/2000
568    First C++ conversions
569    Portable IF (image file) format implemented with objects (SDF removed)
570         - Now all data files are cross-platform compatible
571    Converted from MPI to MPI++
572    Converted backprojection to object-oriented
573    Removed MTX from libkmath as no longer need -- replaced with C++ matrices             
574         
575 0.5.4 - 6/4/2000
576    Simpilifed endian handling
577         
578 0.5.4-b3 - 6/1/2000
579    Added support for 64-bit (IA64) CPU
580    Removed broken B-spline interpolation
581    Added support for cygwin platform under Windows 2000
582    Added support for 16-bit PNG graphics
583         
584 0.5.4-b2 - 5/16/2000
585    Added compile-time configuration of endian order
586
587 0.5.4-b1 - 5/14/2000
588    Modified the raysum file format to be platform independent
589         
590 0.5.3 - 5/11/2000
591    Added Microsoft VC compatibility
592    Cleaned up compilation warnings in libgraph
593         
594 0.5.2-b5 - 5/7/2000
595    Continued conversion to ANSI C       
596    Removed old CRT routines
597         
598 0.5.2-b4 - 5/4/2000
599    Renamed pictures to phantoms, objects to phantom elements
600    Continued code cleanup
601         
602 0.5.2-b3 - 4/30/200
603     More code cleanup with reorganizing libraries
604     Added --log and --exp to sdf-1
605     Allowed negative numbers for window levels in CGI interface
606
607 0.5.2-b2 - 4/30/200
608     Continued code cleanup
609         
610 0.5.2-b1 - 4/29/2000
611     Fixed a few MPI bugs
612     Better documented, coded raysum in-memory on on-disk options
613         
614 0.5.1 - 4/28/2000
615     Cleaned out library that wasn't being used by CTSim  
616     Modified ctsim.cgi to read in configuration file ctsim.conf
617
618 0.5.0 - 4/27/2000 
619     First open source distribution for GNU/Linux
620         
621 6/1999 
622   Converted to GNU/Linux
623   added MPI support via LAM library
624         
625 1983-84 
626   Developed under MS-DOS and IBM EGA graphics
627