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