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