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