3.5.0 - Released 4//01
New Features:
+
+ -- ctsim: Added direct Fourier reconstructions (Thanks to
+ Edgar Angeles for help with understanding FFT symmetry of
+ the projections)
-- ctsim: Added tips to be displayed at startup and via the help menu.
-- ctsim: Added center-detector concept. Allow for detector array
Version 3.5 New Features
+* New reconstruction method: Direct Fourier!
+
* Multithreading for running length processes in background. Also
takes advantage of multiple-CPU's in SMP systems for speed improvements
with parallel processing.
-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 hashtable.h fourier.h ctglobals.h dlgezplot.h interpolator.h ctndicom.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 hashtable.h fourier.h ctglobals.h interpolator.h ctndicom.h nographics.h
+++ /dev/null
-/*****************************************************************************
-** FILE IDENTIFICATION
-**
-** Name: dlgezplot.h
-** Purpose: Headers for EZPlot Dialog
-** Programmer: Kevin Rosenberg
-** Date Started: Jan 2001
-**
-** This is part of the CTSim program
-** Copyright (c) 1983-2001 Kevin Rosenberg
-**
-** $Id: dlgezplot.h,v 1.3 2001/01/28 19:10:18 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
-******************************************************************************/
-
-#if defined(HAVE_WXWINDOWS) && ! defined(__DLGEZPLOT_H_)
-#define __DLGEZPLOT_H_
-
-#ifdef __GNUG__
-#pragma interface "dlgezplot.h"
-#endif
-
-#include "wx/setup.h"
-#include "wx/dialog.h"
-#include "wx/dcmemory.h"
-
-class wxButton;
-class SGP;
-class SGPDriver;
-class EZPlot;
-
-
-class EZPlotControl : public wxPanel
-{
-private:
- DECLARE_DYNAMIC_CLASS (EZPlotControl)
- DECLARE_EVENT_TABLE ()
- EZPlot* m_pEZPlot;
- int m_iClientX; // size of client window
- int m_iClientY;
-
- SGPDriver* m_pSGPDriver;
- SGP* m_pSGP;
- wxDC* m_pDC;
-
-public:
- EZPlotControl (wxWindow *parent, wxWindowID id = -1,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxSTATIC_BORDER,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = "EZPlotCtrl");
-
- virtual ~EZPlotControl();
-
- virtual wxSize GetBestSize() const;
-
- EZPlot* getEZPlot()
- { return m_pEZPlot; }
-
- void OnPaint(wxPaintEvent& event);
-};
-
-
-class EZPlotDialog : public wxDialog
-{
-private:
- wxWindow *m_parentTop; // parent top level window (may be NULL)
- EZPlotControl* m_pEZPlotCtrl;
-
-public:
- EZPlotDialog (wxWindow *parent = NULL, bool bCancelButton = false);
-
- ~EZPlotDialog();
-
- EZPlot* getEZPlot ()
- { if (m_pEZPlotCtrl) return m_pEZPlotCtrl->getEZPlot(); else return NULL; }
-};
-
-#endif
-
--- /dev/null
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+** Name: nographics.h
+** Purpose: Headers for empty duplicate of graphics functions
+** Programmer: Kevin Rosenberg
+** Date Started: Mar 2001
+**
+** This is part of the CTSim program
+** Copyright (c) 1983-2001 Kevin Rosenberg
+**
+** $Id: nographics.h,v 1.1 2001/03/29 21:25:49 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
+******************************************************************************/
+
+#ifndef __NOGRAPHICS_H_
+#define __NOGRAPHICS_H_
+
+#ifdef __GNUG__
+#pragma interface "nographics.h"
+#endif
+
+#ifdef HAVE_WXWINDOWS
+class EZPlot;
+class wxWindow;
+class EZPlotDialog
+{
+private:
+ void* m_pDummy;
+
+public:
+ EZPlotDialog (wxWindow *parent = NULL, bool bCancelButton = false);
+
+ EZPlot* getEZPlot ();
+ int ShowModal();
+};
+#endif
+
+#endif
+
noinst_LIBRARIES = libctgraphics.a
-libctgraphics_a_SOURCES=ezplot.cpp ezset.cpp pol.cpp sgp.cpp transformmatrix.cpp dlgezplot.cpp
+libctgraphics_a_SOURCES=ezplot.cpp ezset.cpp pol.cpp sgp.cpp transformmatrix.cpp
INCLUDES=@my_includes@
EXTRA_DIST=Makefile.nt
+++ /dev/null
-/*****************************************************************************
-** FILE IDENTIFICATION
-**
-** Name: dlgezplot.cpp
-** Purpose: EZPlot Dialog
-** Programmer: Kevin Rosenberg
-** Date Started: Jan 2001
-**
-** This is part of the CTSim program
-** Copyright (c) 1983-2001 Kevin Rosenberg
-**
-** $Id: dlgezplot.cpp,v 1.4 2001/01/27 21:02:20 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
-******************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef HAVE_WXWINDOWS
-
-#ifdef __GNUG__
-#pragma implementation "dlgezplot.h"
-#endif
-
-// For compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#include "wx/utils.h"
-#include "wx/frame.h"
-#include "wx/button.h"
-#include "wx/stattext.h"
-#include "wx/layout.h"
-#include "wx/event.h"
-#include "wx/intl.h"
-#include "wx/settings.h"
-#include "wx/dcclient.h"
-#include "wx/timer.h"
-#endif
-
-#include "ct.h"
-#include "../src/ctsim.h"
-#include "dlgezplot.h"
-
-
-static const int LAYOUT_X_MARGIN = 4;
-static const int LAYOUT_Y_MARGIN = 4;
-
-BEGIN_EVENT_TABLE(EZPlotControl, wxPanel)
-EVT_PAINT(EZPlotControl::OnPaint)
-END_EVENT_TABLE()
-
-IMPLEMENT_CLASS(EZPlotControl, wxPanel)
-
-
-EZPlotControl::EZPlotControl (wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
- long style, const wxValidator& validator, const wxString& name)
- : m_pEZPlot(0), m_pSGPDriver(0), m_pSGP(0), m_pDC(0)
-{
- Create(parent, id, pos, size, style, name);
-
- SetSize (GetBestSize());
-
- m_pEZPlot = new EZPlot;
-}
-
-wxSize
-EZPlotControl::GetBestSize () const
-{
- return wxSize (500,500);
-}
-
-EZPlotControl::~EZPlotControl()
-{
- delete m_pEZPlot;
- delete m_pSGP;
- delete m_pSGPDriver;
- delete m_pDC;
-}
-
-void
-EZPlotControl::OnPaint (wxPaintEvent& event)
-{
- wxPaintDC dc(this);
- GetClientSize (&m_iClientX, &m_iClientY);
- m_pSGPDriver = new SGPDriver (&dc, m_iClientX, m_iClientY);
- m_pSGP = new SGP (*m_pSGPDriver);
- m_pSGP->setTextPointSize(10);
-// m_pSGP->setViewport (0, 0, 1., 0.5); // for debugging testing only
- if (m_pEZPlot && m_pSGP) {
- m_pSGP->eraseWindow();
- m_pEZPlot->plot (m_pSGP);
- }
-}
-
-
-EZPlotDialog::EZPlotDialog (wxWindow *parent, bool bCancelButton)
-: wxDialog((parent ? parent : theApp->getMainFrame()), -1, wxString("EZPlot"), wxDefaultPosition, wxDefaultSize, wxDIALOG_MODAL),
- m_parentTop(0)
-{
- if (! parent)
- parent = theApp->getMainFrame();
-
- m_parentTop = parent;
- while ( m_parentTop && m_parentTop->GetParent() )
- m_parentTop = m_parentTop->GetParent();
-
- wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
-
- pTopSizer->Add (m_pEZPlotCtrl = new EZPlotControl (this), 0, wxALIGN_CENTER | wxALL, 5);
-
- wxBoxSizer* pButtonSizer = new wxBoxSizer (wxHORIZONTAL);
- wxButton* pButtonOk = new wxButton (this, wxID_OK, "Ok");
- pButtonSizer->Add (pButtonOk, 0, wxEXPAND | wxALL, 10);
- if (bCancelButton) {
- wxButton* pButtonCancel = new wxButton (this, wxID_CANCEL, "Cancel");
- pButtonSizer->Add (pButtonCancel, 0, wxEXPAND | wxALL, 10);
- }
- pTopSizer->Add (pButtonSizer, 0, wxALIGN_CENTER);
-
- SetAutoLayout (true);
- SetSizer (pTopSizer);
- pTopSizer->Fit (this);
- pTopSizer->SetSizeHints (this);
-}
-
-
-
-/////////////////////////////////////////////////////
-// destruction
-
-EZPlotDialog::~EZPlotDialog()
-{
- if ( m_parentTop )
- m_parentTop->Enable(TRUE);
-}
-
-
-#endif // HAVE_WXWINDOWS
/*****************************************************************************
** File IDENTIFICATION
**
-** Name: filter.cpp
-** Purpose: Routines for signal-procesing filters
-** Progammer: Kevin Rosenberg
-** Date Started: Aug 1984
+** Name: procsignal.cpp
+** Purpose: Routines for processing signals and projections
+** Progammer: Kevin Rosenberg
+** Date Started: Aug 1984
**
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: procsignal.cpp,v 1.30 2001/03/21 21:45:31 kevin Exp $
+** $Id: procsignal.cpp,v 1.31 2001/03/29 21:25:49 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 "ct.h"
#ifdef HAVE_WXWINDOWS
-#include "dlgezplot.h"
+#include "nographics.h"
#endif
// FilterMethod ID/Names
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: projections.cpp,v 1.71 2001/03/28 16:53:43 kevin Exp $
+** $Id: projections.cpp,v 1.72 2001/03/29 21:25:49 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
DetectorValue* detval = getDetectorArray(iView).detValues();
LinearInterpolator<DetectorValue> projInterp (detval, m_nDet);
for (unsigned int iDet = 0; iDet < iInterpDet; iDet++) {
-// double dInterpPos = iInterpDet * dInterpScale;
double dInterpPos = (m_nDet / 2.) + (iDet - dMidPoint) * dInterpScale;
- pcIn[iDet].re = projInterp.interpolate (dInterpPos) * PI * SQRT2;
+ pcIn[iDet].re = projInterp.interpolate (dInterpPos) * dInterpScale;
pcIn[iDet].im = 0;
}
Fourier::shuffleFourierToNaturalOrder (pcIn, iInterpDet);
###############################################################################
-Project: "ThreadVC"=..\..\wx2.2.5\samples\thread\ThreadVC.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
Project: "ctn_lib"=..\..\dicom\ctn\winctn\ctn_lib\ctn_lib.dsp - Package Owner=<4>
Package=<5>
Project_Dep_Name RFFTW2st
End Project Dependency
Begin Project Dependency
+ Project_Dep_Name ctn_lib
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name jpeg
End Project Dependency
Begin Project Dependency
Project_Dep_Name png
End Project Dependency
Begin Project Dependency
+ Project_Dep_Name tiff
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name wxvc
End Project Dependency
Begin Project Dependency
Begin Project Dependency
Project_Dep_Name zlib
End Project Dependency
- Begin Project Dependency
- Project_Dep_Name tiff
- End Project Dependency
}}}
###############################################################################
###############################################################################
-Project: "jpeg"=..\..\wx2.2.5\src\jpeg\JpegVC.dsp - Package Owner=<4>
+Project: "jpeg"=..\..\wx2.2.6\src\jpeg\JpegVC.dsp - Package Owner=<4>
Package=<5>
{{{
###############################################################################
-Project: "png"=..\..\wx2.2.5\src\png\PngVC.dsp - Package Owner=<4>
+Project: "png"=..\..\wx2.2.6\src\png\PngVC.dsp - Package Owner=<4>
Package=<5>
{{{
###############################################################################
-Project: "tiff"=..\..\wx2.2.5\src\tiff\TiffVC.dsp - Package Owner=<4>
+Project: "tiff"=..\..\wx2.2.6\src\tiff\TiffVC.dsp - Package Owner=<4>
Package=<5>
{{{
###############################################################################
-Project: "wxvc"=..\..\wx2.2.5\src\wxvc.dsp - Package Owner=<4>
+Project: "wxvc"=..\..\wx2.2.6\src\wxvc.dsp - Package Owner=<4>
Package=<5>
{{{
###############################################################################
-Project: "xpm"=..\..\wx2.2.5\src\xpm\XpmVC.dsp - Package Owner=<4>
+Project: "xpm"=..\..\wx2.2.6\src\xpm\XpmVC.dsp - Package Owner=<4>
Package=<5>
{{{
###############################################################################
-Project: "zlib"=..\..\wx2.2.5\src\zlib\ZlibVC.dsp - Package Owner=<4>
+Project: "zlib"=..\..\wx2.2.6\src\zlib\ZlibVC.dsp - Package Owner=<4>
Package=<5>
{{{
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /I "\dicom\ctn\include" /D "NDEBUG" /D "__WXWIN__" /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=\"3.1.0\" /D "HAVE_CTN_DICOM" /FR /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.6\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /I "\dicom\ctn\include" /D "NDEBUG" /D "__WXWIN__" /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 "HAVE_CTN_DICOM" /D CTSIMVERSION=\"3.5.0\" /FR /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /i "\wx2.2.5\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "\wx2.2.6\include" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wsock32.lib tiff.lib jpeg.lib png.lib zlib.lib xpm.lib comctl32.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 opengl32.lib glu32.lib htmlhelp.lib ctn_lib.lib /nologo /subsystem:windows /machine:I386 /libpath:"\wx2.2.5\lib" /libpath:"\dicom\ctn\winctn\ctn_lib\Release"
+# ADD LINK32 wsock32.lib tiff.lib jpeg.lib png.lib zlib.lib xpm.lib comctl32.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 opengl32.lib glu32.lib htmlhelp.lib ctn_lib.lib /nologo /subsystem:windows /machine:I386 /libpath:"\wx2.2.6\lib" /libpath:"\dicom\ctn\winctn\ctn_lib\Release"
!ELSEIF "$(CFG)" == "ctsim - Win32 Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /I "\dicom\ctn\include" /D VERSION=\"3.0.0beta1\" /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=\"3.1.0\" /D "HAVE_CTN_DICOM" /FR /YX"ctsim.h" /FD /GZ /c
+# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.6\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /I "\dicom\ctn\include" /D "_DEBUG" /D CTSIMVERSION=\"3.5.0\" /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 "HAVE_CTN_DICOM" /FR /YX"ctsim.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i "\wx2.2.5\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "\wx2.2.6\include" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 winmm.lib rpcrt4.lib ws2_32.lib ../libctsim/Debug/libctsim.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib wxd.lib xpmd.lib tiffd.lib zlibd.lib pngd.lib comctl32.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 opengl32.lib glu32.lib htmlhelp.lib ctn_lib.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"\wx2.2.5\lib" /libpath:"\dicom\ctn\winctn\ctn_lib\Debug"
+# ADD LINK32 winmm.lib rpcrt4.lib ws2_32.lib ../libctsim/Debug/libctsim.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib wxd.lib xpmd.lib tiffd.lib zlibd.lib pngd.lib comctl32.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 opengl32.lib glu32.lib htmlhelp.lib ctn_lib.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"\wx2.2.6\lib" /libpath:"\dicom\ctn\winctn\ctn_lib\Debug"
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# End Source File
# Begin Source File
+SOURCE=..\..\src\dlgezplot.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\src\dlgprojections.cpp
# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\"
# End Source File
# End Source File
# Begin Source File
+SOURCE=..\..\src\dlgezplot.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\src\dlgprojections.h
# End Source File
# Begin Source File
<pre>
<h1>Build Log</h1>
<h3>
---------------------Configuration: libctsim - Win32 Debug--------------------
+--------------------Configuration: ctsim - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP7D.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB8.tmp" with contents
[
-/nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "..\..\..\wx2.2.5\src\png" /I "..\..\..\wx2.2.5\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /I "\dicom\ctn\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__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "HAVE_CTN_DICOM" /D VERSION=\"3.1.0\" /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
-"C:\ctsim\libctsim\projections.cpp"
+/nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.6\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /I "\dicom\ctn\include" /D "NDEBUG" /D "__WXWIN__" /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 "HAVE_CTN_DICOM" /D CTSIMVERSION=\"3.5.0\" /FR"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"C:\ctsim\src\dlgezplot.cpp"
]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP7D.tmp"
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP7E.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB8.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB9.tmp" with contents
[
-/nologo /out:"Debug\libctsim.lib"
-.\Debug\array2dfile.obj
-.\Debug\backprojectors.obj
-.\Debug\clip.obj
-.\Debug\consoleio.obj
-.\Debug\ctndicom.obj
-.\Debug\dlgezplot.obj
-.\Debug\ezplot.obj
-.\Debug\ezset.obj
-.\Debug\ezsupport.obj
-.\Debug\filter.obj
-.\Debug\fnetorderstream.obj
-.\Debug\fourier.obj
-.\Debug\getopt.obj
-.\Debug\getopt1.obj
-.\Debug\globalvars.obj
-.\Debug\hashtable.obj
-.\Debug\imagefile.obj
-.\Debug\interpolator.obj
-.\Debug\mathfuncs.obj
-.\Debug\phantom.obj
-.\Debug\plotfile.obj
-.\Debug\pol.obj
-.\Debug\procsignal.obj
-.\Debug\projections.obj
-.\Debug\reconstruct.obj
-.\Debug\scanner.obj
-.\Debug\sgp.obj
-.\Debug\strfuncs.obj
-.\Debug\syserror.obj
-.\Debug\trace.obj
-.\Debug\transformmatrix.obj
-.\Debug\xform.obj
+wsock32.lib tiff.lib jpeg.lib png.lib zlib.lib xpm.lib comctl32.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 opengl32.lib glu32.lib htmlhelp.lib ctn_lib.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/ctsim.pdb" /machine:I386 /out:"Release/ctsim.exe" /libpath:"\wx2.2.6\lib" /libpath:"\dicom\ctn\winctn\ctn_lib\Release"
+.\Release\backgroundmgr.obj
+.\Release\backgroundsupr.obj
+.\Release\ctsim.obj
+.\Release\dialogs.obj
+.\Release\dlgezplot.obj
+.\Release\dlgprojections.obj
+.\Release\dlgreconstruct.obj
+.\Release\docs.obj
+.\Release\graph3dview.obj
+.\Release\threadproj.obj
+.\Release\threadraster.obj
+.\Release\threadrecon.obj
+.\Release\tips.obj
+.\Release\views.obj
+.\Release\ctsim.res
+\ctsim\msvc\libctsim\Release\libctsim.lib
+"\fftw-2.1.3\Win32\FFTW2st\Release\FFTW2st.lib"
+"\fftw-2.1.3\Win32\RFFTW2st\Release\RFFTW2st.lib"
+\dicom\ctn\winctn\ctn_lib\Release\ctn_lib.lib
+\wx2.2.6\lib\jpeg.lib
+\wx2.2.6\lib\png.lib
+\wx2.2.6\lib\tiff.lib
+\wx2.2.6\lib\wx.lib
+\wx2.2.6\lib\xpm.lib
+\wx2.2.6\lib\zlib.lib
]
-Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP7E.tmp"
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB9.tmp"
<h3>Output Window</h3>
Compiling...
-projections.cpp
-Creating library...
-<h3>
---------------------Configuration: ctsim - Win32 Debug--------------------
-</h3>
-<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP7F.tmp" with contents
-[
-/nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /I "\dicom\ctn\include" /D VERSION=\"3.0.0beta1\" /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=\"3.1.0\" /D "HAVE_CTN_DICOM" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX"ctsim.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
-"C:\ctsim\src\views.cpp"
-]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP7F.tmp"
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP80.tmp" with contents
-[
-winmm.lib rpcrt4.lib ws2_32.lib ../libctsim/Debug/libctsim.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib wxd.lib xpmd.lib tiffd.lib zlibd.lib pngd.lib comctl32.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 opengl32.lib glu32.lib htmlhelp.lib ctn_lib.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"\wx2.2.5\lib" /libpath:"\dicom\ctn\winctn\ctn_lib\Debug"
-.\Debug\backgroundmgr.obj
-.\Debug\backgroundsupr.obj
-.\Debug\ctsim.obj
-.\Debug\dialogs.obj
-.\Debug\dlgprojections.obj
-.\Debug\dlgreconstruct.obj
-.\Debug\docs.obj
-.\Debug\graph3dview.obj
-.\Debug\threadproj.obj
-.\Debug\threadraster.obj
-.\Debug\threadrecon.obj
-.\Debug\tips.obj
-.\Debug\views.obj
-.\Debug\ctsim.res
-\ctsim\msvc\libctsim\Debug\libctsim.lib
-"\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib"
-"\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"
-\wx2.2.5\lib\jpegd.lib
-\wx2.2.5\lib\pngd.lib
-\wx2.2.5\lib\wxd.lib
-\wx2.2.5\lib\xpmd.lib
-\wx2.2.5\lib\zlibd.lib
-\wx2.2.5\lib\tiffd.lib
-]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP80.tmp"
-<h3>Output Window</h3>
-Compiling...
-views.cpp
+dlgezplot.cpp
Linking...
+LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF
<h3>Results</h3>
-ctsim.exe - 0 error(s), 0 warning(s)
+ctsim.exe - 0 error(s), 1 warning(s)
</pre>
</body>
</html>
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "NDEBUG" /D VERSION=\"3.0.4\" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "\wx2.2.6\include" /D "NDEBUG" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D VERSION=\"3.5.0\" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "_DEBUG" /D VERSION=\"3.0.4\" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "\wx2.2.6\include" /D "_DEBUG" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D VERSION=\"3.5.0\" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# End Source File
# Begin Source File
+SOURCE=..\..\tools\nographics.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\tools\phm2if.cpp
# End Source File
# Begin Source File
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\tools\nographics.h
+# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /I "\dicom\ctn\include" /D "NDEBUG" /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__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "HAVE_CTN_DICOM" /D VERSION=\"3.1.0\" /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.6\include" /I "\dicom\ctn\include" /D "NDEBUG" /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__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "HAVE_CTN_DICOM" /D VERSION=\"3.1.0\" /YX /FD /c
# SUBTRACT CPP /X
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "..\..\..\wx2.2.5\src\png" /I "..\..\..\wx2.2.5\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /I "\dicom\ctn\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__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "HAVE_CTN_DICOM" /D VERSION=\"3.1.0\" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "..\..\..\wx2.2.5\src\png" /I "..\..\..\wx2.2.5\src\zlib" /I "\wx2.2.6\src\png" /I "\wx2.2.6\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.6\include" /I "\dicom\ctn\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__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "HAVE_CTN_DICOM" /D VERSION=\"3.1.0\" /FR /YX /FD /GZ /c
# SUBTRACT CPP /X
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
# End Source File
# Begin Source File
-SOURCE=..\..\libctgraphics\dlgezplot.cpp
-# End Source File
-# Begin Source File
-
SOURCE=..\..\libctgraphics\ezplot.cpp
!IF "$(CFG)" == "libctsim - Win32 Release"
# End Source File
# Begin Source File
-SOURCE=..\..\include\dlgezplot.h
-# End Source File
-# Begin Source File
-
SOURCE=..\..\include\ezplot.h
# End Source File
# Begin Source File
dlgreconstruct.h graph3dview.cpp graph3dview.h ctsim-map.h ctsim.xpm \
splash.xpm tips.cpp tips.h threadrecon.cpp threadrecon.h backgroundmgr.cpp \
backgroundmgr.h backgroundsupr.cpp backgroundsupr.h threadproj.cpp \
-threadproj.h threadraster.cpp threadraster.h
+threadproj.h threadraster.cpp threadraster.h dlgezplot.cpp dlgezplot.h
ctsim_DEPENDENCIES=../libctgraphics/libctgraphics.a ../libctsupport/libctsupport.a ../libctsim/libctsim.a ../include/ct.h
ctsim_LDADD=-L../libctgraphics -L../libctsupport -L../libctsim @ctlibs@
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.99 2001/03/21 21:45:31 kevin Exp $
+** $Id: ctsim.cpp,v 1.100 2001/03/29 21:25:50 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
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.99 2001/03/21 21:45:31 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.100 2001/03/29 21:25:50 kevin Exp $";
struct option CTSimApp::ctsimOptions[] =
{
{
long lFreeMem = ::wxGetFreeMemory() / (1024L * 1024L);
wxString strOSDesc = ::wxGetOsDescription();
- *theApp->getLog() << "Operation System: " << strOSDesc;
+ *theApp->getLog() << "Operating System: " << strOSDesc;
if (lFreeMem > 0)
*theApp->getLog() << ", Free Memory: " << lFreeMem << " MB";
+ *theApp->getLog() << ", wxWindows: " << wxVERSION_STRING;
+#if defined(DEBUG)
+ *theApp->getLog() << ", Debug version";
+#else
+ *theApp->getLog() << ", Release version";
+#endif
+
*theApp->getLog() << "\n";
wxBitmap bmp (splash);
msg += "Author: Kevin Rosenberg <kevin@rosenberg.net>\nUsage: ctsim [files-to-open..] [--help]";
wxMessageBox(msg, "About CTSim", wxOK | wxICON_INFORMATION, this);
+ *theApp->getLog() << msg << "\n";
}
}
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: dialogs.cpp,v 1.52 2001/03/13 04:44:25 kevin Exp $
+** $Id: dialogs.cpp,v 1.53 2001/03/29 21:25:50 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
DialogGetRasterParameters::DialogGetRasterParameters
(wxWindow* pParent, int iDefaultXSize, int iDefaultYSize, int iDefaultNSamples, double dDefaultViewRatio)
-: wxDialog (pParent, -1, _T("Set Rasterization Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
+: wxDialog (pParent, -1, _T("Rasterization Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
{
wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
- pTopSizer->Add (new wxStaticText (this, -1, "Set Rasterization Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
+ pTopSizer->Add (new wxStaticText (this, -1, "Rasterization Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5);
(wxWindow* pParent, int iDefaultNDet, int iDefaultNView, int iDefaultNSamples,
double dDefaultRotAngle, double dDefaultFocalLength, double dDefaultCenterDetectorLength,
double dDefaultViewRatio, double dDefaultScanRatio, int iDefaultGeometry, int iDefaultTrace)
-: wxDialog (pParent, -1, _T("Set Projection Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
+: wxDialog (pParent, -1, _T("Projection Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
{
wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
m_iDefaultTrace = iDefaultTrace;
m_iDefaultGeometry = iDefaultGeometry;
- pTopSizer->Add (new wxStaticText (this, -1, "Set Projection Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
+ pTopSizer->Add (new wxStaticText (this, -1, "Projection Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5);
int iDefaultFilterMethodID, int iDefaultFilterGenerationID, int iDefaultZeropad,
int iDefaultInterpID, int iDefaultInterpParam, int iDefaultBackprojectID, int iTrace,
ReconstructionROI* pDefaultROI)
-: wxDialog (pParent, -1, _T("Set Reconstruction Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
+: wxDialog (pParent, -1, _T("Reconstruction Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
{
wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
m_dDefaultRoiYMin = pDefaultROI->m_dYMin;
m_dDefaultRoiYMax = pDefaultROI->m_dYMax;
- pTopSizer->Add (new wxStaticText (this, -1, "Set Reconstruction Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
+ pTopSizer->Add (new wxStaticText (this, -1, "Filtered Backprojection Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5);
wxFlexGridSizer* pGridSizer = NULL;
DialogGetFilterParameters::DialogGetFilterParameters (wxWindow* pParent, int iDefaultXSize, int iDefaultYSize, int iDefaultFilterID, double dDefaultFilterParam, double dDefaultBandwidth, int iDefaultDomainID, double dDefaultInputScale, double dDefaultOutputScale)
-: wxDialog (pParent, -1, _T("Set Filter Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
+: wxDialog (pParent, -1, _T("Filter Parameters"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
{
wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
- pTopSizer->Add (new wxStaticText (this, -1, "Set Filter Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
+ pTopSizer->Add (new wxStaticText (this, -1, "Filter Parameters"), 0, wxALIGN_CENTER | wxTOP | wxLEFT | wxRIGHT, 5);
pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5);
wxFlexGridSizer* pGridSizer = new wxFlexGridSizer (2);
m_pTextCtrlYSize = new wxTextCtrl (this, -1, osYSize.str().c_str(), wxDefaultPosition, wxSize(100, 25), 0);
pTextGridSizer->Add (new wxStaticText (this, -1, "Y Size"), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
pTextGridSizer->Add (m_pTextCtrlYSize, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
-#ifdef DEBUG
- if (iDefaultZeropad >= 0) {
+ if (m_iDefaultZeropad >= 0) {
std::ostringstream osZeropad;
osZeropad << iDefaultZeropad;
m_pTextCtrlZeropad = new wxTextCtrl (this, -1, osZeropad.str().c_str(), wxDefaultPosition, wxSize(100, 25), 0);
pTextGridSizer->Add (new wxStaticText (this, -1, "Zeropad"), 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
pTextGridSizer->Add (m_pTextCtrlZeropad, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
}
-#endif
pGridSizer->Add (pTextGridSizer, 0, wxALIGN_CENTER | wxALL);
unsigned int
DialogGetConvertPolarParameters::getZeropad ()
{
-#ifdef DEBUG
- wxString strCtrl = m_pTextCtrlZeropad->GetValue();
- unsigned long lValue;
- if (strCtrl.ToULong (&lValue))
- return lValue;
- else
- return (m_iDefaultZeropad);
-#else
- return 0;
-#endif
+ if (m_iDefaultZeropad >= 0) {
+ wxString strCtrl = m_pTextCtrlZeropad->GetValue();
+ unsigned long lValue;
+ if (strCtrl.ToULong (&lValue))
+ return lValue;
+ else
+ return (m_iDefaultZeropad);
+ } else
+ return 0;
}
const char*
--- /dev/null
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+** Name: dlgezplot.cpp
+** Purpose: EZPlot Dialog
+** Programmer: Kevin Rosenberg
+** Date Started: Jan 2001
+**
+** This is part of the CTSim program
+** Copyright (c) 1983-2001 Kevin Rosenberg
+**
+** $Id: dlgezplot.cpp,v 1.4 2001/03/29 21:25:50 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
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_WXWINDOWS
+
+#ifdef __GNUG__
+#pragma implementation "dlgezplot.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/utils.h"
+#include "wx/frame.h"
+#include "wx/button.h"
+#include "wx/stattext.h"
+#include "wx/layout.h"
+#include "wx/event.h"
+#include "wx/intl.h"
+#include "wx/settings.h"
+#include "wx/dcclient.h"
+#include "wx/timer.h"
+#endif
+
+#include "ct.h"
+#include "../src/ctsim.h"
+#include "dlgezplot.h"
+
+
+static const int LAYOUT_X_MARGIN = 4;
+static const int LAYOUT_Y_MARGIN = 4;
+
+BEGIN_EVENT_TABLE(EZPlotControl, wxPanel)
+EVT_PAINT(EZPlotControl::OnPaint)
+END_EVENT_TABLE()
+
+IMPLEMENT_CLASS(EZPlotControl, wxPanel)
+
+
+EZPlotControl::EZPlotControl (wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
+ long style, const wxValidator& validator, const wxString& name)
+ : m_pEZPlot(0), m_pSGPDriver(0), m_pSGP(0), m_pDC(0)
+{
+ Create(parent, id, pos, size, style, name);
+
+ SetSize (GetBestSize());
+
+ m_pEZPlot = new EZPlot;
+}
+
+wxSize
+EZPlotControl::GetBestSize () const
+{
+ return wxSize (500,500);
+}
+
+EZPlotControl::~EZPlotControl()
+{
+ delete m_pEZPlot;
+ delete m_pSGP;
+ delete m_pSGPDriver;
+ delete m_pDC;
+}
+
+void
+EZPlotControl::OnPaint (wxPaintEvent& event)
+{
+ wxPaintDC dc(this);
+ GetClientSize (&m_iClientX, &m_iClientY);
+ m_pSGPDriver = new SGPDriver (&dc, m_iClientX, m_iClientY);
+ m_pSGP = new SGP (*m_pSGPDriver);
+ m_pSGP->setTextPointSize(10);
+// m_pSGP->setViewport (0, 0, 1., 0.5); // for debugging testing only
+ if (m_pEZPlot && m_pSGP) {
+ m_pSGP->eraseWindow();
+ m_pEZPlot->plot (m_pSGP);
+ }
+}
+
+
+wxEZPlotDialog::wxEZPlotDialog (wxWindow *parent, bool bCancelButton)
+: wxDialog((parent ? parent : theApp->getMainFrame()), -1, wxString("EZPlot"), wxDefaultPosition, wxDefaultSize, wxDIALOG_MODAL),
+ m_parentTop(0)
+{
+ if (! parent)
+ parent = theApp->getMainFrame();
+
+ m_parentTop = parent;
+ while ( m_parentTop && m_parentTop->GetParent() )
+ m_parentTop = m_parentTop->GetParent();
+
+ wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
+
+ pTopSizer->Add (m_pEZPlotCtrl = new EZPlotControl (this), 0, wxALIGN_CENTER | wxALL, 5);
+
+ wxBoxSizer* pButtonSizer = new wxBoxSizer (wxHORIZONTAL);
+ wxButton* pButtonOk = new wxButton (this, wxID_OK, "Ok");
+ pButtonSizer->Add (pButtonOk, 0, wxEXPAND | wxALL, 10);
+ if (bCancelButton) {
+ wxButton* pButtonCancel = new wxButton (this, wxID_CANCEL, "Cancel");
+ pButtonSizer->Add (pButtonCancel, 0, wxEXPAND | wxALL, 10);
+ }
+ pTopSizer->Add (pButtonSizer, 0, wxALIGN_CENTER);
+
+ SetAutoLayout (true);
+ SetSizer (pTopSizer);
+ pTopSizer->Fit (this);
+ pTopSizer->SetSizeHints (this);
+}
+
+
+
+EZPlotDialog::EZPlotDialog(wxWindow* parent, bool bCancelButton)
+ : m_pDialog(new wxEZPlotDialog(parent, bCancelButton))
+{
+}
+
+EZPlot*
+EZPlotDialog::getEZPlot()
+{ return m_pDialog->getEZPlot(); }
+
+int
+EZPlotDialog::ShowModal()
+{ return m_pDialog->ShowModal(); }
+
+wxEZPlotDialog::~wxEZPlotDialog()
+{
+ if ( m_parentTop )
+ m_parentTop->Enable(TRUE);
+}
+
+
+
+#endif // HAVE_WXWINDOWS
--- /dev/null
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+** Name: dlgezplot.h
+** Purpose: Headers for EZPlot Dialog
+** Programmer: Kevin Rosenberg
+** Date Started: Jan 2001
+**
+** This is part of the CTSim program
+** Copyright (c) 1983-2001 Kevin Rosenberg
+**
+** $Id: dlgezplot.h,v 1.4 2001/03/29 21:25:50 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
+******************************************************************************/
+
+#ifndef __DLGEZPLOT_H_
+#define __DLGEZPLOT_H_
+
+#ifdef __GNUG__
+#pragma interface "dlgezplot.h"
+#endif
+
+#include "wx/setup.h"
+#include "wx/dialog.h"
+#include "wx/dcmemory.h"
+
+class wxButton;
+class SGP;
+class SGPDriver;
+class EZPlot;
+
+
+class EZPlotControl : public wxPanel
+{
+private:
+ DECLARE_DYNAMIC_CLASS (EZPlotControl)
+ DECLARE_EVENT_TABLE ()
+ EZPlot* m_pEZPlot;
+ int m_iClientX; // size of client window
+ int m_iClientY;
+
+ SGPDriver* m_pSGPDriver;
+ SGP* m_pSGP;
+ wxDC* m_pDC;
+
+public:
+ EZPlotControl (wxWindow *parent, wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSTATIC_BORDER,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = "EZPlotCtrl");
+
+ virtual ~EZPlotControl();
+
+ virtual wxSize GetBestSize() const;
+
+ EZPlot* getEZPlot()
+ { return m_pEZPlot; }
+
+ void OnPaint(wxPaintEvent& event);
+};
+
+
+class wxEZPlotDialog : public wxDialog
+{
+private:
+ wxWindow *m_parentTop; // parent top level window (may be NULL)
+ EZPlotControl* m_pEZPlotCtrl;
+
+public:
+ wxEZPlotDialog (wxWindow *parent = NULL, bool bCancelButton = false);
+
+ ~wxEZPlotDialog();
+
+ EZPlot* getEZPlot ()
+ { if (m_pEZPlotCtrl) return m_pEZPlotCtrl->getEZPlot(); else return NULL; }
+};
+
+class EZPlotDialog
+{
+private:
+ wxEZPlotDialog* m_pDialog;
+
+public:
+ EZPlotDialog (wxWindow *parent = NULL, bool bCancelButton = false);
+
+ EZPlot* getEZPlot ();
+ int ShowModal();
+};
+#endif
+
ln -s $(bindir)/ctsimtext $(bindir)/pjinfo
ln -s $(bindir)/ctsimtext $(bindir)/pjrec
-ctsimtext_SOURCES = ctsimtext.cpp if1.cpp if2.cpp ifinfo.cpp ifexport.cpp phm2if.cpp phm2pj.cpp pj2if.cpp pjinfo.cpp pjrec.cpp
+ctsimtext_SOURCES = ctsimtext.cpp if1.cpp if2.cpp ifinfo.cpp ifexport.cpp phm2if.cpp phm2pj.cpp pj2if.cpp pjinfo.cpp pjrec.cpp nographics.cpp
ctsimtext_LDADD=@ctlibs@
ctsimtext_DEPENDENCIES=$(SOURCE_DEPEND)
realclean:
rm -f *.pgm *.if *~ *.pj
-ctsimtext_lam_SOURCES = ctsimtext.cpp if1.cpp if2.cpp ifinfo.cpp ifexport.cpp phm2if.cpp phm2pj.cpp pj2if.cpp pjinfo.cpp pjrec.cpp mpiworld.cpp
+ctsimtext_lam_SOURCES = ctsimtext.cpp if1.cpp if2.cpp ifinfo.cpp ifexport.cpp phm2if.cpp phm2pj.cpp pj2if.cpp pjinfo.cpp pjrec.cpp nographics.cpp mpiworld.cpp
ctsimtext_lam_LDADD=@ctlamlibs@
if USE_LAM
--- /dev/null
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+** Name: nographics.cpp
+** Purpose: Empty functions for duplicates of graphcal functions
+** Programmer: Kevin Rosenberg
+** Date Started: Mar 2001
+**
+** This is part of the CTSim program
+** Copyright (c) 1983-2001 Kevin Rosenberg
+**
+** $Id: nographics.cpp,v 1.1 2001/03/29 21:25:50 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
+******************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+
+#ifdef __GNUG__
+#pragma implementation "nographics.h"
+#endif
+
+#include "nographics.h"
+
+
+#ifdef HAVE_WXWINDOWS
+EZPlotDialog::EZPlotDialog (wxWindow *parent, bool bCancelButton)
+{}
+
+EZPlot*
+EZPlotDialog::getEZPlot()
+{ return NULL; }
+
+int
+EZPlotDialog::ShowModal()
+{ return 0; }
+f
+#endif