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