r575: no message
[ctsim.git] / src / threadrecon.h
index ae6f0d27bd8edbb6575cf1e9208d1c271fa31341..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.3 2001/02/22 18:22:40 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
 #include <wx/progdlg.h>
 #include "timer.h"
 
+// This thread creates a BackgroundTask event handler object
+// The thread is detached and terminates when BackgroundTask terminates
+class BackgroundTaskThread : public wxThread {
+private:
+
+public:
+  BackgroundTaskThread();
+
+  virtual wxThread::ExitCode Entry();
+
+  // called when the thread exits - whether it terminates normally or is stopped with Delete()
+  virtual void OnExit();
+};
+
+
+// Pure virtual class for BackgroundTasks that can communication
+// with BackgroundManager
 
 class BackgroundTask : public wxEvtHandler {
 private:
@@ -60,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;
@@ -121,15 +138,19 @@ 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
 
-    // called when the thread exits - whether it terminates normally or is
-    // stopped with Delete() (but not when it is Kill()ed!)
-    virtual void OnExit();
+  // called when the thread exits - whether it terminates normally or is stopped with Delete()
+  virtual void OnExit();
 };
 
 
 #endif
+  
\ No newline at end of file