Update copyright date; remove old CVS keyword
[ctsim.git] / include / reconstruct.h
index 54f19f0194a984fdb3e54b961a1d06ec987e5f80..293fe7bccccbe0bae6abf56e05e287b6b2e99a98 100644 (file)
@@ -1,14 +1,12 @@
 /*****************************************************************************
 ** FILE IDENTIFICATION
 **
-**   Name:        reconstruct.h          Header file for Reconstruction class
+**   Name:         reconstruct.h          Header file for Reconstruction class
 **   Programmer:   Kevin Rosenberg
 **   Date Started: Aug 84
 **
 **  This is part of the CTSim program
-**  Copyright (c) 1983-2001 Kevin Rosenberg
-**
-**  $Id: reconstruct.h,v 1.6 2001/02/20 04:48:45 kevin Exp $
+**  Copyright (c) 1983-2009 Kevin Rosenberg
 **
 **  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
@@ -35,34 +33,46 @@ class ProcessSignal;
 
 #include <string>
 
-class Reconstructor 
+struct ReconstructionROI {
+  double m_dXMin;
+  double m_dYMin;
+  double m_dXMax;
+  double m_dYMax;
+};
+
+class Reconstructor
 {
  private:
-    const Projections& m_rProj;
+    const Projections& m_rOriginalProj;
+    const Projections* m_pProj;
     ImageFile& m_rImagefile;
     ProcessSignal* m_pProcessSignal;
     Backprojector* m_pBackprojector;
     int m_nFilteredProjections;
     int m_iTrace;
-
+    const bool m_bRebinToParallel;
     bool m_bFail;
     std::string m_strFailMessage;
 
     double* m_adPlotXAxis;
 
  public:
-    Reconstructor (const Projections& rProj, ImageFile& rIF, const char* const filterName, double filt_param, const char* const filterMethodName, const int zeropad, const char* filterGenerationName, const char* const interpName, int interpFactor, const char* const backprojectName, const int trace, SGP* pSGP = NULL);
+    Reconstructor (const Projections& rProj, ImageFile& rIF, const char* const filterName, double filt_param,
+      const char* const filterMethodName, const int zeropad, const char* filterGenerationName,
+      const char* const interpName, int interpFactor, const char* const backprojectName, const int trace,
+      ReconstructionROI* pROI = NULL, bool bRebinToParallel = false, SGP* pSGP = NULL);
 
     ~Reconstructor ();
 
     bool fail() const {return m_bFail;}
     const std::string& failMessage() const {return m_strFailMessage;}
-    
+
     void plotFilter (SGP* pSGP = NULL);
 
     void reconstructAllViews ();
 
     void reconstructView (int iStartView = 0, int iViewCount = -1, SGP* pSGP = NULL, bool bBackprojectView = true, double dGraphWidth = 1.);
+    void postProcessing ();
 };
 
 #endif