** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: projections.h,v 1.5 2000/06/25 17:32:24 kevin Exp $
+** $Id: projections.h,v 1.10 2000/07/15 08:36:13 kevin Exp $
**
**
** This program is free software; you can redistribute it and/or modify
class Scanner;
class DetectorArray;
+class Array2dFileLabel;
+
// Projections
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 interpName, int interp_param, const char* const backprojName, const int trace);
+ 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) const;
void setNView (int nView); // used in MPI to restrict # of views
void setRotInc (double rotInc) { m_rotInc = rotInc;}
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
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);