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