X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fprojections.h;h=aa76b1a05a21620eb7fc7556c7c7c68f813c7457;hp=38828a1532428590a7f6d28e854921453f39b78b;hb=dc034c9d0b7d9c3874a324a4c2c189a02945adc8;hpb=6bfb747f8163381d94a02c03a0351e9ca6815d22 diff --git a/include/projections.h b/include/projections.h index 38828a1..aa76b1a 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.12 2000/08/27 20:32:55 kevin Exp $ +** $Id: projections.h,v 1.18 2000/12/16 06:12:47 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -40,16 +40,19 @@ 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 (int startView, int endView); + void printProjectionData (); + void printScanInfo (std::ostringstream& os) const; + bool read (const std::string& fname); bool read (const char* fname); bool write (const char* fname); + bool write (const std::string& fname); bool detarrayRead (fnetorderstream& fs, DetectorArray& darray, const int view_num); bool detarrayWrite (fnetorderstream& fs, const DetectorArray& darray, const int view_num); @@ -60,33 +63,43 @@ class Projections void setDetInc (double detInc) { m_detInc = detInc;} 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;} - const string& getFilename(void) const {return m_filename;} - Array2dFileLabel& getLabel(void) {return m_label;} - const Array2dFileLabel& getLabel(void) const {return m_label;} + void setRemark (const char* remark) {m_remark = remark; m_label.setLabelString(remark);} + void setRemark (const std::string& remark) {setRemark(remark.c_str());} + + 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 std::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]); } + + static bool copyHeader (const char* const filename, std::ostream& os); + static bool copyHeader (const std::string& filename, std::ostream& os); + + static bool copyViewData (const char* const filename, std::ostream& os, int startView, int endView); + static bool copyViewData (const std::string& filename, std::ostream& os, int startView, int endView); private: int m_headerSize; // Size of disk file header int m_geometry; // Geometry of scanner - struct DetectorArray **m_projData; // Pointer to array of detarray_st pointers - string m_remark; // description of raysum data + class DetectorArray **m_projData; // Pointer to array of detarray_st pointers + std::string m_remark; // description of raysum data int m_nDet; // number of detectors in array int m_nView; // number of rotated views double m_calcTime; // time required to calculate raysums @@ -103,17 +116,15 @@ class Projections kuint32 m_hour; kuint32 m_minute; kuint32 m_second; - string m_filename; + std::string m_filename; Array2dFileLabel m_label; - const static kuint16 m_signature = ('P'*256 + 'J'); + const static kuint16 m_signature; - bool headerRead (void); - bool headerWrite (void); - bool headerRead (fnetorderstream& fs); bool headerWrite (fnetorderstream& fs); - void newProjData (void); - void deleteProjData (void); + bool headerRead (fnetorderstream& fs); + void newProjData (); + void deleteProjData (); void init (const int nView, const int nDet);