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