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