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