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