r591: Added Center-Detector length to scanning and reconstruction
[ctsim.git] / src / threadproj.h
index 02afffde2225af8e4e4486d33bd350ce6f5ac156..80ac09efe9cd9c7a7572176877f00e573a909388 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2001 Kevin Rosenberg
 **
-**  $Id: threadproj.h,v 1.1 2001/02/25 10:52:55 kevin Exp $
+**  $Id: threadproj.h,v 1.4 2001/03/01 07:30:49 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
@@ -50,14 +50,15 @@ private:
   const int m_iNSample;
   const double m_dRotation;
   const double m_dFocalLength;
+  const double m_dCenterDetectorLength;
   const double m_dViewRatio;
   const double m_dScanRatio;
   const std::string m_strLabel;
 
 public:
   ProjectorSupervisorThread(PhantomFileView* pProjView, int iNDet, int iNView, 
-   const char* pszGeometry, int iNSample, double dRotation, double dFocalLength, double dViewRatio, 
-   double dScanRatio, const char* const pszLabel);
+   const char* pszGeometry, int iNSample, double dRotation, double dFocalLength, double dCenterDetectorLength,
+   double dViewRatio, double dScanRatio, const char* const pszLabel);
 
   virtual wxThread::ExitCode Entry();
 
@@ -72,22 +73,24 @@ private:
   std::vector<Projections*> m_vecpChildProjections;
   PhantomFileDocument* m_pPhantomDoc;
   PhantomFileView* m_pPhantomView;
-    
+  Scanner* m_pScanner;
+  
   const int m_iNDet;
   const int m_iNView;
   const char* const m_pszGeometry;
   const int m_iNSample;
   const double m_dRotation;
   const double m_dFocalLength;
+  const double m_dCenterDetectorLength;
   const double m_dViewRatio;
   const double m_dScanRatio;
   const char* const m_pszLabel;
 
 
 public:
-   ProjectorSupervisor (PhantomFileView* pProjView, int iNDet, int iNView, 
-   const char* pszGeometry, int iNSample, double dRotation, double dFocalLength, double dViewRatio, 
-   double dScanRatio, const char* const pszLabel);
+   ProjectorSupervisor (SupervisorThread* pThread, PhantomFileView* pProjView, int iNDet, int iNView, 
+   const char* pszGeometry, int iNSample, double dRotation, double dFocalLength, double dCenterDetectorLength,
+   double dViewRatio, double dScanRatio, const char* const pszLabel);
 
    virtual BackgroundWorkerThread* createWorker (int iThread, int iStartUnit, int iNumUnits);
 
@@ -106,12 +109,14 @@ class ProjectorWorker : public BackgroundWorkerThread {
 private:
   PhantomFileView* m_pPhantomView;
   Projections* m_pProjections;
+  Scanner* m_pScanner;
   int m_iNDet;
   int m_iNView;
   const char* m_pszGeometry;
   int m_iNSample;
   double m_dRotation;
   double m_dFocalLength;
+  double m_dCenterDetectorLength;
   double m_dViewRatio;
   double m_dScanRatio;
 
@@ -121,9 +126,10 @@ public:
     : BackgroundWorkerThread (pSupervisor, iThread, iStartView, iNumViews)
   {}
   
-  void SetParameters (PhantomFileView* pPhantomFile, Projections* pProjections, int iNDet, int iView, 
-   const char* const pszGeometry, int iNSample, double dRotation, double dFocalLength, double dViewRatio,
-   double dScanRatio);
+  void SetParameters (PhantomFileView* pPhantomFile, Projections* pProjections, Scanner* pScanner, 
+   int iNDet, int iView, 
+   const char* const pszGeometry, int iNSample, double dRotation, double dFocalLength, double dCenterDetectorLength,
+   double dViewRatio, double dScanRatio);
 
   virtual wxThread::ExitCode Entry();      // thread execution starts here