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