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