+2.5.1 - Released 12/30/00
+
+12/18/00 Added plotfile class
+
2.5.0 - 12/18/00
First Microsoft Windows GUI version
Modifications for Microsoft Visual C++ compilation.
-noinst_HEADERS=ct.h ezplot.h pol.h sgp.h array2d.h imagefile.h backprojectors.h mpiworld.h fnetorderstream.h phantom.h timer.h sstream_subst scanner.h projections.h ctsupport.h filter.h array2dfile.h trace.h transformmatrix.h procsignal.h reconstruct.h
+noinst_HEADERS=ct.h ezplot.h pol.h sgp.h array2d.h imagefile.h backprojectors.h mpiworld.h fnetorderstream.h phantom.h timer.h sstream_subst scanner.h projections.h ctsupport.h filter.h array2dfile.h trace.h transformmatrix.h procsignal.h reconstruct.h plotfile.h
+
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ct.h,v 1.46 2000/12/17 23:09:46 kevin Exp $
+** $Id: ct.h,v 1.47 2000/12/19 21:37:51 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
#include "procsignal.h"
#include "projections.h"
#include "reconstruct.h"
+#include "plotfile.h"\r
#include "trace.h"
noinst_LIBRARIES = libctsupport.a
INCLUDES=@my_includes@
-libctsupport_a_SOURCES= strfuncs.cpp syserror.cpp fnetorderstream.cpp consoleio.cpp mathfuncs.cpp xform.cpp clip.cpp
+libctsupport_a_SOURCES= strfuncs.cpp syserror.cpp fnetorderstream.cpp consoleio.cpp mathfuncs.cpp xform.cpp clip.cpp plotfile.cpp
EXTRA_DIST=Makefile.nt
# ADD BASE RSC /l 0x409 /i "\wx2\include\wx\msw"\r
# SUBTRACT BASE RSC /i "\wx2\include\wx\msw" /i "\wx2\include"\r
# ADD RSC /l 0x409 /i "\wx2\include\wx\msw"\r
-# SUBTRACT RSC /i "\wx2\include\wx\msw" /i "\wx2\include"\r
\r
!ENDIF \r
\r
<pre>\r
<h1>Build Log</h1>\r
<h3>\r
---------------------Configuration: FFTW2st - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-FFTW2st.lib - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: FFTW2st - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-FFTW2st.lib - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: RFFTW2st - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-RFFTW2st.lib - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: RFFTW2st - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-RFFTW2st.lib - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: ctsim - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-ctsim.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: libctsim - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16.tmp" with contents\r
-[\r
-/nologo /G6 /MTd /W3 /Gm /GR- /GX /ZI /Od /I "..\..\..\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "_DEBUG" /D "HAVE_WXWIN" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c \r
-"C:\ctsim-2.0.6\libctsim\backprojectors.cpp"\r
-]\r
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16.tmp" \r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP17.tmp" with contents\r
-[\r
-/nologo /out:"Debug\libctsim.lib" \r
-".\Debug\array2dfile.obj"\r
-".\Debug\backprojectors.obj"\r
-".\Debug\clip.obj"\r
-".\Debug\consoleio.obj"\r
-".\Debug\ezplot.obj"\r
-".\Debug\ezset.obj"\r
-".\Debug\ezsupport.obj"\r
-".\Debug\filter.obj"\r
-".\Debug\fnetorderstream.obj"\r
-".\Debug\getopt.obj"\r
-".\Debug\getopt1.obj"\r
-".\Debug\imagefile.obj"\r
-".\Debug\mathfuncs.obj"\r
-".\Debug\phantom.obj"\r
-".\Debug\pol.obj"\r
-".\Debug\procsignal.obj"\r
-".\Debug\projections.obj"\r
-".\Debug\reconstruct.obj"\r
-".\Debug\scanner.obj"\r
-".\Debug\sgp.obj"\r
-".\Debug\strfuncs.obj"\r
-".\Debug\syserror.obj"\r
-".\Debug\trace.obj"\r
-".\Debug\transformmatrix.obj"\r
-".\Debug\xform.obj"\r
-]\r
-Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP17.tmp"\r
-<h3>Output Window</h3>\r
-Compiling...\r
-backprojectors.cpp\r
-Creating library...\r
-<h3>\r
--------------------Configuration: ctsim - Win32 Debug--------------------\r
</h3>\r
<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP18.tmp" with contents\r
-[\r
-/nologo /G6 /MTd /W3 /Gm /GR /GX /ZI /Od /I "\wx2\include" /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"2.5.0\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"2.5.0\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c \r
-"C:\ctsim-2.0.6\src\ctsim.cpp"\r
-"C:\ctsim-2.0.6\src\dlgprojections.cpp"\r
-"C:\ctsim-2.0.6\src\dlgreconstruct.cpp"\r
-"C:\ctsim-2.0.6\src\docs.cpp"\r
-"C:\ctsim-2.0.6\src\views.cpp"\r
-]\r
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP18.tmp" \r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP19.tmp" with contents\r
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP70.tmp" with contents\r
[\r
comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
".\Debug\ctsim.obj"\r
"\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"\r
"\wx2\lib\wxd.lib"\r
]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP19.tmp"\r
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP70.tmp"\r
<h3>Output Window</h3>\r
-Compiling...\r
-ctsim.cpp\r
-dlgprojections.cpp\r
-dlgreconstruct.cpp\r
-docs.cpp\r
-views.cpp\r
Linking...\r
-Creating command line "bscmake.exe /nologo /o"Debug/ctsim.bsc" ".\Debug\ctsim.sbr" ".\Debug\dialogs.sbr" ".\Debug\dlgprojections.sbr" ".\Debug\dlgreconstruct.sbr" ".\Debug\docs.sbr" ".\Debug\views.sbr""\r
-Creating browse info file...\r
-<h3>Output Window</h3>\r
\r
\r
\r
<h3>Results</h3>\r
ctsim.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: if1 - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1B.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/if1.pdb" /machine:I386 /out:"Release/if1.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\if1.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1B.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-if1.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: if1 - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1D.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/if1.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/if1.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\if1.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1D.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-if1.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: if2 - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1E.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/if2.pdb" /machine:I386 /out:"Release/if2.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\if2.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1E.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-if2.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: if2 - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP20.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/if2.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/if2.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\if2.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP20.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-if2.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: ifexport - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-ifexport.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: ifexport - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-ifexport.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: ifinfo - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP21.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/ifinfo.pdb" /machine:I386 /out:"Release/ifinfo.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\ifinfo.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP21.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-ifinfo.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: ifinfo - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP23.tmp" with contents\r
-[\r
-rpcrt4.lib comctl32.lib wsock32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcpd.lib libcd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/ifinfo.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /nodefaultlib /out:"Debug/ifinfo.exe" /pdbtype:sept \r
-".\Debug\ifinfo.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP23.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-ifinfo.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: libpng - Win32 LIB--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-libpng.lib - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: libpng - Win32 LIB Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-libpng.lib - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: phm2if - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP24.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/phm2if.pdb" /machine:I386 /out:"Release/phm2if.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\phm2if.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP24.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF\r
-LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-phm2if.exe - 0 error(s), 2 warning(s)\r
-<h3>\r
---------------------Configuration: phm2if - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP26.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/phm2if.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/phm2if.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\phm2if.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP26.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-phm2if.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: phm2pj - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP27.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/phm2pj.pdb" /machine:I386 /out:"Release/phm2pj.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\phm2pj.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP27.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF\r
-LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-phm2pj.exe - 0 error(s), 2 warning(s)\r
-<h3>\r
---------------------Configuration: phm2pj - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP29.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/phm2pj.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/phm2pj.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\phm2pj.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP29.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-phm2pj.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: pj2if - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2A.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/pj2if.pdb" /machine:I386 /out:"Release/pj2if.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\pj2if.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-"\wx2\lib\wx.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2A.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF\r
-LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-pj2if.exe - 0 error(s), 2 warning(s)\r
-<h3>\r
---------------------Configuration: pj2if - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2C.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/pj2if.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/pj2if.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\pj2if.obj"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-"\wx2\lib\wxd.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2C.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-pj2if.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: pjinfo - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2D.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/pjinfo.pdb" /machine:I386 /out:"Release/pjinfo.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\pjinfo.obj"\r
-"\fftw-2.1.3\Win32\FFTW2st\Release\FFTW2st.lib"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-"\fftw-2.1.3\Win32\RFFTW2st\Release\RFFTW2st.lib"\r
-"\wx2\lib\wx.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2D.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF\r
-LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-pjinfo.exe - 0 error(s), 2 warning(s)\r
-<h3>\r
---------------------Configuration: pjinfo - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2F.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/pjinfo.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/pjinfo.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\pjinfo.obj"\r
-"\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-"\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"\r
-"\wx2\lib\wxd.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP2F.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-pjinfo.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: pjrec - Win32 Release--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP30.tmp" with contents\r
-[\r
-wx.lib libctsim.lib zlib.lib comctl32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libpng.lib /nologo /subsystem:console /incremental:no /pdb:"Release/pjrec.pdb" /machine:I386 /out:"Release/pjrec.exe" /libpath:"..\libctsim\Release" /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\wx2\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Release\pjrec.obj"\r
-"\fftw-2.1.3\Win32\FFTW2st\Release\FFTW2st.lib"\r
-"\fftw-2.1.3\Win32\RFFTW2st\Release\RFFTW2st.lib"\r
-"\wx2\lib\wx.lib"\r
-"\ctsim-2.0.6\msvc\libctsim\Release\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP30.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF\r
-LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-pjrec.exe - 0 error(s), 2 warning(s)\r
-<h3>\r
---------------------Configuration: pjrec - Win32 Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP32.tmp" with contents\r
-[\r
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/pjrec.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/pjrec.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" \r
-".\Debug\pjrec.obj"\r
-"\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib"\r
-"\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"\r
-"\wx2\lib\wxd.lib"\r
-"\ctsim-2.0.6\msvc\libctsim\Debug\libctsim.lib"\r
-]\r
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP32.tmp"\r
-<h3>Output Window</h3>\r
-Linking...\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-pjrec.exe - 0 error(s), 0 warning(s)\r
-<h3>\r
---------------------Configuration: wxvc - Win32 LIB Debug--------------------\r
-</h3>\r
-<h3>Command Lines</h3>\r
-\r
-\r
-\r
-<h3>Results</h3>\r
-wxd.lib - 0 error(s), 0 warning(s)\r
</pre>\r
</body>\r
</html>\r
# End Source File\r
# Begin Source File\r
\r
+SOURCE=..\..\libctsupport\plotfile.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
SOURCE=..\..\libctgraphics\pol.cpp\r
# End Source File\r
# Begin Source File\r
# End Source File\r
# Begin Source File\r
\r
+SOURCE=..\..\include\plotfile.h\r
+# End Source File\r
+# Begin Source File\r
+\r
SOURCE=..\..\include\pol.h\r
# End Source File\r
# Begin Source File\r
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.17 2000/12/17 22:30:34 kevin Exp $
+** $Id: ctsim.cpp,v 1.18 2000/12/19 21:37:51 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
#endif
#endif
\r
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.17 2000/12/17 22:30:34 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.18 2000/12/19 21:37:51 kevin Exp $";
class CTSimApp* theApp = NULL;
new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "Phantom doc", "Phantom View", CLASSINFO(PhantomDocument), CLASSINFO(PhantomView));
+ new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plot", "Plot doc", "Plot View", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView));
+
//// Create the main frame window
m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE);
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.h,v 1.8 2000/12/16 06:12:47 kevin Exp $
+** $Id: ctsim.h,v 1.9 2000/12/19 21:37:51 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
IFMENU_FILE_PROPERTIES,
PJMENU_FILE_PROPERTIES,
PHMMENU_FILE_PROPERTIES,
- PJMENU_PROCESS_RECONSTRUCT,
+ PJMENU_PROCESS_RECONSTRUCT,\r
+ IFMENU_PLOT_ROW,\r
+ IFMENU_PLOT_COL,
IFMENU_VIEW_SCALE_AUTO,
IFMENU_VIEW_SCALE_MINMAX,
PHMMENU_PROCESS_RASTERIZE,
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: docs.cpp,v 1.6 2000/12/18 09:55:22 kevin Exp $
+** $Id: docs.cpp,v 1.7 2000/12/19 21:37:51 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
wxDocument::Modify(mod);
}
+
+// PlotFileDocument
+
+IMPLEMENT_DYNAMIC_CLASS(PlotFileDocument, wxDocument)
+
+bool PlotFileDocument::OnOpenDocument(const wxString& filename)
+{
+ if (filename == "untitled.plt") {
+ wxString untitledFilename = theApp->getUntitledFilename();
+ SetFilename (untitledFilename, true);
+ } else {
+ if (! m_plot.fileRead (filename.c_str())) {
+ *theApp->getLog() << "Unable to read plot file " << filename << "\n";
+ return false;
+ }
+ *theApp->getLog() << "Read plot file " << filename << "\n";
+ SetFilename(filename, true);
+ }
+ Modify(false);
+ UpdateAllViews();\r
+ PlotFileView* ifView = dynamic_cast<PlotFileView*>(GetFirstView());\r
+ if (ifView)\r
+ ifView->OnUpdate(ifView, NULL);\r
+
+ return true;
+}
+
+bool PlotFileDocument::OnCloseDocument ()
+{
+ bool bReturn = wxDocument::OnCloseDocument();
+ return bReturn;
+}
+
+bool PlotFileDocument::IsModified(void) const
+{
+ return wxDocument::IsModified();
+}
+
+void PlotFileDocument::Modify(bool mod)
+{
+ wxDocument::Modify(mod);
+}
+
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: docs.h,v 1.5 2000/09/07 01:28:33 kevin Exp $
+** $Id: docs.h,v 1.6 2000/12/19 21:37:51 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
public:
virtual bool OnSaveDocument (const wxString& filename);
virtual bool OnOpenDocument (const wxString& filename);
- virtual bool IsModified (void) const;
+ virtual bool IsModified () const;
virtual bool OnCloseDocument ();
virtual void Modify (bool mod);
- ImageFileDocument (void) {}
- ~ImageFileDocument (void) {}
+ ImageFileDocument () {}
+ ~ImageFileDocument () {}
- const ImageFile& getImageFile(void) const
+ const ImageFile& getImageFile() const
{ return m_imageFile; }
- ImageFile& getImageFile(void)
+ ImageFile& getImageFile()
{ return m_imageFile; }
};
public:
virtual bool OnSaveDocument (const wxString& filename);
virtual bool OnOpenDocument (const wxString& filename);
- virtual bool IsModified (void) const;
+ virtual bool IsModified () const;
virtual bool OnCloseDocument ();
virtual void Modify (bool mod);
- ProjectionFileDocument (void) {}
- ~ProjectionFileDocument (void) {}
+ ProjectionFileDocument () {}
+ ~ProjectionFileDocument () {}
- const Projections& getProjections (void) const
+ const Projections& getProjections () const
{ return m_projectionFile; }
- Projections& getProjections (void)
+ Projections& getProjections ()
{ return m_projectionFile; }
};
wxString m_namePhantom;
public:
- PhantomDocument (void)
+ PhantomDocument ()
: m_idPhantom(Phantom::PHM_INVALID)
{}
- ~PhantomDocument (void)
+ ~PhantomDocument ()
{}
- const int getPhantomID (void) const
+ const int getPhantomID () const
{ return m_idPhantom; }
- const wxString& getPhantomName (void) const
+ const wxString& getPhantomName () const
{ return m_namePhantom; }
- const Phantom& getPhantom (void) const
+ const Phantom& getPhantom () const
{ return m_phantom; }
- Phantom& getPhantom (void)
+ Phantom& getPhantom ()
{ return m_phantom; }
virtual bool OnOpenDocument (const wxString& filename);
virtual bool OnCloseDocument ();
- virtual bool IsModified (void) const;
+ virtual bool IsModified () const;
+ virtual void Modify (bool mod);
+};
+
+class PlotFileDocument: public wxDocument
+{
+ DECLARE_DYNAMIC_CLASS(PlotFileDocument)
+
+private:
+ PlotFile m_plot;
+ wxString m_namePlot;
+
+public:
+ PlotFileDocument ()
+ {}
+
+ ~PlotFileDocument ()
+ {}
+
+ const wxString& getPlotName () const
+ { return m_namePlot; }
+
+ const PlotFile& getPlotFile () const
+ { return m_plot; }
+
+ PlotFile& getPlot ()
+ { return m_plot; }
+
+ virtual bool OnOpenDocument (const wxString& filename);
+ virtual bool OnCloseDocument ();
+ virtual bool IsModified () const;
virtual void Modify (bool mod);
};
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.30 2000/12/18 09:31:26 kevin Exp $
+** $Id: views.cpp,v 1.31 2000/12/19 21:37:51 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
ImageFileCanvas::ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style)
: wxScrolledWindow(frame, -1, pos, size, style)
{
- m_pView = v;
+ m_pView = v;\r
+ m_xCursor = -1;\r
+ m_yCursor = -1;
}
void
{
if (m_pView)
m_pView->OnDraw(& dc);
+}\r
+\r
+void \r
+ImageFileCanvas::DrawRubberBandCursor (wxDC& dc, int x, int y)\r
+{\r
+ const ImageFile& rIF = m_pView->GetDocument()->getImageFile();\r
+ ImageFileArrayConst v = rIF.getArray();\r
+ int nx = rIF.nx();\r
+ int ny = rIF.ny();\r
+\r
+ dc.SetLogicalFunction (wxINVERT);\r
+ dc.SetPen (*wxGREEN_PEN);\r
+ dc.DrawLine (0, y, nx, y);\r
+ dc.DrawLine (x, 0, x, ny);\r
+ dc.SetLogicalFunction (wxCOPY);\r
+}\r
+\r
+bool\r
+ImageFileCanvas::GetCurrentCursor (int& x, int& y)\r
+{\r
+ x = m_xCursor;\r
+ y = m_yCursor;\r
+\r
+ if (m_xCursor >= 0 && m_yCursor >= 0)\r
+ return true;\r
+ else\r
+ return false;\r
}
-
+\r
void
ImageFileCanvas::OnMouseEvent(wxMouseEvent& event)
{
PrepareDC(dc);
wxPoint pt(event.GetLogicalPosition(dc));
-
- if (event.LeftIsDown()) {
- const ImageFile& rIF = m_pView->GetDocument()->getImageFile();
- ImageFileArrayConst v = rIF.getArray();
- int nx = rIF.nx();
- int ny = rIF.ny();
-
- if (pt.x >= 0 && pt.x < nx && pt.y >= 0 && pt.y < ny) {
- std::ostringstream os;
- 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";
-
- }
+\r
+ if (event.RightIsDown()) {\r
+ const ImageFile& rIF = m_pView->GetDocument()->getImageFile();\r
+ ImageFileArrayConst v = rIF.getArray();\r
+ int nx = rIF.nx();\r
+ int ny = rIF.ny();\r
+ \r
+ if (pt.x >= 0 && pt.x < nx && pt.y >= 0 && pt.y < ny) {\r
+ std::ostringstream os;\r
+ os << "Image value (" << pt.x << "," << pt.y << ") = " << v[pt.x][ny - 1 - pt.y] << "\n";\r
+ *theApp->getLog() << os.str().c_str();\r
+ } else\r
+ *theApp->getLog() << "Mouse out of image range (" << pt.x << "," << pt.y << ")\n";\r
+ }\r
+ else if (event.LeftIsDown()) {\r
+ const ImageFile& rIF = m_pView->GetDocument()->getImageFile();\r
+ ImageFileArrayConst v = rIF.getArray();\r
+ int nx = rIF.nx();\r
+ int ny = rIF.ny();\r
+ \r
+ if (pt.x >= 0 && pt.x < nx && pt.y >= 0 && pt.y < ny) {\r
+ if (m_xCursor >= 0 && m_yCursor >= 0) {\r
+ DrawRubberBandCursor (dc, m_xCursor, m_yCursor);\r
+ }\r
+ DrawRubberBandCursor (dc, pt.x, pt.y);\r
+ m_xCursor = pt.x;\r
+ m_yCursor = pt.y;\r
+ std::ostringstream os;\r
+ os << "Selected column" << pt.x << " and row" << pt.y << "\n";\r
+ *theApp->getLog() << os.str().c_str();\r
+ } else\r
+ *theApp->getLog() << "Mouse out of image range (" << pt.x << "," << pt.y << ")\n";\r
+ }\r
}
-
// ImageFileView
IMPLEMENT_DYNAMIC_CLASS(ImageFileView, wxView)
BEGIN_EVENT_TABLE(ImageFileView, wxView)
EVT_MENU(IFMENU_FILE_PROPERTIES, ImageFileView::OnProperties)
EVT_MENU(IFMENU_VIEW_SCALE_MINMAX, ImageFileView::OnScaleMinMax)
-EVT_MENU(IFMENU_VIEW_SCALE_AUTO, ImageFileView::OnScaleAuto)
+EVT_MENU(IFMENU_VIEW_SCALE_AUTO, ImageFileView::OnScaleAuto)\r
+EVT_MENU(IFMENU_PLOT_ROW, ImageFileView::OnPlotRow)
+EVT_MENU(IFMENU_PLOT_COL, ImageFileView::OnPlotCol)\r
END_EVENT_TABLE()
ImageFileView::ImageFileView(void)
wxMenu *view_menu = new wxMenu;
view_menu->Append(IFMENU_VIEW_SCALE_MINMAX, "Display Scale &Set...");
view_menu->Append(IFMENU_VIEW_SCALE_AUTO, "Display Scale &Auto...");
-
+ \r
+ wxMenu *plot_menu = new wxMenu;\r
+ plot_menu->Append (IFMENU_PLOT_ROW, "Plot &Row");\r
+ plot_menu->Append (IFMENU_PLOT_COL, "Plot &Column");\r
+
wxMenu *help_menu = new wxMenu;
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
wxMenuBar *menu_bar = new wxMenuBar;
menu_bar->Append(file_menu, "&File");
- menu_bar->Append(view_menu, "&View");
+ menu_bar->Append(view_menu, "&View");\r
+ menu_bar->Append(plot_menu, "&Plot");
menu_bar->Append(help_menu, "&Help");
subframe->SetMenuBar(menu_bar);
{
if (m_bitmap.Ok())
dc->DrawBitmap(m_bitmap, 0, 0, false);
+\r
+ int xCursor, yCursor;\r
+ if (m_canvas->GetCurrentCursor (xCursor, yCursor))\r
+ m_canvas->DrawRubberBandCursor (*dc, xCursor, yCursor);\r
}
ySize = clamp (ySize, 0, 800);
m_frame->SetClientSize (xSize, ySize);
m_canvas->SetScrollbars(20, 20, nx/20, ny/20);
- m_canvas->SetBackgroundColour(*wxWHITE);
+ m_canvas->SetBackgroundColour(*wxWHITE);\r
}
if (m_canvas)
}
return true;
}
+\r
+#include "wx/plot.h"\r
+\r
+class VectorPlotCurve : wxPlotCurve {\r
+private:\r
+ int m_nPoints;\r
+ std::vector<double> m_points;\r
+\r
+public:\r
+ VectorPlotCurve (const double* const points, int n, double minVal, double maxVal)\r
+ : wxPlotCurve (minVal, minVal, maxVal)\r
+ {\r
+ for (int i = 0; i < n; i++)\r
+ m_points.push_back(points[i]);\r
+ }\r
+\r
+ wxInt32 GetStartX ()\r
+ { return 0; }\r
+\r
+ wxInt32 GetEndX ()\r
+ { return m_nPoints - 1; }\r
+\r
+ double GetY (wxInt32 x)\r
+ { return m_points[x]; }\r
+};\r
+\r
-
+void\r
+ImageFileView::OnPlotRow (wxCommandEvent& event)\r
+{\r
+ int xCursor, yCursor;\r
+ if (! m_canvas->GetCurrentCursor (xCursor, yCursor)) {\r
+ // os << "No row selected. Please use left mouse button on image to select row\n";\r
+ return;\r
+ }\r
+\r
+ const ImageFile& rIF = dynamic_cast<ImageFileDocument*>(GetDocument())->getImageFile();\r
+ ImageFileArrayConst v = rIF.getArray();\r
+ int nx = rIF.nx();\r
+ int ny = rIF.ny();\r
+\r
+ if (v != NULL && yCursor < ny) {\r
+ double* pVec = new double [nx];\r
+ double minVal = v[0][yCursor];\r
+ double maxVal = minVal;\r
+ for (int i = 0; i < nx; i++) {\r
+ pVec[i] = v[i][yCursor];\r
+ if (pVec[i] < minVal)\r
+ minVal = pVec[i];\r
+ else if (pVec[i] > maxVal)\r
+ maxVal = pVec[i];\r
+ }\r
+ VectorPlotCurve* plotCurve = new VectorPlotCurve (pVec, nx, minVal, maxVal);\r
+ wxPlotWindow* plotWindow = new wxPlotWindow (m_canvas, NULL, wxPoint(0,0), wxSize(500,300));\r
+ plotWindow->Add (reinterpret_cast<wxPlotCurve*>(plotCurve));\r
+ plotWindow->Enable(TRUE);\r
+ plotWindow->Show();\r
+ }\r
+\r
+}\r
+
+void\r
+ImageFileView::OnPlotCol (wxCommandEvent& event)\r
+{\r
+ int xCursor, yCursor;\r
+ if (! m_canvas->GetCurrentCursor (xCursor, yCursor)) {\r
+ // os << "No column selected. Please use left mouse button on image to select column\n";\r
+ return;\r
+ }\r
+\r
+ const ImageFile& rIF = dynamic_cast<ImageFileDocument*>(GetDocument())->getImageFile();\r
+ ImageFileArrayConst v = rIF.getArray();\r
+ int nx = rIF.nx();\r
+ int ny = rIF.ny();\r
+\r
+ if (v != NULL && xCursor < nx) {\r
+ double* pVec = new double [ny];\r
+ double minVal = v[xCursor][0];\r
+ double maxVal = minVal;\r
+ for (int i = 0; i < ny; i++) {\r
+ if (minVal < v[xCursor][i])\r
+ minVal = v[xCursor][i];\r
+ else if (maxVal > v[xCursor][i])\r
+ maxVal = v[xCursor][i];\r
+ pVec[i] = v[xCursor][i];\r
+ }\r
+\r
+ VectorPlotCurve* plotCurve = new VectorPlotCurve (pVec, ny, minVal, maxVal);\r
+ wxPlotWindow plotWindow (m_canvas, NULL, wxPoint(0,0), wxSize(500,300));\r
+ plotWindow.Add (reinterpret_cast<wxPlotCurve*>(plotCurve));\r
+ }\r
+}\r
+\r
// PhantomCanvas
return true;
}
+
+
+// PlotFileCanvas
+
+PlotFileCanvas::PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style)
+: wxScrolledWindow(frame, -1, pos, size, style)
+{
+ m_pView = v;
+}
+
+void
+PlotFileCanvas::OnDraw(wxDC& dc)
+{
+ if (m_pView)
+ m_pView->OnDraw(& dc);
+}
+
+// PlotFileView
+
+IMPLEMENT_DYNAMIC_CLASS(PlotFileView, wxView)
+
+BEGIN_EVENT_TABLE(PlotFileView, wxView)
+EVT_MENU(PJMENU_FILE_PROPERTIES, PlotFileView::OnProperties)
+END_EVENT_TABLE()
+
+PlotFileView::PlotFileView(void)
+: wxView(), m_canvas(NULL), m_frame(NULL)
+{
+}
+
+PlotFileView::~PlotFileView(void)
+{
+}
+
+void
+PlotFileView::OnProperties (wxCommandEvent& event)
+{
+ const PlotFile& rProj = GetDocument()->getPlot();
+ std::ostringstream os;\r
+ os << "Columns: " << rProj.getNumColumns() << ", Records: " << rProj.getNumRecords() << "\n";
+ *theApp->getLog() << os.str().c_str();
+ wxMessageDialog dialogMsg (m_frame, os.str().c_str(), "Plot File Properties", wxOK | wxICON_INFORMATION);
+ dialogMsg.ShowModal();
+}
+
+
+PlotFileCanvas*
+PlotFileView::CreateCanvas (wxView *view, wxFrame *parent)
+{
+ PlotFileCanvas* pCanvas;
+ int width, height;
+ parent->GetClientSize(&width, &height);
+
+ pCanvas = new PlotFileCanvas (dynamic_cast<PlotFileView*>(view), parent, wxPoint(0, 0), wxSize(width, height), 0);
+
+ pCanvas->SetBackgroundColour(*wxWHITE);
+ pCanvas->Clear();
+
+ return pCanvas;
+}
+
+wxFrame*
+PlotFileView::CreateChildFrame(wxDocument *doc, wxView *view)
+{
+ wxDocChildFrame *subframe = new wxDocChildFrame(doc, view, theApp->getMainFrame(), -1, "Plot Frame", wxPoint(10, 10), wxSize(500, 300), wxDEFAULT_FRAME_STYLE);
+
+ wxMenu *file_menu = new wxMenu;
+
+ file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...");
+ file_menu->Append(wxID_OPEN, "&Open...");
+ file_menu->Append(wxID_SAVE, "&Save");
+ file_menu->Append(wxID_SAVEAS, "Save &As...");
+ file_menu->Append(wxID_CLOSE, "&Close");
+
+ file_menu->AppendSeparator();
+ file_menu->Append(PJMENU_FILE_PROPERTIES, "P&roperties");
+
+ file_menu->AppendSeparator();
+ file_menu->Append(wxID_PRINT, "&Print...");
+ file_menu->Append(wxID_PRINT_SETUP, "Print &Setup...");
+ file_menu->Append(wxID_PREVIEW, "Print Pre&view");
+
+ wxMenu *help_menu = new wxMenu;
+ help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents");
+ help_menu->AppendSeparator();
+ help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
+
+ wxMenuBar *menu_bar = new wxMenuBar;
+
+ menu_bar->Append(file_menu, "&File");
+ menu_bar->Append(help_menu, "&Help");
+
+ subframe->SetMenuBar(menu_bar);
+
+ subframe->Centre(wxBOTH);
+
+ return subframe;
+}
+
+
+bool
+PlotFileView::OnCreate(wxDocument *doc, long WXUNUSED(flags) )
+{
+ m_frame = CreateChildFrame(doc, this);
+ SetFrame(m_frame);
+
+ int width, height;
+ m_frame->GetClientSize(&width, &height);
+ m_frame->SetTitle ("Plot File");
+ m_canvas = CreateCanvas (this, m_frame);
+
+#ifdef __X__
+ int x, y; // X requires a forced resize
+ m_frame->GetSize(&x, &y);
+ m_frame->SetSize(-1, -1, x, y);
+#endif
+
+ m_frame->Show(true);
+ Activate(true);
+
+ return true;
+}
+
+void
+PlotFileView::OnDraw (wxDC* dc)
+{
+ if (m_bitmap.Ok())
+ dc->DrawBitmap (m_bitmap, 0, 0, false);
+}
+
+
+void
+PlotFileView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) )
+{
+ const PlotFile& rPlot = GetDocument()->getPlotFile();
+ const int iNColumns = rPlot.getNumColumns();\r
+ const int iNRecords = rPlot.getNumRecords();
+ if (iNColumns > 0 && iNRecords > 0) {
+// int xSize, ySize;\r
+// m_frame->SetClientSize (xSize, ySize);
+// m_canvas->SetScrollbars (20, 20, nDet/20, nView/20);
+ }
+
+ if (m_canvas)
+ m_canvas->Refresh();
+}
+
+bool
+PlotFileView::OnClose (bool deleteWindow)
+{
+ if (!GetDocument()->Close())
+ return false;
+
+ m_canvas->Clear();
+ m_canvas->m_pView = NULL;
+ m_canvas = NULL;
+ wxString s(wxTheApp->GetAppName());
+ if (m_frame)
+ m_frame->SetTitle(s);
+ SetFrame(NULL);
+
+ Activate(false);
+
+ if (deleteWindow) {
+ delete m_frame;
+ return true;
+ }
+ return true;
+}
+
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: views.h,v 1.11 2000/12/18 09:31:26 kevin Exp $
+** $Id: views.h,v 1.12 2000/12/19 21:37:51 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
void OnProperties (wxCommandEvent& event);
void OnScaleAuto (wxCommandEvent& event);
void OnScaleMinMax (wxCommandEvent& event);
+ void OnPlotRow (wxCommandEvent& event);\r
+ void OnPlotCol (wxCommandEvent& event);\r
\r
wxFrame* getFrame()\r
{ return m_frame; }\r
class ImageFileCanvas: public wxScrolledWindow
{
+private:\r
+ int m_xCursor;\r
+ int m_yCursor;\r
+\r
public:
ImageFileView* m_pView;
ImageFileCanvas (ImageFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
virtual void OnDraw(wxDC& dc);
void OnMouseEvent(wxMouseEvent& event);
+\r
+ void DrawRubberBandCursor (wxDC& dc, int x, int y);\r
+ bool GetCurrentCursor (int& x, int& y);\r
DECLARE_EVENT_TABLE()
};
};
+class PlotFileCanvas;
+class PlotFileView : public wxView
+{
+ DECLARE_DYNAMIC_CLASS(PlotFileView)
+
+ wxMemoryDC m_memoryDC;
+ wxBitmap m_bitmap;
+
+private:
+ PlotFileCanvas *CreateCanvas(wxView *view, wxFrame *parent);
+ wxFrame *CreateChildFrame(wxDocument *doc, wxView *view);
+
+ PlotFileCanvas *m_canvas;
+ wxFrame *m_frame;
+
+ int m_iDefaultNX;
+ int m_iDefaultNY;
+ int m_iDefaultFilter;
+ int m_iDefaultFilterMethod;
+ double m_dDefaultFilterParam;
+ int m_iDefaultFilterGeneration;
+ int m_iDefaultZeropad;
+ int m_iDefaultInterpolation;
+ int m_iDefaultInterpParam;
+ int m_iDefaultBackprojector;
+ int m_iDefaultTrace;
+
+public:
+ PlotFileView(void);
+ virtual ~PlotFileView(void);
+
+ bool OnCreate(wxDocument *doc, long flags);
+ void OnDraw(wxDC* dc);
+ void OnUpdate(wxView *sender, wxObject *hint = NULL);
+ bool OnClose (bool deleteWindow = true);
+ void OnProperties (wxCommandEvent& event);
+
+ wxFrame* getFrame ()
+ { return m_frame; }
+
+ PlotFileDocument* GetDocument(void)
+ { return dynamic_cast<PlotFileDocument*>(wxView::GetDocument()); }
+
+ DECLARE_EVENT_TABLE()
+};
+
+class PlotFileCanvas: public wxScrolledWindow
+{
+public:
+ PlotFileView* m_pView;
+
+ PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style);
+ virtual void OnDraw(wxDC& dc);
+};
+
+
#endif
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: if2.cpp,v 1.2 2000/12/18 13:39:15 kevin Exp $
+** $Id: if2.cpp,v 1.3 2000/12/19 21:37:51 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
{0, 0, 0, 0}
};
-static const char* g_szIdStr = "$Id: if2.cpp,v 1.2 2000/12/18 13:39:15 kevin Exp $";
+static const char* g_szIdStr = "$Id: if2.cpp,v 1.3 2000/12/19 21:37:51 kevin Exp $";
void
if2_usage (const char *program)
std::cout << std::endl;
std::cout << " infile1 Name of first input IF file\n";
std::cout << " infile2 Name of second input IF file\n";
- std::cout << " outfile Name of output IF file\n";
+ std::cout << " outfile Name of output Image or Plot file\n";
std::cout << " --add Add images\n";
std::cout << " --sub Subtract image 2 from image 1\n";
std::cout << " --mul Multiply images\n";
ImageFile* pim_out = NULL;
std::string in_file1;
std::string in_file2;
- std::string out_file;
+ std::string strOutFile;
int opt_verbose = 0;
int opt_add = 0;
int opt_sub = 0;
int opt_mul = 0;
int opt_comp = 0;
- bool opt_outputFile = false;
+ bool opt_bImageOutputFile = false;
+ bool opt_bPlotOutputFile = false;
int opt_rowPlot = -1;
int opt_columnPlot = -1;
Timer timerProgram;
switch (c) {
case O_ADD:
opt_add = 1;
- opt_outputFile = true;
+ opt_bImageOutputFile = true;
break;
case O_SUB :
opt_sub = 1;
- opt_outputFile = true;
+ opt_bImageOutputFile = true;
break;
case O_MUL:
opt_mul = 1;
- opt_outputFile = true;
+ opt_bImageOutputFile = true;
break;
case O_ROW_PLOT:
opt_rowPlot = strtol(optarg, &endptr, 10);
if (endptr != optarg + strlen(optarg)) {
if2_usage(argv[0]);
}
+ opt_bPlotOutputFile = true;
break;
case O_COLUMN_PLOT:
opt_columnPlot = strtol(optarg, &endptr, 10);
if (endptr != optarg + strlen(optarg)) {
if2_usage(argv[0]);
}
+ opt_bPlotOutputFile = true;
break;
case O_COMP:
opt_comp = 1;
}
}
- if (opt_outputFile && (optind + 3 != argc)) {
+ if ((opt_bImageOutputFile || opt_bPlotOutputFile) && (optind + 3 != argc)) {
if2_usage(argv[0]);
return (1);
}
- else if (! opt_outputFile && optind + 2 != argc) {
+ else if (! (opt_bImageOutputFile || opt_bPlotOutputFile) && optind + 2 != argc) {
if2_usage(argv[0]);
return (1);
}
in_file1 = argv[optind];
in_file2 = argv[optind + 1];
- if (opt_outputFile)
- out_file = argv[optind + 2];
+ if (opt_bImageOutputFile || opt_bPlotOutputFile)
+ strOutFile = argv[optind + 2];
pim_in1 = new ImageFile ();
pim_in2 = new ImageFile ();
ImageFileArray v2 = im_in2.getArray();
ImageFileArray vout = NULL;
- if (opt_outputFile) {
+ if (opt_bImageOutputFile && opt_bPlotOutputFile) {
+ sys_error (ERR_SEVERE, "Both Image and Plot output files can not be selected simultaneously");
+ return (1);
+ }
+ if (opt_bImageOutputFile) {
pim_out = new ImageFile (im_in1.nx(), im_in1.ny());
vout = pim_out->getArray();
}
double d, r, e;
im_in1.comparativeStatistics (im_in2, d, r, e);
std::cout << "d=" << d << ", r=" << r << ", e=" << e << std::endl;
- }\r
+ }
+\r
int i;
if (opt_columnPlot > 0) {
if (opt_columnPlot >= nx || opt_columnPlot >= nx2) {
double* plot_xaxis = new double [nx];
for (i = 0; i < nx; i++)
plot_xaxis[i] = i;
+\r
+ PlotFile plotFile (3, nx);\r
+\r
+ plotFile.addColumn (0, plot_xaxis);\r
+ plotFile.addColumn (1, v1[opt_columnPlot]);\r
+ plotFile.addColumn (2, v2[opt_columnPlot]);\r
+ plotFile.setTitle ("Column Plot");\r
+ plotFile.setXLabel ("Column");\r
+ plotFile.setYLabel ("Pixel Value");\r
+\r
+ plotFile.fileWrite (strOutFile.c_str());\r
+\r
#if HAVE_SGP
SGPDriver driver ("Column Plot");
SGP sgp (driver);
ezplot.addCurve (plot_xaxis, v2[opt_columnPlot], im_in2.ny());
ezplot.plot();
std::cout << "Press enter to continue" << flush;
- cio_kb_getc();\r
-#endif\r
- delete plot_xaxis;
+ cio_kb_getc();
+#endif
+ delete plot_xaxis;
}
if (opt_rowPlot > 0) {
return (1);
}
double* plot_xaxis = new double [ny];
- double* v1Row = new double [nx];\r
- double* v2Row = new double [nx2];
+ double* v1Row = new double [ny];\r
+ double* v2Row = new double [ny2];
for (i = 0; i < ny; i++)
plot_xaxis[i] = i;
- for (i = 0; i < nx; i++)
+ for (i = 0; i < ny; i++)
v1Row[i] = v1[i][opt_rowPlot];
- for (i = 0; i < nx2; i++)
+ for (i = 0; i < ny2; i++)
v2Row[i] = v2[i][opt_rowPlot];
+ PlotFile plotFile (3, ny);
+
+ plotFile.addColumn (0, plot_xaxis);
+ plotFile.addColumn (1, v1Row);
+ plotFile.addColumn (2, v2Row);
+ plotFile.setTitle ("Row Plot");
+ plotFile.setXLabel ("Row");
+ plotFile.setYLabel ("Pixel Value");
+
+ plotFile.fileWrite (strOutFile.c_str());
+
#if HAVE_SGP
SGPDriver driver ("Row Plot");
SGP sgp (driver);
delete v2Row;\r
}
- if (opt_outputFile) {
+ if (opt_bImageOutputFile) {
pim_out->labelsCopy (im_in1, "if2 file 1: ");
pim_out->labelsCopy (im_in2, "if2 file 2: ");
pim_out->labelAdd (Array2dFileLabel::L_HISTORY, strOperation.c_str(), timerProgram.timerEnd());
- pim_out->fileWrite(out_file);
+ pim_out->fileWrite (strOutFile);
}
-
+\r
return (0);
}