r7061: initial property settings
[ctsim.git] / src / threadrecon.h
index 89c58fe61ff27e3788b9a78a2453ec793627cac0..c4dc308c4819b9d98d175fbe95d197d398c24933 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2001 Kevin Rosenberg
 **
-**  $Id: threadrecon.h,v 1.12 2001/03/05 19:14:40 kevin Exp $
+**  $Id$
 **
 **  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
@@ -43,6 +43,7 @@ class ImageFile;
 class ProjectionFileDocument;
 class ReconstructorWorker;
 class ProjectionFileView;
+struct ReconstructionROI;
 
 class ReconstructorSupervisorThread : public SupervisorThread {
 private:
@@ -59,11 +60,14 @@ private:
   const int m_iInterpParam;
   const std::string m_strBackprojectName;
   const std::string m_strLabel;
+  ReconstructionROI m_reconROI;
+  const bool m_bRebinToParallel;
 
 public:
   ReconstructorSupervisorThread(ProjectionFileView* pProjView, int iNX, int iNY, const char* pszFilterName, 
    double dFilterParam, const char* pszFilterMethod, int iZeropad, const char* pszFilterGenerationName, 
-   const char* pszInterpName, int iInterpParam, const char* pszBackprojectName, const char* const pszLabel);
+   const char* pszInterpName, int iInterpParam, const char* pszBackprojectName, const char* const pszLabel,
+   ReconstructionROI* pROI, bool bRebinToParallel);
 
   virtual wxThread::ExitCode Entry();
 
@@ -76,6 +80,7 @@ class ReconstructorSupervisor : public BackgroundSupervisor {
 private:
 
   std::vector<ImageFile*> m_vecpChildImageFile;
+  const Projections* m_pProj;
   ProjectionFileView* m_pProjView;
   ProjectionFileDocument* m_pProjDoc;
     
@@ -91,11 +96,13 @@ private:
   const int m_iInterpParam;
   const char* const m_pszBackprojectName;
   const char* const m_pszLabel;
+  ReconstructionROI* m_pReconROI;
 
 public:
-   ReconstructorSupervisor (SupervisorThread* pMyThread, ProjectionFileView* pProjView, int iNX, int iNY, const char* pszFilterName, 
-   double dFilterParam, const char* pszFilterMethod, int iZeropad, const char* pszFilterGenerationName, 
-   const char* pszInterpName, int iInterpParam, const char* pszBackprojectName, const char* const pszLabel);
+   ReconstructorSupervisor (SupervisorThread* pMyThread, Projections* pProj, ProjectionFileView* pProjView, 
+   int iNX, int iNY, const char* pszFilterName, double dFilterParam, const char* pszFilterMethod, int iZeropad, 
+   const char* pszFilterGenerationName, const char* pszInterpName, int iInterpParam, 
+   const char* pszBackprojectName, const char* const pszLabel, ReconstructionROI* pReconROI);
 
    virtual BackgroundWorkerThread* createWorker (int iThread, int iStartUnit, int iNumUnits);
 
@@ -108,10 +115,9 @@ public:
 };
 
 
-
-
 class ReconstructorWorker : public BackgroundWorkerThread {
 private:
+  const Projections* m_pProj;
   ProjectionFileView* m_pProjView;
   ImageFile* m_pImageFile;
   const char* m_pszFilterName;
@@ -122,16 +128,17 @@ private:
   const char* m_pszInterpName;
   int m_iInterpParam;
   const char* m_pszBackprojectName;
+  ReconstructionROI* m_pReconROI;
 
 public:
   ReconstructorWorker (ReconstructorSupervisor* pSupervisor, int iThread, int iStartView, int iNumViews) 
     : BackgroundWorkerThread (pSupervisor, iThread, iStartView, iNumViews)
   {}
   
-  void SetParameters (ProjectionFileView* pProjFile, ImageFile* pImageFile, 
+  void SetParameters (const Projections* pProj, ProjectionFileView* pProjFile, ImageFile* pImageFile, 
    const char* const pszFilterName, double dFilterParam, const char* const pszFilterMethod, 
    int iZeropad, const char* const pszFilterGenerationName, const char* const pszInterpName, int iInterpParam,
-   const char* pszBackprojectName);
+   const char* pszBackprojectName, ReconstructionROI* pROI);
 
   virtual wxThread::ExitCode Entry();      // thread execution starts here