From 50fd2b2fb2ff63871986e6853dbebad0ecd00698 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Fri, 16 Feb 2001 02:39:30 +0000 Subject: [PATCH] r547: no message --- ChangeLog | 8 +++- NEWS | 10 ++-- doc/ctsim-appendix.tex | 13 +++++- doc/ctsim-concepts.tex | 2 +- doc/ctsim-gui.tex | 30 ++++++------ doc/ctsim.prj | 37 ++++++++------- doc/ctsim.tex | 8 ++-- msvc/ctsim/ctsim.dsp | 77 ++----------------------------- msvc/ctsim/ctsim.plg | 60 ++++-------------------- msvc/ctsimtext/ctsimtext.dsp | 4 -- src/ctsim.cpp | 20 +------- src/ctsim.h | 4 +- src/dialogs.cpp | 27 +++++++++-- src/graph3dview.cpp | 30 +++++------- src/views.cpp | 89 ++++++++++-------------------------- 15 files changed, 140 insertions(+), 279 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0049090..c4f3c8d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,13 @@ -3.0.0beta2 - Release 2//01 +3.0.0 - Release 2/19/01 * ctsim: Massive update/fix to online help and print manual. + + * ctsim: Added context-sensitive help to dialog boxes * ctsim: Reformated all dialog boxes, much nicer now. - + + * ctsim: Improved accelerator key handling + * global: Added Hanning filter. * global: Improved default parameters to that all defaults give diff --git a/NEWS b/NEWS index 4a32074..078791b 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,10 @@ -Version 3.0beta New Features +Version 3.0 New Features -* 3-d views of Image files +* Greatly improved dialog boxes + +* Online and print manuals with context-sensitive help! + +* 3-d rotating views of image files * Creation of arbitrary filter images @@ -9,7 +13,7 @@ Version 3.0beta New Features * All features of command line tools are now in graphical ctsim program! * Complex-valued image files now supported, lots of image math - functions added including fourier transformations + functions added including Fourier transformations * Visual and statistical image comparision functions diff --git a/doc/ctsim-appendix.tex b/doc/ctsim-appendix.tex index 9c242d1..a826258 100644 --- a/doc/ctsim-appendix.tex +++ b/doc/ctsim-appendix.tex @@ -8,8 +8,8 @@ Simple Graphics Package was created in 1980 by Kevin Rosenberg and is modelled after the hypothetical graphics library described by Foley and van Dam\cite{FOLEY82}. It is designed to be platform-independent. -\section{Flowchart} - +\section{Transformation Sequence} +\latexonly{ \parbox{11cm}{ \centerline{Master coordinate (MC) level} \centerline{$\downarrow$} @@ -24,6 +24,15 @@ Dam\cite{FOLEY82}. It is designed to be platform-independent. \centerline{Clipping against Viewport} \centerline{$\downarrow$} \centerline{Convert to Physical device coordinates (PDC)} +}} +\latexignore{ +\centerline{Master coordinate (MC) level} +\centerline{Apply \emph{Current transformation matrix}} +\centerline{World coordinate (WC) level} +\centerline{Clipping against Window} +\centerline{Convert to Normalized device coordinates (NDC)} +\centerline{Clipping against Viewport} +\centerline{Convert to Physical device coordinates (PDC)} } \section{Functions}% diff --git a/doc/ctsim-concepts.tex b/doc/ctsim-concepts.tex index 12cdc3f..702c1dd 100644 --- a/doc/ctsim-concepts.tex +++ b/doc/ctsim-concepts.tex @@ -134,7 +134,7 @@ the diameter of the boundary square \latexonly{$p_d$.} \latexignore{\emph{Pd}.} \latexonly{These relationships are diagrammed in figure~\ref{phantomgeomfig}.} \begin{figure} -\centerline{\image{5cm;0cm}{scangeometry.eps}} +\centerline{\image{8cm;0cm}{scangeometry.eps}} \latexonly{\caption{\label{phantomgeomfig} Phantom Geometry}} \end{figure} diff --git a/doc/ctsim-gui.tex b/doc/ctsim-gui.tex index 94d02ec..c33cffd 100644 --- a/doc/ctsim-gui.tex +++ b/doc/ctsim-gui.tex @@ -408,20 +408,13 @@ filter and can range from \texttt{0} to \texttt{1}. At a setting of \texttt{1}, the Hamming filter is the same as the bandlimit filter. At a setting of \texttt{0.54}, the Hamming filter is the same as the Hanning window.} -\end{twocollist} - -\begin{twocollist} \twocolitem{\textbf{Filter Method}}{Selects the filtering method. -For large numbers of detectors, \texttt{rfftw} is optimal. For -smaller numbers of detectors, \texttt{convolution} can be -faster. -\begin{itemize}\itemsep=0pt -\item \texttt{convolution} -\item \texttt{fourier} - Uses simple Fourier transform. -\item \texttt{fourier-table} - Optimizes Fourier transform by precalculating trigometric functions. -\item \texttt{fftw} - Uses complex-valued Fourier transform with the \emph{fftw} library. -\item \texttt{rfftw} - Uses optimized real/half-complex Fourier transform. -\end{itemize} +For large numbers of detectors, the FFT-based filters are preferred whereas for +smaller numbers of detectors \texttt{convolution} can be +faster. When \emph{Advanced Options} have been turned off, this menu only shows +the two basic choices: \texttt{convolution} and \texttt{FFT}. However, when +\emph{Advanced Options} have been turned on, additional selections are available as +discussed in the next section. } \twocolitem{\textbf{Interpolation}}{Interpolation technique. \texttt{cubic} is optimal when the @@ -445,6 +438,17 @@ default to optimal settings and don't need to be adjusted except by expert users. \begin{twocollist} +\twocolitem{\textbf{Filter Method}}{Selects the filtering method. +The general comments about this parameter given the previous section still apply. +With \emph{Advanced Options} on, the full set of filter methods are available: +\begin{itemize}\itemsep=0pt +\item \texttt{convolution} +\item \texttt{fourier} - Uses simple Fourier transform. +\item \texttt{fourier-table} - Optimizes Fourier transform by precalculating trigometric functions. +\item \texttt{fftw} - Uses complex-valued Fourier transform with the \emph{fftw} library. +\item \texttt{rfftw} - Uses optimized real/half-complex Fourier transform. +\end{itemize} +} \twocolitem{\textbf{Backprojection}}{Selects the backprojection technique. A setting of \texttt{idiff} is optimal. \begin{itemize}\itemsep=0pt diff --git a/doc/ctsim.prj b/doc/ctsim.prj index ed50acf..e89e38e 100644 --- a/doc/ctsim.prj +++ b/doc/ctsim.prj @@ -4,35 +4,38 @@ 1 1 ctsim.tex -17 -0 +18 +3 0 -ctsim.tex -TeX -402665466 0 104 1 42 1 22 22 1099 609 -ctsim-textui.tex +ctsim-gui.tex TeX -268447738 0 257 1 258 1 198 198 1275 785 +268447738 2 388 89 388 94 176 176 1253 763 ctsim-appendix.tex TeX -268447738 0 16 31 12 10 44 44 1121 631 -ctsim-concepts.tex +12282 0 32 35 122 1 44 44 1121 631 +ctsim-textui.tex TeX -268447738 0 362 1 362 1 110 110 1187 697 -mytitle.sty -DATA -273679026 0 16 14 8 13 66 66 1143 653 -ctsim-gui.tex +12282 5 38 56 38 57 198 198 1275 785 +ctsim-concepts.tex TeX -268447738 0 431 23 431 39 176 176 1253 763 +268447738 5 291 46 291 47 110 110 1187 697 ctsim-install.tex TeX -268447738 0 45 19 46 62 110 110 1187 697 +268447738 0 15 32 24 22 110 110 1187 697 ctsim-web.tex TeX -268447739 0 30 18 32 1 88 88 1165 675 +268447739 0 24 50 25 1 88 88 1165 675 +ctsim.tex +TeX +402665466 0 98 25 102 1 22 22 1099 609 +tex2rtf.ini +DATA +273777330 0 0 1 17 8 22 22 938 609 +mytitle.sty +DATA +273679026 0 16 14 8 13 66 66 1143 653 C:\Program Files\SecureCRT 3.0\download\ct.tex TeX 268439546 0 3 1 600 1 132 132 1048 719 diff --git a/doc/ctsim.tex b/doc/ctsim.tex index 145fc6a..bbad738 100644 --- a/doc/ctsim.tex +++ b/doc/ctsim.tex @@ -1,4 +1,4 @@ -\documentclass[letterpaper,12pt]{report}% +\documentclass[letterpaper,11pt]{report}% \usepackage{graphicx} \usepackage{texhelp} \usepackage{fancyhea} @@ -23,14 +23,14 @@ \newcommand{\indexit}[1]{#1\index{#1}}% \newcommand{\inioption}[1]{{\bf {\tt #1}}\index{#1}}% -\newcommand{\manvernum}[0]{0.5} +\newcommand{\manvernum}[0]{0.6} \newcommand{\manver}[0]{v\manvernum} -\newcommand{\mandate}[0]{February 15, 2001} +\newcommand{\mandate}[0]{February 16, 2001} \newcommand{\ctsimfooter}{\setfooter{\thepage}{}{}{\small Manual \manver}{\small \mandate}{\thepage}} \newcommand{\doublehyphen}[1]{-\,-\texttt{#1}} \newcommand{\ctsimvernum}[0]{3.0.0} \newcommand{\ctsimver}[0]{CTSim \ctsimvernum} -\newcommand{\ctsimheadtitle}{\ctsimver Manual} +\newcommand{\ctsimheadtitle}{\ctsimver\ Manual} \latexignore{\newcommand{\sqrt}[2]{sqrt(#2)}} diff --git a/msvc/ctsim/ctsim.dsp b/msvc/ctsim/ctsim.dsp index 0b57a6b..6d15906 100644 --- a/msvc/ctsim/ctsim.dsp +++ b/msvc/ctsim/ctsim.dsp @@ -94,115 +94,42 @@ LINK32=link.exe # Begin Source File SOURCE=..\..\src\ctsim.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - -# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" -# SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - # ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" # SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ENDIF - # End Source File # Begin Source File SOURCE=..\..\src\dialogs.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - -# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" -# SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - # ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" # SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ENDIF - # End Source File # Begin Source File SOURCE=..\..\src\dlgprojections.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - # ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" # SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - -# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" -# SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ENDIF - # End Source File # Begin Source File SOURCE=..\..\src\dlgreconstruct.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - -# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" -# SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - # ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" # SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ENDIF - # End Source File # Begin Source File SOURCE=..\..\src\docs.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - # ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" # SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - -# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" -# SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ENDIF - # End Source File # Begin Source File SOURCE=..\..\src\graph3dview.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - -!ENDIF - # End Source File # Begin Source File SOURCE=..\..\src\views.cpp - -!IF "$(CFG)" == "ctsim - Win32 Release" - # ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" # SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ELSEIF "$(CFG)" == "ctsim - Win32 Debug" - -# ADD CPP /D CTSIMVERSION=\"3.0.0alpha5\" -# SUBTRACT CPP /D CTSIMVERSION=\"3.0.0beta1\" - -!ENDIF - # End Source File # End Group # Begin Group "Header Files" @@ -210,6 +137,10 @@ SOURCE=..\..\src\views.cpp # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File +SOURCE="..\..\src\ctsim-map.h" +# End Source File +# Begin Source File + SOURCE=..\..\src\ctsim.h # End Source File # Begin Source File diff --git a/msvc/ctsim/ctsim.plg b/msvc/ctsim/ctsim.plg index 144f863..a8c688a 100644 --- a/msvc/ctsim/ctsim.plg +++ b/msvc/ctsim/ctsim.plg @@ -3,60 +3,16 @@
 

Build Log

---------------------Configuration: libctsim - Win32 Release-------------------- +--------------------Configuration: ctsim - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP472.tmp" with contents -[ -/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 "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 /Fp"Release/libctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"C:\ctsim\libctsim\filter.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP472.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP473.tmp" with contents +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP51C.tmp" with contents [ -/nologo /out:"Release\libctsim.lib" -.\Release\array2dfile.obj -.\Release\backprojectors.obj -.\Release\clip.obj -.\Release\consoleio.obj -.\Release\dlgezplot.obj -.\Release\ezplot.obj -.\Release\ezset.obj -.\Release\ezsupport.obj -.\Release\filter.obj -.\Release\fnetorderstream.obj -.\Release\fourier.obj -.\Release\getopt.obj -.\Release\getopt1.obj -.\Release\globalvars.obj -.\Release\hashtable.obj -.\Release\imagefile.obj -.\Release\interpolator.obj -.\Release\mathfuncs.obj -.\Release\phantom.obj -.\Release\plotfile.obj -.\Release\pol.obj -.\Release\procsignal.obj -.\Release\projections.obj -.\Release\reconstruct.obj -.\Release\scanner.obj -.\Release\sgp.obj -.\Release\strfuncs.obj -.\Release\syserror.obj -.\Release\trace.obj -.\Release\transformmatrix.obj -.\Release\xform.obj +/nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\include" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /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.0.0alpha5\" /FR"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c +"C:\ctsim\src\dialogs.cpp" ] -Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP473.tmp" -

Output Window

-Compiling... -filter.cpp -Creating library... -

---------------------Configuration: ctsim - Win32 Release-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP474.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP51C.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP51D.tmp" with contents [ 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 /nologo /subsystem:windows /incremental:no /pdb:"Release/ctsim.pdb" /machine:I386 /out:"Release/ctsim.exe" /libpath:"\wx2.2.5\lib" .\Release\ctsim.obj @@ -77,8 +33,10 @@ wsock32.lib tiff.lib jpeg.lib png.lib zlib.lib xpm.lib comctl32.lib kernel32.lib \wx2.2.5\lib\zlib.lib \wx2.2.5\lib\tiff.lib ] -Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP474.tmp" +Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP51D.tmp"

Output Window

+Compiling... +dialogs.cpp Linking... LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF diff --git a/msvc/ctsimtext/ctsimtext.dsp b/msvc/ctsimtext/ctsimtext.dsp index 3886091..3b6c324 100644 --- a/msvc/ctsimtext/ctsimtext.dsp +++ b/msvc/ctsimtext/ctsimtext.dsp @@ -92,10 +92,6 @@ SOURCE=..\..\tools\ctsimtext.cpp # End Source File # Begin Source File -SOURCE=..\..\libctsupport\cubicinterp.cpp -# End Source File -# Begin Source File - SOURCE=..\..\tools\if1.cpp # End Source File # Begin Source File diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 246d2d1..35ab913 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.78 2001/02/16 00:28:41 kevin Exp $ +** $Id: ctsim.cpp,v 1.79 2001/02/16 02:36: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 @@ -72,7 +72,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.78 2001/02/16 00:28:41 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.79 2001/02/16 02:36:18 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -291,7 +291,6 @@ BEGIN_EVENT_TABLE(MainFrame, wxDocParentFrame) EVT_MENU(MAINMENU_FILE_PREFERENCES, MainFrame::OnPreferences) EVT_MENU(MAINMENU_HELP_ABOUT, MainFrame::OnAbout) EVT_MENU(MAINMENU_HELP_CONTENTS, MainFrame::OnHelpContents) -EVT_MENU(MAINMENU_HELP_TOPICS, MainFrame::OnHelpTopics) EVT_BUTTON(IDH_DLG_RASTERIZE, MainFrame::OnHelpButton) EVT_BUTTON(IDH_DLG_PROJECTIONS, MainFrame::OnHelpButton) EVT_BUTTON(IDH_DLG_RECONSTRUCTION, MainFrame::OnHelpButton) @@ -369,7 +368,6 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxMenu* help_menu = new wxMenu; help_menu->Append (MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append (MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) help_menu->Append (MAINMENU_HELP_SECONDARY, "&Secondary Help"); #endif @@ -406,7 +404,6 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxAcceleratorEntry accelEntries[15]; accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); accelEntries[2].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); accelEntries[3].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); #ifndef CTSIM_MDI @@ -537,11 +534,6 @@ CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vectorSetSelection (iDefaultFilterID); pGridSizer->Add (m_pRadioBoxFilter, 0, wxALL | wxALIGN_LEFT | wxEXPAND); - m_pRadioBoxFilterMethod = new StringValueAndTitleRadioBox (this, _T("Filter Method"), ProcessSignal::getFilterMethodCount(), ProcessSignal::getFilterMethodTitleArray(), ProcessSignal::getFilterMethodNameArray()); - m_pRadioBoxFilterMethod->SetSelection (iDefaultFilterMethodID); - pGridSizer->Add (m_pRadioBoxFilterMethod, 0, wxALL | wxALIGN_LEFT | wxEXPAND); - + if (theApp->getAdvancedOptions()) { + m_pRadioBoxFilterMethod = new StringValueAndTitleRadioBox (this, _T("Filter Method"), ProcessSignal::getFilterMethodCount(), ProcessSignal::getFilterMethodTitleArray(), ProcessSignal::getFilterMethodNameArray()); + m_pRadioBoxFilterMethod->SetSelection (iDefaultFilterMethodID); + pGridSizer->Add (m_pRadioBoxFilterMethod, 0, wxALL | wxALIGN_LEFT | wxEXPAND); + } else { +#if HAVE_FFTW + static const char* aszFilterMethodTitle[] = {"Convolution", "FFT"}; + static const char* aszFilterMethodName[] = {"convolution", "rfftw"}; +#else + static const char* aszFilterMethodTitle[] = {"Convolution", "Fourier"}; + static const char* aszFilterMethodName[] = {"convolution", "fourier-table"}; +#endif + m_pRadioBoxFilterMethod = new StringValueAndTitleRadioBox (this, _T("Filter Method"), 2, aszFilterMethodTitle, aszFilterMethodName); +#if HAVE_FFTW + m_pRadioBoxFilterMethod->SetSelection (1); +#else + m_pRadioBoxFilterMethod->SetSelection (0); +#endif + pGridSizer->Add (m_pRadioBoxFilterMethod, 0, wxALL | wxALIGN_LEFT | wxEXPAND); + } + if (theApp->getAdvancedOptions()) { m_pRadioBoxFilterGeneration = new StringValueAndTitleRadioBox (this, _T("Filter Generation"), ProcessSignal::getFilterGenerationCount(), ProcessSignal::getFilterGenerationTitleArray(), ProcessSignal::getFilterGenerationNameArray()); m_pRadioBoxFilterGeneration->SetSelection (iDefaultFilterGenerationID); diff --git a/src/graph3dview.cpp b/src/graph3dview.cpp index 71ae71b..a391599 100644 --- a/src/graph3dview.cpp +++ b/src/graph3dview.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: graph3dview.cpp,v 1.12 2001/02/08 22:38:23 kevin Exp $ +** $Id: graph3dview.cpp,v 1.13 2001/02/16 02:36: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 @@ -772,7 +772,6 @@ Graph3dFileView::CreateChildFrame (wxDocument *doc, wxView *view) wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-H"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar *menu_bar = new wxMenuBar; @@ -784,23 +783,18 @@ Graph3dFileView::CreateChildFrame (wxDocument *doc, wxView *view) subframe->SetMenuBar(menu_bar); subframe->Centre(wxBOTH); - - wxAcceleratorEntry accelEntries[12]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); - accelEntries[4].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - accelEntries[5].Set (wxACCEL_CTRL, static_cast('R'), GRAPH3D_VIEW_SURFACE); - accelEntries[6].Set (wxACCEL_CTRL, static_cast('L'), GRAPH3D_VIEW_COLOR); - accelEntries[7].Set (wxACCEL_CTRL, static_cast('G'), GRAPH3D_VIEW_LIGHTING); - accelEntries[8].Set (wxACCEL_CTRL, static_cast('M'), GRAPH3D_VIEW_SMOOTH); - accelEntries[9].Set (wxACCEL_CTRL, static_cast('E'), GRAPH3D_VIEW_SCALE_MINMAX); - accelEntries[10].Set (wxACCEL_CTRL, static_cast('A'), GRAPH3D_VIEW_SCALE_AUTO); - accelEntries[11].Set (wxACCEL_CTRL, static_cast('U'), GRAPH3D_VIEW_SCALE_FULL); - wxAcceleratorTable accelTable (12, accelEntries); + + wxAcceleratorEntry accelEntries[7]; + accelEntries[0].Set (wxACCEL_CTRL, static_cast('R'), GRAPH3D_VIEW_SURFACE); + accelEntries[1].Set (wxACCEL_CTRL, static_cast('L'), GRAPH3D_VIEW_COLOR); + accelEntries[2].Set (wxACCEL_CTRL, static_cast('G'), GRAPH3D_VIEW_LIGHTING); + accelEntries[3].Set (wxACCEL_CTRL, static_cast('M'), GRAPH3D_VIEW_SMOOTH); + accelEntries[4].Set (wxACCEL_CTRL, static_cast('E'), GRAPH3D_VIEW_SCALE_MINMAX); + accelEntries[5].Set (wxACCEL_CTRL, static_cast('A'), GRAPH3D_VIEW_SCALE_AUTO); + accelEntries[6].Set (wxACCEL_CTRL, static_cast('U'), GRAPH3D_VIEW_SCALE_FULL); + wxAcceleratorTable accelTable (7, accelEntries); subframe->SetAcceleratorTable (accelTable); - + return subframe; } diff --git a/src/views.cpp b/src/views.cpp index a9b9781..306ce5b 100644 --- a/src/views.cpp +++ b/src/views.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: views.cpp,v 1.104 2001/02/14 18:39:47 kevin Exp $ +** $Id: views.cpp,v 1.105 2001/02/16 02:36: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 @@ -911,7 +911,6 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-H"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar *menu_bar = new wxMenuBar; @@ -927,22 +926,15 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) subframe->Centre(wxBOTH); - wxAcceleratorEntry accelEntries[11]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('S'), wxID_SAVE); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('W'), wxID_CLOSE); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[4].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); - accelEntries[5].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); - accelEntries[6].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - accelEntries[7].Set (wxACCEL_CTRL, static_cast('A'), IFMENU_VIEW_SCALE_AUTO); - accelEntries[8].Set (wxACCEL_CTRL, static_cast('U'), IFMENU_VIEW_SCALE_FULL); - accelEntries[9].Set (wxACCEL_CTRL, static_cast('E'), IFMENU_VIEW_SCALE_MINMAX); + wxAcceleratorEntry accelEntries[4]; + accelEntries[0].Set (wxACCEL_CTRL, static_cast('A'), IFMENU_VIEW_SCALE_AUTO); + accelEntries[1].Set (wxACCEL_CTRL, static_cast('U'), IFMENU_VIEW_SCALE_FULL); + accelEntries[2].Set (wxACCEL_CTRL, static_cast('E'), IFMENU_VIEW_SCALE_MINMAX); #if wxUSE_GLCANVAS - accelEntries[10].Set (wxACCEL_CTRL, static_cast('3'), IFMENU_IMAGE_CONVERT3D); - wxAcceleratorTable accelTable (11, accelEntries); + accelEntries[3].Set (wxACCEL_CTRL, static_cast('3'), IFMENU_IMAGE_CONVERT3D); + wxAcceleratorTable accelTable (4, accelEntries); #else - wxAcceleratorTable accelTable (10, accelEntries); + wxAcceleratorTable accelTable (3, accelEntries); #endif subframe->SetAcceleratorTable (accelTable); @@ -2091,7 +2083,6 @@ PhantomFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-H"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar *menu_bar = new wxMenuBar; @@ -2103,16 +2094,10 @@ PhantomFileView::CreateChildFrame(wxDocument *doc, wxView *view) subframe->SetMenuBar(menu_bar); subframe->Centre(wxBOTH); - wxAcceleratorEntry accelEntries[8]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('S'), wxID_SAVE); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); - accelEntries[4].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); - accelEntries[5].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - accelEntries[6].Set (wxACCEL_CTRL, static_cast('J'), PHMMENU_PROCESS_PROJECTIONS); - accelEntries[7].Set (wxACCEL_CTRL, static_cast('R'), PHMMENU_PROCESS_RASTERIZE); - wxAcceleratorTable accelTable (8, accelEntries); + wxAcceleratorEntry accelEntries[2]; + accelEntries[0].Set (wxACCEL_CTRL, static_cast('J'), PHMMENU_PROCESS_PROJECTIONS); + accelEntries[1].Set (wxACCEL_CTRL, static_cast('R'), PHMMENU_PROCESS_RASTERIZE); + wxAcceleratorTable accelTable (2, accelEntries); subframe->SetAcceleratorTable (accelTable); return subframe; @@ -2511,7 +2496,6 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-H"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar *menu_bar = new wxMenuBar; @@ -2524,19 +2508,12 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) subframe->SetMenuBar(menu_bar); subframe->Centre(wxBOTH); - wxAcceleratorEntry accelEntries[11]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('S'), wxID_SAVE); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('W'), wxID_CLOSE); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[4].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); - accelEntries[5].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); - accelEntries[6].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - accelEntries[7].Set (wxACCEL_CTRL, static_cast('L'), PJMENU_CONVERT_POLAR); - accelEntries[8].Set (wxACCEL_CTRL, static_cast('I'), PJMENU_CONVERT_FFT_POLAR); - accelEntries[9].Set (wxACCEL_CTRL, static_cast('R'), PJMENU_RECONSTRUCT_FBP); - accelEntries[10].Set (wxACCEL_CTRL, static_cast('E'), PJMENU_RECONSTRUCT_FOURIER); - wxAcceleratorTable accelTable (11, accelEntries); + wxAcceleratorEntry accelEntries[4]; + accelEntries[0].Set (wxACCEL_CTRL, static_cast('L'), PJMENU_CONVERT_POLAR); + accelEntries[1].Set (wxACCEL_CTRL, static_cast('I'), PJMENU_CONVERT_FFT_POLAR); + accelEntries[2].Set (wxACCEL_CTRL, static_cast('R'), PJMENU_RECONSTRUCT_FBP); + accelEntries[3].Set (wxACCEL_CTRL, static_cast('E'), PJMENU_RECONSTRUCT_FOURIER); + wxAcceleratorTable accelTable (4, accelEntries); subframe->SetAcceleratorTable (accelTable); return subframe; @@ -2838,7 +2815,6 @@ PlotFileView::CreateChildFrame(wxDocument *doc, wxView *view) wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-H"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar *menu_bar = new wxMenuBar; @@ -2850,18 +2826,11 @@ PlotFileView::CreateChildFrame(wxDocument *doc, wxView *view) subframe->SetMenuBar(menu_bar); subframe->Centre(wxBOTH); - wxAcceleratorEntry accelEntries[10]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('S'), wxID_SAVE); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('W'), wxID_CLOSE); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[4].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); - accelEntries[5].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); - accelEntries[6].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - accelEntries[7].Set (wxACCEL_CTRL, static_cast('E'), PLOTMENU_VIEW_SCALE_MINMAX); - accelEntries[8].Set (wxACCEL_CTRL, static_cast('A'), PLOTMENU_VIEW_SCALE_AUTO); - accelEntries[9].Set (wxACCEL_CTRL, static_cast('U'), PLOTMENU_VIEW_SCALE_FULL); - wxAcceleratorTable accelTable (10, accelEntries); + wxAcceleratorEntry accelEntries[3]; + accelEntries[0].Set (wxACCEL_CTRL, static_cast('E'), PLOTMENU_VIEW_SCALE_MINMAX); + accelEntries[1].Set (wxACCEL_CTRL, static_cast('A'), PLOTMENU_VIEW_SCALE_AUTO); + accelEntries[2].Set (wxACCEL_CTRL, static_cast('U'), PLOTMENU_VIEW_SCALE_FULL); + wxAcceleratorTable accelTable (3, accelEntries); subframe->SetAcceleratorTable (accelTable); return subframe; @@ -3091,7 +3060,6 @@ TextFileView::CreateChildFrame (wxDocument *doc, wxView *view) wxMenu *help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-H"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar *menu_bar = new wxMenuBar; @@ -3101,16 +3069,7 @@ TextFileView::CreateChildFrame (wxDocument *doc, wxView *view) subframe->SetMenuBar(menu_bar); subframe->Centre(wxBOTH); - - wxAcceleratorEntry accelEntries[5]; - accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('S'), wxID_SAVE); - accelEntries[2].Set (wxACCEL_CTRL, static_cast('W'), wxID_CLOSE); - accelEntries[3].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); - accelEntries[4].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); - wxAcceleratorTable accelTable (5, accelEntries); - subframe->SetAcceleratorTable (accelTable); - + return subframe; } -- 2.34.1