From: Kevin M. Rosenberg Date: Thu, 20 Jul 2000 11:17:31 +0000 (+0000) Subject: r156: *** empty log message *** X-Git-Tag: debian-4.5.3-3~861 X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=commitdiff_plain;h=27a474e0622ebb7229fd5705552021f63d8f932d r156: *** empty log message *** --- diff --git a/configure b/configure index 806487c..455092f 100755 --- a/configure +++ b/configure @@ -710,7 +710,7 @@ fi PACKAGE=ctsim -VERSION=2.0.0-b4 +VERSION=2.0.0-b5 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff --git a/include/backprojectors.h b/include/backprojectors.h index f19b904..598c244 100644 --- a/include/backprojectors.h +++ b/include/backprojectors.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: backprojectors.h,v 1.10 2000/07/19 04:33:27 kevin Exp $ +** $Id: backprojectors.h,v 1.11 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -62,17 +62,29 @@ class Backprojector INTERP_FREQ_PREINTERPOLATION, } InterpolationID; - static const char BPROJ_TRIG_STR[]= "trig"; - static const char BPROJ_TABLE_STR[]= "table"; - static const char BPROJ_DIFF_STR[]= "diff"; - static const char BPROJ_DIFF2_STR[]= "diff2"; - static const char BPROJ_IDIFF2_STR[]= "idiff2"; - static const char BPROJ_IDIFF3_STR[]= "idiff3"; + static const char BPROJ_TRIG_STR[]; + static const char BPROJ_TABLE_STR[]; + static const char BPROJ_DIFF_STR[]; + static const char BPROJ_DIFF2_STR[]; + static const char BPROJ_IDIFF2_STR[]; + static const char BPROJ_IDIFF3_STR[]; + + static const char BPROJ_TRIG_TITLE_STR[]; + static const char BPROJ_TABLE_TITLE_STR[]; + static const char BPROJ_DIFF_TITLE_STR[]; + static const char BPROJ_DIFF2_TITLE_STR[]; + static const char BPROJ_IDIFF2_TITLE_STR[]; + static const char BPROJ_IDIFF3_TITLE_STR[]; - static const char INTERP_NEAREST_STR[]= "nearest"; - static const char INTERP_LINEAR_STR[]= "linear"; - static const char INTERP_BSPLINE_STR[]= "bspline"; - static const char INTERP_FREQ_PREINTERPOLATION_STR[]= "freq_preinterpolation"; + static const char INTERP_NEAREST_STR[]; + static const char INTERP_LINEAR_STR[]; + static const char INTERP_BSPLINE_STR[]; + static const char INTERP_FREQ_PREINTERPOLATION_STR[]; + + static const char INTERP_NEAREST_TITLE_STR[]; + static const char INTERP_LINEAR_TITLE_STR[]; + static const char INTERP_BSPLINE_TITLE_STR[]; + static const char INTERP_FREQ_PREINTERPOLATION_TITLE_STR[]; Backprojector (const Projections& proj, ImageFile& im, const char* const backprojName, const char* const interpName, const int interpFactor); diff --git a/include/filter.h b/include/filter.h index 6ad7767..5527b3e 100644 --- a/include/filter.h +++ b/include/filter.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: filter.h,v 1.14 2000/07/19 04:33:27 kevin Exp $ +** $Id: filter.h,v 1.15 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -75,28 +75,54 @@ class SignalFilter { DOMAIN_SPATIAL } DomainID; - static const char FILTER_ABS_BANDLIMIT_STR[]= "abs_bandlimit"; - static const char FILTER_ABS_SINC_STR[]= "abs_sinc"; - static const char FILTER_ABS_COS_STR[]= "abs_cos"; - static const char FILTER_ABS_HAMMING_STR[]= "abs_hamming"; - static const char FILTER_SHEPP_STR[]= "shepp"; - static const char FILTER_BANDLIMIT_STR[]= "bandlimit"; - static const char FILTER_SINC_STR[]= "sinc"; - static const char FILTER_COS_STR[]= "cos"; - static const char FILTER_HAMMING_STR[]= "hamming"; - static const char FILTER_TRIANGLE_STR[]= "triangle"; + // Filters + static const char FILTER_ABS_BANDLIMIT_STR[]; + static const char FILTER_ABS_SINC_STR[]; + static const char FILTER_ABS_COS_STR[]; + static const char FILTER_ABS_HAMMING_STR[]; + static const char FILTER_SHEPP_STR[]; + static const char FILTER_BANDLIMIT_STR[]; + static const char FILTER_SINC_STR[]; + static const char FILTER_COS_STR[]; + static const char FILTER_HAMMING_STR[]; + static const char FILTER_TRIANGLE_STR[]; + + static const char FILTER_ABS_BANDLIMIT_TITLE_STR[]; + static const char FILTER_ABS_SINC_TITLE_STR[]; + static const char FILTER_ABS_COS_TITLE_STR[]; + static const char FILTER_ABS_HAMMING_TITLE_STR[]; + static const char FILTER_SHEPP_TITLE_STR[]; + static const char FILTER_BANDLIMIT_TITLE_STR[]; + static const char FILTER_SINC_TITLE_STR[]; + static const char FILTER_COS_TITLE_STR[]; + static const char FILTER_HAMMING_TITLE_STR[]; + static const char FILTER_TRIANGLE_TITLE_STR[]; - static const char FILTER_METHOD_CONVOLUTION_STR[]= "convolution"; - static const char FILTER_METHOD_FOURIER_STR[]= "fourier"; - static const char FILTER_METHOD_FOURIER_TABLE_STR[]="fourier_table"; - static const char FILTER_METHOD_FFT_STR[]= "fft"; + // Filter Methods + static const char FILTER_METHOD_CONVOLUTION_STR[]; + static const char FILTER_METHOD_FOURIER_STR[]; + static const char FILTER_METHOD_FOURIER_TABLE_STR[]; + static const char FILTER_METHOD_FFT_STR[]; #if HAVE_FFTW - static const char FILTER_METHOD_FFTW_STR[]= "fftw"; - static const char FILTER_METHOD_RFFTW_STR[]= "rfftw"; + static const char FILTER_METHOD_FFTW_STR[]; + static const char FILTER_METHOD_RFFTW_STR[]; #endif - static const char DOMAIN_FREQUENCY_STR[]="frequency"; - static const char DOMAIN_SPATIAL_STR[]="spatial"; + static const char FILTER_METHOD_CONVOLUTION_TITLE_STR[]; + static const char FILTER_METHOD_FOURIER_TITLE_STR[]; + static const char FILTER_METHOD_FOURIER_TABLE_TITLE_STR[]; + static const char FILTER_METHOD_FFT_TITLE_STR[]; +#if HAVE_FFTW + static const char FILTER_METHOD_FFTW_TITLESTR[]; + static const char FILTER_METHOD_RFFTW_TITLE_STR[]; +#endif + + // Domains + static const char DOMAIN_FREQUENCY_STR[]; + static const char DOMAIN_SPATIAL_STR[]; + + static const char DOMAIN_FREQUENCY_TITLE_STR[]; + static const char DOMAIN_SPATIAL_TITLE_STR[]; SignalFilter (const char* filterName, const char* filterMethodName,double bw, double signalIncrement, int n, double param, const char* domainName, const int zeropad = 0, const int preinterpolationFactor = 1); diff --git a/include/phantom.h b/include/phantom.h index dbaf169..a82381f 100644 --- a/include/phantom.h +++ b/include/phantom.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phantom.h,v 1.8 2000/07/19 04:33:27 kevin Exp $ +** $Id: phantom.h,v 1.9 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -134,17 +134,17 @@ class Phantom PHM_UNITPULSE /* Unit pulse phantom */ } PhantomID; - static const char PHM_HERMAN_STR[]= "herman"; - static const char PHM_BHERMAN_STR[]= "bherman"; - static const char PHM_ROWLAND_STR[]= "rowland"; - static const char PHM_BROWLAND_STR[]= "browland"; - static const char PHM_UNITPULSE_STR[]= "unitpulse"; - - static const char PHM_HERMAN_TITLE_STR[]= "Herman Head"; - static const char PHM_BHERMAN_TITLE_STR[]= "Herman Head Bordered"; - static const char PHM_ROWLAND_TITLE_STR[]= "Rowland Head"; - static const char PHM_BROWLAND_TITLE_STR[]= "Rowland Head Bordered"; - static const char PHM_UNITPULSE_TITLE_STR[]= "Unit Pulse"; + static const char PHM_HERMAN_STR[]; + static const char PHM_BHERMAN_STR[]; + static const char PHM_ROWLAND_STR[]; + static const char PHM_BROWLAND_STR[]; + static const char PHM_UNITPULSE_STR[]; + + static const char PHM_HERMAN_TITLE_STR[]; + static const char PHM_BHERMAN_TITLE_STR[]; + static const char PHM_ROWLAND_TITLE_STR[]; + static const char PHM_BROWLAND_TITLE_STR[]; + static const char PHM_UNITPULSE_TITLE_STR[]; Phantom (void); Phantom (const char* const phmName); diff --git a/include/scanner.h b/include/scanner.h index 1a01c89..000aba1 100644 --- a/include/scanner.h +++ b/include/scanner.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: scanner.h,v 1.6 2000/07/18 14:51:06 kevin Exp $ +** $Id: scanner.h,v 1.7 2000/07/20 11:17:31 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -68,12 +68,16 @@ class Scanner GEOMETRY_INVALID, GEOMETRY_PARALLEL, GEOMETRY_EQUILINEAR, - GEOMETRY_EQUIANGLE + GEOMETRY_EQUIANGULAR, } GeometryID; - static const char GEOMETRY_PARALLEL_STR[] = "parallel"; - static const char GEOMETRY_EQUILINEAR_STR[] = "equilinear"; - static const char GEOMETRY_EQUIANGLE_STR[] = "equiangle"; + static const char GEOMETRY_PARALLEL_STR[]; + static const char GEOMETRY_EQUILINEAR_STR[]; + static const char GEOMETRY_EQUIANGULAR_STR[]; + + static const char GEOMETRY_PARALLEL_TITLE_STR[]; + static const char GEOMETRY_EQUILINEAR_TITLE_STR[]; + static const char GEOMETRY_EQUIANGULAR_TITLE_STR[]; Scanner (const Phantom& phm, const char* const geometryName, int nDet, int nView, int nSample, const double rot_anglen); ~Scanner(); diff --git a/include/trace.h b/include/trace.h index ed29746..88aa271 100644 --- a/include/trace.h +++ b/include/trace.h @@ -1,7 +1,7 @@ #ifndef TRACE_H #define TRACE_H -enum { +enum TraceID { TRACE_INVALID=-1, TRACE_NONE=0, /* No tracing */ TRACE_TEXT, /* Minimal status */ @@ -11,53 +11,33 @@ enum { TRACE_CLIPPING /* Plot clipping */ }; -static const char TRACE_NONE_STR[]= "none"; -static const char TRACE_TEXT_STR[]= "text"; -static const char TRACE_PHM_STR[]= "phm"; -static const char TRACE_RAYS_STR[]= "rays"; -static const char TRACE_PLOT_STR[]= "plot"; -static const char TRACE_CLIPPING_STR[]= "clipping"; - class TraceLevel { public: - TraceLevel (const char* const traceString); - - void addTrace (const char* const traceString); - - bool isTrace (const char* const traceQuery) const; - - int getTraceLevel(void) const { return m_traceLevel; } + static const char TRACE_NONE_STR[]; + static const char TRACE_TEXT_STR[]; + static const char TRACE_PHM_STR[]; + static const char TRACE_RAYS_STR[]; + static const char TRACE_PLOT_STR[]; + static const char TRACE_CLIPPING_STR[]; + + TraceLevel (const char* const traceString); + + void addTrace (const char* const traceString); + + bool isTrace (const char* const traceQuery) const; + + int getTraceLevel(void) const { return m_traceLevel; } + + static TraceID convertTraceNameToID (const char* traceName); private: - - int m_traceLevel; - - bool addTraceElements (const char* const traceString); + + int m_traceLevel; + + bool addTraceElements (const char* const traceString); }; -inline int -convertTraceNameToID (const char *traceString) -{ - int traceID = TRACE_INVALID; - - if (strcasecmp (traceString, TRACE_NONE_STR) == 0) - traceID = TRACE_NONE; - else if (strcasecmp (traceString, TRACE_TEXT_STR) == 0) - traceID = TRACE_TEXT; - else if (strcasecmp (traceString, TRACE_PHM_STR) == 0) - traceID = TRACE_PHM; - else if (strcasecmp (traceString, TRACE_PLOT_STR) == 0) - traceID = TRACE_PLOT; - else if (strcasecmp (traceString, TRACE_CLIPPING_STR) == 0) - traceID = TRACE_CLIPPING; - else if (strcasecmp (traceString, TRACE_RAYS_STR) == 0) - traceID = TRACE_RAYS; - - return (traceID); -} - - #endif diff --git a/libctsim/Makefile.am b/libctsim/Makefile.am index ec764a3..96037cc 100644 --- a/libctsim/Makefile.am +++ b/libctsim/Makefile.am @@ -1,5 +1,5 @@ noinst_LIBRARIES = libctsim.a -libctsim_a_SOURCES = filter.cpp scanner.cpp projections.cpp phantom.cpp imagefile.cpp backprojectors.cpp array2dfile.cpp +libctsim_a_SOURCES = filter.cpp scanner.cpp projections.cpp phantom.cpp imagefile.cpp backprojectors.cpp array2dfile.cpp trace.cpp INCLUDES=@my_includes@ EXTRA_DIST=Makefile.nt diff --git a/libctsim/backprojectors.cpp b/libctsim/backprojectors.cpp index 9aa3145..ae31cf8 100644 --- a/libctsim/backprojectors.cpp +++ b/libctsim/backprojectors.cpp @@ -8,7 +8,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: backprojectors.cpp,v 1.8 2000/07/13 07:03:21 kevin Exp $ +** $Id: backprojectors.cpp,v 1.9 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -26,6 +26,31 @@ #include "ct.h" +const char Backprojector::BPROJ_TRIG_STR[]= "trig"; +const char Backprojector::BPROJ_TABLE_STR[]= "table"; +const char Backprojector::BPROJ_DIFF_STR[]= "diff"; +const char Backprojector::BPROJ_DIFF2_STR[]= "diff2"; +const char Backprojector::BPROJ_IDIFF2_STR[]= "idiff2"; +const char Backprojector::BPROJ_IDIFF3_STR[]= "idiff3"; + +const char Backprojector::BPROJ_TRIG_TITLE_STR[]= "Direc Trigometric"; +const char Backprojector::BPROJ_TABLE_TITLE_STR[]= "Trig Table"; +const char Backprojector::BPROJ_DIFF_TITLE_STR[]= "Diff"; +const char Backprojector::BPROJ_DIFF2_TITLE_STR[]= "Diff2"; +const char Backprojector::BPROJ_IDIFF2_TITLE_STR[]= "Integer Diff2"; +const char Backprojector::BPROJ_IDIFF3_TITLE_STR[]= "Integer Diff3"; + +const char Backprojector::INTERP_NEAREST_STR[]= "nearest"; +const char Backprojector::INTERP_LINEAR_STR[]= "linear"; +const char Backprojector::INTERP_BSPLINE_STR[]= "bspline"; +const char Backprojector::INTERP_FREQ_PREINTERPOLATION_STR[]= "freq_preinterpolation"; + +const char Backprojector::INTERP_NEAREST_TITLE_STR[]= "Nearest"; +const char Backprojector::INTERP_LINEAR_TITLE_STR[]= "Linear"; +const char Backprojector::INTERP_BSPLINE_TITLE_STR[]= "B-Spline"; +const char Backprojector::INTERP_FREQ_PREINTERPOLATION_TITLE_STR[]= "Frequency Preinterpolation"; + + Backprojector::Backprojector (const Projections& proj, ImageFile& im, const char* const backprojName, const char* const interpName, const int interpFactor) { m_fail = false; diff --git a/libctsim/filter.cpp b/libctsim/filter.cpp index 1c9e95b..a0638b2 100644 --- a/libctsim/filter.cpp +++ b/libctsim/filter.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: filter.cpp,v 1.18 2000/07/15 08:36:13 kevin Exp $ +** $Id: filter.cpp,v 1.19 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -30,6 +30,56 @@ int SignalFilter::N_INTEGRAL=500; //static member +// Filters +const char SignalFilter::FILTER_ABS_BANDLIMIT_STR[] = "abs_bandlimit"; +const char SignalFilter::FILTER_ABS_SINC_STR[] = "abs_sinc"; +const char SignalFilter::FILTER_ABS_COS_STR[] = "abs_cos"; +const char SignalFilter::FILTER_ABS_HAMMING_STR[] = "abs_hamming"; +const char SignalFilter::FILTER_SHEPP_STR[] = "shepp"; +const char SignalFilter::FILTER_BANDLIMIT_STR[] = "bandlimit"; +const char SignalFilter::FILTER_SINC_STR[] = "sinc"; +const char SignalFilter::FILTER_COS_STR[] = "cos"; +const char SignalFilter::FILTER_HAMMING_STR[] = "hamming"; +const char SignalFilter::FILTER_TRIANGLE_STR[] = "triangle"; + +const char SignalFilter::FILTER_ABS_BANDLIMIT_TITLE_STR[] = "Abs(w) * Bandlimit"; +const char SignalFilter::FILTER_ABS_SINC_TITLE_STR[] = "Abs(w) * Sinc"; +const char SignalFilter::FILTER_ABS_COS_TITLE_STR[] = "Abs(w) * Cos"; +const char SignalFilter::FILTER_ABS_HAMMING_TITLE_STR[] = "Abs(w) * Hamming"; +const char SignalFilter::FILTER_SHEPP_TITLE_STR[] = "Shepp"; +const char SignalFilter::FILTER_BANDLIMIT_TITLE_STR[] = "Bandlimit"; +const char SignalFilter::FILTER_SINC_TITLE_STR[] = "Sinc"; +const char SignalFilter::FILTER_COS_TITLE_STR[] = "Cos"; +const char SignalFilter::FILTER_HAMMING_TITLE_STR[] = "Hamming"; +const char SignalFilter::FILTER_TRIANGLE_TITLE_STR[] = "Triangle"; + +// Filter Methods +const char SignalFilter::FILTER_METHOD_CONVOLUTION_STR[] = "convolution"; +const char SignalFilter::FILTER_METHOD_FOURIER_STR[] = "fourier"; +const char SignalFilter::FILTER_METHOD_FOURIER_TABLE_STR[] = "fourier_table"; +const char SignalFilter::FILTER_METHOD_FFT_STR[] = "fft"; +#if HAVE_FFTW +const char SignalFilter::FILTER_METHOD_FFTW_STR[] = "fftw"; +const char SignalFilter::FILTER_METHOD_RFFTW_STR[] = "rfftw"; +#endif + +const char SignalFilter::FILTER_METHOD_CONVOLUTION_TITLE_STR[] = "Convolution"; +const char SignalFilter::FILTER_METHOD_FOURIER_TITLE_STR[] = "Direct Fourier"; +const char SignalFilter::FILTER_METHOD_FOURIER_TABLE_TITLE_STR[] = "Fourier Trig Table"; +const char SignalFilter::FILTER_METHOD_FFT_TITLE_STR[] = "FFT"; +#if HAVE_FFTW +const char SignalFilter::FILTER_METHOD_FFTW_TITLESTR[] = "FFTW"; +const char SignalFilter::FILTER_METHOD_RFFTW_TITLE_STR[] = "Real FFTW"; +#endif + +// Domains +const char SignalFilter::DOMAIN_FREQUENCY_STR[] = "frequency"; +const char SignalFilter::DOMAIN_SPATIAL_STR[] = "spatial"; + +const char SignalFilter::DOMAIN_FREQUENCY_TITLE_STR[] = "Frequency"; +const char SignalFilter::DOMAIN_SPATIAL_TITLE_STR[] = "Spatial"; + + /* NAME * SignalFilter::SignalFilter Construct a signal * diff --git a/libctsim/phantom.cpp b/libctsim/phantom.cpp index d07b6a3..8d4ea38 100644 --- a/libctsim/phantom.cpp +++ b/libctsim/phantom.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phantom.cpp,v 1.8 2000/07/18 03:14:35 kevin Exp $ +** $Id: phantom.cpp,v 1.9 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -28,6 +28,20 @@ #include "ct.h" +const char Phantom::PHM_HERMAN_STR[]= "herman"; +const char Phantom::PHM_BHERMAN_STR[]= "bherman"; +const char Phantom::PHM_ROWLAND_STR[]= "rowland"; +const char Phantom::PHM_BROWLAND_STR[]= "browland"; +const char Phantom::PHM_UNITPULSE_STR[]= "unitpulse"; + +const char Phantom::PHM_HERMAN_TITLE_STR[]= "Herman Head"; +const char Phantom::PHM_BHERMAN_TITLE_STR[]= "Herman Head Bordered"; +const char Phantom::PHM_ROWLAND_TITLE_STR[]= "Rowland Head"; +const char Phantom::PHM_BROWLAND_TITLE_STR[]= "Rowland Head Bordered"; +const char Phantom::PHM_UNITPULSE_TITLE_STR[]= "Unit Pulse"; + + + // CLASS IDENTIFICATION // Phanton // diff --git a/libctsim/scanner.cpp b/libctsim/scanner.cpp index 53588db..4f46d05 100644 --- a/libctsim/scanner.cpp +++ b/libctsim/scanner.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: scanner.cpp,v 1.3 2000/07/13 07:03:21 kevin Exp $ +** $Id: scanner.cpp,v 1.4 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -27,6 +27,13 @@ #include "ct.h" +const char Scanner::GEOMETRY_PARALLEL_STR[] = "parallel"; +const char Scanner::GEOMETRY_EQUILINEAR_STR[] = "equilinear"; +const char Scanner::GEOMETRY_EQUIANGULAR_STR[] = "equiangular"; + +const char Scanner::GEOMETRY_PARALLEL_TITLE_STR[] = "Parallel"; +const char Scanner::GEOMETRY_EQUILINEAR_TITLE_STR[] = "Equilinear"; +const char Scanner::GEOMETRY_EQUIANGULAR_TITLE_STR[] = "Equiangular"; // NAME // DetectorArray Construct a DetectorArray @@ -118,8 +125,8 @@ Scanner::convertGeometryNameToID (const char* const geometryName) geometryID = GEOMETRY_PARALLEL; else if (strcasecmp (geometryName, GEOMETRY_EQUILINEAR_STR) == 0) geometryID = GEOMETRY_EQUILINEAR; - else if (strcasecmp (geometryName, GEOMETRY_EQUIANGLE_STR) == 0) - geometryID = GEOMETRY_EQUIANGLE; + else if (strcasecmp (geometryName, GEOMETRY_EQUIANGULAR_STR) == 0) + geometryID = GEOMETRY_EQUIANGULAR; return (geometryID); } diff --git a/libctsim/trace.cpp b/libctsim/trace.cpp new file mode 100644 index 0000000..3bb8ce8 --- /dev/null +++ b/libctsim/trace.cpp @@ -0,0 +1,58 @@ +/***************************************************************************** +** FILE IDENTIFICATION +** +** Name: trace.cpp Class for trace +** Programmer: Kevin Rosenberg +** Date Started: June 2000 +** +** This is part of the CTSim program +** Copyright (C) 1983-2000 Kevin Rosenberg +** +** $Id: trace.cpp,v 1.1 2000/07/20 11:17:31 kevin Exp $ +** +** This program is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License (version 2) as +** published by the Free Software Foundation. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +******************************************************************************/ + +#include "ct.h" + +const char TraceLevel::TRACE_NONE_STR[]= "none"; +const char TraceLevel::TRACE_TEXT_STR[]= "text"; +const char TraceLevel::TRACE_PHM_STR[]= "phm"; +const char TraceLevel::TRACE_RAYS_STR[]= "rays"; +const char TraceLevel::TRACE_PLOT_STR[]= "plot"; +const char TraceLevel::TRACE_CLIPPING_STR[]= "clipping"; + + +TraceID +TraceLevel::convertTraceNameToID (const char *traceString) +{ + TraceID traceID = TRACE_INVALID; + + if (strcasecmp (traceString, TRACE_NONE_STR) == 0) + traceID = TRACE_NONE; + else if (strcasecmp (traceString, TRACE_TEXT_STR) == 0) + traceID = TRACE_TEXT; + else if (strcasecmp (traceString, TRACE_PHM_STR) == 0) + traceID = TRACE_PHM; + else if (strcasecmp (traceString, TRACE_PLOT_STR) == 0) + traceID = TRACE_PLOT; + else if (strcasecmp (traceString, TRACE_CLIPPING_STR) == 0) + traceID = TRACE_CLIPPING; + else if (strcasecmp (traceString, TRACE_RAYS_STR) == 0) + traceID = TRACE_RAYS; + + return (traceID); +} + + diff --git a/src/ctsim.cpp b/src/ctsim.cpp index a7417fe..71b0539 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.6 2000/07/19 04:33:27 kevin Exp $ +** $Id: ctsim.cpp,v 1.7 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -104,7 +104,7 @@ CTSimApp::OnInit(void) //// Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "&Create Phantom..."); + file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom..."); file_menu->Append(wxID_OPEN, "&Open..."); file_menu->AppendSeparator(); @@ -199,10 +199,9 @@ MainFrame::OnCreatePhantom(wxCommandEvent& WXUNUSED(event)) DialogGetPhantom dialogPhantom (this, Phantom::PHM_HERMAN_STR); int dialogReturn = dialogPhantom.ShowModal(); if (dialogReturn == wxID_OK) { - string selection = dialogPhantom.getPhantom(); + wxString selection = dialogPhantom.getPhantom(); *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n"; - wxString filename = selection.c_str(); - filename += ".phm"; + wxString filename = selection + ".phm"; theApp->getDocManager()->CreateDocument(filename, wxDOC_SILENT); } diff --git a/src/dialogs.cpp b/src/dialogs.cpp index b084fd4..27b454f 100644 --- a/src/dialogs.cpp +++ b/src/dialogs.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: dialogs.cpp,v 1.3 2000/07/19 04:33:27 kevin Exp $ +** $Id: dialogs.cpp,v 1.4 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -55,6 +55,26 @@ #include "backprojectors.h" + +const wxString DialogGetPhantom::s_asPhantom[] = +{ + wxString(Phantom::PHM_HERMAN_STR), + wxString(Phantom::PHM_BHERMAN_STR), + wxString(Phantom::PHM_ROWLAND_STR), + wxString(Phantom::PHM_BROWLAND_STR), + wxString(Phantom::PHM_UNITPULSE_STR), +}; +const wxString DialogGetPhantom::s_asPhantomTitle[] = +{ + wxString(Phantom::PHM_HERMAN_TITLE_STR), + wxString(Phantom::PHM_BHERMAN_TITLE_STR), + wxString(Phantom::PHM_ROWLAND_TITLE_STR), + wxString(Phantom::PHM_BROWLAND_TITLE_STR), + wxString(Phantom::PHM_UNITPULSE_TITLE_STR), +}; +const unsigned int DialogGetPhantom::s_iNumPhantom = sizeof(s_asPhantom) / sizeof(wxString); + + DialogGetPhantom::DialogGetPhantom (wxFrame* pParent, const char* szDefaultPhantom = NULL) : wxDialog (pParent, -1, "Select Phantom", wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION) { @@ -66,13 +86,7 @@ DialogGetPhantom::DialogGetPhantom (wxFrame* pParent, const char* szDefaultPhant pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5); - wxString aListPhantomTitle [5]; - aListPhantomTitle[0] = Phantom::PHM_HERMAN_TITLE_STR; - aListPhantomTitle[1] = Phantom::PHM_BHERMAN_TITLE_STR; - aListPhantomTitle[2] = Phantom::PHM_ROWLAND_TITLE_STR; - aListPhantomTitle[3] = Phantom::PHM_BROWLAND_TITLE_STR; - aListPhantomTitle[4] = Phantom::PHM_UNITPULSE_TITLE_STR; - m_pListBoxPhantom = new wxListBox (this, -1, wxDefaultPosition, wxDefaultSize, 5, aListPhantomTitle, wxLB_SINGLE | wxLB_NEEDED_SB); + m_pListBoxPhantom = new wxListBox (this, -1, wxDefaultPosition, wxDefaultSize, s_iNumPhantom, s_asPhantomTitle, wxLB_SINGLE | wxLB_NEEDED_SB); pTopSizer->Add (m_pListBoxPhantom, 0, wxALL | wxALIGN_CENTER | wxEXPAND); pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5); @@ -91,19 +105,12 @@ DialogGetPhantom::DialogGetPhantom (wxFrame* pParent, const char* szDefaultPhant pTopSizer->SetSizeHints (this); } -string +const wxString& DialogGetPhantom::getPhantom(void) { - string aListPhantom [5]; - aListPhantom[0] = Phantom::PHM_HERMAN_STR; - aListPhantom[1] = Phantom::PHM_BHERMAN_STR; - aListPhantom[2] = Phantom::PHM_ROWLAND_STR;; - aListPhantom[3] = Phantom::PHM_BROWLAND_STR; - aListPhantom[4] = Phantom::PHM_UNITPULSE_STR; - int selection = m_pListBoxPhantom->GetSelection(); if (selection >= 0) - return (aListPhantom[selection]); + return (s_asPhantom[selection]); return (m_sDefaultPhantom); } @@ -276,6 +283,21 @@ DialogGetRasterParameters::getNSamples (void) // DialogGetProjectionParameters ///////////////////////////////////////////////////////////////////// +const wxString DialogGetProjectionParameters::s_asGeometry[] = +{ + wxString(Scanner::GEOMETRY_PARALLEL_STR), + wxString(Scanner::GEOMETRY_EQUILINEAR_STR), + wxString(Scanner::GEOMETRY_EQUIANGULAR_STR), +}; +const wxString DialogGetProjectionParameters::s_asGeometryTitle[] = +{ + wxString(Scanner::GEOMETRY_PARALLEL_TITLE_STR), + wxString(Scanner::GEOMETRY_EQUILINEAR_TITLE_STR), + wxString(Scanner::GEOMETRY_EQUIANGULAR_TITLE_STR), +}; +const unsigned int DialogGetProjectionParameters::s_iNumGeometry = sizeof(s_asGeometry) / sizeof(wxString); + + DialogGetProjectionParameters::DialogGetProjectionParameters (wxFrame* pParent, int iDefaultNDet = 0, int iDefaultNView = 0, int iDefaultNSamples = 1, double dDefaultRotAngle = 1., const char* szDefaultGeometry = NULL) : wxDialog (pParent, -1, "Set Projection Parameters", wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION) { @@ -285,6 +307,9 @@ DialogGetProjectionParameters::DialogGetProjectionParameters (wxFrame* pParent, pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5); + m_pListBoxGeometry = new wxListBox (this, -1, wxDefaultPosition, wxDefaultSize, s_iNumGeometry, s_asGeometryTitle, wxLB_SINGLE | wxLB_NEEDED_SB); + pTopSizer->Add (m_pListBoxGeometry, 0, wxALL | wxALIGN_CENTER | wxEXPAND); + ostringstream os; os << iDefaultNDet; m_pTextCtrlNDet = new wxTextCtrl (this, -1, os.str().c_str(), wxDefaultPosition, wxSize(100, 25), 0); @@ -376,10 +401,14 @@ DialogGetProjectionParameters::getRotAngle (void) return (m_dDefaultRotAngle); } -const string& +const wxString& DialogGetProjectionParameters::getGeometry (void) { - return m_sDefaultGeometry; + int selection = m_pListBoxGeometry->GetSelection(); + if (selection >= 0) + return (s_asGeometry[selection]); + + return m_sDefaultGeometry; } @@ -390,6 +419,32 @@ DialogGetProjectionParameters::getGeometry (void) // DialogGetReconstructionParameters ///////////////////////////////////////////////////////////////////// +const wxString DialogGetReconstructionParameters::s_asFilter[] = +{ + wxString(SignalFilter::FILTER_ABS_BANDLIMIT_STR), + wxString(SignalFilter::FILTER_SHEPP_STR), +}; +const wxString DialogGetReconstructionParameters::s_asFilterTitle[] = +{ + wxString(SignalFilter::FILTER_ABS_BANDLIMIT_TITLE_STR), + wxString(SignalFilter::FILTER_SHEPP_TITLE_STR), +}; +const unsigned int DialogGetReconstructionParameters::s_iNumFilter = sizeof(s_asFilter) / sizeof(wxString); + + +const wxString DialogGetReconstructionParameters::s_asInterp[] = +{ + wxString(Backprojector::INTERP_NEAREST_STR), + wxString(Backprojector::INTERP_LINEAR_STR), +}; +const wxString DialogGetReconstructionParameters::s_asInterpTitle[] = +{ + wxString(Backprojector::INTERP_NEAREST_TITLE_STR), + wxString(Backprojector::INTERP_LINEAR_TITLE_STR), + }; +const unsigned int DialogGetReconstructionParameters::s_iNumInterp = sizeof(s_asInterp) / sizeof(wxString); + + DialogGetReconstructionParameters::DialogGetReconstructionParameters (wxFrame* pParent, int iDefaultXSize = 0, int iDefaultYSize = 0, const char* szDefaultFilterName = NULL, double dDefaultFilterParam = 1., const char* szDefaultFilterMethodName = NULL, int iDefaultZeropad = 3, const char* szDefaultInterpName = NULL, int iDefaultInterpParam = 1, const char* szDefaultBackprojName = NULL) : wxDialog (pParent, -1, "Set Reconstruction Parameters", wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION) { @@ -399,6 +454,12 @@ DialogGetReconstructionParameters::DialogGetReconstructionParameters (wxFrame* p pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5); + m_pListBoxFilter = new wxListBox (this, -1, wxDefaultPosition, wxDefaultSize, s_iNumFilter, s_asFilterTitle, wxLB_SINGLE | wxLB_NEEDED_SB); + pTopSizer->Add (m_pListBoxFilter, 0, wxALL | wxALIGN_CENTER | wxEXPAND); + + m_pListBoxInterp = new wxListBox (this, -1, wxDefaultPosition, wxDefaultSize, s_iNumInterp, s_asInterpTitle, wxLB_SINGLE | wxLB_NEEDED_SB); + pTopSizer->Add (m_pListBoxInterp, 0, wxALL | wxALIGN_CENTER | wxEXPAND); + ostringstream os; os << iDefaultXSize; m_pTextCtrlXSize = new wxTextCtrl (this, -1, os.str().c_str(), wxDefaultPosition, wxSize(100, 25), 0); @@ -428,15 +489,6 @@ DialogGetReconstructionParameters::DialogGetReconstructionParameters (wxFrame* p pGridSizer->Add (m_pTextCtrlInterpParam, 0, wxALIGN_CENTER_VERTICAL); pTopSizer->Add (pGridSizer, 1, wxALL, 10); - wxString aTitlesFilter[4]; - aTitlesFilter[0] = "Abs * Bandlimit"; - aTitlesFilter[1] = "Abs * Hamming"; - aTitlesFilter[2] = "Abs * Hanning"; - aTitlesFilter[3] = "Abs * Cosine"; - - m_pListBoxFilter = new wxListBox (this, -1, wxDefaultPosition, wxSize(-1,-1), 4, aTitlesFilter, wxLB_SINGLE | wxLB_NEEDED_SB); - pTopSizer->Add (m_pListBoxFilter); - m_sDefaultFilterName = szDefaultFilterName; m_sDefaultFilterMethodName = szDefaultFilterMethodName; m_sDefaultInterpName = szDefaultInterpName; @@ -519,25 +571,33 @@ DialogGetReconstructionParameters::getFilterParam (void) return (m_dDefaultFilterParam); } -const string& +const wxString& DialogGetReconstructionParameters::getFilterName (void) { - return m_sDefaultFilterName; + int selection = m_pListBoxFilter->GetSelection(); + if (selection >= 0) + return (s_asFilter[selection]); + + return m_sDefaultFilterName; } -const string& +const wxString& DialogGetReconstructionParameters::getFilterMethodName (void) { return m_sDefaultFilterMethodName; } -const string& +const wxString& DialogGetReconstructionParameters::getInterpName (void) { - return m_sDefaultInterpName; + int selection = m_pListBoxInterp->GetSelection(); + if (selection >= 0) + return (s_asInterp[selection]); + + return m_sDefaultInterpName; } -const string& +const wxString& DialogGetReconstructionParameters::getBackprojName (void) { return m_sDefaultBackprojName; diff --git a/src/dialogs.h b/src/dialogs.h index 6d4d94f..1592947 100644 --- a/src/dialogs.h +++ b/src/dialogs.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: dialogs.h,v 1.4 2000/07/19 04:33:27 kevin Exp $ +** $Id: dialogs.h,v 1.5 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -32,17 +32,22 @@ #include "wx/wx.h" #include + class DialogGetPhantom : public wxDialog { public: DialogGetPhantom (wxFrame* pParent, const char* szDefaultPhantom); virtual ~DialogGetPhantom (void) {} - string getPhantom (void); + const wxString& getPhantom (void); private: wxListBox* m_pListBoxPhantom; - string m_sDefaultPhantom; + wxString m_sDefaultPhantom; + + static const wxString s_asPhantom[]; + static const wxString s_asPhantomTitle[]; + static const unsigned int s_iNumPhantom; }; @@ -96,20 +101,24 @@ class DialogGetProjectionParameters : public wxDialog unsigned int getNView (void); unsigned int getNSamples (void); double getRotAngle (void); - const string& getGeometry(void); + const wxString& getGeometry(void); private: wxTextCtrl* m_pTextCtrlNDet; wxTextCtrl* m_pTextCtrlNView; wxTextCtrl* m_pTextCtrlNSamples; wxTextCtrl* m_pTextCtrlRotAngle; - wxTextCtrl* m_pTextCtrlGeometry; + wxListBox* m_pListBoxGeometry; int m_iDefaultNDet; int m_iDefaultNView; int m_iDefaultNSamples; double m_dDefaultRotAngle; - string m_sDefaultGeometry; + wxString m_sDefaultGeometry; + + static const wxString s_asGeometry[]; + static const wxString s_asGeometryTitle[]; + static const unsigned int s_iNumGeometry; }; @@ -121,23 +130,20 @@ class DialogGetReconstructionParameters : public wxDialog unsigned int getXSize(void); unsigned int getYSize(void); - const string& getFilterName(void); + const wxString& getFilterName(void); double getFilterParam(void); - const string& getFilterMethodName(void); + const wxString& getFilterMethodName(void); unsigned int getZeropad(void); - const string& getInterpName(void); + const wxString& getInterpName(void); unsigned int getInterpParam(void); - const string& getBackprojName(void); + const wxString& getBackprojName(void); private: wxTextCtrl* m_pTextCtrlXSize; wxTextCtrl* m_pTextCtrlYSize; - wxTextCtrl* m_pTextCtrlFilterParam; - wxTextCtrl* m_pTextCtrlFilterMethodName; wxTextCtrl* m_pTextCtrlZeropad; - wxTextCtrl* m_pTextCtrlInterpName; + wxTextCtrl* m_pTextCtrlFilterParam; wxTextCtrl* m_pTextCtrlInterpParam; - wxTextCtrl* m_pTextCtrlBackprojName; wxListBox* m_pListBoxFilter; wxListBox* m_pListBoxFilterMethod; @@ -146,13 +152,29 @@ class DialogGetReconstructionParameters : public wxDialog int m_iDefaultXSize; int m_iDefaultYSize; - string m_sDefaultFilterName; double m_dDefaultFilterParam; - string m_sDefaultFilterMethodName; int m_iDefaultZeropad; - string m_sDefaultInterpName; int m_iDefaultInterpParam; - string m_sDefaultBackprojName; + wxString m_sDefaultFilterName; + wxString m_sDefaultFilterMethodName; + wxString m_sDefaultInterpName; + wxString m_sDefaultBackprojName; + + static const wxString s_asFilter[]; + static const wxString s_asFilterTitle[]; + static const unsigned int s_iNumFilter; + + static const wxString s_asFilterMethod[]; + static const wxString s_asFilterMethodTitle[]; + static const unsigned int s_iNumFilterMethod; + + static const wxString s_asInterp[]; + static const wxString s_asInterpTitle[]; + static const unsigned int s_iNumInterp; + + static const wxString s_asBackproj[]; + static const wxString s_asBackprojTitle[]; + static const unsigned int s_iNumBackproj; }; #endif diff --git a/src/views.cpp b/src/views.cpp index 9f9713e..affcb6f 100644 --- a/src/views.cpp +++ b/src/views.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: views.cpp,v 1.6 2000/07/19 04:33:27 kevin Exp $ +** $Id: views.cpp,v 1.7 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -93,7 +93,7 @@ ImageFileCanvas::OnMouseEvent(wxMouseEvent& event) if (pt.x >= 0 && pt.x < nx && pt.y >= 0 & pt.y < ny) { ostringstream os; - os << "Image value (" << pt.x << "," << pt.y << ") = " << v[pt.x][pt.y] << "\n"; + os << "Image value (" << pt.x << "," << pt.y << ") = " << v[pt.x][ny - 1 - pt.y] << "\n"; *theApp->getLog() << os.str().c_str(); } else *theApp->getLog() << "Mouse out of image range (" << pt.x << "," << pt.y << ")\n"; @@ -201,7 +201,7 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *file_menu = new wxMenu; - file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "&Create Phantom..."); + file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom..."); file_menu->Append(wxID_OPEN, "&Open..."); file_menu->Append(wxID_CLOSE, "&Close"); file_menu->Append(wxID_SAVE, "&Save"); @@ -397,7 +397,7 @@ PhantomView::OnProjections (wxCommandEvent& event) int nView = dialogProjection.getNView(); int nSamples = dialogProjection.getNSamples(); double dRotAngle = dialogProjection.getRotAngle(); - string sGeometry = dialogProjection.getGeometry(); + wxString sGeometry = dialogProjection.getGeometry(); if (nDet > 0 && nView > 0 && sGeometry != "") { const Phantom& rPhantom = GetDocument()->getPhantom(); ProjectionFileDocument* pProjectionDoc = dynamic_cast(theApp->getDocManager()->CreateDocument("untitled.pj", wxDOC_SILENT)); @@ -408,7 +408,7 @@ PhantomView::OnProjections (wxCommandEvent& event) pProjectionDoc->Modify(true); pProjectionDoc->UpdateAllViews(this); ostringstream os; - os << "Projections for " << rPhantom.name() << ": nDet=" << nDet << ", nView=" << nView << ", nSamples=" << nSamples << ", RotAngle=" << dRotAngle << ", Geometry=" << sGeometry << "\n"; + os << "Projections for " << rPhantom.name() << ": nDet=" << nDet << ", nView=" << nView << ", nSamples=" << nSamples << ", RotAngle=" << dRotAngle << ", Geometry=" << sGeometry.c_str() << "\n"; *theApp->getLog() << os.str().c_str(); } } @@ -466,7 +466,7 @@ PhantomView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *file_menu = new wxMenu; - file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "&Create Phantom..."); + file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom..."); file_menu->Append(wxID_OPEN, "&Open..."); file_menu->Append(wxID_CLOSE, "&Close"); @@ -612,13 +612,13 @@ ProjectionFileView::OnReconstruct (wxCommandEvent& event) if (retVal == wxID_OK) { int xSize = dialogReconstruction.getXSize(); int ySize = dialogReconstruction.getYSize(); - string optFilterName = dialogReconstruction.getFilterName(); + wxString optFilterName = dialogReconstruction.getFilterName(); double optFilterParam = dialogReconstruction.getFilterParam(); - string optFilterMethodName = dialogReconstruction.getFilterMethodName(); + wxString optFilterMethodName = dialogReconstruction.getFilterMethodName(); int optZeropad = dialogReconstruction.getZeropad(); - string optInterpName = dialogReconstruction.getInterpName(); + wxString optInterpName = dialogReconstruction.getInterpName(); int optInterpParam = dialogReconstruction.getInterpParam(); - string optBackprojectName = dialogReconstruction.getBackprojName(); + wxString optBackprojectName = dialogReconstruction.getBackprojName(); if (xSize > 0 && ySize > 0) { ImageFileDocument* pReconDoc = dynamic_cast(theApp->getDocManager()->CreateDocument("untitled.if", wxDOC_SILENT)); ImageFile& imageFile = pReconDoc->getImageFile(); @@ -628,7 +628,7 @@ ProjectionFileView::OnReconstruct (wxCommandEvent& event) pReconDoc->Modify(true); pReconDoc->UpdateAllViews(this); ostringstream os; - os << "Reconstruct " << rProj.getFilename() << ": xSize=" << xSize << ", ySize=" << ySize << ", Filter=" << optFilterName << ", FilterParam=" << optFilterParam << ", FilterMethod=" << optFilterMethodName << ", Zeropad=" << optZeropad << ", Interpolation=" << optInterpName << ", InterpolationParam=" << optInterpParam << ", Backprojection=" << optBackprojectName << "\n"; + os << "Reconstruct " << rProj.getFilename() << ": xSize=" << xSize << ", ySize=" << ySize << ", Filter=" << optFilterName.c_str() << ", FilterParam=" << optFilterParam << ", FilterMethod=" << optFilterMethodName.c_str() << ", Zeropad=" << optZeropad << ", Interpolation=" << optInterpName.c_str() << ", InterpolationParam=" << optInterpParam << ", Backprojection=" << optBackprojectName.c_str() << "\n"; *theApp->getLog() << os.str().c_str(); } } @@ -658,7 +658,7 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *file_menu = new wxMenu; - file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "&Create Phantom..."); + file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom..."); file_menu->Append(wxID_OPEN, "&Open..."); file_menu->Append(wxID_CLOSE, "&Close"); diff --git a/tools/phm2if.cpp b/tools/phm2if.cpp index 9b8fd22..ce522b9 100644 --- a/tools/phm2if.cpp +++ b/tools/phm2if.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phm2if.cpp,v 1.1 2000/07/13 07:01:35 kevin Exp $ +** $Id: phm2if.cpp,v 1.2 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -152,7 +152,7 @@ phm2if_main (int argc, char* argv[]) opt_debug = 1; break; case O_TRACE: - if ((opt_trace = convertTraceNameToID(optarg)) == TRACE_INVALID) { + if ((opt_trace = TraceLevel::convertTraceNameToID(optarg)) == TRACE_INVALID) { phm2if_usage(argv[0]); return (1); } diff --git a/tools/phm2pj.cpp b/tools/phm2pj.cpp index 69c6ea5..c465210 100644 --- a/tools/phm2pj.cpp +++ b/tools/phm2pj.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phm2pj.cpp,v 1.1 2000/07/13 07:01:35 kevin Exp $ +** $Id: phm2pj.cpp,v 1.2 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -133,7 +133,7 @@ phm2pj_main (int argc, char* argv[]) break; break; case O_TRACE: - if ((opt_trace = convertTraceNameToID(optarg)) == TRACE_INVALID) { + if ((opt_trace = TraceLevel::convertTraceNameToID(optarg)) == TRACE_INVALID) { phm2pj_usage(argv[0]); return (1); } diff --git a/tools/pjrec.cpp b/tools/pjrec.cpp index df9af1c..dd4ad81 100644 --- a/tools/pjrec.cpp +++ b/tools/pjrec.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: pjrec.cpp,v 1.2 2000/07/15 08:36:13 kevin Exp $ +** $Id: pjrec.cpp,v 1.3 2000/07/20 11:17:31 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -198,7 +198,7 @@ pjrec_main (int argc, char * argv[]) optDebug = 1; break; case O_TRACE: - if ((optTrace = convertTraceNameToID(optarg)) == TRACE_INVALID) { + if ((optTrace = TraceLevel::convertTraceNameToID(optarg)) == TRACE_INVALID) { pjrec_usage(argv[0]); return (1); }