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