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