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