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