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