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