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