r145: *** empty log message ***
[ctsim.git] / include / projections.h
index 104476d9cb8317e0a8c73cdf343f446b16ad93d4..b1ee7fe9469fb3ab62d1416eca025fb9b6190088 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: projections.h,v 1.3 2000/06/20 17:54:51 kevin Exp $
+**  $Id: projections.h,v 1.9 2000/07/13 07:03:21 kevin Exp $
 **
 **
 **  This program is free software; you can redistribute it and/or modify
@@ -31,6 +31,8 @@
 
 class Scanner;
 class DetectorArray;
+class Array2dFileLabel;
+
 
 // Projections
 class Projections
@@ -51,6 +53,8 @@ class Projections
   bool detarrayRead (fnetorderstream& fs, DetectorArray& darray, const int view_num);
   bool detarrayWrite (fnetorderstream& fs, const DetectorArray& darray, const int view_num);
 
+  bool reconstruct (ImageFile& im, const char* const filterName, double filt_param, const char* const filterMethodName, const int zeropad, const char* const interpName, int interp_param, const char* const backprojName, const int trace);
+
   void setNView (int nView);  // used in MPI to restrict # of views
   void setRotInc (double rotInc) { m_rotInc = rotInc;}
   void setDetInc (double detInc) { m_detInc = detInc;}
@@ -68,9 +72,16 @@ class Projections
   const double rotInc(void) const {return m_rotInc;}
   const int nDet(void) const {return m_nDet;}
   const int nView(void) const {return m_nView;}
+  const string& getFilename(void) const {return m_filename;}
+  Array2dFileLabel& getLabel(void) {return m_label;}
+  const Array2dFileLabel& getLabel(void) const {return m_label;}
+
   DetectorArray& getDetectorArray (const int iview)
       { return (*m_projData[iview]); }
   
+  const DetectorArray& getDetectorArray (const int iview) const
+      { return (*m_projData[iview]); }
+  
  private:
   int m_headerSize;            // Size of disk file header 
   int m_geometry;              // Geometry of scanner 
@@ -84,6 +95,16 @@ class Projections
   double m_detStart;           // distance of beginning detector to center phantom
   double m_detInc;             // increment between detectors 
   double m_phmLen;             // Length of phantom edge (phm is square) 
+  kuint32 m_year;                   // Creation date & time
+  kuint32 m_month;
+  kuint32 m_day;
+  kuint32 m_hour;
+  kuint32 m_minute;
+  kuint32 m_second;
+  string m_filename;
+  Array2dFileLabel m_label;
+
+  const static kuint16 m_signature = ('P'*256 + 'J');
 
   bool headerRead (void);
   bool headerWrite (void);
@@ -93,6 +114,10 @@ class Projections
   void deleteProjData (void);
 
   void init (const int nView, const int nDet);
+
+  // prevent default methods
+  Projections& operator= (const Projections& rhs);   // assignment
+  Projections(const Projections& rhs);               // copy
 };