X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fprojections.h;h=8a916166170327ee92adcde5dffe93d6b7993c21;hp=6446f572b3c3b3d1175ee418ea46e8a11cbc3f2b;hb=a05f3cb550877e94aa118cc04b361c0c8fdb3dc3;hpb=08f34bf3ba14d4f436f4d2ef0ee5af1d6eb266ac diff --git a/include/projections.h b/include/projections.h index 6446f57..8a91616 100644 --- a/include/projections.h +++ b/include/projections.h @@ -9,7 +9,7 @@ ** 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.13 2000/08/31 08:38:58 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -31,6 +31,8 @@ class Scanner; class DetectorArray; +class Array2dFileLabel; +class ostringstream; // Projections class Projections @@ -38,20 +40,22 @@ class Projections public: Projections (const int nView, const int nDet); Projections (const Scanner& scanner); - Projections (void); - ~Projections (void); + Projections (); + ~Projections (); void initFromScanner (const Scanner& scanner); - void printProjectionData (void); - void printScanInfo (void) const; + void printProjectionData (); + void printScanInfo (ostringstream& os) const; + bool read (const string& fname); bool read (const char* fname); bool write (const char* fname); + bool write (const string& fname); 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* frequencyFilterName, 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;} @@ -59,20 +63,31 @@ class Projections void setPhmLen (double phmLen) { m_phmLen = phmLen;} void setCalcTime (double calcTime) {m_calcTime = calcTime;} void setRemark (const char* remark) {m_remark = remark;} - void setRemark (const string remark) {m_remark = remark;} - - const double detStart(void) const {return m_detStart;} - const double rotStart(void) const {return m_rotStart;} - const double calcTime(void) const {return m_calcTime;} - const double phmLen(void) const {return m_phmLen;} - const char* remark(void) const {return m_remark.c_str();} - const double detInc(void) const {return m_detInc;} - const double rotInc(void) const {return m_rotInc;} - const int nDet(void) const {return m_nDet;} - const int nView(void) const {return m_nView;} + void setRemark (const string& remark) {m_remark = remark;} + + double detStart() const {return m_detStart;} + double rotStart() const {return m_rotStart;} + double calcTime() const {return m_calcTime;} + double phmLen() const {return m_phmLen;} + const char* remark() const {return m_remark.c_str();} + double detInc() const {return m_detInc;} + double rotInc() const {return m_rotInc;} + int nDet() const {return m_nDet;} + int nView() const {return m_nView;} + int geometry() const {return m_geometry;} + double focalLength() const {return m_focalLength;} + double fieldOfView() const {return m_fieldOfView;} + + const string& getFilename() const {return m_filename;} + Array2dFileLabel& getLabel() {return m_label;} + const Array2dFileLabel& getLabel() 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 @@ -86,13 +101,25 @@ 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) + double m_focalLength; + double m_fieldOfView; + 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); + bool headerRead (); + bool headerWrite (); bool headerRead (fnetorderstream& fs); bool headerWrite (fnetorderstream& fs); - void newProjData (void); - void deleteProjData (void); + void newProjData (); + void deleteProjData (); void init (const int nView, const int nDet);