From 676f8753e1b3edd337240391855f34dde1af24fa Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Wed, 14 Feb 2001 20:11:25 +0000 Subject: [PATCH] r541: no message --- ChangeLog | 3 +- doc/ctsim-concepts.tex | 117 ++++++++++++++++--------------- doc/ctsim.prj | 76 ++++++++++++++++++++ doc/ctsim.tex | 6 +- msvc/ctsim/ctsim.plg | 153 +++++++++-------------------------------- 5 files changed, 176 insertions(+), 179 deletions(-) create mode 100644 doc/ctsim.prj diff --git a/ChangeLog b/ChangeLog index ee33674..7eec72d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,8 @@ 3.0.0beta2 - Release 2//01 * ctsim: Massive update/fix to online help, new manual - + + * ctsim: Reformated dialog boxes, much nicer now 3.0.0beta1 - Released 2/11/01 diff --git a/doc/ctsim-concepts.tex b/doc/ctsim-concepts.tex index c7c3ffd..417c47a 100644 --- a/doc/ctsim-concepts.tex +++ b/doc/ctsim-concepts.tex @@ -8,13 +8,13 @@ phantom object consists of geometric elements. A scanner is specified and the collection of x-ray data, or projections, is simulated. That projection data can be reconstructed using various user-controlled algorithms producing an image of the phantom -object. This reconstruction can then be statistically compared to -the original phantom object. +object. These reconstructions can be visually and statistically +compared to the original phantom object. -In order to use \ctsim\ effectively, some knowledge of how \ctsim\ works -and the approach taken is required. \ctsim\ deals with a variety of -object, but the two objects we need to be concerned with are the -\emph{phantom} and the \emph{scanner}. +In order to use \ctsim\ effectively, some knowledge of how \ctsim\ +works and the approach taken is required. \ctsim\ deals with a +variety of object, but the two primary objects that we need to be +concerned with are the \emph{phantom} and the \emph{scanner}. \section{Phantoms}\label{conceptphantom} \subsection{Overview}\label{phantomoverview}\index{Phantom Overview}% @@ -23,7 +23,7 @@ object, but the two objects we need to be concerned with are the scanned. A phantom is composed a one or more phantom elements. These elements are simple geometric shapes, specifically, rectangles, triangles, ellipses, sectors and segments. With these -elements, standard phantoms used in the CT literature can be +elements, the standard phantoms used in the CT literature can be constructed. In fact, \ctsim\ provides a shortcut to load the published phantoms of Herman\cite{HERMAN80} and Shepp-Logan\cite{SHEPP74}. \ctsim\ also reads text files of @@ -70,23 +70,23 @@ Rotations are then applied about the center of the base. \subsubsection{segment} Segments are complex. They are the portion of an circle between a -chord and the perimeter of the circle. \texttt{dy} sets the radius of -the circle. Segments start with the center of the chord located at -\texttt{(0,0)} and the chord horizontal. The half-width of the chord -is set by \texttt{dx}. The portion of an circle lying below the chord -is then added. The imaginary center of this circle is located at -\texttt{(0,-dy)}. The segment is then rotated by \texttt{r} and then -translated by \texttt{cx,cy}. +chord and the perimeter of the circle. \texttt{dy} sets the +radius of the circle. Segments start with the center of the chord +located at \texttt{(0,0)} and the chord horizontal. The half-width +of the chord is set by \texttt{dx}. The portion of an circle +lying below the chord is then added. The imaginary center of this +circle is located at \texttt{(0,-dy)}. The segment is then rotated +by \texttt{r} and then translated by \texttt{(cx,cy)}. \subsubsection{sector} -Sectors are the like a ``pie slice'' from a circle. The radius of the -circle is set by \texttt{dy}. Sectors are -defined similarly to segments. In this case, though, a chord is not -drawn. Instead, the lines are drawn from the origin of the circle -\texttt{(0,-dy)} to the points \texttt{(-dx,0)} and \texttt{(dx,0)}. -The perimeter of the circle is then draw between those two points -below the x-axis. The sector is then rotated and translated the same -as a segment. +Sectors are the like a ``pie slice'' from a circle. The radius of +the circle is set by \texttt{dy}. Sectors are defined similarly to +segments. In this case, though, a chord is not drawn. Instead, +the lines are drawn from the origin of the circle \texttt{(0,-dy)} +to the points \texttt{(-dx,0)} and \texttt{(dx,0)}. The perimeter +of the circle is then drawn between those two points and lies +below the x-axis. The sector is then rotated and translated the +same as a segment. \subsection{Phantom Size}\index{Phantom size} The overall dimensions of the phantom are increased by 1\% above the @@ -106,13 +106,13 @@ real-world CT scanners can only take objects up to a fixed size. \ctsim, being a very flexible simulator, gives tremendous options in setting up the geometry for a scan. -In general, the geometry for a scan all starts from the size of the -phantom being scanned. This is because \ctsim\ allows for statistical -comparisons between the original phantom image and it's reconstructions. -Since CT scanners scan a circular area, the first important -variable is the diameter of the circle surround the phantom, or the -\emph{phantom diameter}. Remember, as mentioned above, the -phantom dimensions are also padded by 1\%. +In general, the geometry for a scan all starts with the size of +the phantom being scanned. This is because \ctsim\ allows for +statistical comparisons between the original phantom image and +it's reconstructions. Since CT scanners scan a circular area, the +first important variable is the diameter of the circle surround +the phantom, the \emph{phantom diameter}. Remember, as mentioned +above, the phantom dimensions are also padded by 1\%. The other important geometry variables for scanning phantoms are the \emph{view diameter}, \emph{scan diameter}, and \emph{focal @@ -129,12 +129,12 @@ the phantom definition. The maximum of the phantom length and height is used to define the square that completely surrounds the phantom. Let \latexonly{$p_l$}\latexignore{\emph{Pl}} be the width and height of this square. The diameter of this boundary box, -\latexonly{$p_d$,}\latexignore{\emph{Pd},} \rtfsp is then -\latexignore{\\$$\emph{Pl x sqrt(2)}$$\\} \latexonly{$$p_d = p_l -\sqrt{2}$$} CT scanners actually collect projections around a +\latexonly{$p_d$,}\latexignore{\emph{Pd},} is then +\latexignore{\\\centerline{\emph{Pl x sqrt(2)}}\\} +\latexonly{\begin{equation}p_d = p_l \sqrt{2}\end{equation}} +CT scanners actually collect projections around a circle rather than a square. The diameter of this circle is also -the diameter of the boundary square -\latexonly{$p_d$. These +the diameter of the boundary square \latexonly{$p_d$. These relationships are diagrammed in figure~\ref{phantomgeomfig}.} \latexignore{emph{Pd}.} @@ -147,8 +147,9 @@ experimental reasons, to process an area larger (and maybe even smaller) than the phantom. Thus, during rasterization or during projections, \ctsim\ will ask for a \emph{view ratio}, \latexonly{$v_r$.}\latexignore{\rtfsp \emph{VR}.} The \emph{view -diameter} is then calculated as \latexonly{$$v_d = p_d -v_r$$}\latexignore{\\$$\emph{Vd = Pd x VR}$$} +diameter} is then calculated as +\latexonly{\begin{equation}v_d = p_dv_r\end{equation}} +\latexignore{\\\centerline{\emph{Vd = Pd x VR}}\\} By using a \latexonly{$v_r$}\latexignore{\emph{VR}} @@ -156,7 +157,7 @@ less than 1, \ctsim\ will allow for a \emph{view diameter} less than \emph{phantom diameter}. This will lead to significant artifacts. Physically, this would -be impossible and is analagous to inserting an object into the CT +be impossible and is analogous to inserting an object into the CT scanner that is larger than the scanner itself! \subsubsection{Scan Diameter}\index{Scan diameter} @@ -166,8 +167,10 @@ larger or smaller than the \emph{view diameter}. Thus, the concept of \emph{scan ratio}, \latexonly{$s_r$,}\latexignore{\emph{SR},} is arises. The scan diameter \latexonly{$s_d$}\latexignore{\emph{Sd}} is the diameter over -which x-rays are collected and is defined as \latexonly{$$s_d = -v_d s_r$$}\latexignore{\\$$\emph{Sd = Vd x SR}$$\\} By default and +which x-rays are collected and is defined as +\latexonly{\begin{equation}s_d =v_d s_r\end{equation}} +\latexignore{\\\centerline{\emph{Sd = Vd x SR}}\\} +By default and for all ordinary scanning, the \emph{scan ratio} is to \texttt{1}. If the \emph{scan ratio} is less than \texttt{1}, you can expect significant artifacts. @@ -180,7 +183,8 @@ the phantom. The focal length is set as a ratio, \latexonly{$f_r$,}\latexignore{\emph{FR},} of the view radius. Focal length is calculated as -\latexonly{$$f = (v_d / 2) f_r$$}\latexignore{\\$$\emph{F = (Vd / 2) x FR}$$} +\latexonly{\begin{equation}f = (v_d / 2) f_r\end{equation}} +\latexignore{\\\centerline{\emph{F = (Vd / 2) x FR}}} For parallel geometry scanning, the focal length doesn't matter. However, divergent geometry scanning (equilinear and equiangular), @@ -192,7 +196,8 @@ source inside of the \emph{view diameter}. \subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel Geometry} -As mentioned above, the focal length is not used in this simple +The simplest geometry, parallel, was used in \mbox{$1^{st}$} generation +scanners. As mentioned above, the focal length is not used in this simple geometry. The detector array is set to be the same size as the \emph{scan diameter}. For optimal scanning in this geometry, the \emph{scan diameter} should be equal to the \emph{phantom @@ -210,7 +215,7 @@ the x-ray beams diverge from a single source to a detector array. In the equilinear mode, a single source produces a fan beam which is read by a linear array of detectors. If the detectors occupy an arc of a circle, then the geometry is equiangular. -\latexonly{See figure~\ref{divergentfig}.} +\latexonly{The configurations are shown in figure~\ref{divergentfig}.} \begin{figure} \image{10cm;0cm}{divergent.eps} \caption{\label{divergentfig} Equilinear and equiangular geometries.} @@ -241,7 +246,8 @@ there are significant artifacts. The primary way to manage the \emph{scan diameter} by the size of the phantom. To illustrate, the \emph{scan diameter} can be defined as -\latexonly{$$s_d = s_r v_r p_d$$}\latexignore{\\$$Sd = Sr x Vr x Pd$$\\} +\latexonly{\begin{equation}s_d = s_r v_r p_d\end{equation}} +\latexignore{\\\centerline{\emph{Sd = Sr x Vr x Pd}}\\} Further, $f$ can be defined as \latexonly{$$f = f_r (v_r p_d / 2)$$}\latexignore{\\$$F = FR x (VR x Pd)$$\\} @@ -253,7 +259,7 @@ equation,}\latexonly{equation~\ref{alphacalc},} We have, \alpha &= 2\,\sin^{-1} \frac{s_r v_r p_d / 2}{f_r v_r (p_d / 2)} \nonumber \\ &= 2\,\sin^{-1} (s_r / f_r) \end{eqnarray} -} \latexignore{\\$$\alpha = 2 sin (Sr / Fr$$\\} +} \latexignore{\\\centerline{\emph{\alpha = 2 sin (Sr / Fr)}}\\} Since in normal scanning $s_r$ = 1, $\alpha$ depends only upon the \emph{focal length ratio}. @@ -285,8 +291,9 @@ figure~\ref{equiangularfig} indicates the positions of the detectors in this cas For equilinear geometry, the detectors are space along a straight line. The length of the line depends upon \latexonly{$\alpha$}\latexignore{\emph{alpha}} and the \emph{focal -length}. It is calculated as \latexonly{$4\,f \tan (\alpha / 2)$} -\latexignore{\emph{4 x F x tan(\alpha/2)}} +length}. It is calculated as +\latexonly{\begin{equation}4\,f \tan (\alpha / 2)\end{equation}} +\latexignore{\\\centerline{\emph{4 x F x tan(\alpha/2)}}} \begin{figure}\label{equilinearfig} \image{10cm;0cm}{equilinear.eps} \caption{\label{equilinearfig} Equilinear geometry} @@ -294,11 +301,8 @@ length}. It is calculated as \latexonly{$4\,f \tan (\alpha / 2)$} \latexonly{This geometry is shown in figure~\ref{equilinearfig}.} -\subsubsection{Examples of Geometry Settings} - - \section{Reconstruction}\label{conceptreconstruction}\index{Reconstruction Overview}% -\subsection{Overview} + \subsection{Direct Inverse Fourier} This method is not currently implemented in \ctsim, however it is planned for a future release. This method does not give results as @@ -314,11 +318,12 @@ these two steps are sequential, each view position can be processed individually \subsubsection{Multiple Computer Processing} This parallelism is exploited in the MPI versions of \ctsim\ where the data from all the views are spread about amongst all of the -processors. This has been testing in a 16-CPU cluster with good +processors. This has been testing in a 16-CPU cluster with excellent results. \subsubsection{Filter projections} -The projections for a single view have their frequency data multipled by +The first step in filtered backprojection reconstructions is the filtering +of each projection. The projections for a each view have their frequency data multipled by a filter of $|w|$. \ctsim\ permits four different ways to accomplish this filtering. @@ -342,8 +347,9 @@ interpolation can be specified. Images can be compared statistically. Three measurements can be calculated by \ctsim. They are taken from the standard measurements used by Herman\cite{HERMAN80}. -$d$ is the standard error, $e$ is the maximum error, and -$r$ is the maximum error of a 2 by 2 pixel area. +$d$ is the normalized root mean squared distance measure, +$r$ is the normalized mean absolute distance measure, +and $e$ is the worst case distance measure over a $2\times2$ area. To compare two images, $A$ and $B$, each of which has $n$ columns and $m$ rows, these values are calculated as below. @@ -351,7 +357,8 @@ these values are calculated as below. \latexonly{ \begin{equation} -d = \frac{\sum_{i=0}^{n}{\sum_{j=0}^{m}{(A_{ij} - B_{ij})^2}}}{m n} +d = \sqrt{\frac{\sum_{i=1}^{n}{\sum_{j=1}^{m}{(A_{ij} - B_{ij})^2}}} + {\sum_{i=1}^{n}{\sum_{j=1}^{m}{(A_{ij} - A^{\_})^2}}}} \end{equation} \begin{equation} r = \max(|A_{ij} - B{ij}|) diff --git a/doc/ctsim.prj b/doc/ctsim.prj new file mode 100644 index 0000000..53c4d9e --- /dev/null +++ b/doc/ctsim.prj @@ -0,0 +1,76 @@ +143 Patch Control + +1 +1 +1 +ctsim.tex +17 +7 +3 + + +ctsim.tex +TeX +134230010 0 42 2 14 28 22 22 1099 609 +ctsim-concepts.tex +TeX +12282 2 340 28 340 33 110 110 1187 697 +ctsim-gui.tex +TeX +12282 0 81 22 80 1 176 176 1253 763 +C:\Program Files\SecureCRT 3.0\download\ct.tex +TeX +268439546 0 3 1 698 1 132 132 1048 719 +ctsim-textui.tex +TeX +12282 2 196 30 196 35 198 198 1275 785 +ctsim-install.tex +TeX +12282 5 32 54 32 55 110 110 1187 697 +ctsim-appendix.tex +TeX +12282 0 0 1 5 1 44 44 1121 631 +ctsim-web.tex +TeX +268447739 0 4 19 0 1 88 88 1165 675 +texhelp.sty +DATA +273679026 0 112 14 92 1 176 176 1253 763 +makeidx.sty +DATA +273679026 0 0 1 0 1 110 110 1187 697 +verbatim.sty +DATA +273679026 0 0 1 150 2 88 88 1165 675 +mysober.sty +DATA +273679026 0 0 1 153 1 22 22 1099 609 +fancyhea.sty +DATA +273679026 0 0 1 144 1 264 264 1341 851 +ctsim-gui.aux +DATA +273679026 0 0 1 0 1 154 154 1231 741 +C:\Program Files\WinEdt\WinEdt.txt +ASCII +273688506 0 0 1 936 20 0 0 1077 587 +mytitle.sty +DATA +273679026 0 11 11 11 43 66 66 1143 653 +cut +TeX +268447739 0 3 1 3 1 66 66 1143 653 + +*ctsim.tex +> +*psbox.tex +> +*psbjoin.aux +< +*ctsim-concepts +*ctsim-gui +*ctsim-textui +*ctsim-web +*ctsim-install +*ctsim-appendix +< diff --git a/doc/ctsim.tex b/doc/ctsim.tex index f7814a8..4985efc 100644 --- a/doc/ctsim.tex +++ b/doc/ctsim.tex @@ -30,12 +30,12 @@ \newcommand{\indexit}[1]{#1\index{#1}}% \newcommand{\inioption}[1]{{\bf {\tt #1}}\index{#1}}% -\newcommand{\manvernum}[0]{0.35} +\newcommand{\manvernum}[0]{0.4} \newcommand{\manver}[0]{v\manvernum} -\newcommand{\mandate}[0]{February 12, 2001} +\newcommand{\mandate}[0]{February 14, 2001} \newcommand{\ctsimfooter}{\setfooter{\thepage}{}{}{\small Manual \manver}{\small \mandate}{\thepage}} \newcommand{\doublehyphen}[1]{-\,-\texttt{#1}} -\newcommand{\ctsimvernum}[0]{3.0.0beta1} +\newcommand{\ctsimvernum}[0]{3.0.0beta2} \newcommand{\ctsimver}[0]{CTSim \ctsimvernum} \newcommand{\ctsimheadtitle}{\ctsimver Manual} diff --git a/msvc/ctsim/ctsim.plg b/msvc/ctsim/ctsim.plg index edcda17..8aba8ec 100644 --- a/msvc/ctsim/ctsim.plg +++ b/msvc/ctsim/ctsim.plg @@ -3,146 +3,59 @@
 

Build Log

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

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPAE.tmp" with contents +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBFB.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" /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 /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\ctsim\libctsim\backprojectors.cpp" -"C:\ctsim\libctgraphics\dlgezplot.cpp" -"C:\ctsim\libctsim\filter.cpp" -"C:\ctsim\libctsim\fourier.cpp" -"C:\ctsim\libctsim\globalvars.cpp" -"C:\ctsim\libctsupport\hashtable.cpp" -"C:\ctsim\libctsim\imagefile.cpp" -"C:\ctsim\libctsupport\interpolator.cpp" -"C:\ctsim\libctsim\phantom.cpp" -"C:\ctsim\libctsupport\plotfile.cpp" -"C:\ctsim\libctgraphics\pol.cpp" -"C:\ctsim\libctsim\procsignal.cpp" -"C:\ctsim\libctsim\projections.cpp" -"C:\ctsim\libctsim\reconstruct.cpp" -"C:\ctsim\libctsim\scanner.cpp" -"C:\ctsim\libctsupport\syserror.cpp" -"C:\ctsim\libctsim\trace.cpp" +/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 +"D:\ctsim\src\ctsim.cpp" +"D:\ctsim\src\dialogs.cpp" +"D:\ctsim\src\views.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPAE.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPAF.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBFB.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBFC.tmp" with contents [ -/nologo /out:"Debug\libctsim.lib" -.\Debug\array2dfile.obj -.\Debug\backprojectors.obj -.\Debug\clip.obj -.\Debug\consoleio.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 +/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.0beta1\" /FR"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c +"D:\ctsim\src\graph3dview.cpp" ] -Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPAF.tmp" -

Output Window

-Compiling... -backprojectors.cpp -filter.cpp -interpolator.cpp -procsignal.cpp -reconstruct.cpp -dlgezplot.cpp -fourier.cpp -globalvars.cpp -hashtable.cpp -imagefile.cpp -phantom.cpp -plotfile.cpp -pol.cpp -projections.cpp -scanner.cpp -syserror.cpp -trace.cpp -Creating library... -

---------------------Configuration: ctsim - Win32 Debug-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB0.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" /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.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\ctsim\src\ctsim.cpp" -"C:\ctsim\src\dialogs.cpp" -"C:\ctsim\src\dlgprojections.cpp" -"C:\ctsim\src\dlgreconstruct.cpp" -"C:\ctsim\src\docs.cpp" -"C:\ctsim\src\views.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB0.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB1.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" /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.0.0beta1\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"C:\ctsim\src\graph3dview.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB1.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPB2.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBFC.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBFD.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 /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"\wx2.2.5\lib" -.\Debug\ctsim.obj -.\Debug\dialogs.obj -.\Debug\dlgprojections.obj -.\Debug\dlgreconstruct.obj -.\Debug\docs.obj -.\Debug\graph3dview.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 +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 +.\Release\dialogs.obj +.\Release\dlgprojections.obj +.\Release\dlgreconstruct.obj +.\Release\docs.obj +.\Release\graph3dview.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" +\wx2.2.5\lib\jpeg.lib +\wx2.2.5\lib\png.lib +\wx2.2.5\lib\wx.lib +\wx2.2.5\lib\xpm.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\RSPB2.tmp" +Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPBFD.tmp"

Output Window

Compiling... ctsim.cpp dialogs.cpp views.cpp -dlgprojections.cpp -dlgreconstruct.cpp -docs.cpp Compiling... graph3dview.cpp Linking... +LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF

Results

-ctsim.exe - 0 error(s), 0 warning(s) +ctsim.exe - 0 error(s), 1 warning(s)
-- 2.34.1