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