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