r575: no message
authorKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 23 Feb 2001 03:30:31 +0000 (03:30 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 23 Feb 2001 03:30:31 +0000 (03:30 +0000)
configure.in
doc/ctsim.prj
msvc/ctsim/ctsim.plg
src/Makefile.am
src/threadrecon.cpp
src/threadrecon.h

index ce5d134e482fe780641c8d2959de33d0db91a4bd..8a943c100bf40b3023fca6d155f4290c2abcb967 100644 (file)
@@ -4,7 +4,7 @@ dnl Must reset CDPATH so that bash's cd does not print to stdout
 dnl CDPATH=
 
 AC_INIT(src/ctsim.cpp)
-AM_INIT_AUTOMAKE(ctsim,3.0.4)
+AM_INIT_AUTOMAKE(ctsim,3.1.0)
 AM_CONFIG_HEADER(config.h)
 
 dnl Checks for programs.
index d9dd4aea4d69783ed9bb8114f20bf1b9a56cb900..b763f7d4beb6fc459878da0cf7572e0bf185f065 100644 (file)
@@ -5,19 +5,22 @@
 1
 ctsim.tex
 18
-0
-0
+3
+1
 
 
 ctsim-gui.tex
 TeX
-268447738 0 207 31 207 1 176 176 1253 763
+12282 0 290 27 0 1 176 176 1253 763
+ctsim-concepts.tex
+TeX
+268447738 0 334 29 307 1 110 110 1187 697
+ctsim-textui.tex
+TeX
+12282 0 38 45 38 46 198 198 1275 785
 mytitle.sty
 DATA
 273679026 0 9 1 8 22 66 66 1143 653
-ctsim-textui.tex
-TeX
-268447738 0 297 15 0 1 198 198 1275 785
 ctsim-install.tex
 TeX
 268447738 0 34 10 42 1 110 110 1187 697
@@ -30,9 +33,6 @@ TeX
 ctsim.tex
 TeX
 402665466 0 25 31 27 37 22 22 1099 609
-ctsim-concepts.tex
-TeX
-268447738 2 305 28 305 41 110 110 1187 697
 tex2rtf.ini
 DATA
 273777330 0 0 1 17 8 22 22 938 609
index 5b1d86856babadba1378f467f6081f24957a51cc..c89a66916c26275d1845ceaa102a7fbce5a41024 100644 (file)
@@ -6,13 +6,24 @@
 --------------------Configuration: ctsim - Win32 Debug--------------------
 </h3>
 <h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP58.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8D.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.4\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
 "C:\ctsim\src\backgroundmgr.cpp"
+"C:\ctsim\src\graph3dview.cpp"
+"C:\ctsim\src\threadrecon.cpp"
 ]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP58.tmp" 
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP59.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8D.tmp" 
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8E.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.4\" /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\docs.cpp"
+"C:\ctsim\src\views.cpp"
+]
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8E.tmp" 
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8F.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\backgroundmgr.obj
@@ -36,10 +47,17 @@ winmm.lib rpcrt4.lib ws2_32.lib ../libctsim/Debug/libctsim.lib libcmtd.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\RSP59.tmp"
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP8F.tmp"
 <h3>Output Window</h3>
 Compiling...
+threadrecon.cpp
 backgroundmgr.cpp
+graph3dview.cpp
+Compiling...
+ctsim.cpp
+dialogs.cpp
+docs.cpp
+views.cpp
 Linking...
 
 
index be72fcfd8e6d33371522d4dffbb610cf66c42276..a06eee2670ffb6e0c9b6063aac180b82a0ed2dfe 100644 (file)
@@ -1,6 +1,7 @@
 bin_PROGRAMS=ctsim
 
-ctsim_SOURCES=ctsim.cpp docs.cpp views.cpp dialogs.cpp ctsim.h docs.h views.h dialogs.h dlgprojections.cpp dlgprojections.h dlgreconstruct.cpp dlgreconstruct.h  graph3dview.cpp graph3dview.h ctsim-map.h ctsim.xpm splash.xpm tips.cpp tips.h
+ctsim_SOURCES=ctsim.cpp docs.cpp views.cpp dialogs.cpp ctsim.h docs.h views.h dialogs.h dlgprojections.cpp dlgprojections.h dlgreconstruct.cpp 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
+
 ctsim_DEPENDENCIES=../libctgraphics/libctgraphics.a ../libctsupport/libctsupport.a ../libctsim/libctsim.a ../include/ct.h
 ctsim_LDADD=-L../libctgraphics -L../libctsupport -L../libctsim @ctlibs@
 
index f973c68a1498fc6ec59ade44c586348a768a685a..159e9d43975749c2e1ad154c54203150e236238e 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2001 Kevin Rosenberg
 **
-**  $Id: threadrecon.cpp,v 1.4 2001/02/23 02:06:02 kevin Exp $
+**  $Id: threadrecon.cpp,v 1.5 2001/02/23 03:28:26 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
@@ -70,20 +70,17 @@ ThreadedReconstructor::ThreadedReconstructor (ProjectionFileView* pProjView,
   int iExtraViews = m_iTotalViews % m_iNumThreads;
   
   m_vecpChildImageFile.reserve (m_iNumThreads);
-  m_vecpReconstructor.reserve (m_iNumThreads);
   m_vecpThread.reserve (m_iNumThreads);
   
   for (unsigned int iProc = 0; iProc < m_iNumThreads; iProc++) {
     m_vecpChildImageFile[iProc] = new ImageFile (iImageNX, iImageNY);
-    m_vecpReconstructor[iProc] = new Reconstructor (m_pProjView->GetDocument()->getProjections(), *m_vecpChildImageFile[iProc],
-      pszFilterName, dFilterParam, pszFilterMethod, iZeropad, pszFilterGenerationName, 
-      pszInterpName, iInterpParam, pszBackprojectName, Trace::TRACE_NONE);
     
     int iStartView = iProc * iBaseViews;
     int iNumViews = iBaseViews;
     if (iProc < iExtraViews)
       ++iNumViews;
-    m_vecpThread[iProc] = new ReconstructionThread (this, m_vecpReconstructor[iProc], iProc, iStartView, iNumViews);
+      m_vecpThread[iProc] = new ReconstructionThread (this, pProjView, m_vecpChildImageFile[iProc], iProc, iStartView, iNumViews,
+      pszFilterName, dFilterParam, pszFilterMethod, iZeropad, pszFilterGenerationName, pszInterpName, iInterpParam, pszBackprojectName);
     if (m_vecpThread[iProc]->Create () != wxTHREAD_NO_ERROR) {
       m_bFail = true;
       break;
@@ -147,12 +144,7 @@ ThreadedReconstructor::cleanUp()
     for (i = 0; i < m_iNumThreads; i++) {
       delete m_vecpChildImageFile[i];
       m_vecpChildImageFile[i] = NULL;
-    }
-    for (i = 0; i < m_iNumThreads; i++) {
-      delete m_vecpReconstructor[i];
-      m_vecpReconstructor[i] = NULL;
-    }
-    
+    }    
     
     m_iNumThreads = 0;
     m_iRunning = 0;
@@ -172,7 +164,7 @@ ThreadedReconstructor::onDone()
 {
   wxCriticalSection doneSection;
   doneSection.Enter();
-
+  
   m_pProjView->GetDocument()->removeReconstructor (this);
   ImageFileDocument* pReconDoc = theApp->newImageDoc();
   if (! pReconDoc) {
@@ -180,12 +172,7 @@ ThreadedReconstructor::onDone()
     doneSection.Leave();
     return;
   }
-  
-  for (int i = 0; i < m_iNumThreads; i++) {
-    delete m_vecpReconstructor[i];
-    m_vecpReconstructor[i] = NULL;
-  }
-  
+    
   ImageFile* pImageFile = getImageFile();
   pReconDoc->setImageFile (pImageFile);
   if (theApp->getAskDeleteNewDocs())
@@ -285,18 +272,25 @@ ThreadedReconstructor::~ThreadedReconstructor()
 }
 
 
-ReconstructionThread::ReconstructionThread (ThreadedReconstructor* pSupervisor, 
-                                            Reconstructor* pReconstructor, int iThread, int iStartView, int iNumViews)
-                                            : m_pSupervisor(pSupervisor), m_pReconstructor(pReconstructor), 
+ReconstructionThread::ReconstructionThread 
+(ThreadedReconstructor* pSupervisor, ProjectionFileView* pProjView, ImageFile* pImageFile, int iThread, int iStartView, int iNumViews, 
+                                            const char* pszFilterName, double dFilterParam, const char* pszFilterMethod, 
+                                            int iZeropad, const char* pszFilterGenerationName, const char* pszInterpName, int iInterpParam,
+                                            const char* pszBackprojectName)
+                                            : m_pSupervisor(pSupervisor), 
                                             m_iStartView(iStartView), m_iNumViews(iNumViews), m_iThread(iThread), 
                                             wxThread(wxTHREAD_DETACHED)
 {
+  m_pReconstructor = new Reconstructor (pProjView->GetDocument()->getProjections(), 
+    *pImageFile, pszFilterName, dFilterParam, pszFilterMethod, iZeropad, pszFilterGenerationName, 
+    pszInterpName, iInterpParam, pszBackprojectName, Trace::TRACE_NONE);
 }
 
 wxThread::ExitCode
 ReconstructionThread::Entry ()
 {
   wxCommandEvent eventProgress (wxEVT_COMMAND_MENU_SELECTED, RECONSTRUCTION_THREAD_EVENT);
+
   for (int iView = 0; iView < m_iNumViews; iView++) {
     if (TestDestroy()) {
       wxString msg;
@@ -321,4 +315,5 @@ ReconstructionThread::Entry ()
 void
 ReconstructionThread::OnExit ()
 {
+   delete m_pReconstructor;
 }
index e9ab35ee508f627b5ef3b96d56469d05f3b7be6e..0daa6219587c2571de2cd729d15b134ff4d732c1 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2001 Kevin Rosenberg
 **
-**  $Id: threadrecon.h,v 1.4 2001/02/23 02:06:02 kevin Exp $
+**  $Id: threadrecon.h,v 1.5 2001/02/23 03:28:26 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
@@ -48,6 +48,9 @@ public:
 };
 
 
+// Pure virtual class for BackgroundTasks that can communication
+// with BackgroundManager
+
 class BackgroundTask : public wxEvtHandler {
 private:
   bool m_bDone;
@@ -74,11 +77,11 @@ class ProjectionFileDocument;
 class ReconstructionThread;
 class ProjectionFileView;
 
+
 class ThreadedReconstructor : public BackgroundTask {
 private:
   DECLARE_DYNAMIC_CLASS(ThreadedReconstructor)
 
-  std::vector<Reconstructor*> m_vecpReconstructor;
   std::vector<ImageFile*> m_vecpChildImageFile;
   std::vector<ReconstructionThread*> m_vecpThread;
   ProjectionFileView* m_pProjView;
@@ -135,8 +138,12 @@ private:
   int m_iThread;
 
 public:
-  ReconstructionThread (ThreadedReconstructor* pSupervisor, Reconstructor* pReconstructor, 
-    int iThread, int iStartView, int iNumViews);
+  ReconstructionThread (ThreadedReconstructor* pSupervisor, 
+    ProjectionFileView* pProjFile, ImageFile* pImageFile, 
+    int iThread, int iStartView, int iNumViews,
+   const char* pszFilterName, double dFilterParam, const char* pszFilterMethod, 
+   int iZeropad, const char* pszFilterGenerationName, const char* pszInterpName, int iInterpParam,
+   const char* pszBackprojectName);
 
   virtual wxThread::ExitCode Entry();      // thread execution starts here
 
@@ -146,3 +153,4 @@ public:
 
 
 #endif
+  
\ No newline at end of file