r470: Fixed shutdown error, take 3
[ctsim.git] / ChangeLog
1 3.0.0beta1 - Released
2
3         * ctsim: Added most-recently-used files to File menu with
4         registry storage between executions.
5
6         * ctsim: Added MDI interface for Windows version and made it default
7
8         * ctsim: Added graphical About box
9
10         * ctsim: Escape key now removes cursor from image files
11         
12         * ctsim: Added accelerator (hotkeys) to frames
13
14         * ctsim: Online help added as well as HTML help
15         
16         * ctsim: Added icons to Frames on X-Window and MS Windows versions
17
18         * ctsim: Fixed tick-label placement for plots on projection and
19         reconstruction dialogs.
20
21         * timer.h: Add use of _ftime when compiling on MSVC
22
23         * pjinfo: Fixed bug when doing --dump and not specifing --endview
24
25         * ctsimtext-lam: Changes for first version to compile under lam
26         
27 3.0.0alpha5 - Released 1/12/00
28
29         * ctsim: Added EZPlotDialog, used by debugging plots in
30         procsignal.cpp
31         
32         * ctsimtext: Fixed bugs for MSVC and with empty input lines. Fixed 
33         bug in parsing command-line parameters.
34
35         * views.cpp: Fixed bug in copying of labels from images to
36         plotfiles
37         
38         * syserror.cpp: fixed reporting for fatal errors
39
40         * projections.cpp: fixed MSVC failure with std:: namespace
41
42         * procsignal.cpp: fixed bug in equiangular reconstructions
43         for frequency/inverse-fourier filtering
44         
45 3.0.0alpha4 - Released 1/09/01
46
47         * ctsim: Added reset to full-intensity scale menu item
48
49         * ctsim: Add conversion of projections to polar plot [Thanks to
50         Ian Kay for reference and math hints in polar bilinear scaling]
51
52         * ctsim: improve bilinear scaling of image size [Thanks to Ian Kay
53         for math tips]
54
55         * ctsim: imagefile labels are now copied to plotfiles
56
57         * ctsim: Added more analyze menuitems
58         
59         * ctsimtext: First version. All command-line tools are now accessed
60         through this master shell. Has both command-line and interactive
61         interface
62         
63         * ctsim: Fixed initialization of min/max bug for PlotFiles
64
65         * ezplot: Cleaned up y-tick label placement
66
67         * sgp: Added better support for projection/reconstruction animation
68         
69 3.0.0alpha3 - Released 1/02/01
70
71         * ctsim: Added plotting of histograms
72         
73         * imagefile.cpp: fixed bug in generation of 16-bit PNG images
74
75         * ezplot.cpp: adjusted xtick label displays for better placement
76         
77 3.0alpha2 - Released 1/02/01
78         
79         * ctsim: All functions of command-line tools are now in graphical ctsim
80         
81         * ctsim: added generation of filter images
82
83         * ctsim: Added 2-image math functions (mul, add, div, sub)
84
85         * ctsim: Added export of imagefiles to graphic file formats
86
87         * ctsim: Added support for scaling imagefiles in new sizes
88
89         * ctsim: Added ability to save standard phantom definitions as
90         text files suitable for reading.
91         
92         * ctsim: Add labels for image transformations and display of labels
93         when performing properties of images.
94
95         * processsignal.cpp: Fixed "off by one" bug in
96         shuffleNaturalToFourierOrder when n is even. Moved functions to
97         fourier.cpp
98
99         * imagefile.cpp: Added FFTW library to imagefile processing. Converted
100         image math functions to complex-valued math.
101
102         * phantom.cpp: Added ability to save phantom files as ASCII text.
103         
104 3.0alpha1 - Released 12/29/00
105
106         * Added PlotFile class to system, used by if2 and ctsim for row
107         and column plots and comparison plots
108
109         * ctsim: Added image comparison statistics and image subtraction
110
111         * ctsim: Added plotting of rows & columns with y-axis scaling 
112
113         * ctsim: Added row and column plot comparisons between two image
114         files.
115
116         * ctsim: Added "Process" menu to image file display with math
117         functions. Added 2-dimensional inverse Fourier to math
118         functions. Added support for complex (real/imaginary) images.
119
120         * mathfuncs.cpp: Reworked statistics algorithm to share between
121         imagefile and plotfile classes.
122
123         * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
124         nsamples > 2.  Added generic mage math functions, moved from
125         if1.cpp and if2.cpp to imagefile.cpp. Added support complex
126         images.
127
128         * array2dfile.cpp: Added code to support complex (real/imaginary)
129         images.
130
131         * if1: Updated to handle error conditions, such as sqrt of a
132         negative number. Converted to use new ImageFile math functions.
133         
134         * if2: Updated to output plot files and use new ImageFile class
135         math functions
136
137         * if1: Updated to use new ImageFile class math functions
138
139         * ezplot: Reworked to better store colors/linestyles/symbols with
140         individual curves. Improved display of labels and ticks. Updated
141         to use POL class member variable. Updated to more C++ conventions.
142
143         * pol: converted to C++ class. Extracted HashTable to separate
144         class.
145         
146         * sgp: Added linestyle settings
147         
148 2.5.0 - 12/18/00 
149    First Microsoft Windows GUI version
150    Modifications for Microsoft Visual C++ compilation.
151    Improved pjinfo to output binary headers and view data, useful
152         when manually compiling phantoms that vary during projection
153         process. Thanks to Ian Kay for idea and code submission.
154    Improved sorting to find median in ImageFile::statistics
155    Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay) 
156    Changed reconstruction dialog to fix onto smaller screens
157    Fixed display of plotting in Projection views
158    Improved animation displays for Projections and Reconstructions
159    Changed code to explicitly use std:: namespace rather than 
160         "namespace using std" statements
161    Fixed reconstruction scaling bug introduced in 2.0.6
162    Renamed if2img to ifexport, if-1 to if1, if-2 to if2
163         
164 2.0.6 - 12/03/00
165    Fixed minor compilation problem with procsignal.h
166    Updated README file
167    Fixed bug when simulating projections and Trace == CONSOLE
168    Fixed scaling bug when performing redundant rotations around object
169         
170 2.0.5 - 12/01/00
171    Improved compilation on RedHat 7
172    Changed some of ANSI C header files to C++ header files
173    Removed README.RedHat7
174         
175 2.0.4 - 11/25/00
176    Added documentation for --geometry setting
177    Added README.RedHat7 document
178          
179 2.0.3 - 11/20/00
180    Fixed bug in generation of binary PGM files
181    Fixed MPI compilation bug in phm2pj.cpp
182    Inverted y-axis output for pj2if (bug alert from Ian Kay)
183         
184 2.0.2 - 11/8/00
185    Additions to man pages (Ian Kay)
186    Fix problem with reading of ASCII phantom files (Ian Kay)
187
188 2.0.1 - 10/1/00
189    Fixed syntax error in fftw configuration
190    Slight modifications to support gcc v2.9.6
191         
192 2.0.0 - 9/7/00
193    Version 2.0.0 released!
194    ctsim: Added Window menu to Main frame
195    ctsim: Disabled not support reconstruction method
196    Fixed obscure bug in sys_error
197    Fixed compilation in mingw environment not present
198    Fixed compilation in non-graphical environments      
199         
200 2.0.0-b12 - 9/4/00
201    ctsim: Added animation of reconstruction
202    ctsim: Added saving of dialog parameters for Projection & Reconstruction
203    ctsim: Added progress dialog for rasterization of phantom
204    ctsim: used setpriority to set lower priority
205    ctsim: fixed pReconstruct not being deleted causing scaling problem
206    ctsim: fixed projection animation dialog buttons
207
208 2.0.0-b11 - 9/1/00
209    ctsim: Added projection graph to animation of projection collection  
210    ctsim: Added single stepping to projection collection animation
211    ctsim: improved File/Properties display for projection files
212    ctsim: Added progress dialog for reconstructions
213    ctsim: Added file labels for projection and reconstruction images
214    ctsim: Made File/Properties bring up modal dialogs
215    Added reconstruction for Equilinear and Equiangular geometries
216    Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
217    Separated reconstruction into Reconstructor class
218    Fixed center of detector adjustment for even number of detectors
219    Added --enable-static to generate statically linked programs
220         
221 2.0.0-b10 - 8/25/00
222    ctsim: Added animation of projection collection processs
223    ctsim: Added Auto Scaling for image windows
224    ctsim: Change menus from "windowing" to "display scaling"
225    Added FieldOfView and FocalLength ratio parameters to projection collection
226    Added FocalLength & FieldOfView fields to projection data files
227    Added Projection collection for Equilinear and Equiangular geometries
228    Changed name of Rowland Phantom to correct name of Shepp-Logan
229    Fixed bug in backprojection selection
230         
231 2.0.0-b9 - 8/22/00
232    Added RCS Id strings to executable files
233    Added RPM Spec file for RPM package creation
234    Added loading of ASCII phanthom definitions from files
235    Fixed compilation for non-SGP architectures 
236    Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
237    Added Filter-Generation option to reconstruction to allow direct or 
238         inverse_fourier construction of filters
239    Added median to statistics and to auto-windowing
240         
241 2.0.0-b8 - 8/1/00
242    Added line color support to SGP
243    Fixed lineAbs bug
244         
245 2.0.0-b7 - 7/25/00
246    Finished support for dmallocxx library
247    Fixed bug in SignalFilter::convertFilterMethodNameToID()
248    Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to 
249         G2 windows and well as WXWindows.
250    ctsim program: "Create Phantom" now shows phantom object
251    Fixed row-plot bug in if-2
252    Reworked EZPlot's multiple plot operation
253         
254 2.0.0-b6 - 7/22/00
255    ctsim program: improved initial size and scroll area for image 
256         and projection files
257    ctsim program: added rasterization parameters, projections parameters,
258         and reconstruction parameters dialogs
259    Moved char[] static definition from header files to c++ files
260    Completely reorganized option processing in classes to improve
261         expandability and to assist ctsim graphical user interface.
262         
263 2.0.0-b5 - 7/17/00
264    ctsim program: Added dialog to set minimum/maximum display levels 
265    Started ctsim.tex document file
266         
267 2.0.0-b4 - 7/13/00
268    Fixed compiler warnings at -Wall level
269    Began work on CTSim program to be graphical front-end of all functions
270    Moved current src/*.cpp to tools/*.cpp
271    Made CTSim graphical front-end's home to be src/
272         
273 2.0.0-b3 - 7/10/00
274    Added highly optimized backprojection method idiff3
275    Moved comparative stats to if-2 program from ifinfo
276    Fixed image display in if2img using G2 library
277    Added column-plot and row-plot options to if-2
278    Added autoselection of analytic/calculated spatial responses to SignalFilter
279    Added frequency-based preinterpolation to SignalFilter and idiff3
280         backprojection method. Currently, this technique is still under
281         development and debugging
282    Moved graphic file writing to ImageFile class from if2img program
283
284 2.0.0-b2 - 7/07/00  
285    Cleaned up SignalFilter class
286    Added zeropad option to pjrec
287    Added zeropad options to html and cgi files
288    Added fourier_table and rfttw filter methods
289    Added FFTW routines to use real/half-complex transformations
290         
291 2.0.0-b1 - 7/05/00
292    Updated trace level processing
293    Added trace level to SignalFilter
294    Fixed magnitude vs. real output bug in FFT/Fourier filter
295         
296 1.9.9 - 7/04/00
297    Fixed const issue with ImageFileArray
298    Fixed Array2dFile::labelsCopy()
299    Added copy constructor and assignment for Array2dFileLabel class
300    Added Timer to if-2.cpp and ifinfo.cpp
301    Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
302    Added option processing for filter-method for pjrec to choose
303         between convolution, dft, & fft filtering
304    Fixed format string for EZPlot so axis labels now print
305    Added support for FFTW library
306         
307 1.9.8 - 6/27/2000
308    Rewrote Array2dFile class to be non-templated
309    Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
310    Rewrote Array2dFileLabel class to make members private, added access routines
311    Removed timedate.cpp in favor of standard C library time/date functions
312    Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
313    Added signature tag and creation date/time to projection files
314         
315 1.9.7 - 6/25/2000
316    Standardized string option processing by classes. All classes use character strings
317         to select options rather than numeric constants. Added fail() and failMessage()
318         methods to verify that objects are created correctly by character strings.
319    Hid C++ assignment and copy constructors in classes that should not have assignment/copy
320    Rewrote ImageFile class
321    Started support for dmallocxx library, not finished
322    Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
323    Updated ifinfo to show comparative statistics
324    Added printLabels() to Array2dFile class
325    Added printStatistics() to ImageFile class
326         
327 1.9.6 - 6/22/2000
328    Moved conversion filter name/id to Filter class
329    Moved conversion backprojection name/id to Backproj class
330    Added MPI broadcasting of strings
331         
332 1.9.5 - 6/21/2000
333    Merged proj_reconstr into class Projections
334    Used auto_ptr in Projections::reconstruct to make sure destructor is always called
335    Code cleanup in projections.cpp
336    Moved conversion of phantom names/id to Phantom class
337         
338 1.9.4 - 6/20/2000
339    Converted projection files to C++ library with frnetorderstream
340    Converted image files to C++ library with frnetorderstream
341    Converted filter and convolution to object-oriented code
342    Changed default image file to float from double -- Changable in imagefile.h
343    Optimized image file writing on little-endian architectures
344    Updated README and INSTALL
345         
346 1.9.3 - 6/19/2000
347    Reorganized source files
348    MPI bug fixed to phm2pj.cpp
349         
350 1.9.2 - 6/18/2000
351    Reorganized include files
352    Fixed const pointers in strfuncs
353         
354 1.9.1 - 6/16/2000
355    Renamed directories, moved source files, combined source files
356    to change from 6 libraries to 3 libraries (libctsim, libctsupport,
357    and libctgraphics)
358         
359 1.9.0 - 6/15/2000
360    Skip versions to make version 2.0 the first fully C++ version
361    Renamed Raysums to Projections throughout files
362    Renamed Detector to Scanner
363    Converted Scanner and Projecions to full object-oriented
364         
365 0.6.1 - 6/12/2000
366    Converted Phantom and PhantomElements to Object-Oriented
367    Converted Detector to Object-Oriented
368         
369 0.6.0-b3 - 6/10/2000
370    Improved Integer backprojection method
371         Fixed nearest neighbor to be truly nearest neighbor
372         Made linear interpolation more integer arithmetic -> speed improvement
373    Finished converting all C files to C++
374    Converted all use of malloc/free to C++ new/delete
375    Began object-oriented conversion of Phantom and Projection structures
376         
377 0.6.0-b2 - 6/8/2000
378    Converted MPI data structures to C++ object
379    Made ImageFile directly inherit from Array2dFile
380         
381 0.6.0-b1 - 6/6/2000
382    First C++ conversions
383    Portable IF (image file) format implemented with objects (SDF removed)
384         - Now all data files are cross-platform compatible
385    Converted from MPI to MPI++
386    Converted backprojection to object-oriented
387    Removed MTX from libkmath as no longer need -- replaced with C++ matrices             
388         
389 0.5.4 - 6/4/2000
390    Simpilifed endian handling
391         
392 0.5.4-b3 - 6/1/2000
393    Added support for 64-bit (IA64) CPU
394    Removed broken B-spline interpolation
395    Added support for cygwin platform under Windows 2000
396    Added support for 16-bit PNG graphics
397         
398 0.5.4-b2 - 5/16/2000
399    Added compile-time configuration of endian order
400
401 0.5.4-b1 - 5/14/2000
402    Modified the raysum file format to be platform independent
403         
404 0.5.3 - 5/11/2000
405    Added Microsoft VC compatibility
406    Cleaned up compilation warnings in libgraph
407         
408 0.5.2-b5 - 5/7/2000
409    Continued conversion to ANSI C       
410    Removed old CRT routines
411         
412 0.5.2-b4 - 5/4/2000
413    Renamed pictures to phantoms, objects to phantom elements
414    Continued code cleanup
415         
416 0.5.2-b3 - 4/30/200
417     More code cleanup with reorganizing libraries
418     Added --log and --exp to sdf-1
419     Allowed negative numbers for window levels in CGI interface
420
421 0.5.2-b2 - 4/30/200
422     Continued code cleanup
423         
424 0.5.2-b1 - 4/29/2000
425     Fixed a few MPI bugs
426     Better documented, coded raysum in-memory on on-disk options
427         
428 0.5.1 - 4/28/2000
429     Cleaned out library that wasn't being used by CTSim  
430     Modified ctsim.cgi to read in configuration file ctsim.conf
431
432 0.5.0 - 4/27/2000 
433     First open source distribution for GNU/Linux
434         
435 6/1999 
436   Converted to GNU/Linux
437   added MPI support via LAM library
438         
439 1983-84 
440   Developed under MS-DOS and IBM EGA graphics
441