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