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