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